Win32 API:BCryptExportKey 函数(Bcrypt.h)
BCryptExportKey 函数是 Windows 中的 Cryptography API: Next Generation (CNG) 提供的一个函数,用于导出密钥的原始二进制数据。这个函数的原型如下:NTSTATUS BCryptExportKey( BCRYPT_KEY_HANDLE hKey, BCRYPT_KEY_HANDLE hExportKey, LPCWSTR pszBlobType, PUCHAR pbOutput, ULONG cbOutput, ULONG *pcbResult, ULONG dwFlags);参数说明: hKey: 要导出的密钥的句柄。 hExportKey: 用于加密导出的密钥的句柄。 pszBlobType: 指定输出数据的格式,通常是 BLOB 类型,如 BCRYPT_OPAQUE_KEY_BLOB。 pbOutput: 指向输出缓冲区的指针,用于存储导出的密钥数据。 cbOutput: 输出缓冲区的大小(以字...
Win32 API:BCryptEnumRegisteredProviders 函数(Bcrypt.h)
BCryptEnumRegisteredProviders 函数是 Windows API 中用于列举已注册的加密服务提供程序(CSP)的 Win32 API 函数,位于 Bcrypt.h 头文件中。该函数可以用于获取系统中已注册的加密服务提供程序的信息,以便进行相应的加密操作。以下是 BCryptEnumRegisteredProviders 函数的基本信息和用法:NTSTATUS BCryptEnumRegisteredProviders( ULONG *pulCount, BCRYPT_REGISTERED_PROVIDER **ppImplList);参数说明: pulCount: 一个指向 ULONG 的指针,用于接收枚举到的服务提供程序数量。 ppImplList: 一个指向 BCRYPT_REGISTERED_PROVIDER 结构数组的指针,用于接收服务提供程序的信息。该数组的内存由函数分配,使用完毕后需要调用 BCryptFreeBuffer 释放。函数返回 NTSTATUS 类型的值,成功时返回 STATUS_SUCCESS。以下是一个简单的示例,演示如何使...
Win32 API:BCryptEnumProviders 函数(Bcrypt.h)
BCryptEnumProviders 函数是 Windows API 中用于列举加密服务提供程序(CSP)的 Win32 API 函数,位于 Bcrypt.h 头文件中。该函数可以用于获取系统中可用的加密服务提供程序的信息,以便进行相应的加密操作。以下是 BCryptEnumProviders 函数的基本信息和用法:NTSTATUS BCryptEnumProviders( LPCWSTR pszAlgId, ULONG dwImplType, ULONG *pulCount, BCRYPT_PROVIDER_NAME **ppImplList, ULONG dwFlags);参数说明: pszAlgId: 一个表示算法标识符的字符串,用于筛选服务提供程序。可以为 NULL,表示不使用算法进行筛选。 dwImplType: 一个表示服务提供程序类型的标志,例如 CRYPT_IMPL_HARDWARE 或 CRYPT_IMPL_SOFTWARE。 pulCount: 一个指向 ULONG 的指针,用于接收枚举到的服务提供程序数量。 ppImplList: 一个指向...
Win32 API:BCryptEnumAlgorithms 函数(Bcrypt.h)
BCryptEnumAlgorithms 函数是 Windows 中用于列举支持的加密算法的 Win32 API 函数,位于 Bcrypt.h 头文件中。该函数可以用于获取系统中可用的加密算法的信息,以便进行相应的加密操作。以下是 BCryptEnumAlgorithms 函数的基本信息和用法:NTSTATUS BCryptEnumAlgorithms( ULONG dwAlgOperations, ULONG *pAlgCount, BCRYPT_ALGORITHM_IDENTIFIER **ppAlgList, ULONG dwFlags);参数说明: dwAlgOperations: 一个表示加密算法支持的操作的标志,例如 BCRYPT_CIPHER_OPERATION 表示对称加密算法,BCRYPT_HASH_OPERATION 表示哈希算法等。 pAlgCount: 一个指向 ULONG 的指针,用于接收枚举到的算法数量。 ppAlgList: 一个指向 BCRYPT_ALGORITHM_IDENTIFIER 数组指针的指针,用于接收算法信息的数组。...
Win32 API:BCryptEncrypt 函数(Bcrypt.h)
BCryptEncrypt 函数是 Windows 中用于加密数据的 Win32 API 函数,位于 Bcrypt.h 头文件中。该函数用于使用指定的密钥和算法对输入数据进行加密。以下是 BCryptEncrypt 函数的基本信息和用法:NTSTATUS BCryptEncrypt( BCRYPT_KEY_HANDLE hKey, PUCHAR pbInput, ULONG cbInput, VOID *pPaddingInfo, PUCHAR pbIV, ULONG cbIV, PUCHAR pbOutput, ULONG cbOutput, ULONG *pcbResult, ULONG dwFlags);参数说明: hKey: BCRYPT_KEY_HANDLE 类型的密钥句柄,表示用于加密的密钥。 pbInput: 要加密的输入数据的指针。 cbInput: 输入数据...
Win32 API:BCryptDuplicateHash 函数(Bcrypt.h)
BCryptDuplicateHash 函数是 Windows 中用于复制哈希对象的 Win32 API 函数,位于 Bcrypt.h 头文件中。这个函数通常用于在同一进程中创建一个哈希对象的副本,以便在不破坏原始哈希对象的情况下执行并行的哈希操作。以下是 BCryptDuplicateHash 函数的基本信息和用法:NTSTATUS BCryptDuplicateHash( BCRYPT_HASH_HANDLE hHash, BCRYPT_HASH_HANDLE *phNewHash, PUCHAR pbHashObject, ULONG cbHashObject, ULONG dwFlags);参数说明: hHash: BCRYPT_HASH_HANDLE 类型的哈希对象句柄,表示要复制的哈希对象。 phNewHash: 用于接收新创建的哈希对象的句柄的指针。 pbHashObject: 用于存储新哈希对象的内存缓冲区。 cbHashObject: pbHashObject 缓冲区的大小(以字节为...
Win32 API:BCryptDestroyKey 函数(Bcrypt.h)
BCryptDestroyKey 函数是 Windows 中用于销毁密钥对象的 Win32 API 函数,位于 Bcrypt.h 头文件中。这个函数通常在你不再需要使用某个密钥对象时调用,以释放相关的资源。以下是 BCryptDestroyKey 函数的基本信息和用法:NTSTATUS BCryptDestroyKey( BCRYPT_KEY_HANDLE hKey);参数说明: hKey: BCRYPT_KEY_HANDLE 类型的密钥对象句柄,表示要销毁的密钥对象。函数返回 NTSTATUS 类型的值,成功时返回 STATUS_SUCCESS。以下是一个简单的示例,演示如何使用 BCryptDestroyKey 函数销毁密钥对象:#include <Windows.h>#include <bcrypt.h>int main() { BCRYPT_ALG_HANDLE hAlgorithm; BCRYPT_KEY_HANDLE hKey; NTSTATUS status; // 打开某个算法提供者,这里以AES算法为例 stat...
Win32 API:BCryptDestroyHash 函数(Bcrypt.h)
BCryptDestroyHash 函数是 Windows 中用于销毁哈希对象的 Win32 API 函数,位于 Bcrypt.h 头文件中。这个函数通常在你不再需要使用某个哈希对象时调用,以释放相关的资源。以下是 BCryptDestroyHash 函数的基本信息和用法:NTSTATUS BCryptDestroyHash( BCRYPT_HASH_HANDLE hHash);参数说明: hHash: BCRYPT_HASH_HANDLE 类型的哈希对象句柄,表示要销毁的哈希对象。函数返回 NTSTATUS 类型的值,成功时返回 STATUS_SUCCESS。以下是一个简单的示例,演示如何使用 BCryptDestroyHash 函数销毁哈希对象:#include <Windows.h>#include <bcrypt.h>int main() { BCRYPT_ALG_HANDLE hAlgorithm; BCRYPT_HASH_HANDLE hHash; NTSTATUS status; // 打开哈希算法对象,这里以SHA-25...
Win32 API:BCryptDeriveKey 函数(Bcrypt.h)
BCryptDeriveKey 函数是 Windows 中用于从一个秘密数据中派生出一个密钥的 Win32 API 函数,位于 Bcrypt.h 头文件中。这个函数通常用于从某些已有的秘密数据生成一个密钥,例如从密码派生出对称密钥。以下是 BCryptDeriveKey 函数的基本信息和用法:NTSTATUS BCryptDeriveKey( BCRYPT_SECRET_HANDLE hSharedSecret, LPCWSTR pwszKDF, BCryptBufferDesc *pParameterList, PUCHAR pbDerivedKey, ULONG cbDerivedKey, ULONG *pcbResult, ULONG dwFlags);参数说明: hSharedSecret: BCRYPT_SECRET_HANDLE 类型的句柄,表示共享的秘密数据。 pwszKDF: 字符串,表示密钥派生函数(Ke...
Win32 API:BCryptDecrypt 函数(Bcrypt.h)
BCryptDecrypt 函数是 Windows 中用于解密数据的 Win32 API 函数,位于 Bcrypt.h 头文件中。该函数通常与加密算法一起使用,用于解密加密的数据。以下是 BCryptDecrypt 函数的基本信息和用法:NTSTATUS BCryptDecrypt( BCRYPT_KEY_HANDLE hKey, PUCHAR pbInput, ULONG cbInput, VOID *pPaddingInfo, PUCHAR pbIV, ULONG cbIV, PUCHAR pbOutput, ULONG cbOutput, ULONG *pcbResult, ULONG dwFlags);参数说明: hKey: BCRYPT_KEY_HANDLE 类型的密钥句柄,表示用于解密的密钥。 pbInput: 要解密的输入数据的指针。 cbInput: 输入数据...
Win32 API:BCryptCreateHash 函数(Bcrypt.h)
BCryptCreateHash 函数是 Windows 中用于创建哈希对象的 Win32 API 函数,位于 Bcrypt.h 头文件中。该函数用于初始化一个哈希对象,以便后续用于哈希操作。以下是 BCryptCreateHash 函数的基本信息和用法:NTSTATUS BCryptCreateHash( BCRYPT_ALG_HANDLE hAlgorithm, BCRYPT_HASH_HANDLE *phHash, PUCHAR pbHashObject, ULONG cbHashObject, PUCHAR pbSecret, ULONG cbSecret, ULONG dwFlags);参数说明: hAlgorithm: BCRYPT_ALG_HANDLE 类型的算法句柄,表示要使用的哈希算法。 phHash: BCRYPT_HASH_HANDLE 类型的指针,用于接收创建的哈希对象的句柄。 pbHashObject: 用...
Win32 API:BCryptCloseAlgorithmProvider 函数(Bcrypt.h)
BCryptCloseAlgorithmProvider 函数是 Windows Cryptography API 的一部分,用于关闭一个算法提供者对象的句柄。以下是函数的简要说明:NTSTATUS BCryptCloseAlgorithmProvider( BCRYPT_ALG_HANDLE hObject, ULONG dwFlags);参数: hObject: 要关闭的算法提供者对象的句柄。 dwFlags: 关闭算法提供者的标志。可以为零或包含以下值之一: - BCRYPT_ALG_HANDLE_HMAC_FLAG: 如果 hObject 是一个 HMAC 算法对象,则也会关闭其关联的密钥对象。返回值: 如果函数成功,返回 STATUS_SUCCESS。其他错误码表示操作失败。这个函数用于释放由 BCryptOpenAlgorithmProvider 打开的算法提供者对象。调用方在使用完算法提供者对象后应该调用此函数来释放相关资源。请注意,这只是一个简要的说明,详细的使用和错误处理建议查阅相应版本的 Windows SDK 文档,或者参考相关的开...