Compartilhar via


enrollNestedCMC

O exemplo enrollNestedCMC lê uma solicitação de certificado CMC existente de um arquivo, encapsula-a em outra solicitação do CMC, assina essa solicitação externa, envia-a a uma AC (autoridade de certificação) e salva a resposta do certificado da AC em um arquivo.

Localização

Quando você instala o SDK (Microsoft Windows Software Development Kit), o exemplo é instalado, por padrão, na pasta %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\X509 Certificate Enrollment\VC\enrollNestedCMC.

Discussão

O exemplo enrollNestedCMC:

  1. Processa os seguintes argumentos de linha de comando:
    • O nome do arquivo de entrada.
    • O nome do arquivo de saída.
    • Um modelo de solicitação opcional.
  2. Lê uma solicitação CMC existente de um arquivo como uma matriz de bytes codificada em base63, converte a matriz de bytes em um BSTR, cria um objetoIX509CertificateRequestCmce usa o BSTR para inicializar o objeto de solicitação. O objeto inicializado torna-se a solicitação interna.
  3. Usa o objeto de solicitação interna criado e inicializado na etapa anterior para inicializar outra solicitação do CMC.
  4. Recupera um certificado de assinatura existente ou, se não for possível encontrar, cria uma solicitação de certificado do modelo especificado na linha de comando e tenta registrá-lo. As funções findCertByTemplate e enrollCertByTemplate são definidas em enrollCommon.cpp.
  5. Recupera a coleção ISignerCertificates da solicitação CMC externa, cria um novo objeto ISignerCertificate, inicializa-o usando o certificado de assinatura recuperado e o adiciona à coleção.
  6. Codifica a solicitação CMC usando DER (Distinguished Encoding Rules) e recupera a solicitação como um BSTR.
  7. Cria um objeto ICertConfig e o usa para recuperar uma cadeia de caracteres que contém a configuração de AC.
  8. Cria um objeto ICertRequest2 cryptoAPI e o usa mais as cadeias de caracteres que contêm a configuração de AC e a solicitação de certificado para enviar a solicitação à AC.
  9. Verifica o status do processo de registro e salva a resposta do certificado da AC em um arquivo. A função EncodeToFileW é definida em enrollCommon.cpp.

de solicitação do CMC

usando os exemplos incluídos