IX509PublicKey 接口 (certenroll.h)

IX509PublicKey 接口表示公钥/私钥对中的公钥。 公钥包含在发送到证书颁发机构的证书请求中, (CA) 以及从 CA 接收的证书中。 有关详细信息,请参阅 公钥/私钥对

证书注册控件在字节数组中传递公钥和私钥。 以下证书示例演示使用 RSA 签名算法创建的 1024 位公钥,XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) 。


...
Public Key Algorithm:
    Algorithm ObjectId: 1.2.840.113549.1.1.1 RSA (RSA_SIGN)
    Algorithm Parameters:
    05 00
Public Key Length: 1024 bits
Public Key: UnusedBits = 0
    0000  30 81 89 02 81 81 00 8f  e2 41 2a 08 e8 51 a8 8c
    0010  b3 e8 53 e7 d5 49 50 b3  27 8a 2b cb ea b5 42 73
    0020  ea 02 57 cc 65 33 ee 88  20 61 a1 17 56 c1 24 18
    0030  e3 a8 08 d3 be d9 31 f3  37 0b 94 b8 cc 43 08 0b
    0040  70 24 f7 9c b1 8d 5d d6  6d 82 d0 54 09 84 f8 9f
    0050  97 01 75 05 9c 89 d4 d5  c9 1e c9 13 d7 2a 6b 30
    0060  91 19 d6 d4 42 e0 c4 9d  7c 92 71 e1 b2 2f 5c 8d
    0070  ee f0 f1 17 1e d2 5f 31  5b b1 9c bc 20 55 bf 3a
    0080  37 42 45 75 dc 90 65 02  03 01 00 01
...

公钥由一个 1024 位模数组成,该模数将两个大质数和一个 96 位指数相乘。 RSA 算法使用标准欧几里德公式中的指数和质数来创建私钥。 通过检查同一公钥的以下 ASN.1 输出,可以更清楚地识别模数和指数。 由于模数以为其设置了符号位的字节 (0x8F) 开始,因此在前面添加0x00以确保整数保持无符号。 其他公钥算法创建由不同组成部分组成的公钥。


30 81 89                                  ; SEQUENCE (89 Bytes)
   02 81 81                               ; INTEGER (81 Bytes)
   |  00                                 // Modulus 
   |  8f e2 41 2a 08 e8 51 a8  8c b3 e8 53 e7 d5 49 50
   |  b3 27 8a 2b cb ea b5 42  73 ea 02 57 cc 65 33 ee
   |  88 20 61 a1 17 56 c1 24  18 e3 a8 08 d3 be d9 31
   |  f3 37 0b 94 b8 cc 43 08  0b 70 24 f7 9c b1 8d 5d
   |  d6 6d 82 d0 54 09 84 f8  9f 97 01 75 05 9c 89 d4
   |  d5 c9 1e c9 13 d7 2a 6b  30 91 19 d6 d4 42 e0 c4
   |  9d 7c 92 71 e1 b2 2f 5c  8d ee f0 f1 17 1e d2 5f
   |  31 5b b1 9c bc 20 55 bf  3a 37 42 45 75 dc 90 65
   02 03                                  ; INTEGER (3 Bytes)
      01 00 01                           // Exponent


继承

IX509PublicKey 接口继承自 IDispatch 接口。 IX509PublicKey 还具有以下类型的成员:

方法

IX509PublicKey 接口具有这些方法。

 
IX509PublicKey::ComputeKeyIdentifier

从公钥的 160 位 SHA-1 哈希创建标识符。
IX509PublicKey::get_Algorithm

检索公钥算法 (OID) 的对象标识符。
IX509PublicKey::get_EncodedKey

检索包含公钥的字节数组。
IX509PublicKey::get_EncodedParameters

检索包含与公钥算法关联的参数的字节数组。
IX509PublicKey::get_Length

检索公钥的长度。
IX509PublicKey::Initialize

从公钥算法对象标识符 (OID) 以及包含公钥和关联参数的字节数组(如果有)初始化对象。
IX509PublicKey::InitializeFromEncodedPublicKeyInfo

从包含公钥的字节数组初始化 对象。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 certenroll.h

另请参阅

CertEnroll 接口

IDispatch

IX509PrivateKey

公钥/私钥对