code: func AcquireCredentials(principal string, pkgname string, creduse uint32, authdata *byte) (*Credentials, error) {
  	var principalName *uint16
  	if principal != "" {
  		var err error
  		principalName, err = syscall.UTF16PtrFromString(principal)
  		if err != nil {
  			return nil, err
  		}
  	}
  	name, err := syscall.UTF16PtrFromString(pkgname)
  	if err != nil {
  		return nil, err
  	}
  	var c Credentials
  	ret := AcquireCredentialsHandle(principalName, name, creduse, nil, authdata, 0, 0, &c.Handle, &c.expiry)
  	if ret != SEC_E_OK {
  		return nil, ret
  	}
  	return &c, nil
  }
docs: // AcquireCredentials calls the windows AcquireCredentialsHandle function and
  // returns Credentials containing a security handle that can be used for
  // InitializeSecurityContext or AcceptSecurityContext operations.
  // As a special case, passing an empty string as the principal parameter will
  // pass a null string to the underlying function.