Condividi tramite


enrollNestedCMC

L'esempio enrollNestedCMC legge una richiesta di certificato CMC esistente da un file, la esegue il wrapping in un'altra richiesta CMC, firma questa richiesta esterna, la invia a un'autorità di certificazione (CA) e salva la risposta del certificato dalla CA in un file.

Posizione

Quando si installa Microsoft Windows Software Development Kit (SDK), l'esempio viene installato, per impostazione predefinita, nella cartella %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\X509 Certificate Enrollment\VC\enrollNestedCMC.

Discussione

L'esempio enrollNestedCMC:

  1. Elabora gli argomenti della riga di comando seguenti:
    • Nome del file di input.
    • Nome del file di output.
    • Modello di richiesta facoltativo.
  2. Legge una richiesta CMC esistente da un file come matrice di byte con codifica Base63, converte la matrice di byte in un BSTR, crea un oggetto IX509CertificateRequestCmc e usa il valore BSTR per inizializzare l'oggetto richiesta. L'oggetto inizializzato diventa la richiesta interna.
  3. Usa l'oggetto richiesta interna creato e inizializzato nel passaggio precedente per inizializzare un'altra richiesta CMC.
  4. Recupera un certificato di firma esistente o, se non ne è possibile trovare uno, crea una richiesta di certificato dal modello specificato nella riga di comando e tenta di registrarla. Le funzioni findCertByTemplate e enrollCertByTemplate sono definite in enrollCommon.cpp.
  5. Recupera l'insieme ISignerCertificates dalla richiesta CMC esterna, crea un nuovo oggetto ISignerCertificate , lo inizializza usando il certificato di firma recuperato e lo aggiunge all'insieme.
  6. Codifica la richiesta CMC usando Distinguished Encoding Rules (DER) e recupera la richiesta come BSTR.
  7. Crea un oggetto ICertConfig e lo usa per recuperare una stringa contenente la configurazione della CA.
  8. Crea un oggetto CryptoAPI ICertRequest2 e lo usa più le stringhe che contengono la configurazione della CA e la richiesta di certificato per inviare la richiesta alla CA.
  9. Controlla lo stato del processo di registrazione e salva la risposta del certificato dalla CA in un file. La funzione EncodeToFileW è definita in enrollCommon.cpp.

Richiesta CMC

Uso degli esempi inclusi