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 SDK (Microsoft Windows Software Development Kit), 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 assinatura opcional. O modelo é usado para criar um certificado de autenticação se nenhum existir no repositório de certificados.
  2. Cria um IX509PrivateKey objeto de chave privada 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 objetoIX509PrivateKey.
  4. Cria um objeto IX509CertificateRequestPkcs10 e inicializa-o usando o modelo especificado na linha de comando e na chave pública.
  5. Cria um objetoIX509CertificateRequestCmce inicializa-o usando o objeto de solicitação PKCS nº 10.
  6. 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. O findCertByKeyUsage é definido em enrollCommon.cpp.
  7. Verifica a cadeia de certificados.
  8. Cria um objeto ISignerCertificate, inicializa-o usando o certificado de assinatura, 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 DER (Distinguished Encoding Rules).
  10. Cria um objeto ICertConfig e o usa para recuperar uma cadeia de caracteres que contém a configuração de AC.
  11. 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.
  12. Verifica o status do processo de registro e salva o certificado instalado em um arquivo. A função EncodeToFileW é definida em enrollCommon.cpp.

de solicitação do CMC

de solicitação PKCS nº 10

usando os exemplos incluídos