📄 jwasspi.pas
字号:
{$EXTERNALSYM PSecPkgContext_NegotiationInfoA}
_SecPkgContext_NegotiationInfoA = record
PackageInfo: PSecPkgInfoA;
NegotiationState: Cardinal;
end;
{$EXTERNALSYM _SecPkgContext_NegotiationInfoA}
SecPkgContext_NegotiationInfoA = _SecPkgContext_NegotiationInfoA;
{$EXTERNALSYM SecPkgContext_NegotiationInfoA}
TSecPkgContextNegotiationInfoA = SecPkgContext_NegotiationInfoA;
PSecPkgContextNegotiationInfoA = PSecPkgContext_NegotiationInfoA;
PSecPkgContext_NegotiationInfoW = ^SecPkgContext_NegotiationInfoW;
{$EXTERNALSYM PSecPkgContext_NegotiationInfoW}
_SecPkgContext_NegotiationInfoW = record
PackageInfo: PSecPkgInfoW;
NegotiationState: Cardinal;
end;
{$EXTERNALSYM _SecPkgContext_NegotiationInfoW}
SecPkgContext_NegotiationInfoW = _SecPkgContext_NegotiationInfoW;
{$EXTERNALSYM SecPkgContext_NegotiationInfoW}
TSecPkgContextNegotiationInfoW = SecPkgContext_NegotiationInfoW;
PSecPkgContextNegotiationInfoW = PSecPkgContext_NegotiationInfoW ;
{$IFDEF UNICODE}
SecPkgContext_NegotiationInfo = SecPkgContext_NegotiationInfoW;
{$EXTERNALSYM SecPkgContext_NegotiationInfo}
PSecPkgContext_NegotiationInfo = PSecPkgContext_NegotiationInfoW;
{$EXTERNALSYM PSecPkgContext_NegotiationInfo}
TSecPkgContextNegotiationInfo = TSecPkgContextNegotiationInfoW;
PSecPkgContextNegotiationInfo = PSecPkgContextNegotiationInfoW;
{$ELSE}
SecPkgContext_NegotiationInfo = SecPkgContext_NegotiationInfoA;
{$EXTERNALSYM SecPkgContext_NegotiationInfo}
PSecPkgContext_NegotiationInfo = PSecPkgContext_NegotiationInfoA;
{$EXTERNALSYM PSecPkgContext_NegotiationInfo}
TSecPkgContextNegotiationInfo = TSecPkgContextNegotiationInfoA;
PSecPkgContextNegotiationInfo = PSecPkgContextNegotiationInfoA;
{$ENDIF}
const
SECPKG_NEGOTIATION_COMPLETE = 0;
{$EXTERNALSYM SECPKG_NEGOTIATION_COMPLETE}
SECPKG_NEGOTIATION_OPTIMISTIC = 1;
{$EXTERNALSYM SECPKG_NEGOTIATION_OPTIMISTIC}
SECPKG_NEGOTIATION_IN_PROGRESS = 2;
{$EXTERNALSYM SECPKG_NEGOTIATION_IN_PROGRESS}
SECPKG_NEGOTIATION_DIRECT = 3;
{$EXTERNALSYM SECPKG_NEGOTIATION_DIRECT}
SECPKG_NEGOTIATION_TRY_MULTICRED = 4;
{$EXTERNALSYM SECPKG_NEGOTIATION_TRY_MULTICRED}
type
PSecPkgContext_NativeNamesW = ^SecPkgContext_NativeNamesW;
{$EXTERNALSYM PSecPkgContext_NativeNamesW}
_SecPkgContext_NativeNamesW = record
sClientName: PSecWChar;
sServerName: PSecWChar;
end;
{$EXTERNALSYM _SecPkgContext_NativeNamesW}
SecPkgContext_NativeNamesW = _SecPkgContext_NativeNamesW;
{$EXTERNALSYM SecPkgContext_NativeNamesW}
TSecPkgContextNativeNamesW = SecPkgContext_NativeNamesW;
PSecPkgContextNativeNamesW = PSecPkgContext_NativeNamesW;
PSecPkgContext_NativeNamesA = ^SecPkgContext_NativeNamesA;
{$EXTERNALSYM PSecPkgContext_NativeNamesA}
_SecPkgContext_NativeNamesA = record
sClientName: PSecChar;
sServerName: PSecChar;
end;
{$EXTERNALSYM _SecPkgContext_NativeNamesA}
SecPkgContext_NativeNamesA = _SecPkgContext_NativeNamesA;
{$EXTERNALSYM SecPkgContext_NativeNamesA}
TSecPkgContextNativeNamesA = SecPkgContext_NativeNamesA;
PSecPkgContextNativeNamesA = PSecPkgContext_NativeNamesA;
{$IFDEF UNICODE}
SecPkgContext_NativeNames = SecPkgContext_NativeNamesW;
{$EXTERNALSYM SecPkgContext_NativeNames}
PSecPkgContext_NativeNames = PSecPkgContext_NativeNamesW;
{$EXTERNALSYM PSecPkgContext_NativeNames}
TSecPkgContextNativeNames = TSecPkgContextNativeNamesW;
PSecPkgContextNativeNames = PSecPkgContextNativeNamesW;
{$ELSE}
SecPkgContext_NativeNames = SecPkgContext_NativeNamesA;
{$EXTERNALSYM SecPkgContext_NativeNames}
PSecPkgContext_NativeNames = PSecPkgContext_NativeNamesA;
{$EXTERNALSYM PSecPkgContext_NativeNames}
TSecPkgContextNativeNames = TSecPkgContextNativeNamesA;
PSecPkgContextNativeNames = PSecPkgContextNativeNamesA;
{$ENDIF}
_SecPkgContext_CredentialNameW = record
CredentialType: Cardinal;
sCredentialName: PSEC_WCHAR;
end;
{$EXTERNALSYM _SecPkgContext_CredentialNameW}
SecPkgContext_CredentialNameW = _SecPkgContext_CredentialNameW;
{$EXTERNALSYM SecPkgContext_CredentialNameW}
PSecPkgContext_CredentialNameW = ^SecPkgContext_CredentialNameW;
{$EXTERNALSYM PSecPkgContext_CredentialNameW}
TSecPkgContextCredentialNameW = SecPkgContext_CredentialNameW;
PSecPkgContextCredentialNameW = PSecPkgContext_CredentialNameW;
_SecPkgContext_CredentialNameA = record
CredentialType: Cardinal;
sCredentialName: PSEC_CHAR;
end;
{$EXTERNALSYM _SecPkgContext_CredentialNameA}
SecPkgContext_CredentialNameA = _SecPkgContext_CredentialNameA;
{$EXTERNALSYM SecPkgContext_CredentialNameA}
PSecPkgContext_CredentialNameA = ^SecPkgContext_CredentialNameA;
{$EXTERNALSYM PSecPkgContext_CredentialNameA}
TSecPkgContextCredentialNameA = SecPkgContext_CredentialNameA;
PSecPkgContextCredentialNameA = PSecPkgContext_CredentialNameA;
{$IFDEF UNICODE}
SecPkgContext_CredentialName = SecPkgContext_CredentialNameW;
{$EXTERNALSYM SecPkgContext_CredentialName}
PSecPkgContext_CredentialName = PSecPkgContext_CredentialNameW;
{$EXTERNALSYM PSecPkgContext_CredentialName}
TSecPkgContextCredentialName = TSecPkgContextCredentialNameW;
PSecPkgContextCredentialName = PSecPkgContextCredentialNameW;
{$ELSE}
SecPkgContext_CredentialName = SecPkgContext_CredentialNameA;
{$EXTERNALSYM SecPkgContext_CredentialName}
PSecPkgContext_CredentialName = PSecPkgContext_CredentialNameA;
{$EXTERNALSYM PSecPkgContext_CredentialName}
TSecPkgContextCredentialName = TSecPkgContextCredentialNameA;
PSecPkgContextCredentialName = PSecPkgContextCredentialNameA;
{$ENDIF}
_SecPkgContext_AccessToken = record
AccessToken: Pointer;
end;
{$EXTERNALSYM _SecPkgContext_AccessToken}
SecPkgContext_AccessToken = _SecPkgContext_AccessToken;
{$EXTERNALSYM SecPkgContext_AccessToken}
PSecPkgContext_AccessToken = ^SecPkgContext_AccessToken;
{$EXTERNALSYM PSecPkgContext_AccessToken}
TSecPkgContextAccessToken = SecPkgContext_AccessToken;
PSecPkgContextAccessToken = PSecPkgContext_AccessToken;
_SecPkgContext_TargetInformation = record
MarshalledTargetInfoLength: Cardinal;
MarshalledTargetInfo: PWideChar;
end;
{$EXTERNALSYM _SecPkgContext_TargetInformation}
SecPkgContext_TargetInformation = _SecPkgContext_TargetInformation;
{$EXTERNALSYM SecPkgContext_TargetInformation}
PSecPkgContext_TargetInformation = ^SecPkgContext_TargetInformation;
{$EXTERNALSYM PSecPkgContext_TargetInformation}
TSecPkgContextTargetInformation = SecPkgContext_TargetInformation;
PSecPkgContextTargetInformation = PSecPkgContext_TargetInformation;
_SecPkgContext_AuthzID = record
AuthzIDLength: Cardinal;
AuthzID: PChar;
end;
{$EXTERNALSYM _SecPkgContext_AuthzID}
SecPkgContext_AuthzID = _SecPkgContext_AuthzID;
{$EXTERNALSYM SecPkgContext_AuthzID}
PSecPkgContext_AuthzID = ^SecPkgContext_AuthzID;
{$EXTERNALSYM PSecPkgContext_AuthzID}
TSecPkgContextAuthzID = SecPkgContext_AuthzID;
PSecPkgContextAuthzID = PSecPkgContext_AuthzID;
_SecPkgContext_Target = record
TargetLength: Cardinal;
Target: PChar;
end;
{$EXTERNALSYM _SecPkgContext_Target}
SecPkgContext_Target = _SecPkgContext_Target;
{$EXTERNALSYM SecPkgContext_Target}
PSecPkgContext_Target = ^SecPkgContext_Target;
{$EXTERNALSYM PSecPkgContext_Target}
TSecPkgContextTarget = SecPkgContext_Target;
PSecPkgContextTarget = PSecPkgContext_Target;
SEC_GET_KEY_FN = procedure (
Arg: Pointer; // Argument passed in
Principal: Pointer; // Principal ID
KeyVer: Cardinal; // Key Version
var Key: Pointer; // Returned ptr to key
var Status: SECURITY_STATUS); stdcall; // returned status
{$EXTERNALSYM SEC_GET_KEY_FN}
TSecGetKeyFn = SEC_GET_KEY_FN;
//
// Flags for ExportSecurityContext
//
const
SECPKG_CONTEXT_EXPORT_RESET_NEW = $00000001; // New context is reset to initial state
{$EXTERNALSYM SECPKG_CONTEXT_EXPORT_RESET_NEW}
SECPKG_CONTEXT_EXPORT_DELETE_OLD = $00000002; // Old context is deleted during export
{$EXTERNALSYM SECPKG_CONTEXT_EXPORT_DELETE_OLD}
function AcquireCredentialsHandleW(pszPrincipal, pszPackage: PSecWChar;
fCredentialUse: Cardinal; pvLogonId, pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer; phCredential: PCredHandle;
var ptsExpiry: TTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM AcquireCredentialsHandleW}
type
ACQUIRE_CREDENTIALS_HANDLE_FN_W = function (
pszPrincipal: PSecWChar;
pszPackage: PSecWChar;
fCredentialsUse: Cardinal;
pvLogonId: Pointer;
pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN;
pvGetKeyArgument: Pointer;
phCredential: PCredHandle;
ptsExpiry: PTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM ACQUIRE_CREDENTIALS_HANDLE_FN_W}
TAcquireCredentialsHandleFnW = ACQUIRE_CREDENTIALS_HANDLE_FN_W;
function AcquireCredentialsHandleA(pszPrincipal, pszPackage: PSecChar;
fCredentialUse: Cardinal; pvLogonId, pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer; phCredential: PCredHandle;
var ptsExpiry: TTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM AcquireCredentialsHandleA}
type
ACQUIRE_CREDENTIALS_HANDLE_FN_A = function (
pszPrincipal: PSecChar;
pszPackage: PSecChar;
fCredentialsUse: Cardinal;
pvLogonId: Pointer;
pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN;
pvGetKeyArgument: Pointer;
phCredential: PCredHandle;
ptsExpiry: PTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM ACQUIRE_CREDENTIALS_HANDLE_FN_A}
TAcquireCredentialsHandleFnA = ACQUIRE_CREDENTIALS_HANDLE_FN_A;
{$IFDEF UNICODE}
function AcquireCredentialsHandle(pszPrincipal, pszPackage: PSecWChar;
fCredentialUse: Cardinal; pvLogonId, pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer; phCredential: PCredHandle;
var ptsExpiry: TTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM AcquireCredentialsHandle}
type
ACQUIRE_CREDENTIALS_HANDLE_FN = ACQUIRE_CREDENTIALS_HANDLE_FN_W;
{$EXTERNALSYM ACQUIRE_CREDENTIALS_HANDLE_FN}
TAcquireCredentialsHandleFn = TAcquireCredentialsHandleFnW;
{$ELSE}
function AcquireCredentialsHandle(pszPrincipal, pszPackage: PSecChar;
fCredentialUse: Cardinal; pvLogonId, pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer; phCredential: PCredHandle;
var ptsExpiry: TTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM AcquireCredentialsHandle}
type
ACQUIRE_CREDENTIALS_HANDLE_FN = ACQUIRE_CREDENTIALS_HANDLE_FN_A;
{$EXTERNALSYM ACQUIRE_CREDENTIALS_HANDLE_FN}
TAcquireCredentialsHandleFn = TAcquireCredentialsHandleFnA;
{$ENDIF}
function FreeCredentialsHandle(phCredential: PCredHandle): SECURITY_STATUS; stdcall;
{$EXTERNALSYM FreeCredentialsHandle}
type
FREE_CREDENTIALS_HANDLE_FN = function (phCredential: PCredHandle): SECURITY_STATUS; stdcall;
{$EXTERNALSYM FREE_CREDENTIALS_HANDLE_FN}
function AddCredentialsW(hCredentials: PCredHandle; pszPrincipal: PSecWChar;
pszPackage: PSecWChar; fCredentialUse: Cardinal; pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer;
ptsExpiry: PTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM AddCredentialsW}
type
ADD_CREDENTIALS_FN_W = function (hCredentials: PCredHandle; pszPrincipal: PSecWChar;
pszPackage: PSecWChar; fCredentialUse: Cardinal; pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer;
ptsExpiry: PTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM ADD_CREDENTIALS_FN_W}
function AddCredentialsA(hCredentials: PCredHandle; pszPrincipal: PSecChar;
pszPackage: PSecChar; fCredentialUse: Cardinal; pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer; ptsExpiry: PTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM AddCredentialsA}
type
ADD_CREDENTIALS_FN_A = function (hCredentials: PCredHandle; pszPrincipal: PSecChar;
pszPackage: PSecChar; fCredentialUse: Cardinal; pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer; ptsExpiry: PTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM ADD_CREDENTIALS_FN_A}
{$IFDEF UNICODE}
function AddCredentials(hCredentials: PCredHandle; pszPrincipal: PSecWChar;
pszPackage: PSecWChar; fCredentialUse: Cardinal; pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer;
ptsExpiry: PTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM AddCredentials}
type
ADD_CREDENTIALS_FN = function (hCredentials: PCredHandle; pszPrincipal: PSecWChar;
pszPackage: PSecWChar; fCredentialUse: Cardinal; pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer;
ptsExpiry: PTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM ADD_CREDENTIALS_FN}
{$ELSE}
function AddCredentials(hCredentials: PCredHandle; pszPrincipal: PSecChar;
pszPackage: PSecChar; fCredentialUse: Cardinal; pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer; ptsExpiry: PTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM AddCredentials}
type
ADD_CREDENTIALS_FN = function (hCredentials: PCredHandle; pszPrincipal: PSecChar;
pszPackage: PSecChar; fCredentialUse: Cardinal; pAuthData: Pointer;
pGetKeyFn: SEC_GET_KEY_FN; pvGetKeyArgument: Pointer; ptsExpiry: PTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM ADD_CREDENTIALS_FN}
{$ENDIF}
////////////////////////////////////////////////////////////////////////
///
/// Context Management Functions
///
////////////////////////////////////////////////////////////////////////
function InitializeSecurityContextW(phCredential: PCredHandle; phContext: PCtxtHandle;
pszTargetName: PSecWChar; fContextReq, Reserved1, TargetDataRep: Cardinal;
pInput: PSecBufferDesc; Reserved2: Cardinal; phNewContext: PCtxtHandle;
pOutput: PSecBufferDesc; var pfContextAttr: Cardinal; ptsExpiry: PTimeStamp): SECURITY_STATUS; stdcall;
{$EXTERNALSYM InitializeSecurityContextW}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -