mirror of https://github.com/lianthony/NT4.0
253 lines
8.3 KiB
253 lines
8.3 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1993.
|
|
//
|
|
// File: ntlmitf.h
|
|
//
|
|
// Contents: Security Support Provider Interface
|
|
// Prototypes and structure definitions
|
|
//
|
|
// Functions: Security Support Provider API
|
|
//
|
|
// History: 11-24-93 RichardW Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspAcquireCredentialsHandleW(
|
|
SEC_WCHAR SEC_FAR * pszPrincipal, // Name of principal
|
|
SEC_WCHAR SEC_FAR * pszPackage, // Name of package
|
|
unsigned long fCredentialUse, // Flags indicating use
|
|
void SEC_FAR * pvLogonId, // Pointer to logon ID
|
|
void SEC_FAR * pAuthData, // Package specific data
|
|
SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() func
|
|
void SEC_FAR * pvGetKeyArgument, // Value to pass to GetKey()
|
|
PCredHandle phCredential, // (out) Cred Handle
|
|
PTimeStamp ptsExpiry // (out) Lifetime (optional)
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspAcquireCredentialsHandleA(
|
|
SEC_CHAR SEC_FAR * pszPrincipal, // Name of principal
|
|
SEC_CHAR SEC_FAR * pszPackage, // Name of package
|
|
unsigned long fCredentialUse, // Flags indicating use
|
|
void SEC_FAR * pvLogonId, // Pointer to logon ID
|
|
void SEC_FAR * pAuthData, // Package specific data
|
|
SEC_GET_KEY_FN pGetKeyFn, // Pointer to GetKey() func
|
|
void SEC_FAR * pvGetKeyArgument, // Value to pass to GetKey()
|
|
PCredHandle phCredential, // (out) Cred Handle
|
|
PTimeStamp ptsExpiry // (out) Lifetime (optional)
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspQueryCredentialsAttributesW(
|
|
PCredHandle phCredential, // Credential to query
|
|
unsigned long ulAttribute, // Attribute to query
|
|
void SEC_FAR * pBuffer // Buffer for attributes
|
|
);
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspQueryCredentialsAttributesA(
|
|
PCredHandle phCredential, // Credential to query
|
|
unsigned long ulAttribute, // Attribute to query
|
|
void SEC_FAR * pBuffer // Buffer for attributes
|
|
);
|
|
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspFreeCredentialsHandle(
|
|
PCredHandle phCredential // Handle to free
|
|
);
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspInitializeSecurityContextW(
|
|
PCredHandle phCredential, // Cred to base context
|
|
PCtxtHandle phContext, // Existing context (OPT)
|
|
SEC_WCHAR SEC_FAR * pszTargetName, // Name of target
|
|
unsigned long fContextReq, // Context Requirements
|
|
unsigned long Reserved1, // Reserved, MBZ
|
|
unsigned long TargetDataRep, // Data rep of target
|
|
PSecBufferDesc pInput, // Input Buffers
|
|
unsigned long Reserved2, // Reserved, MBZ
|
|
PCtxtHandle phNewContext, // (out) New Context handle
|
|
PSecBufferDesc pOutput, // (inout) Output Buffers
|
|
unsigned long SEC_FAR * pfContextAttr, // (out) Context attrs
|
|
PTimeStamp ptsExpiry // (out) Life span (OPT)
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspInitializeSecurityContextA(
|
|
PCredHandle phCredential, // Cred to base context
|
|
PCtxtHandle phContext, // Existing context (OPT)
|
|
SEC_CHAR SEC_FAR * pszTargetName, // Name of target
|
|
unsigned long fContextReq, // Context Requirements
|
|
unsigned long Reserved1, // Reserved, MBZ
|
|
unsigned long TargetDataRep, // Data rep of target
|
|
PSecBufferDesc pInput, // Input Buffers
|
|
unsigned long Reserved2, // Reserved, MBZ
|
|
PCtxtHandle phNewContext, // (out) New Context handle
|
|
PSecBufferDesc pOutput, // (inout) Output Buffers
|
|
unsigned long SEC_FAR * pfContextAttr, // (out) Context attrs
|
|
PTimeStamp ptsExpiry // (out) Life span (OPT)
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspAcceptSecurityContext(
|
|
PCredHandle phCredential, // Cred to base context
|
|
PCtxtHandle phContext, // Existing context (OPT)
|
|
PSecBufferDesc pInput, // Input buffer
|
|
unsigned long fContextReq, // Context Requirements
|
|
unsigned long TargetDataRep, // Target Data Rep
|
|
PCtxtHandle phNewContext, // (out) New context handle
|
|
PSecBufferDesc pOutput, // (inout) Output buffers
|
|
unsigned long SEC_FAR * pfContextAttr, // (out) Context attributes
|
|
PTimeStamp ptsExpiry // (out) Life span (OPT)
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspCompleteAuthToken(
|
|
PCtxtHandle phContext, // Context to complete
|
|
PSecBufferDesc pToken // Token to complete
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspImpersonateSecurityContext(
|
|
PCtxtHandle phContext // Context to impersonate
|
|
);
|
|
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspRevertSecurityContext(
|
|
PCtxtHandle phContext // Context from which to re
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspDeleteSecurityContext(
|
|
PCtxtHandle phContext // Context to delete
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspApplyControlToken(
|
|
PCtxtHandle phContext, // Context to modify
|
|
PSecBufferDesc pInput // Input token to apply
|
|
);
|
|
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspQueryContextAttributesW(
|
|
PCtxtHandle phContext, // Context to query
|
|
unsigned long ulAttribute, // Attribute to query
|
|
void SEC_FAR * pBuffer // Buffer for attributes
|
|
);
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspQueryContextAttributesA(
|
|
PCtxtHandle phContext, // Context to query
|
|
unsigned long ulAttribute, // Attribute to query
|
|
void SEC_FAR * pBuffer // Buffer for attributes
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspFreeContextBuffer(
|
|
void SEC_FAR * pvContextBuffer // buffer to free
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspMakeSignature(
|
|
PCtxtHandle phContext, // Context to use
|
|
unsigned long fQOP, // Quality of Protection
|
|
PSecBufferDesc pMessage, // Message to sign
|
|
unsigned long MessageSeqNo // Message Sequence Num.
|
|
);
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspVerifySignature(
|
|
PCtxtHandle phContext, // Context to use
|
|
PSecBufferDesc pMessage, // Message to verify
|
|
unsigned long MessageSeqNo, // Sequence Num.
|
|
unsigned long SEC_FAR * pfQOP // QOP used
|
|
);
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspSealMessage(
|
|
PCtxtHandle phContext, // Context to use
|
|
unsigned long fQOP, // Quality of Protection
|
|
PSecBufferDesc pMessage, // Message to sign
|
|
unsigned long MessageSeqNo // Message Sequence Num.
|
|
);
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspUnsealMessage(
|
|
PCtxtHandle phContext, // Context to use
|
|
PSecBufferDesc pMessage, // Message to verify
|
|
unsigned long MessageSeqNo, // Sequence Num.
|
|
unsigned long SEC_FAR * pfQOP // QOP used
|
|
);
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspEnumerateSecurityPackagesW(
|
|
unsigned long SEC_FAR * pcPackages, // Receives num. packages
|
|
PSecPkgInfoW SEC_FAR * ppPackageInfo // Receives array of info
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspEnumerateSecurityPackagesA(
|
|
unsigned long SEC_FAR * pcPackages, // Receives num. packages
|
|
PSecPkgInfoA SEC_FAR * ppPackageInfo // Receives array of info
|
|
);
|
|
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspQuerySecurityPackageInfoW(
|
|
SEC_WCHAR SEC_FAR * pszPackageName, // Name of package
|
|
PSecPkgInfoW SEC_FAR *ppPackageInfo // Receives package info
|
|
);
|
|
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspQuerySecurityPackageInfoA(
|
|
SEC_CHAR SEC_FAR * pszPackageName, // Name of package
|
|
PSecPkgInfoA SEC_FAR *ppPackageInfo // Receives package info
|
|
);
|
|
|
|
|
|
SECURITY_STATUS SEC_ENTRY
|
|
SspQuerySecurityContextToken(
|
|
PCtxtHandle phContext, // package to query
|
|
PHANDLE TokenHandle // receivese token
|
|
);
|
|
|
|
|
|
PSecurityFunctionTableA SEC_ENTRY
|
|
SspInitSecurityInterfaceA(
|
|
void
|
|
);
|
|
|
|
PSecurityFunctionTableW SEC_ENTRY
|
|
SspInitSecurityInterfaceW(
|
|
void
|
|
);
|
|
|
|
|
|
BOOLEAN
|
|
PackageMain(
|
|
ULONG Reason
|
|
);
|