Condividi tramite


createCNGCustomCMC

L'esempio createCNGCustomCMC crea un oggetto richiesta CMC da una richiesta PKCS #10 annidata interna. La richiesta interna viene creata usando una chiave privata asimmetrica. La chiave privata viene creata usando il provider di crittografia CNG (Cryptography API: Next Generation) e l'algoritmo specificato nella riga di comando. Anche le opzioni personalizzate, ad esempio i criteri di esportazione e il livello di protezione delle chiavi, vengono impostate sulla chiave privata.

Ufficio

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\createCNGCustomCMC.

Discussione

L'esempio createCNGCustomCMC:

  1. Elabora gli argomenti della riga di comando seguenti:
    • Nome di un provider di servizi di crittografia CNG (CSP).
    • Nome dell'algoritmo utilizzato per generare una chiave privata asimmetrica.
    • Nome dell'algoritmo utilizzato per eseguire l'hash della richiesta di certificato.
    • File di output in cui salvare la richiesta di certificato.
    • Stringa facoltativa (AlternateSignature) che, se presente, specifica che deve essere utilizzato un algoritmo di firma discreto anziché combinato. Per altre informazioni, vedere la proprietà AlternateSignatureAlgorithm.
  2. Crea un oggetto IX509PrivateKey e imposta le proprietà seguenti:
  3. Crea una chiave privata asimmetrica.
  4. Crea un oggetto IX509CertificateRequestPkcs10 e lo inizializza usando la chiave privata.
  5. Crea un oggetto IX509CertificateRequestCmc e lo inizializza usando l'oggetto richiesta PKCS #10 creato nel passaggio 4.
  6. Imposta il flag dell'algoritmo di firma alternativo su VARIANT_TRUE o VARIANT_FALSE a seconda che nella riga di comando sia specificata una stringa di firma alternativa. Per altre informazioni, vedere AlternateSignatureAlgorithm.
  7. Crea un OID (Hash Algorithm Object Identifier) dal nome dell'algoritmo specificato nella riga di comando e imposta l'OID nell'oggetto richiesta CMC.
  8. Firma la richiesta di certificato e la codifica usando le regole di codifica distinte (DER).
  9. Recupera una stringa che contiene la richiesta di certificato CMC codificata e la salva in un file. La funzione EncodeToFileW viene definita in EnrollCommon.cpp.

Richiesta CMC

Richiesta PKCS #10

Uso degli esempi inclusi

IX509PrivateKey