Win32 API:BCryptImportKey 函数(Bcrypt.h)
BCryptImportKey 函数是 Windows Cryptography API: Next Generation (CNG) 中的一个函数,用于导入一个密钥。以下是该函数的原型:NTSTATUS 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);参数说明: hAlgorithm: 密钥的算法句柄。 hImportKey: 密钥的句柄,用于导入密钥的句柄。 pszBlobType: 指定输入数据的格式,通常是 BLOB 类型,如 BCRYPT_OPAQUE_KEY_...
Win32 API:BCryptHashData 函数(Bcrypt.h)
BCryptHashData 函数是 Windows Cryptography API: Next Generation (CNG) 中的一个函数,用于向哈希对象输入数据以进行哈希计算。以下是该函数的原型:NTSTATUS BCryptHashData( BCRYPT_HASH_HANDLE hHash, PUCHAR pbInput, ULONG cbInput, ULONG dwFlags);参数说明: hHash: 哈希对象的句柄。 pbInput: 指向输入数据的指针。 cbInput: 输入数据的大小(以字节为单位)。 dwFlags: 控制哈希数据操作的标志,通常可以设置为零。函数的返回值是 NTSTATUS 类型,成功时返回 STATUS_SUCCESS。BCryptHashData 用于将数据输入到哈希对象中,以便进行哈希计算。在使用哈希对象之前,需要先通过 BCryptCreateHash 函数创建哈希对象,并使用 BCryptHashData 函数输入要进行哈希的数据。如果有多个数据块需要...
Win32 API:BCryptHash 函数(Bcrypt.h)
在 Windows Cryptography API: Next Generation (CNG) 中,BCryptHash 函数已被废弃。它的功能已被 BCryptCreateHash 函数取代。如果你需要创建哈希对象,应该使用 BCryptCreateHash 函数而不是 BCryptHash 函数。以下是 BCryptCreateHash 函数的原型:NTSTATUS BCryptCreateHash( BCRYPT_ALG_HANDLE hAlgorithm, BCRYPT_HASH_HANDLE *phHash, PUCHAR pbHashObject, ULONG cbHashObject, PUCHAR pbSecret, ULONG cbSecret, ULONG dwFlags);这个函数用于创建一个哈希对象,其中包含了用于哈希计算的算法信息。参数和返回值的意义如下: hAlgorithm: 用于哈希计算的算法句柄。 phHash: 指向哈...
Win32 API:BCryptGetProperty 函数(Bcrypt.h)
BCryptGetProperty 函数是 Windows Cryptography API: Next Generation (CNG) 中的一个函数,用于获取加密算法或密钥对象的属性值。以下是该函数的原型:NTSTATUS BCryptGetProperty( BCRYPT_HANDLE hObject, LPCWSTR pszProperty, PUCHAR pbOutput, ULONG cbOutput, ULONG *pcbResult, ULONG dwFlags);参数说明: hObject: 加密算法或密钥对象的句柄,可以是算法句柄或密钥句柄。 pszProperty: 指定要获取的属性的名称。 pbOutput: 指向输出缓冲区的指针,用于存储获取的属性值。 cbOutput: 输出缓冲区的大小(以字节为单位)。 pcbResult: 返回实际写入输出缓冲区的字节数的指针。 dwFlags: 控制属性获取的标志,通常可以设置为零。函数的返回值是 NTSTATUS 类型,成功时返回 ...
Win32 API:BCryptGetFipsAlgorithmMode 函数(Bcrypt.h)
BCryptGetFipsAlgorithmMode 函数是 Windows Cryptography API: Next Generation (CNG) 中的一个函数,用于检查 FIPS(Federal Information Processing Standards)算法模式是否启用。以下是该函数的原型:NTSTATUS BCryptGetFipsAlgorithmMode( BOOLEAN *pfEnabled);参数说明: pfEnabled: 用于存储 FIPS 模式状态的布尔指针。如果 FIPS 模式已启用,*pfEnabled 将设置为 TRUE;否则,将设置为 FALSE。函数的返回值是 NTSTATUS 类型,成功时返回 STATUS_SUCCESS。FIPS 模式是一种在密码学操作中要求使用特定算法的模式,通常用于满足特定的安全标准。当 FIPS 模式启用时,某些密码学算法和协议的使用将受到限制,以确保满足 FIPS 要求。通过调用 BCryptGetFipsAlgorithmMode 函数,你可以查询当前系统是否处于 FIPS 模式。如果返回的 pfEnabl...
Win32 API:BCryptGenRandom 函数(Bcrypt.h)
BCryptGenRandom 函数是 Windows Cryptography API: Next Generation (CNG) 中的一个函数,用于生成随机数。以下是该函数的原型:NTSTATUS BCryptGenRandom( BCRYPT_ALG_HANDLE hAlgorithm, PUCHAR pbBuffer, ULONG cbBuffer, ULONG dwFlags);参数说明: hAlgorithm: 用于生成随机数的算法句柄。通常可以传入 NULL,表示使用默认的随机数生成器。 pbBuffer: 指向输出缓冲区的指针,用于存储生成的随机数。 cbBuffer: 输出缓冲区的大小(以字节为单位)。 dwFlags: 控制生成随机数的标志,通常可以设置为零。函数的返回值是 NTSTATUS 类型,成功时返回 STATUS_SUCCESS。BCryptGenRandom 用于生成安全的伪随机数,这对于加密和其他安全应用程序非常重要。生成的随机数将存储在提供的输出缓冲区中,可以用于密钥生成...
Win32 API:BCryptGenerateSymmetricKey 函数(Bcrypt.h)
BCryptGenerateSymmetricKey 函数是 Windows Cryptography API: Next Generation (CNG) 中的一个函数,用于生成对称密钥。以下是该函数的原型:NTSTATUS BCryptGenerateSymmetricKey( BCRYPT_ALG_HANDLE hAlgorithm, BCRYPT_KEY_HANDLE *phKey, PUCHAR pbKeyObject, ULONG cbKeyObject, PUCHAR pbSecret, ULONG cbSecret, ULONG dwFlags);参数说明: hAlgorithm: 用于生成对称密钥的算法句柄。 phKey: 指向对称密钥句柄的指针,该句柄将在函数成功调用后被填充。 pbKeyObject: 用于存储密钥对象的缓冲区。 cbKeyObject: pbKeyObject 缓冲区的大小(以字节为单位)。 pbSecret: 包含密...
Win32 API:BCryptGenerateKeyPair 函数(Bcrypt.h)
BCryptGenerateKeyPair 函数是 Windows Cryptography API: Next Generation (CNG) 中的一个函数,用于生成一个密钥对。以下是该函数的原型:NTSTATUS BCryptGenerateKeyPair( BCRYPT_ALG_HANDLE hAlgorithm, BCRYPT_KEY_HANDLE *phKey, ULONG dwLength, ULONG dwFlags);参数说明: hAlgorithm: 用于生成密钥对的算法句柄。 phKey: 指向密钥对句柄的指针,该句柄将在函数成功调用后被填充。 dwLength: 密钥的长度,以比特为单位。 dwFlags: 控制密钥生成的标志,通常可以设置为零。函数的返回值是 NTSTATUS 类型,成功时返回 STATUS_SUCCESS。这个函数用于创建一个密钥对,其中包括公钥和私钥。生成的密钥对将存储在 phKey 所指向的密钥句柄中。生成密钥对后,可能需要通过其他函数设置密钥的属性(如 BCryptSetPrope...
Win32 API:BCryptFreeBuffer 函数(Bcrypt.h)
BCryptFreeBuffer 函数是 Windows Cryptography API: Next Generation (CNG) 中的一个函数,用于释放由 Cryptography API 分配的缓冲区。以下是该函数的原型:NTSTATUS BCryptFreeBuffer( PVOID pvBuffer);参数说明: pvBuffer: 要释放的缓冲区的指针。函数的返回值是 NTSTATUS 类型,成功时返回 STATUS_SUCCESS。在使用 CNG 函数时,有时需要通过函数(如 BCryptGetProperty)获取一些属性或信息,这些信息可能会返回一个缓冲区的指针。当不再需要这个缓冲区时,就可以使用 BCryptFreeBuffer 函数将其释放,以避免内存泄漏。例如,如果你调用 BCryptGetProperty 获取某个属性值,该函数返回一个缓冲区的指针,那么在使用完该缓冲区后,就应该调用 BCryptFreeBuffer 来释放内存。总体来说,BCryptFreeBuffer 用于释放由 CNG 分配的缓冲区,是良好内存管理的一部分。
Win32 API:BCryptFinishHash 函数(Bcrypt.h)
在 Windows Cryptography API: Next Generation (CNG) 中,BCryptFinishHash 函数用于完成哈希对象的计算,生成哈希值。以下是该函数的原型:NTSTATUS BCryptFinishHash( BCRYPT_HASH_HANDLE hHash, PUCHAR pbOutput, ULONG cbOutput, ULONG dwFlags);参数说明: hHash: 要完成的哈希对象的句柄。 pbOutput: 指向输出缓冲区的指针,用于存储生成的哈希值。 cbOutput: 输出缓冲区的大小(以字节为单位)。 dwFlags: 控制哈希操作的标志,通常可以设置为零。函数的返回值是 NTSTATUS 类型,成功时返回 STATUS_SUCCESS。使用哈希函数时,通常需要经过初始化、数据输入、完成哈希等步骤。BCryptFinishHash 就是用于完成哈希的最后一步。在调用该函数之前,需要先调用 BCryptHashData 或类似的函数输入要进...
Win32 API:BCryptFinalizeKeyPair 函数(Bcrypt.h)
BCryptFinalizeKeyPair 函数是 Windows Cryptography API: Next Generation (CNG) 提供的一个函数,用于完成密钥对的创建过程。该函数的主要目的是在密钥对创建的过程中完成相关的操作,使得密钥对可以被使用。以下是该函数的原型:NTSTATUS BCryptFinalizeKeyPair( BCRYPT_KEY_HANDLE hKey, ULONG dwFlags);参数说明: hKey: 要完成的密钥对的句柄。 dwFlags: 控制密钥对的最终化行为的标志。通常可以设置为零。函数的返回值是 NTSTATUS 类型,成功时返回 STATUS_SUCCESS。在使用密钥对之前,需要经历一系列的步骤来创建和初始化密钥对。首先,使用 BCryptGenerateKeyPair 函数创建一个密钥对,然后可能需要通过一些函数(例如 BCryptSetProperty)来设置密钥的属性。最后,使用 BCryptFinalizeKeyPair 函数来完成密钥对的创建过程。这个函数的调用通常标志着密钥对已经准备好使...
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...