| /** |
| * 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*/ |