Freigeben über


createCNGCustomCMC

Im createCNGCustomCMC-Beispiel wird ein CMC-Anforderungsobjekt aus einer inneren geschachtelten PKCS #10-Anforderung erstellt. Die innere Anforderung wird mithilfe eines asymmetrischen privaten Schlüssels erstellt. Der private Schlüssel wird mithilfe der Kryptografie-API erstellt: kryptografischer Anbieter der nächsten Generation (CNG) und der in der Befehlszeile angegebene Algorithmus. Benutzerdefinierte Optionen wie Exportrichtlinie und Schlüsselschutzebene werden auch für den privaten Schlüssel festgelegt.

Location

Wenn Sie das Microsoft Windows Software Development Kit (SDK) installieren, wird das Beispiel standardmäßig im Ordner %ProgramFiles%\\Microsoft SDKs\Windows\v7.0\Samples\Security\X509 Certificate Enrollment\VC\createCNGCustomCMC installiert.

Diskussion (Discussion)

Das createCNGCustomCMC-Beispiel:

  1. Verarbeitet die folgenden Befehlszeilenargumente:
    • Der Name eines CNG-Kryptografiedienstanbieters (CSP).
    • Der Name des Algorithmus, der zum Generieren eines asymmetrischen privaten Schlüssels verwendet wird.
    • Der Name des Algorithmus, der zum Hashen der Zertifikatanforderung verwendet wird.
    • Eine Ausgabedatei, in der die Zertifikatanforderung gespeichert wird.
    • Eine optionale Zeichenfolge (AlternateSignature), die, falls vorhanden, angibt, dass ein eindeutiger anstelle eines kombinierten Signaturalgorithmus verwendet wird. Weitere Informationen finden Sie unter der Eigenschaft AlternateSignatureAlgorithm.
  2. Erstellt ein IX509PrivateKey-Objekt und legt die folgenden Eigenschaften fest:
  3. Erstellt einen asymmetrischen privaten Schlüssel.
  4. Erstellt ein IX509CertificateRequestPkcs10-Objekt und initialisiert es mithilfe des privaten Schlüssels.
  5. Erstellt ein IX509CertificateRequestCmc-Objekt und initialisiert es mithilfe des in Schritt 4 erstellten PKCS #10-Anforderungsobjekts.
  6. Legt die Flag des alternativen Signaturalgorithmus auf VARIANT_TRUE oder VARIANT_FALSE fest, je nachdem, ob in der Befehlszeile eine alternative Signaturzeichenfolge angegeben wird. Weitere Informationen finden Sie unter AlternateSignatureAlgorithm.
  7. Erstellt einen Hashingalgorithmus-Objekt-Identifikator (OID) aus dem Algorithmusnamen, der in der Befehlszeile angegeben ist, und legt den OID für das CMC-Anforderungsobjekt fest.
  8. Signiert die Zertifikatanforderung und codiert sie mithilfe von Distinguished Encoding Rules (DER).
  9. Ruft eine Zeichenfolge ab, die die codierte CMC-Zertifikatanforderung enthält, und speichert sie in einer Datei. Die EncodeToFileW-Funktion wird in EnrollCommon.cpp definiert.

CMC-Anforderung

PKCS #10-Anforderung

Verwenden von enthaltenen Beispielen

IX509PrivateKey