Метод 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.
Возвращаемый код/значение | Описание |
---|---|
|
Объект запроса сертификата уже инициализирован. |
Комментарии
Метод InitializeDecode декодирует существующий запрос PKCS #10 и использует полученные сведения для инициализации следующих коллекций для нового объекта запроса:
- Пустая коллекция ICryptAttributes .
- Пустая коллекция IX509Extensions .
- Пустая коллекция IObjectIds для идентификаторов атрибутов и расширений, которые будут подавляться из нового запроса.
Метод также:
- Добавляет декодированные расширения в коллекцию 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 |