| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the w64 mingw-runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| #ifndef _INC_BCRYPT | |
| #define _INC_BCRYPT | |
| #if (_WIN32_WINNT >= 0x0600) | |
| #if !defined (_NTDEF_) && !defined (_NTSTATUS_PSDK) | |
| #define _NTSTATUS_PSDK | |
| typedef LONG NTSTATUS,*PNTSTATUS; | |
| #endif | |
| #define BCRYPT_CIPHER_OPERATION 0x00000001 | |
| #define BCRYPT_HASH_OPERATION 0x00000002 | |
| #define BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION 0x00000004 | |
| #define BCRYPT_SECRET_AGREEMENT_OPERATION 0x00000008 | |
| #define BCRYPT_SIGNATURE_OPERATION 0x00000010 | |
| #define BCRYPT_RNG_OPERATION 0x00000020 | |
| #define BCRYPT_KEY_DATA_BLOB_MAGIC 0x4d42444b | |
| #define BCRYPT_KEY_DATA_BLOB_VERSION1 1 | |
| #define BCRYPT_DH_PARAMETERS_MAGIC 0x4d504844 | |
| #define BCRYPT_DSA_PUBLIC_MAGIC 0x42505344 | |
| #define BCRYPT_DSA_PRIVATE_MAGIC 0x56505344 | |
| #define BCRYPT_DSA_PARAMETERS_MAGIC 0x4d505344 | |
| #define BCRYPT_ALGORITHM_NAME L"AlgorithmName" | |
| #define BCRYPT_AUTH_TAG_LENGTH L"AuthTagLength" | |
| #define BCRYPT_BLOCK_LENGTH L"BlockLength" | |
| #define BCRYPT_BLOCK_SIZE_LIST L"BlockSizeList" | |
| #define BCRYPT_CHAINING_MODE L"ChainingMode" | |
| #define BCRYPT_CHAIN_MODE_CBC L"ChainingModeCBC" | |
| #define BCRYPT_CHAIN_MODE_CCM L"ChainingModeCCM" | |
| #define BCRYPT_CHAIN_MODE_CFB L"ChainingModeCFB" | |
| #define BCRYPT_CHAIN_MODE_ECB L"ChainingModeECB" | |
| #define BCRYPT_CHAIN_MODE_GCM L"ChainingModeGCM" | |
| #define BCRYPT_CHAIN_MODE_NA L"ChainingModeN/A" | |
| #define BCRYPT_DH_PARAMETERS L"DHParameters" | |
| #define BCRYPT_DSA_PARAMETERS L"DSAParameters" | |
| #define BCRYPT_EFFECTIVE_KEY_LENGTH L"EffectiveKeyLength" | |
| #define BCRYPT_HASH_BLOCK_LENGTH L"HashBlockLength" | |
| #define BCRYPT_HASH_LENGTH L"HashDigestLength" | |
| #define BCRYPT_HASH_OID_LIST L"HashOIDList" | |
| #define BCRYPT_INITIALIZATION_VECTOR L"IV" | |
| #define BCRYPT_KEY_LENGTH L"KeyLength" | |
| #define BCRYPT_KEY_LENGTHS L"KeyLengths" | |
| #define BCRYPT_KEY_OBJECT_LENGTH L"KeyObjectLength" | |
| #define BCRYPT_KEY_STRENGTH L"KeyStrength" | |
| #define BCRYPT_OBJECT_LENGTH L"ObjectLength" | |
| #define BCRYPT_PADDING_SCHEMES L"PaddingSchemes" | |
| #define BCRYPT_SUPPORTED_PAD_ROUTER 0x00000001 | |
| #define BCRYPT_SUPPORTED_PAD_PKCS1_ENC 0x00000002 | |
| #define BCRYPT_SUPPORTED_PAD_PKCS1_SIG 0x00000004 | |
| #define BCRYPT_SUPPORTED_PAD_OAEP 0x00000008 | |
| #define BCRYPT_SUPPORTED_PAD_PSS 0x00000010 | |
| #define BCRYPT_PROVIDER_HANDLE L"ProviderHandle" | |
| #define BCRYPT_SIGNATURE_LENGTH L"SignatureLength" | |
| #define KDF_HASH_ALGORITHM 0 | |
| #define KDF_SECRET_PREPEND 1 | |
| #define KDF_SECRET_APPEND 2 | |
| #define KDF_HMAC_KEY 3 | |
| #define KDF_TLS_PRF_LABEL 4 | |
| #define KDF_TLS_PRF_SEED 5 | |
| #define KDF_SECRET_HANDLE 6 | |
| #define BCRYPT_KDF_HASH (L"HASH") | |
| #define BCRYPT_KDF_HASH (L"HASH") | |
| #define BCRYPT_KDF_TLS_PRF (L"TLS_PRF") | |
| #define BCRYPT_KDF_SP80056A_CONCAT (L"SP800_56A_CONCAT") | |
| #define CRYPT_ALL_FUNCTIONS 1 | |
| #define CRYPT_ALL_PROVIDERS 2 | |
| #ifndef __BCRYPT_KEY_HANDLE_DEFINED__ | |
| #define __BCRYPT_KEY_HANDLE_DEFINED__ | |
| /*also in cryptxml.h*/ | |
| typedef LPVOID BCRYPT_KEY_HANDLE; | |
| #endif /*__BCRYPT_KEY_HANDLE_DEFINED__*/ | |
| typedef LPVOID BCRYPT_ALG_HANDLE; | |
| typedef LPVOID BCRYPT_HASH_HANDLE; | |
| typedef LPVOID BCRYPT_SECRET_HANDLE; | |
| typedef LPVOID BCRYPT_HANDLE; | |
| typedef struct _BCRYPT_ALGORITHM_IDENTIFIER { | |
| LPWSTR pszName; | |
| ULONG dwClass; | |
| ULONG dwFlags; | |
| } BCRYPT_ALGORITHM_IDENTIFIER; | |
| typedef struct _BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO { | |
| ULONG cbSize; | |
| ULONG dwInfoVersion; | |
| PUCHAR pbNonce; | |
| ULONG cbNonce; | |
| PUCHAR pbAuthData; | |
| ULONG cbAuthData; | |
| PUCHAR pbTag; | |
| ULONG cbTag; | |
| PUCHAR pbMacContext; | |
| ULONG cbMacContext; | |
| ULONG cbAAD; | |
| ULONGLONG cbData; | |
| ULONG dwFlags; | |
| } BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO, *PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO; | |
| typedef struct _BCRYPT_DH_KEY_BLOB { | |
| ULONG dwMagic; | |
| ULONG cbKey; | |
| } BCRYPT_DH_KEY_BLOB, *PBCRYPT_DH_KEY_BLOB; | |
| typedef struct _BCRYPT_DH_PARAMETER_HEADER { | |
| ULONG cbLength; | |
| ULONG dwMagic; | |
| ULONG cbKeyLength; | |
| } BCRYPT_DH_PARAMETER_HEADER; | |
| typedef struct _BCRYPT_DSA_KEY_BLOB { | |
| ULONG dwMagic; | |
| ULONG cbKey; | |
| UCHAR Count[4]; | |
| UCHAR Seed[20]; | |
| UCHAR q[20]; | |
| } BCRYPT_DSA_KEY_BLOB, *PBCRYPT_DSA_KEY_BLOB; | |
| typedef struct _BCRYPT_DSA_PARAMETER_HEADER { | |
| ULONG cbLength; | |
| ULONG dwMagic; | |
| ULONG cbKeyLength; | |
| UCHAR Count[4]; | |
| UCHAR Seed[20]; | |
| UCHAR q[20]; | |
| } BCRYPT_DSA_PARAMETER_HEADER, *PBCRYPT_DSA_PARAMETER_HEADER; | |
| typedef struct _BCRYPT_ECCKEY_BLOB { | |
| ULONG Magic; | |
| ULONG cbKey; | |
| } BCRYPT_ECCKEY_BLOB, *PBCRYPT_ECCKEY_BLOB; | |
| typedef struct _BCRYPT_INTERFACE_VERSION { | |
| USHORT MajorVersion; | |
| USHORT MinorVersion; | |
| } BCRYPT_INTERFACE_VERSION, *PBCRYPT_INTERFACE_VERSION; | |
| typedef struct _BCRYPT_KEY_BLOB { | |
| ULONG Magic; | |
| } BCRYPT_KEY_BLOB; | |
| typedef struct _BCRYPT_KEY_DATA_BLOB_HEADER { | |
| ULONG dwMagic; | |
| ULONG dwVersion; | |
| ULONG cbKeyData; | |
| } BCRYPT_KEY_DATA_BLOB_HEADER, *PBCRYPT_KEY_DATA_BLOB_HEADER; | |
| typedef struct __BCRYPT_KEY_LENGTHS_STRUCT { | |
| ULONG dwMinLength; | |
| ULONG dwMaxLength; | |
| ULONG dwIncrement; | |
| } BCRYPT_KEY_LENGTHS_STRUCT, BCRYPT_AUTH_TAG_LENGTHS_STRUCT; | |
| typedef struct _BCRYPT_OAEP_PADDING_INFO { | |
| LPCWSTR pszAlgId; | |
| PUCHAR pbLabel; | |
| ULONG cbLabel; | |
| } BCRYPT_OAEP_PADDING_INFO; | |
| typedef struct _BCRYPT_OID { | |
| ULONG cbOID; | |
| PUCHAR pbOID; | |
| } BCRYPT_OID; | |
| typedef struct _BCRYPT_OID_LIST { | |
| ULONG dwOIDCount; | |
| BCRYPT_OID *pOIDs; | |
| } BCRYPT_OID_LIST; | |
| typedef struct _BCRYPT_PKCS1_PADDING_INFO { | |
| LPCWSTR pszAlgId; | |
| } BCRYPT_PKCS1_PADDING_INFO; | |
| typedef struct _BCRYPT_PROVIDER_NAME { | |
| LPWSTR pszProviderName; | |
| } BCRYPT_PROVIDER_NAME; | |
| typedef struct _BCRYPT_PSS_PADDING_INFO { | |
| LPCWSTR pszAlgId; | |
| ULONG cbSalt; | |
| } BCRYPT_PSS_PADDING_INFO; | |
| typedef struct _BCRYPT_RSAKEY_BLOB { | |
| ULONG Magic; | |
| ULONG BitLength; | |
| ULONG cbPublicExp; | |
| ULONG cbModulus; | |
| ULONG cbPrime1; | |
| ULONG cbPrime2; | |
| } BCRYPT_RSAKEY_BLOB; | |
| typedef struct _BCryptBuffer { | |
| ULONG cbBuffer; | |
| ULONG BufferType; | |
| PVOID pvBuffer; | |
| } BCryptBuffer, *PBCryptBuffer; | |
| typedef struct _BCryptBufferDesc { | |
| ULONG ulVersion; | |
| ULONG cBuffers; | |
| PBCryptBuffer pBuffers; | |
| } BCryptBufferDesc, *PBCryptBufferDesc; | |
| typedef struct _CRYPT_CONTEXTS { | |
| ULONG cContexts; | |
| PWSTR rgpszContexts; | |
| } CRYPT_CONTEXTS, *PCRYPT_CONTEXTS; | |
| typedef struct _CRYPT_CONTEXT_CONFIG { | |
| ULONG dwFlags; | |
| } CRYPT_CONTEXT_CONFIG, *PCRYPT_CONTEXT_CONFIG; | |
| typedef struct _CRYPT_CONTEXT_FUNCTIONS { | |
| ULONG cFunctions; | |
| PWSTR rgpszFunctions; | |
| } CRYPT_CONTEXT_FUNCTIONS, *PCRYPT_CONTEXT_FUNCTIONS; | |
| typedef struct _CRYPT_CONTEXT_FUNCTION_CONFIG { | |
| ULONG dwFlags; | |
| } CRYPT_CONTEXT_FUNCTION_CONFIG, *PCRYPT_CONTEXT_FUNCTION_CONFIG; | |
| typedef struct _CRYPT_CONTEXT_FUNCTION_PROVIDERS { | |
| ULONG cProviders; | |
| PWSTR *rgpszProviders; | |
| } CRYPT_CONTEXT_FUNCTION_PROVIDERS, *PCRYPT_CONTEXT_FUNCTION_PROVIDERS; | |
| typedef struct _CRYPT_INTERFACE_REG { | |
| ULONG dwInterface; | |
| ULONG dwFlags; | |
| ULONG cFunctions; | |
| PWSTR *rgpszFunctions; | |
| } CRYPT_INTERFACE_REG, *PCRYPT_INTERFACE_REG; | |
| typedef struct _CRYPT_IMAGE_REG { | |
| PWSTR pszImage; | |
| ULONG cInterfaces; | |
| PCRYPT_INTERFACE_REG *rgpInterfaces; | |
| } CRYPT_IMAGE_REG, *PCRYPT_IMAGE_REG; | |
| typedef struct _CRYPT_IMAGE_REF { | |
| PWSTR pszImage; | |
| ULONG dwFlags; | |
| } CRYPT_IMAGE_REF, *PCRYPT_IMAGE_REF; | |
| typedef struct _CRYPT_PROPERTY_REF { | |
| PWSTR pszProperty; | |
| ULONG cbValue; | |
| PUCHAR pbValue; | |
| } CRYPT_PROPERTY_REF, *PCRYPT_PROPERTY_REF; | |
| typedef struct _CRYPT_PROVIDERS { | |
| ULONG cProviders; | |
| PWSTR *rgpszProviders; | |
| } CRYPT_PROVIDERS, *PCRYPT_PROVIDERS; | |
| typedef struct _CRYPT_PROVIDER_REG { | |
| ULONG cAliases; | |
| PWSTR *rgpszAliases; | |
| PCRYPT_IMAGE_REG pUM; | |
| PCRYPT_IMAGE_REG pKM; | |
| } CRYPT_PROVIDER_REG, *PCRYPT_PROVIDER_REG; | |
| typedef struct _CRYPT_PROVIDER_REF { | |
| ULONG dwInterface; | |
| PWSTR pszFunction; | |
| PWSTR pszProvider; | |
| ULONG cProperties; | |
| PCRYPT_PROPERTY_REF *rgpProperties; | |
| PCRYPT_IMAGE_REF pUM; | |
| PCRYPT_IMAGE_REF pKM; | |
| } CRYPT_PROVIDER_REF, *PCRYPT_PROVIDER_REF; | |
| typedef struct _CRYPT_PROVIDER_REFS { | |
| ULONG cProviders; | |
| PCRYPT_PROVIDER_REF *rgpProviders; | |
| } CRYPT_PROVIDER_REFS, *PCRYPT_PROVIDER_REFS; | |
| NTSTATUS WINAPI BCryptAddContextFunction( | |
| ULONG dwTable, | |
| LPCWSTR pszContext, | |
| ULONG dwInterface, | |
| LPCWSTR pszFunction, | |
| ULONG dwPosition | |
| ); | |
| NTSTATUS WINAPI BCryptCloseAlgorithmProvider( | |
| BCRYPT_ALG_HANDLE hAlgorithm, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptConfigureContext( | |
| ULONG dwTable, | |
| LPCWSTR pszContext, | |
| PCRYPT_CONTEXT_CONFIG pConfig | |
| ); | |
| NTSTATUS WINAPI BCryptConfigureContextFunction( | |
| ULONG dwTable, | |
| LPCWSTR pszContext, | |
| ULONG dwInterface, | |
| LPCWSTR pszFunction, | |
| PCRYPT_CONTEXT_FUNCTION_CONFIG pConfig | |
| ); | |
| NTSTATUS WINAPI BCryptCreateContext( | |
| ULONG dwTable, | |
| LPCWSTR pszContext, | |
| PCRYPT_CONTEXT_CONFIG pConfig | |
| ); | |
| NTSTATUS WINAPI BCryptCreateHash( | |
| BCRYPT_ALG_HANDLE hAlgorithm, | |
| BCRYPT_HASH_HANDLE *phHash, | |
| PUCHAR pbHashObject, | |
| ULONG cbHashObject, | |
| PUCHAR pbSecret, | |
| ULONG cbSecret, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptDecrypt( | |
| BCRYPT_KEY_HANDLE hKey, | |
| PUCHAR pbInput, | |
| ULONG cbInput, | |
| VOID *pPaddingInfo, | |
| PUCHAR pbIV, | |
| ULONG cbIV, | |
| PUCHAR pbOutput, | |
| ULONG cbOutput, | |
| ULONG *pcbResult, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptDeleteContext( | |
| ULONG dwTable, | |
| LPCWSTR pszContext | |
| ); | |
| NTSTATUS WINAPI BCryptDeriveKey( | |
| BCRYPT_SECRET_HANDLE hSharedSecret, | |
| LPCWSTR pwszKDF, | |
| BCryptBufferDesc *pParameterList, | |
| PUCHAR pbDerivedKey, | |
| ULONG cbDerivedKey, | |
| ULONG *pcbResult, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptDestroyHash( | |
| BCRYPT_HASH_HANDLE hHash | |
| ); | |
| NTSTATUS WINAPI BCryptDestroyKey( | |
| BCRYPT_KEY_HANDLE hKey | |
| ); | |
| NTSTATUS WINAPI BCryptDuplicateHash( | |
| BCRYPT_HASH_HANDLE hHash, | |
| BCRYPT_HASH_HANDLE *phNewHash, | |
| PUCHAR pbHashObject, | |
| ULONG cbHashObject, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptDuplicateKey( | |
| BCRYPT_KEY_HANDLE hKey, | |
| BCRYPT_KEY_HANDLE *phNewKey, | |
| PUCHAR pbKeyObject, | |
| ULONG cbKeyObject, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptEnumAlgorithms( | |
| ULONG dwAlgOperations, | |
| ULONG *pAlgCount, | |
| BCRYPT_ALGORITHM_IDENTIFIER **ppAlgList, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptEnumContexts( | |
| ULONG dwTable, | |
| ULONG *pcbBuffer, | |
| PCRYPT_CONTEXTS *ppBuffer | |
| ); | |
| NTSTATUS WINAPI BCryptEnumContextFunctions( | |
| ULONG dwTable, | |
| LPCWSTR pszContext, | |
| ULONG dwInterface, | |
| ULONG *pcbBuffer, | |
| PCRYPT_CONTEXT_FUNCTIONS *ppBuffer | |
| ); | |
| NTSTATUS WINAPI BCryptEnumContextFunctionProviders( | |
| ULONG dwTable, | |
| LPCWSTR pszContext, | |
| ULONG dwInterface, | |
| LPCWSTR pszFunction, | |
| ULONG *pcbBuffer, | |
| PCRYPT_CONTEXT_FUNCTION_PROVIDERS *ppBuffer | |
| ); | |
| NTSTATUS WINAPI BCryptEnumProviders( | |
| LPCWSTR pszAlgId, | |
| ULONG *pImplCount, | |
| BCRYPT_PROVIDER_NAME **ppImplList, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptEnumRegisteredProviders( | |
| ULONG *pcbBuffer, | |
| PCRYPT_PROVIDERS *ppBuffer | |
| ); | |
| NTSTATUS WINAPI BCryptEncrypt( | |
| BCRYPT_KEY_HANDLE hKey, | |
| PUCHAR pbInput, | |
| ULONG cbInput, | |
| VOID *pPaddingInfo, | |
| PUCHAR pbIV, | |
| ULONG cbIV, | |
| PUCHAR pbOutput, | |
| ULONG cbOutput, | |
| ULONG *pcbResult, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptExportKey( | |
| BCRYPT_KEY_HANDLE hKey, | |
| BCRYPT_KEY_HANDLE hExportKey, | |
| LPCWSTR pszBlobType, | |
| PUCHAR pbOutput, | |
| ULONG cbOutput, | |
| ULONG *pcbResult, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptFinishHash( | |
| BCRYPT_HASH_HANDLE hHash, | |
| PUCHAR pbOutput, | |
| ULONG cbOutput, | |
| ULONG dwFlags | |
| ); | |
| VOID WINAPI BCryptFreeBuffer( | |
| PVOID pvBuffer | |
| ); | |
| NTSTATUS WINAPI BCryptGenerateKeyPair( | |
| BCRYPT_ALG_HANDLE hAlgorithm, | |
| BCRYPT_KEY_HANDLE *phKey, | |
| ULONG dwLength, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptGenerateSymmetricKey( | |
| BCRYPT_ALG_HANDLE hAlgorithm, | |
| BCRYPT_KEY_HANDLE *phKey, | |
| PUCHAR pbKeyObject, | |
| ULONG cbKeyObject, | |
| PUCHAR pbSecret, | |
| ULONG cbSecret, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptGenRandom( | |
| BCRYPT_ALG_HANDLE hAlgorithm, | |
| PUCHAR pbBuffer, | |
| ULONG cbBuffer, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptGetFipsAlgorithmMode( | |
| BOOLEAN *pfEnabled | |
| ); | |
| NTSTATUS WINAPI BCryptGetProperty( | |
| BCRYPT_HANDLE hObject, | |
| LPCWSTR pszProperty, | |
| PUCHAR pbOutput, | |
| ULONG cbOutput, | |
| ULONG *pcbResult, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptHashData( | |
| BCRYPT_HASH_HANDLE hHash, | |
| PUCHAR pbInput, | |
| ULONG cbInput, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptImportKey( | |
| BCRYPT_ALG_HANDLE hAlgorithm, | |
| BCRYPT_KEY_HANDLE hImportKey, | |
| LPCWSTR pszBlobType, | |
| BCRYPT_KEY_HANDLE *phKey, | |
| PUCHAR pbKeyObject, | |
| ULONG cbKeyObject, | |
| PUCHAR pbInput, | |
| ULONG cbInput, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptImportKeyPair( | |
| BCRYPT_ALG_HANDLE hAlgorithm, | |
| BCRYPT_KEY_HANDLE hImportKey, | |
| LPCWSTR pszBlobType, | |
| BCRYPT_KEY_HANDLE *phKey, | |
| PUCHAR pbInput, | |
| ULONG cbInput, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptFinalizeKeyPair( | |
| BCRYPT_KEY_HANDLE hKey, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptOpenAlgorithmProvider( | |
| BCRYPT_ALG_HANDLE *phAlgorithm, | |
| LPCWSTR pszAlgId, | |
| LPCWSTR pszImplementation, | |
| DWORD dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptQueryContextConfiguration( | |
| ULONG dwTable, | |
| LPCWSTR pszContext, | |
| ULONG *pcbBuffer, | |
| PCRYPT_CONTEXT_CONFIG *ppBuffer | |
| ); | |
| NTSTATUS WINAPI BCryptQueryContextFunctionConfiguration( | |
| ULONG dwTable, | |
| LPCWSTR pszContext, | |
| ULONG dwInterface, | |
| LPCWSTR pszFunction, | |
| ULONG *pcbBuffer, | |
| PCRYPT_CONTEXT_FUNCTION_CONFIG *ppBuffer | |
| ); | |
| NTSTATUS WINAPI BCryptQueryContextFunctionProperty( | |
| ULONG dwTable, | |
| LPCWSTR pszContext, | |
| ULONG dwInterface, | |
| LPCWSTR pszFunction, | |
| LPCWSTR pszProperty, | |
| ULONG *pcbValue, | |
| PUCHAR *ppbValue | |
| ); | |
| NTSTATUS WINAPI BCryptQueryProviderRegistration( | |
| LPCWSTR pszProvider, | |
| ULONG dwMode, | |
| ULONG dwInterface, | |
| ULONG *pcbBuffer, | |
| PCRYPT_PROVIDER_REG *ppBuffer | |
| ); | |
| /* Kernel mode | |
| NTSTATUS WINAPI BCryptRegisterConfigChangeNotify( | |
| PRKEVENT phEvent | |
| ); | |
| NTSTATUS WINAPI BCryptUnregisterConfigChangeNotify( | |
| PRKEVENT hEvent | |
| ); | |
| */ | |
| NTSTATUS WINAPI BCryptRegisterConfigChangeNotify( | |
| HANDLE *phEvent | |
| ); | |
| NTSTATUS WINAPI BCryptUnregisterConfigChangeNotify( | |
| HANDLE hEvent | |
| ); | |
| NTSTATUS WINAPI BCryptRemoveContextFunction( | |
| ULONG dwTable, | |
| LPCWSTR pszContext, | |
| ULONG dwInterface, | |
| LPCWSTR pszFunction | |
| ); | |
| NTSTATUS WINAPI BCryptResolveProviders( | |
| LPCWSTR pszContext, | |
| ULONG dwInterface, | |
| LPCWSTR pszFunction, | |
| LPCWSTR pszProvider, | |
| ULONG dwMode, | |
| ULONG dwFlags, | |
| ULONG *pcbBuffer, | |
| PCRYPT_PROVIDER_REFS *ppBuffer | |
| ); | |
| NTSTATUS WINAPI BCryptSecretAgreement( | |
| BCRYPT_KEY_HANDLE hPrivKey, | |
| BCRYPT_KEY_HANDLE hPubKey, | |
| BCRYPT_SECRET_HANDLE *phSecret, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptSetContextFunctionProperty( | |
| ULONG dwTable, | |
| LPCWSTR pszContext, | |
| ULONG dwInterface, | |
| LPCWSTR pszFunction, | |
| LPCWSTR pszProperty, | |
| ULONG cbValue, | |
| PUCHAR pbValue | |
| ); | |
| NTSTATUS WINAPI BCryptSetProperty( | |
| BCRYPT_HANDLE hObject, | |
| LPCWSTR pszProperty, | |
| PUCHAR pbInput, | |
| ULONG cbInput, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptSignHash( | |
| BCRYPT_KEY_HANDLE hKey, | |
| VOID *pPaddingInfo, | |
| PBYTE pbInput, | |
| DWORD cbInput, | |
| PBYTE pbOutput, | |
| DWORD cbOutput, | |
| DWORD *pcbResult, | |
| ULONG dwFlags | |
| ); | |
| NTSTATUS WINAPI BCryptVerifySignature( | |
| BCRYPT_KEY_HANDLE hKey, | |
| VOID *pPaddingInfo, | |
| PUCHAR pbHash, | |
| ULONG cbHash, | |
| PUCHAR pbSignature, | |
| ULONG cbSignature, | |
| ULONG dwFlags | |
| ); | |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ | |
| #endif /*_INC_BCRYPT*/ |