Compartilhar via


enrollFromPublicKey

O exemplo enrollFromPublicKey inicializa um objeto de solicitação de certificado PKCS nº 10, encapsula-o em um objeto de solicitação CMC, envia a solicitação CMC para uma AC (autoridade de certificação) corporativa e salva o certificado retornado pela 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\Security\X509 Certificate Enrollment\VC\enrollFromPublicKey.

Discussão

O exemplo enrollFromPublicKey:

  1. Processa os seguintes argumentos de linha de comando:
    • O nome de um modelo de certificado.
    • O nome de um arquivo no qual salvar o certificado instalado como uma matriz de bytes codificada em base64.
    • Um nome de modelo de certificado de autenticação opcional. O modelo é usado para criar um certificado de autenticação se nenhum existir no repositório de certificados.
  2. Cria um objeto de chave privada IX509PrivateKey e chama o método Create para criar uma chave privada assimétrica usando os valores padrão de provedor criptográfico, tamanho da chave e KeySpec para o computador atual.
  3. Recupera a parte da chave pública do objeto IX509PrivateKey .
  4. Cria um objeto IX509CertificateRequestPkcs10 e o inicializa usando o modelo especificado na linha de comando e na chave pública.
  5. Cria um objeto IX509CertificateRequestCmc e o inicializa usando o objeto de solicitação PKCS nº 10.
  6. 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. O findCertByKeyUsage é definido em enrollCommon.cpp.
  7. Verifica a cadeia de certificados.
  8. Cria um objeto ISignerCertificate , inicializa-o usando o certificado de autenticação, recupera a coleção ISignerCertificates do objeto de solicitação CMC e adiciona o objeto de certificado de assinatura à coleção.
  9. Codifica a solicitação CMC usando Distinguished Encoding Rules (DER).
  10. Cria um objeto ICertConfig e o usa para recuperar uma cadeia de caracteres que contém a configuração da AC.
  11. 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.
  12. Verifica o status do processo de registro e salva o certificado instalado em um arquivo. A função EncodeToFileW é definida em enrollCommon.cpp.

Solicitação do CMC

Solicitação PKCS nº 10

Usando os exemplos incluídos