createCNGCustomCMC
В примере createCNGCustomCMC создается объект запроса CMC из внутреннего вложенного запроса PKCS #10. Внутренний запрос создается с помощью асимметричного закрытого ключа. Закрытый ключ создается с помощью API шифрования: поставщик шифрования следующего поколения (CNG) и алгоритм, указанный в командной строке. Пользовательские параметры, такие как политика экспорта и уровень защиты ключей, также задаются в закрытом ключе.
Расположение
При установке пакета SDK для Microsoft Windows образец устанавливается по умолчанию в папке %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\createCNGCustomCMC.
Обсуждение
Пример createCNGCustomCMC:
- Обрабатывает следующие аргументы командной строки:
- Имя поставщика служб шифрования CNG (CSP).
- Имя алгоритма, используемого для создания асимметричного закрытого ключа.
- Имя алгоритма, используемого для хэширования запроса сертификата.
- Выходной файл, в котором сохраняется запрос на сертификат.
- Необязательная строка (AlternateSignature), которая, если она присутствует, указывает, что используется дискретный, а не объединенный алгоритм подписи. Дополнительные сведения см. в свойстве AlternateSignatureAlgorithm .
- Создает объект IX509PrivateKey и задает следующие свойства:
- Создает асимметричный закрытый ключ.
- Создает объект IX509CertificateRequestPkcs10 и инициализирует его с помощью закрытого ключа.
- Создает объект IX509CertificateRequestCmc и инициализирует его с помощью объекта запроса PKCS #10, созданного на шаге 4.
- Задает флаг альтернативного алгоритма подписи VARIANT_TRUE или VARIANT_FALSE в зависимости от того, указана ли альтернативная строка подписи в командной строке. Дополнительные сведения см. в разделе AlternateSignatureAlgorithm.
- Создает идентификатор объекта алгоритма хэширования (OID) из имени алгоритма, указанного в командной строке, и задает идентификатор OID для объекта запроса CMC.
- Подписывает запрос сертификата и кодирует его с помощью различающихся правил кодирования (DER).
- Извлекает строку, содержащую закодированный запрос сертификата CMC и сохраняет его в файл. Функция EncodeToFileW определена в EnrollCommon.cpp.
См. также