Condividi tramite


enrollFromPublicKey

L'esempio enrollFromPublicKey inizializza un oggetto richiesta certificato PKCS #10, lo esegue il wrapping in un oggetto richiesta CMC, invia la richiesta CMC a un'autorità di certificazione (CA) dell'organizzazione e salva il certificato restituito dalla CA in un file.

Ubicazione

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\Security\X509 Certificate Enrollment\VC\enrollFromPublicKey.

Discussione

L'esempio enrollFromPublicKey:

  1. Elabora gli argomenti della riga di comando seguenti:
    • Nome di un modello di certificato.
    • Nome di un file in cui salvare il certificato installato come matrice di byte con codifica Base64.
    • Nome del modello di certificato di firma facoltativo. Il modello viene usato per creare un certificato di firma se non esiste nell'archivio certificati.
  2. Crea un IX509PrivateKey oggetto chiave privata e chiama il metodo Create per creare una chiave privata asimmetrica usando il provider di crittografia predefinito, le dimensioni della chiave e i valoriKeySpec per il computer corrente.
  3. Recupera la parte della chiave pubblica dell'oggetto IX509PrivateKey.
  4. Crea un oggetto IX509CertificateRequestPkcs10 e lo inizializza usando il modello specificato nella riga di comando e nella chiave pubblica.
  5. Crea un oggettoIX509CertificateRequestCmce lo inizializza usando l'oggetto richiesta PKCS #10.
  6. Recupera un certificato di firma esistente o, se non è possibile trovarne uno, crea una richiesta di certificato dal modello specificato nella riga di comando e tenta di registrarla. Il valore findCertByKeyUsage viene definito in enrollCommon.cpp.
  7. Verifica la catena di certificati.
  8. Crea un oggetto ISignerCertificate, lo inizializza usando il certificato di firma, recupera l'ISignerCertificates raccolta dall'oggetto richiesta CMC e aggiunge l'oggetto certificato di firma all'insieme.
  9. Codifica la richiesta CMC usando (DER) delle regole di codifica distinte.
  10. Crea un oggetto ICertConfig e lo usa per recuperare una stringa contenente la configurazione della CA.
  11. 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.
  12. Controlla lo stato del processo di registrazione e salva il certificato installato in un file. La funzione EncodeToFileW è definita in enrollCommon.cpp.

richiesta CMC

richiesta PKCS #10

uso dell' di esempi inclusi