BCRYPT_DSA_PARAMETER_HEADER_V2 结构 (bcrypt.h)

BCRYPT_DSA_PARAMETER_HEADER_V2 结构用作数字签名算法的标头 (DSA) 参数 BLOB,其中包含用于生成 DSA 密钥的信息。 此结构与 BCryptSetProperty 函数中的 BCRYPT_DSA_PARAMETERS 属性一起使用。

语法

typedef struct _BCRYPT_DSA_PARAMETER_HEADER_V2 {
  ULONG               cbLength;
  ULONG               dwMagic;
  ULONG               cbKeyLength;
  HASHALGORITHM_ENUM  hashAlgorithm;
  DSAFIPSVERSION_ENUM standardVersion;
  ULONG               cbSeedLength;
  ULONG               cbGroupSize;
  UCHAR               Count[4];
} BCRYPT_DSA_PARAMETER_HEADER_V2;

成员

cbLength

此结构的总大小(以字节为单位),以及内存中紧跟此结构的缓冲区。

dwMagic

键的 magic 值。

此成员必须是以下值。

BCRYPT_DSA_PARAMETERS_MAGIC_V2 (0x324d5044)

cbKeyLength

此结构所应用于的键的大小(以字节为单位)。

hashAlgorithm

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

standardVersion

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

cbSeedLength

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

cbGroupSize

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

Count[4]

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

注解

BCryptSetProperty 调用中使用此结构时,若要设置 在 BCryptGenerateKeyPair 调用中创建的 DSA 密钥的参数, (cbKeyLength*8) 必须等于以前设置的 dwLength。

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

此结构用作较大缓冲区的标头。 DSA 参数 Blob 在连续内存中具有以下格式。 Seed、q、Modulus 和 Generator 采用 big-endian 格式。


BCRYPT_DSA_PARAMETER_HEADER_V2
Seed[cbSeedLength]      // Big-endian.
q[cbGroupSize]          // Big-endian.
Modulus[cbKeyLength]    // Big-endian.
Generator[cbKeyLength]  // Big-endian.

要求

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

另请参阅

BCryptGenerateKeyPair

BCryptSetProperty

加密基元属性标识符