enrollFromPublicKey
Пример enrollFromPublicKey инициализирует объект запроса сертификата PKCS #10, упаковывает его в объект запроса CMC, отправляет запрос CMC в центр сертификации предприятия и сохраняет сертификат, возвращенный ЦС в файле.
Местоположение
При установке пакета SDK для Microsoft Windows образец устанавливается по умолчанию в папке %ProgramFiles%\Microsoft SDK\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\enrollFromPublicKey.
Обсуждение
Пример enrollFromPublicKey:
- Обрабатывает следующие аргументы командной строки:
- Имя шаблона сертификата.
- Имя файла, в котором необходимо сохранить установленный сертификат в виде массива байтов в кодировке Base64.
- Необязательное имя шаблона сертификата подписи. Шаблон используется для создания сертификата подписи, если он отсутствует в хранилище сертификатов.
- Создает объект закрытого ключа IX509PrivateKey и вызывает метод Create для создания асимметричного закрытого ключа с помощью поставщика шифрования по умолчанию, размера ключа и значений KeyS pec для текущего компьютера.
- Извлекает часть открытого ключа объекта IX509PrivateKey.
- Создает объект IX509CertificateRequestPkcs10 и инициализирует его с помощью шаблона, указанного в командной строке и открытом ключе.
- Создает объект IX509CertificateRequestCmc и инициализирует его с помощью объекта запроса PKCS #10.
- Извлекает существующий сертификат подписи или, если его не удается найти, создает запрос сертификата из шаблона, указанного в командной строке, и пытается зарегистрировать его. FindCertByKeyUsage определяется в enrollCommon.cpp.
- Проверяет цепочку сертификатов.
- Создает объектISignerCertificate, инициализирует его с помощью сертификата подписи, извлекает коллекцию ISignerCertificates из объекта запроса CMC и добавляет объект сертификата подписи в коллекцию.
- Кодирует запрос CMC с помощью различающихся правил кодирования (DER).
- Создает объект ICertConfig и использует его для получения строки, содержащей конфигурацию ЦС.
- Создает объект cryptoAPI ICertRequest2 и использует его плюс строки, содержащие конфигурацию ЦС и запрос сертификата для отправки запроса в ЦС.
- Проверяет состояние процесса регистрации и сохраняет установленный сертификат в файл. Функция EncodeToFileW определена в enrollCommon.cpp.
Связанные разделы