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

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

Синтаксис

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

Параметры

[in] strEncodedData

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

[in] Encoding

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

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

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

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

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

Замечания

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

Метод также:

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

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

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

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

Требования

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

См. также

IX509CertificateRequestPkcs10