enrollNestedCMC
Пример enrollNestedCMC считывает существующий запрос сертификата CMC из файла, заключает его в другой запрос CMC, подписывает этот внешний запрос, отправляет его в центр сертификации (ЦС) и сохраняет ответ сертификата из ЦС в файл.
Расположение
При установке пакета SDK microsoft Windows пример по умолчанию устанавливается в папку %ProgramFiles%\Microsoft SDK\Windows\v7.0\Samples\X509 Certificate Enrollment\VC\enrollNestedCMC.
Обсуждение
Пример enrollNestedCMC:
- Обрабатывает следующие аргументы командной строки:
- Имя входного файла.
- Имя выходного файла.
- Необязательный шаблон запроса.
- Считывает существующий запрос CMC из файла в виде массива байтов в кодировке Base63, преобразует массив байтов в BSTR, создает объект IX509CertificateRequestCmc и использует BSTR для инициализации объекта запроса. Инициализированный объект становится внутренним запросом.
- Использует объект внутреннего запроса, созданный и инициализированный на предыдущем шаге, для инициализации другого запроса CMC.
- Извлекает существующий сертификат подписи или, если его не удается найти, создает запрос на сертификат из шаблона, указанного в командной строке, и пытается зарегистрировать его. Функции findCertByTemplate и enrollCertByTemplate определены в файле enrollCommon.cpp.
- Извлекает коллекцию ISignerCertificates из внешнего запроса CMC, создает новый объект ISignerCertificate , инициализирует его с помощью полученного сертификата подписи и добавляет его в коллекцию.
- Кодирует запрос CMC с помощью Distinguished Encoding Rules (DER) и извлекает запрос в виде BSTR.
- Создает объект ICertConfig и использует его для получения строки, содержащей конфигурацию ЦС.
- Создает объект ICertRequest2 CryptoAPI и использует его, а также строки, содержащие конфигурацию ЦС и запрос сертификата для отправки запроса в ЦС.
- Проверяет состояние процесса регистрации и сохраняет ответ сертификата из ЦС в файл. Функция EncodeToFileW определена в файле enrollCommon.cpp.
Связанные темы