BCRYPT_OAEP_PADDING_INFO 结构是在 Windows 中使用的 Win32 API 中的一个结构体,定义在 Bcrypt.h 头文件中,用于指定 OAEP(Optimal Asymmetric Encryption Padding)填充算法的参数。以下是 BCRYPT_OAEP_PADDING_INFO 结构的定义:typedef struct _BCRYPT_OAEP_PADDING_INFO { LPCWSTR pszAlgId; PUCHAR pbLabel; ULONG cbLabel;} BCRYPT_OAEP_PADDING_INFO, *PBCRYPT_OAEP_PADDING_INFO;结构中的字段含义如下: pszAlgId: 字符串,指定要使用的哈希算法的标识符。这通常是一个符合 CNG 算法标识符的字符串,例如,BCRYPT_SHA256_ALGORITHM 表示 SHA-256 算法。 pbLabel: 指向一个缓冲区的指针,该缓冲区包含 OAEP 填充中使用的可选标签。可以为 NULL,表示没有标签。 cbLabel: 标签缓...
BCRYPT_MULTI_HASH_OPERATION 是在 Windows 中使用的 Win32 API 中的一种结构体,定义在 Bcrypt.h 头文件中,主要用于支持多重哈希操作。以下是 BCRYPT_MULTI_HASH_OPERATION 结构的定义:typedef struct _BCRYPT_MULTI_HASH_OPERATION { ULONG iHash; BCRYPT_HASH_OPERATION_TYPE *rgOperations; ULONG cOperations; ULONG iExtras; BCRYPT_HASH_OPERATION_TYPE *rgExtras; ULONG cExtras; ULONG ...
BCRYPT_KEY_LENGTHS_STRUCT 结构是 Windows Cryptographic API Next Generation (CNG) 中的一部分,它用于表示密钥的长度信息。以下是该结构的定义:typedef struct _BCRYPT_KEY_LENGTHS_STRUCT { ULONG dwMinLength; ULONG dwMaxLength; ULONG dwIncrement;} BCRYPT_KEY_LENGTHS_STRUCT, *PBCRYPT_KEY_LENGTHS_STRUCT;各个字段的含义如下: dwMinLength:表示密钥的最小长度(以比特为单位)。 dwMaxLength:表示密钥的最大长度(以比特为单位)。 dwIncrement:表示密钥长度的增量(以比特为单位)。如果密钥长度可以是任意值,此字段将为零。这个结构通常用于查询密钥的长度信息,以便在生成密钥时选择合适的密钥长度。你可以在使用相关的密钥生成函数之前调用函数来获取密钥长度信息,然后根据需要选择一个合适的密钥长度。以下是一个简单的示例,演示如何使用这个...
BCRYPT_KEY_DATA_BLOB_HEADER 结构是 Windows Cryptographic API Next Generation (CNG) 中的一部分,它定义了密钥数据 BLOB(Binary Large Object)的头部信息。以下是该结构的定义:typedef struct _BCRYPT_KEY_DATA_BLOB_HEADER { ULONG dwMagic; ULONG dwVersion; ULONG cbKeyData;} BCRYPT_KEY_DATA_BLOB_HEADER;各个字段的含义如下: dwMagic:一个 4 字节的标识符,用于标志密钥数据 BLOB 的类型。不同的密钥类型可能有不同的魔术值。这个字段的值可以是 BCRYPT_KEY_DATA_MAGIC 或者其他特定类型的值。 dwVersion:一个 4 字节的字段,表示密钥数据 BLOB 的版本号。 cbKeyData:一个 4 字节的字段,表示密钥数据的大小(以字节为单位)。这个结构主要用于在密钥导出和导入过程中标识密钥数据的格式和版本信息。在使用这个结构时,...
BCRYPT_KEY_BLOB 结构是 Windows 操作系统上使用的 Win32 Cryptography API 的一部分,用于表示密钥的二进制格式。该结构定义了密钥的存储格式,可以在不同的密钥存储和交换场景中使用。以下是 BCRYPT_KEY_BLOB 结构的定义:typedef struct _BCRYPT_KEY_BLOB { ULONG Magic;} BCRYPT_KEY_BLOB, *PBCRYPT_KEY_BLOB;这个结构只有一个成员: Magic:表示密钥数据的标识符,它用于确定密钥的类型和其他相关信息。具体的 Magic 值将取决于所使用的算法和密钥类型。在使用 BCRYPT_KEY_BLOB 结构时,通常需要查看特定算法的文档以了解相应的 Magic 值。例如,对于对称密钥,可能使用的是 BCRYPT_AES_ALGORITHM,而对于非对称密钥,可能使用的是 BCRYPT_RSAPRIVATE_BLOB 或 BCRYPT_RSAPUBLIC_BLOB 等。使用示例:#include <bcrypt.h>BCRYPT_KEY_BLOB keyB...
BCRYPT_INTERFACE_VERSION 结构是 Windows 操作系统上使用的 Win32 Cryptography API 的一部分。该结构用于指定加密提供程序 (CNG) 的接口版本。以下是 BCRYPT_INTERFACE_VERSION 结构的定义:typedef struct _BCRYPT_INTERFACE_VERSION { USHORT MajorVersion; USHORT MinorVersion;} BCRYPT_INTERFACE_VERSION, *PBCRYPT_INTERFACE_VERSION;这个结构包含两个成员:1. MajorVersion:表示接口的主要版本号。2. MinorVersion:表示接口的次要版本号。应用程序可以使用这个结构来确定系统上安装的 CNG 提供程序的版本信息,以确保与所需的版本兼容性。使用示例:#include <bcrypt.h>BCRYPT_INTERFACE_VERSION version;version.MajorVersion = BCRYPT_MAKE_INTERFACE_VE...
BCRYPT_ECCKEY_BLOB 结构是 Windows Cryptography API Next Generation (CNG) 中用于表示椭圆曲线密钥的结构。以下是该结构的定义:typedef struct _BCRYPT_ECCKEY_BLOB { ULONG dwMagic; ULONG cbKey;} BCRYPT_ECCKEY_BLOB, *PBCRYPT_ECCKEY_BLOB;结构成员说明: dwMagic:一个标识密钥类型的值,通常是 BCRYPT_ECDH_PUBLIC_P256_MAGIC、BCRYPT_ECDH_PRIVATE_P256_MAGIC、BCRYPT_ECDSA_PUBLIC_P256_MAGIC、BCRYPT_ECDSA_PRIVATE_P256_MAGIC 等。 cbKey:密钥数据的大小,以字节为单位。这个结构主要用于导入和导出椭圆曲线密钥。你可以使用相关的函数,如 BCryptExportKey 和 BCryptImportKeyPair,来将椭圆曲线密钥导出为这种结构或从这种结构导入密钥。以下是一些可能的 dwMagic 值...
BCRYPT_DSA_PARAMETER_HEADER 结构是 Windows Cryptography API Next Generation (CNG) 中用于表示 DSA (Digital Signature Algorithm) 参数的结构。以下是该结构的定义:typedef struct _BCRYPT_DSA_PARAMETER_HEADER { ULONG cbLength; ULONG dwMagic; ULONG cbKey;} BCRYPT_DSA_PARAMETER_HEADER, *PBCRYPT_DSA_PARAMETER_HEADER;结构成员说明: cbLength:结构的大小,以字节为单位。 dwMagic:一个标识参数类型的值,通常是 BCRYPT_DSA_PUBLIC_MAGIC 或 BCRYPT_DSA_PRIVATE_MAGIC。 cbKey:参数数据的大小,以字节为单位。这个结构通常用于导入和导出 DSA 参数。你可以使用相关的函数,如 BCryptExportKey 和 BCryptImportKeyPair,来将 DSA 参数导...
在 Windows Cryptography API Next Generation (CNG) 的头文件 Bcrypt.h 中,BCRYPT_DSA_KEY_BLOB 结构用于表示 DSA(Digital Signature Algorithm)密钥的二进制格式。以下是该结构的定义:typedef struct _BCRYPT_DSA_KEY_BLOB { ULONG dwMagic; ULONG cbKey;} BCRYPT_DSA_KEY_BLOB, *PBCRYPT_DSA_KEY_BLOB;结构成员说明: dwMagic:一个标识密钥类型的值,通常是 BCRYPT_DSA_PUBLIC_MAGIC(公钥)或 BCRYPT_DSA_PRIVATE_MAGIC(私钥)。 cbKey:密钥数据的大小,以字节为单位。这个结构主要用于导入和导出 DSA 密钥。你可以使用相关的函数,如 BCryptExportKey 和 BCryptImportKeyPair,来将 DSA 密钥导出为这种结构或从这种结构导入密钥。以下是一些相关的标识符: BCRYPT_DSA_PUBLIC_MA...
BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO 结构是 Windows Cryptography API Next Generation (CNG) 中定义的一个结构,用于在加密和解密操作中提供额外的信息,例如关联数据(Additional Authentication Data,AAD)和初始化向量(Initialization Vector,IV),以及其他与身份验证和密码模式相关的信息。以下是该结构的定义:typedef struct _BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO { ULONG cbSize; ULONG dwInfoVersion; PUCHAR pbNonce; ULONG cbNonce; PUCHAR pbAuthData; ULONG ...
BCRYPT_ALGORITHM_IDENTIFIER 结构是在 Windows Cryptography API Next Generation (CNG) 中定义的,用于指定算法标识符。它通常用于指定算法的名称和 OID (Object Identifier)。以下是该结构的定义:typedef struct _BCRYPT_ALGORITHM_IDENTIFIER { LPWSTR pszName; ULONG dwClass; ULONG dwFlags;} BCRYPT_ALGORITHM_IDENTIFIER;结构成员说明: pszName:一个指向包含算法名称的 null 终止字符串的指针。 dwClass:一个标志,指示算法的类别。可能的值包括 BCRYPT_HASH_INTERFACE、BCRYPT_SYM_CIPHER_INTERFACE、BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE 等。 dwFlags:一组标志,用于指定算法的属性。这个结构通常用在一些与算法相关的函数和结构体中,例如 BCRYPT_KEY_ALG_HAN...
BCryptVerifySignature 函数是 Windows Cryptography API Next Generation (CNG) 中的一个函数,用于验证数字签名。它通常与非对称密钥对一起使用,其中公钥用于验证签名,私钥用于签名生成。以下是该函数的基本语法和说明:NTSTATUS BCryptVerifySignature( BCRYPT_KEY_HANDLE hKey, VOID *pPaddingInfo, PUCHAR pbHash, ULONG cbHash, PUCHAR pbSignature, ULONG cbSignature, ULONG dwFlags);参数说明: hKey:用于验证签名的密钥的句柄。 pPaddingInfo:一个指向填充信息结构的指针,可以为 NULL。 pbHash:指向用于签名的哈希值的缓冲区的指针。 cbHash:哈希值的大小,以字节为单位。 pbSignature:指向要验证的签名...
BCryptSignHash 函数是 Windows Cryptography API Next Generation (CNG) 中的一个函数,用于对哈希值进行数字签名。它通常与非对称密钥对一起使用,其中私钥用于签名生成,公钥用于验证签名。以下是该函数的基本语法和说明:NTSTATUS BCryptSignHash( BCRYPT_KEY_HANDLE hKey, VOID *pPaddingInfo, PUCHAR pbInput, ULONG cbInput, PUCHAR pbOutput, ULONG cbOutput, ULONG *pcbResult, ULONG dwFlags);参数说明: hKey:用于签名的密钥的句柄。 pPaddingInfo:一个指向填充信息结构的指针,可以为 NULL。 pbInput:指向要签名的数据的缓冲区的指针。 cbInput:要签名的数据的大小,以字节为单位。 pbO...
BCryptSetProperty 函数是 Windows Cryptography API Next Generation (CNG) 中的一个函数,用于设置密钥对象的属性。该函数允许你在创建或导入密钥后,通过设置不同的属性来配置密钥的行为。以下是该函数的基本语法和说明:NTSTATUS BCryptSetProperty( BCRYPT_HANDLE hObject, LPCWSTR pszProperty, PUCHAR pbInput, ULONG cbInput, ULONG dwFlags);参数说明: hObject:要设置属性的密钥对象的句柄。 pszProperty:一个字符串,表示要设置的属性的名称。 pbInput:一个指向包含属性值的缓冲区的指针。 cbInput:属性值缓冲区的大小,以字节为单位。 dwFlags:标志位,用于控制属性的设置。可以为零或以下之一: - BCRYPT_PROPERTY_FLAG (0x00000008):指示属性应该是一个标志,而不是包含数据的缓冲区。函数返回一...
BCryptSecretAgreement 函数是 Windows Cryptography API Next Generation (CNG) 中的一个函数,用于创建两个密钥之间的协商密钥(Secret Agreement)。这个函数的主要用途是在密钥协商过程中生成共享的密钥材料。以下是该函数的基本语法和说明:NTSTATUS BCryptSecretAgreement( BCRYPT_KEY_HANDLE hPrivKey, BCRYPT_KEY_HANDLE hPubKey, BCRYPT_SECRET_HANDLE *phAgreedSecret, ULONG dwFlags);参数说明: hPrivKey:用于协商的私钥的句柄。 hPubKey:用于协商的公钥的句柄。 phAgreedSecret:一个指向 BCRYPT_SECRET_HANDLE 类型的指针,用于接收生成的协商密钥的句柄。 dwFlags:标志位,可以是零或以下之一: - BCRYPT_SECRECT_AGREEMENT_MULTI_FLAG:表示可以使用多个私钥进行密...
BCryptRegisterConfigChangeNotify 函数是 Windows Cryptography API Next Generation (CNG) 提供的一个函数,用于注册配置更改通知。它允许应用程序在系统配置更改时接收通知。以下是该函数的基本语法和说明:NTSTATUS BCryptRegisterConfigChangeNotify( PBCRYPT_NOTIFICATION_REGISTRATION *pNotificationRegistration, ULONG dwFlags);参数说明: pNotificationRegistration:一个指向 BCRYPT_NOTIFICATION_REGISTRATION 结构指针的指针。该结构包含有关注册的信息,例如回调函数等。 dwFlags:一个标志,指定注册的类型。可以是以下之一或它们的组合: - BCRYPT_REG_CHANGE_NO_MORE_NOTIFICATIONS:注册通知,但不接收更多的通知。 - BCRYPT_REG_CHA...
BCryptRegisterConfigChangeNotify 函数是 Windows 中的一个 Win32 API 函数,它位于 Bcrypt.h 头文件中,用于注册配置更改通知。这个函数的目的是允许应用程序在系统配置更改时接收通知。以下是该函数的基本语法和说明:NTSTATUS BCryptRegisterConfigChangeNotify( PBCRYPT_NOTIFICATION_REGISTRATION *pNotificationRegistration, ULONG dwFlags); pNotificationRegistration:一个指向 BCRYPT_NOTIFICATION_REGISTRATION 结构的指针,该结构包含有关注册的信息,包括回调函数等。 dwFlags:一个标志,用于指定注册的类型。可以是以下之一或它们的组合: - BCRYPT_REG_CHANGE_NO_MORE_NOTIFICATIONS:注册通知,但不接收更多的通知。 - BCRYPT_REG_CHANGE_NOT...
BCryptOpenAlgorithmProvider 函数是 Windows Cryptography API: Next Generation (CNG) 中的一个函数,用于打开或创建一个算法提供者对象,以便进行加密、哈希等操作。以下是该函数的原型:NTSTATUS BCryptOpenAlgorithmProvider( LPCWSTR pszAlgId, LPCWSTR pszImplementation, ULONG dwFlags, BCRYPT_ALG_HANDLE *phAlgorithm, ULONG dwReserved);参数说明: pszAlgId: 指定要打开的算法的标识符,如 AES、RSA 等。 pszImplementation: 可选参数,指定要使用的算法提供者的名称,通常可以为 NULL。 dwFlags: 控制算法提供者的打开行为的标志,通常可以设置为零。 phAlgorithm: 指向算法提供者句柄的指针,该句柄将在函数成功调用后被填充。 dwRes...
BCryptKeyDerivation 函数是 Windows Cryptography API: Next Generation (CNG) 中的一个函数,用于执行密钥派生操作。以下是该函数的原型:NTSTATUS BCryptKeyDerivation( BCRYPT_KEY_HANDLE hKey, BCryptBufferDesc *pParameterList, PUCHAR pbDerivedKey, ULONG cbDerivedKey, ULONG *pcbResult, ULONG dwFlags);参数说明: hKey: 用于密钥派生的原始密钥的句柄。 pParameterList: 一个指向 BCryptBufferDesc 结构的指针,该结构包含派生密钥所需的参数。 pbDerivedKey: 指向输出缓冲区的指针,用于存储派生的密钥。 cbDerivedKey: 输出缓冲区的大小(以字节为单位)。 pcbResult: 返回实际写入输出缓冲区的字节数的指针...
BCryptImportKeyPair 函数是 Windows Cryptography API: Next Generation (CNG) 中的一个函数,用于导入密钥对。以下是该函数的原型:NTSTATUS BCryptImportKeyPair( BCRYPT_ALG_HANDLE hAlgorithm, BCRYPT_KEY_HANDLE hImportKey, LPCWSTR pszBlobType, BCRYPT_KEY_HANDLE *phKey, PUCHAR pbInput, ULONG cbInput, ULONG dwFlags);参数说明: hAlgorithm: 密钥对的算法句柄。 hImportKey: 密钥对的句柄,用于导入密钥对的句柄。 pszBlobType: 指定输入数据的格式,通常是 BLOB 类型,如 BCRYPT_OPAQUE_KEY_BLOB。 phKey: 指向导入密钥对的句柄的指针。 pbInput: 包含要导入的密钥对数据的缓冲区。 ...
最新文章