Метод IX509CertificateRequestPkcs10::InitializeDecode (certenroll.h)

Метод InitializeDecode декодирует существующий подписанный или неподписанный запрос сертификата PKCS #10 и использует его для инициализации нового объекта запроса PKCS #10. Существующий запрос содержится в массиве байтов, который был закодирован с помощью Distinguished Encoding Rules (DER), как определено в стандарте ASN.1. Массив байтов представлен строкой, которая является либо чистой двоичной последовательностью, либо имеет кодировку Юникод.

Синтаксис

HRESULT InitializeDecode(
  [in] BSTR         strEncodedData,
  [in] EncodingType Encoding
);

Параметры

[in] strEncodedData

Переменная BSTR , содержащая запрос в кодировке DER. Дополнительные сведения см. в подразделе "Примечания".

[in] Encoding

Значение перечисления EncodingType , указывающее тип кодировки Юникода, применяемой к входной строке, содержащей запрос в кодировке DER. Значение по умолчанию — XCN_CRYPT_STRING_BASE64.

Возвращаемое значение

Если функция завершается успешно, функция возвращает S_OK.

Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

Возвращаемый код/значение Описание
HRESULT_FROM_WIN32(ERROR_ALREADY_INITIALIZED)
Объект запроса сертификата уже инициализирован.

Комментарии

Метод InitializeDecode декодирует существующий запрос PKCS #10 и использует полученные сведения для инициализации следующих коллекций для нового объекта запроса:

Метод также:

  • Добавляет декодированные расширения в коллекцию IX509Extensions .
  • Добавляет декодированные атрибуты в коллекцию ICryptAttributes .
  • Задает свойство CriticalExtensions с декодированные критические расширения.
  • Задает свойство ClientId .
  • Задает свойство TemplateObjectId .

По умолчанию метод InitializeDecode предполагает, что декодируемый запрос сертификата предназначен для конечного пользователя. Начиная с Windows 8 и Windows Server 2012 вы можете изменить это поведение по умолчанию. После создания экземпляра интерфейса IX509CertificateRequestPkcs10 вызовите InitializeDecode , задав для параметра Encodingзначение XCN_CRYPT_STRING_BINARY , а для параметра strEncodedData — одно из следующих значений:

Значение Описание
L"ContextMachine" Запрос закодированного сертификата предназначен для компьютера.
L"ContextUser" Запрос закодированного сертификата предназначен для конечного пользователя.
L"ContextAdministratorForceMachine" Закодированный сертификат запрашивается администратором, действующим от имени компьютера.
 

Затем снова вызовите метод InitializeDecode с закодированным сертификатом, заданным в аргументе strEncodedData .

Требования

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

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

IX509CertificateRequestPkcs10