公共密钥blob(类型PUBLICKEYBLOB)用于存储RSA公钥。它们具有以下格式:
BLOBHEADER blobheader;
RSAPUBKEY rsapubkey;
BYTE modulus[rsapubkey.bitlen/8];
请注意,PUBLICKEYBLOB不是加密的,而是以明文形式包含公钥。
RSAPUBKEY结构包含特定于密钥blob中包含的特定公钥的信息。定义如下:
typedef struct _RSAPUBKEY {en
DWORD magic;
DWORD bitlen;
DWORD pubexp;
} RSAPUBKEY;
下表描述了RSAPUBKEY结构中的每个字段。
领域 | 描述 |
魔法 | 这必须始终设置为0x31415352。请注意,这只是“RSA1”的ASCII编码。 |
bitlendaet | 模数中的位数。实际上,这一定是8的倍数。 |
pubexp | 公众指数。 |
公钥模数数据位于RSAPUBKEY结构之后。该数据的大小将根据公钥的大小而变化。可以通过将RSAPUBKEY的bitlendaet字段的值除以8来确定字节数。