BCRYPT_DSA_KEY_BLOB_V2结构(bcrypt.h)

BCRYPT_DSA_KEY_BLOB_V2 结构用作内存中 数字签名算法(DSA)公钥私钥BLOB 标头。

语法

typedef struct _BCRYPT_DSA_KEY_BLOB_V2 {
  ULONG               dwMagic;
  ULONG               cbKey;
  HASHALGORITHM_ENUM  hashAlgorithm;
  DSAFIPSVERSION_ENUM standardVersion;
  ULONG               cbSeedLength;
  ULONG               cbGroupSize;
  UCHAR               Count[4];
} BCRYPT_DSA_KEY_BLOB_V2, *PBCRYPT_DSA_KEY_BLOB_V2;

成员

dwMagic

确定此结构表示的键的类型。 这可以是以下值之一。

价值 意义
BCRYPT_DSA_PUBLIC_MAGIC_V2
0x32425044
该结构表示 DSA 公钥。
BCRYPT_DSA_PRIVATE_MAGIC_V2
0x32565044
该结构表示 DSA 私钥。

cbKey

键的长度(以字节为单位)。

hashAlgorithm

一个 HASHALGORITHM_ENUM 枚举值,该值指定要使用的哈希算法。

standardVersion

一个 DSAFIPSVERSION_ENUM 枚举值,该值指定要应用的联邦信息处理标准(FIPS)。

cbSeedLength

用于生成质数的种子长度 q(以字节为单位)。

cbGroupSize

质数的大小 q(以字节为单位)。 目前,当密钥长度超过 1024 位时,q 长度为 32 字节。

Count[4]

执行以从种子生成质数 q 的迭代数。 有关详细信息,请参阅 NIST 标准 FIPS186-3。

言论

该结构适用于长度超过 1024 位但小于或等于 3072 位的 DSA 密钥。

此结构用作较大缓冲区的标头。 DSA 公钥 BLOB(BCRYPT_DSA_PUBLIC_BLOB)采用连续内存格式。 种子、q、Modulus、Generator 和 Public 数字采用大端格式。


BCRYPT_DSA_KEY_BLOB_V2
Seed[cbSeedLength]  // Big-endian.
q[cbGroupSize]      // Big-endian.
Modulus[cbKey]      // Big-endian.
Generator[cbKey]    // Big-endian.
Public[cbKey]       // Big-endian.

DSA 私钥 BLOB(BCRYPT_DSA_PRIVATE_BLOB)采用连续内存格式。 Seed、q、Modulus、Generator、Public 和 PrivateExponent 数字采用大端格式。


BCRYPT_DSA_KEY_BLOB_V2
Seed[cbSeedLength]              // Big-endian.
q[cbGroupSize]                  // Big-endian.
Modulus[cbKey]                  // Big-endian.
Generator[cbKey]                // Big-endian.
Public[cbKey]                   // Big-endian.
PrivateExponent[cbGroupSize]    // Big-endian.

要求

要求 价值
最低支持的客户端 Windows 8 [仅限桌面应用]
支持的最低服务器 Windows Server 2012 [仅限桌面应用]
标头 bcrypt.h

另请参阅

BCryptExportKey

BCryptImportKeyPair