Интерфейс IX509PublicKey (certenroll.h)
Интерфейс IX509PublicKey представляет открытый ключ в паре открытых и закрытых ключей. Открытый ключ включается в запрос сертификата, отправляемый в центр сертификации (ЦС), и в сертификат, полученный от ЦС. Дополнительные сведения см. в разделе Пары открытого и закрытого ключей.
Элемент управления регистрацией сертификатов передает открытый и закрытый ключи в массивы байтов. В следующем примере сертификата показан 1024-разрядный открытый ключ, созданный с помощью алгоритма подписи RSA, 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 |
Header | certenroll.h |