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 Microsoft Windows Software Development Kit (SDK), 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 objeto IX509CertificateRequestCmc e 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 autenticação 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 autenticação recuperado e o adiciona à coleção.
  6. Codifica a solicitação CMC usando Distinguished Encoding Rules (DER) 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 da AC.
  8. Cria um objeto CryptoAPI ICertRequest2 e o usa mais as cadeias de caracteres que contêm a configuração da 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.

Solicitação do CMC

Usando os exemplos incluídos