Compartilhar via


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:

  1. 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.
  2. Cria um objeto IX509PrivateKey e define as seguintes propriedades:
  3. Cria uma chave privada assimétrica.
  4. Cria um objeto IX509CertificateRequestPkcs10 e o inicializa usando a chave privada.
  5. Cria um objeto IX509CertificateRequestCmc e o inicializa usando o objeto de solicitação PKCS #10 criado na etapa 4.
  6. 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.
  7. 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.
  8. Assina a solicitação de certificado e a codifica usando DER (Distinguished Encoding Rules).
  9. 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.

Solicitação CMC

Solicitação PKCS #10

Usando as amostras incluídas

IX509PrivateKey