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:
- 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.
- 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.
- Usa o objeto de solicitação interna criado e inicializado na etapa anterior para inicializar outra solicitação do CMC.
- 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.
- 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.
- Codifica a solicitação CMC usando Distinguished Encoding Rules (DER) e recupera a solicitação como um BSTR.
- Cria um objeto ICertConfig e o usa para recuperar uma cadeia de caracteres que contém a configuração da AC.
- 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.
- 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.
Tópicos relacionados