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


createCNGCustomCMC

В примере createCNGCustomCMC создается объект запроса CMC из внутреннего вложенного запроса PKCS #10. Внутренний запрос создается с помощью асимметричного закрытого ключа. Закрытый ключ создается с помощью API шифрования: поставщик шифрования следующего поколения (CNG) и алгоритм, указанный в командной строке. Пользовательские параметры, такие как политика экспорта и уровень защиты ключей, также задаются в закрытом ключе.

Расположение

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

Обсуждение

Пример createCNGCustomCMC:

  1. Обрабатывает следующие аргументы командной строки:
    • Имя поставщика служб шифрования CNG (CSP).
    • Имя алгоритма, используемого для создания асимметричного закрытого ключа.
    • Имя алгоритма, используемого для хэширования запроса сертификата.
    • Выходной файл, в котором сохраняется запрос на сертификат.
    • Необязательная строка (AlternateSignature), которая, если она присутствует, указывает, что используется дискретный, а не объединенный алгоритм подписи. Дополнительные сведения см. в свойстве AlternateSignatureAlgorithm .
  2. Создает объект IX509PrivateKey и задает следующие свойства:
  3. Создает асимметричный закрытый ключ.
  4. Создает объект IX509CertificateRequestPkcs10 и инициализирует его с помощью закрытого ключа.
  5. Создает объект IX509CertificateRequestCmc и инициализирует его с помощью объекта запроса PKCS #10, созданного на шаге 4.
  6. Задает флаг альтернативного алгоритма подписи VARIANT_TRUE или VARIANT_FALSE в зависимости от того, указана ли альтернативная строка подписи в командной строке. Дополнительные сведения см. в разделе AlternateSignatureAlgorithm.
  7. Создает идентификатор объекта алгоритма хэширования (OID) из имени алгоритма, указанного в командной строке, и задает идентификатор OID для объекта запроса CMC.
  8. Подписывает запрос сертификата и кодирует его с помощью различающихся правил кодирования (DER).
  9. Извлекает строку, содержащую закодированный запрос сертификата CMC и сохраняет его в файл. Функция EncodeToFileW определена в EnrollCommon.cpp.

Запрос CMC

Запрос PKCS #10

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

IX509PrivateKey