Поделиться через


Метод 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). Соглашение о ключе использует два уровня шифрования:KEK вычисляется на основе общего секретного номера, который вычисляется из закрытого ключа одной стороны и открытого ключа другой стороны. Поле parameters содержит OID алгоритма KEK, используемого для упаковки или шифрования CEK. Поддерживаются следующие алгоритмы оболочки:
  • 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)
Поле parameters содержит случайный вектор инициализации AES-IV.

AES-IV ::= OCTET STRING (SIZE(16))

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header certenroll.h
DLL CertEnroll.dll

См. также раздел

IX509PublicKey