blobHEADER 结构 (wincrypt.h)

PUBLICKEYSTRUC 结构(也称为 BLOBHEADER 结构)指示密钥的 BLOB 类型和密钥使用的算法。 其中一个结构位于每个密钥 BLOBpbData 成员的开头。

此结构不限于PROV_RSA_BASE和PROV_RSA_SIG提供程序类型生成的密钥 BLOB。 任何新密钥 BLOB 类型的 pbData 成员都必须以此结构开头。

语法

typedef struct _PUBLICKEYSTRUC {
  BYTE   bType;
  BYTE   bVersion;
  WORD   reserved;
  ALG_ID aiKeyAlg;
} BLOBHEADER, PUBLICKEYSTRUC;

成员

bType

包含密钥 BLOB 类型。

下面是此成员的预定义值。 加密服务提供程序 (CSP) 可以根据需要使用其他类型的标识符。

含义
KEYSTATEBLOB
0xC
BLOB 是关键状态 BLOB。
OPAQUEKEYBLOB
0x9
密钥是会话密钥。
PLAINTEXTKEYBLOB
0x8
密钥是会话密钥。
PRIVATEKEYBLOB
0x7
密钥是 公钥/私钥对
PUBLICKEYBLOB
0x6
密钥是公钥。
PUBLICKEYBLOBEX
0xA
密钥是公钥。
SIMPLEBLOB
0x1
密钥是会话密钥。
SYMMETRICWRAPKEYBLOB
0xB
密钥是对称密钥。

bVersion

包含密钥 BLOB 格式的版本号。 例如,如果 BLOB 是 数字签名标准 (DSS) 版本 3 密钥,则此成员将包含 3。 此成员的最小值由 CUR_BLOB_VERSION (2) 标识符定义。

reserved

此成员保留供将来使用,必须设置为零。

aiKeyAlg

包含 一个ALG_ID 值,该值标识密钥 BLOB 包含的密钥的算法。

并非所有算法标识符对所有 BLOB 类型都有效。 例如,由于 RC4 密钥是会话密钥,因此无法将其导出到 PUBLICKEYBLOB 中。

PLAINTEXTB BLOB 可以与使用中的 CSP 支持的任意算法或组合键类型一起使用。 请注意,在使用 Microsoft 基本提供程序时,无法导入 3DES 密钥。

要求

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

另请参阅

DSSPUBKEY

DSSSEED

RSAPUBKEY