Метод IX509PublicKey::get_EncodedParameters (certenroll.h)
Свойство EncodedParameters извлекает массив байтов, содержащий параметры, связанные с алгоритмом открытого ключа . Массив байтов представлен строкой в кодировке Юникод.
Это свойство доступно только для чтения.
Синтаксис
HRESULT get_EncodedParameters(
EncodingType Encoding,
BSTR *pValue
);
Параметры
Encoding
pValue
Возвращаемое значение
None
Remarks
Вызовите метод InitializeFromEncodedPublicKeyInfo или Initialize , чтобы инициализировать объект открытого ключа перед вызовом этого свойства.
Объект AlgorithmIdentifier Abstract Syntax Notation One (ASN.1), на который ссылается объект SubjectPublicKeyInfo в сертификате X.509 версии 3, содержит идентификатор объекта алгоритма (OID) и необязательные параметры.
SubjectPublicKeyInfo ::= SEQUENCE
{
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING
}
AlgorithmIdentifier ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL
}
Формат и содержимое параметров зависят от алгоритма. Элемент управления регистрацией сертификатов при необходимости создает значения параметров для различных алгоритмов. Дополнительные сведения см. в следующих разделах.
- Алгоритм открытого ключа RSA
- Передача ключей с помощью RSA-OAEP
- Ключевое соглашение с использованием ECDH
- Шифрование содержимого с помощью AES
Алгоритм открытого ключа RSA
RSA часто используется для шифрования закрытого ключа и его отправки в центр сертификации (ЦС) для архивации. Объект OID алгоритма XCN_OID_RSA_RSA (1.2.840.113549.1.1.1) должен иметь значение null . Значение NULL ASN.1 представлено двумя байтами. Номер тега 0x05, а значение, связанное с тегом, — 0x00. Это показано в следующем примере сертификата.
...
Public Key Algorithm:
Algorithm ObjectId: 1.2.840.113549.1.1.1 RSA (RSA_KEYX)
Algorithm Parameters:
05 00
...
Передача ключей с помощью RSA-OAEP
Алгоритм RSA-OAEP, XCN_OID_RSAES_OAEP (1.2.840.113549.1.1.7), также поддерживается для передачи ключей. Поле parameters имеет следующий синтаксис.
RSAES-OAEP-params ::= SEQUENCE
{
hashFunc [0] AlgorithmIdentifier DEFAULT sha1OID,
maskGenFunc [1] AlgorithmIdentifier DEFAULT mgf1SHA1OID,
pSourceFunc [2] AlgorithmIdentifier DEFAULT pSpecifiedEmptyOID
}
Ключевое соглашение с использованием ECDH
Для соглашения ключа поддерживается алгоритм Diffie-Hellman эллиптических кривых с одним проходом, XCN_OID_DH_SINGLE_PASS_STDDH_SHA1_KDF (1.3.133.16.840.63.0.2). Соглашение о ключе использует два уровня шифрования:- Сообщение шифруется с помощью ключа шифрования содержимого (CEK) и алгоритма симметричного шифрования .
- CEK шифруется (упаковывается) с помощью ключа шифрования симметричного ключа (KEK).
- XCN_OID_RSA_SMIMEalgCMS3DESwrap (1.2.840.113549.1.9.16.3.)
- XCN_OID_RSA_SMIMEalgCMSRC2wrap (1.2.840.113549.1.9.16.3.7)
- XCN_OID_NIST_AES128_WRAP (2.16.840.1.101.3.4.1.5)
- XCN_OID_NIST_AES192_WRAP (2.16.840.1.101.3.4.1.25)
- XCN_OID_NIST_AES256_WRAP (2.16.840.1.101.3.4.1.45)
Шифрование содержимого с помощью AES
Для шифрования содержимого используется расширенный стандарт шифрования (AES). Поддерживаются следующие алгоритмы:- XCN_OID_NIST_AES128_CBC (2.16.840.1.101.3.4.1.2)
- XCN_OID_NIST_AES192_CBC (2.16.840.1.101.3.4.1.22)
- XCN_OID_NIST_AES256_CBC (2.16.840.1.101.3.4.1.42)
AES-IV ::= OCTET STRING (SIZE(16))
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | certenroll.h |
DLL | CertEnroll.dll |