Поделиться через


enrollFromPublicKey

Пример enrollFromPublicKey инициализирует объект запроса сертификата PKCS #10, упаковывает его в объект запроса CMC, отправляет запрос CMC в центр сертификации предприятия и сохраняет сертификат, возвращенный ЦС в файле.

Местоположение

При установке пакета SDK для Microsoft Windows образец устанавливается по умолчанию в папке %ProgramFiles%\Microsoft SDK\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\enrollFromPublicKey.

Обсуждение

Пример enrollFromPublicKey:

  1. Обрабатывает следующие аргументы командной строки:
    • Имя шаблона сертификата.
    • Имя файла, в котором необходимо сохранить установленный сертификат в виде массива байтов в кодировке Base64.
    • Необязательное имя шаблона сертификата подписи. Шаблон используется для создания сертификата подписи, если он отсутствует в хранилище сертификатов.
  2. Создает объект закрытого ключа IX509PrivateKey и вызывает метод Create для создания асимметричного закрытого ключа с помощью поставщика шифрования по умолчанию, размера ключа и значений KeyS pec для текущего компьютера.
  3. Извлекает часть открытого ключа объекта IX509PrivateKey.
  4. Создает объект IX509CertificateRequestPkcs10 и инициализирует его с помощью шаблона, указанного в командной строке и открытом ключе.
  5. Создает объект IX509CertificateRequestCmc и инициализирует его с помощью объекта запроса PKCS #10.
  6. Извлекает существующий сертификат подписи или, если его не удается найти, создает запрос сертификата из шаблона, указанного в командной строке, и пытается зарегистрировать его. FindCertByKeyUsage определяется в enrollCommon.cpp.
  7. Проверяет цепочку сертификатов.
  8. Создает объектISignerCertificate, инициализирует его с помощью сертификата подписи, извлекает коллекцию ISignerCertificates из объекта запроса CMC и добавляет объект сертификата подписи в коллекцию.
  9. Кодирует запрос CMC с помощью различающихся правил кодирования (DER).
  10. Создает объект ICertConfig и использует его для получения строки, содержащей конфигурацию ЦС.
  11. Создает объект cryptoAPI ICertRequest2 и использует его плюс строки, содержащие конфигурацию ЦС и запрос сертификата для отправки запроса в ЦС.
  12. Проверяет состояние процесса регистрации и сохраняет установленный сертификат в файл. Функция EncodeToFileW определена в enrollCommon.cpp.

запроса CMC

PKCS #10 Запрос

использование включенных примеров