createCNGCustomCMC
O exemplo createCNGCustomCMC cria um objeto de solicitação CMC a partir de uma solicitação PKCS #10 aninhada interna. A solicitação interna é criada usando uma chave privada assimétrica. A chave privada é criada usando a API de Criptografia: provedor criptográfico CNG (Próxima Geração) e o algoritmo especificado na linha de comando. Opções personalizadas, como política de exportação e nível de proteção de chave, também são definidas na chave privada.
Location
Quando você instala o SDK (Software Development Kit) do Microsoft Windows, o exemplo é instalado, por padrão, na pasta %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\createCNGCustomCMC.
Discussão
O exemplo createCNGCustomCMC:
- Processa os seguintes argumentos de linha de comando:
- O nome de um CSP (provedor de serviços criptográficos) CNG.
- O nome do algoritmo usado para gerar uma chave privada assimétrica.
- O nome do algoritmo usado para fazer o hash da solicitação de certificado.
- Um arquivo de saída no qual salvar a solicitação de certificado.
- Uma cadeia de caracteres opcional (AlternateSignature) que, se presente, especifica que um algoritmo de assinatura discreto em vez de combinado seja usado. Para mais informações, consulte a propriedade AlternateSignatureAlgorithm.
- Cria um objeto IX509PrivateKey e define as seguintes propriedades:
- Cria uma chave privada assimétrica.
- Cria um objeto IX509CertificateRequestPkcs10 e o inicializa usando a chave privada.
- Cria um objeto IX509CertificateRequestCmc e o inicializa usando o objeto de solicitação PKCS #10 criado na etapa 4.
- Define o sinalizador de algoritmo de assinatura alternativo como VARIANT_TRUE ou VARIANT_FALSE dependendo se uma cadeia de caracteres de assinatura alternativa é especificada na linha de comando. Para obter mais informações, consulte AlternateSignatureAlgorithm.
- Cria um identificador de objeto de algoritmo de hash (OID) a partir do nome do algoritmo especificado na linha de comando e define o OID no objeto de solicitação CMC.
- Assina a solicitação de certificado e a codifica usando DER (Distinguished Encoding Rules).
- Recupera uma string que contém a solicitação de certificado CMC codificada e a salva em um arquivo. A função EncodeToFileW é definida em EnrollCommon.cpp.
Tópicos relacionados