enrollFromPublicKey
Das Beispiel enrollFromPublicKey initialisiert ein PKCS # 10-Zertifikatanforderungsobjekt, umschließt es in einem CMC-Anforderungsobjekt, sendet die CMC-Anforderung an eine Unternehmenszertifizierungsstelle und speichert das von der Zertifizierungsstelle zurückgegebene Zertifikat in einer Datei.
Standort
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 \ enrollFromPublicKey installiert.
Diskussion (Discussion)
Das Beispiel enrollFromPublicKey:
- Verarbeitet die folgenden Befehlszeilenargumente:
- Der Name einer Zertifikatvorlage.
- Der Name einer Datei, in der das installierte Zertifikat als Base64-codiertes Bytearray gespeichert werden soll.
- Ein optionaler Name der Signaturzertifikatvorlage. Die Vorlage wird verwendet, um ein Signaturzertifikat zu erstellen, wenn keines im Zertifikatspeicher vorhanden ist.
- Erstellt ein privates IX509PrivateKey-Schlüsselobjekt und ruft die Create-Methode auf, um einen asymmetrischen privaten Schlüssel mithilfe des Standardmäßigen Kryptografieanbieters, der Schlüsselgröße und der KeySpec-Werte für den aktuellen Computer zu erstellen.
- Ruft den öffentlichen Schlüsselteil des IX509PrivateKey-Objekts ab.
- Erstellt ein IX509CertificateRequestPkcs10-Objekt und initialisiert es mithilfe der in der Befehlszeile angegebenen Vorlage und des öffentlichen Schlüssels.
- Erstellt ein IX509CertificateRequestCmc-Objekt und initialisiert es mithilfe des PKCS # 10-Anforderungsobjekts.
- Ruft ein vorhandenes Signaturzertifikat ab oder erstellt, wenn es nicht gefunden werden kann, eine Zertifikatanforderung aus der in der Befehlszeile angegebenen Vorlage und versucht, es zu registrieren. FindCertByKeyUsage ist in enrollCommon.cpp definiert.
- Überprüft die Zertifikatkette.
- Erstellt ein ISignerCertificate-Objekt, initialisiert es mithilfe des Signaturzertifikats, ruft die ISignerCertificates-Auflistung aus dem CMC-Anforderungsobjekt ab und fügt der Auflistung das Signaturzertifikatobjekt hinzu.
- Codiert die CMC-Anforderung mithilfe von Distinguished Encoding Rules (DER).
- Erstellt ein ICertConfig-Objekt und verwendet es, um eine Zeichenfolge abzurufen, die die Zertifizierungsstellenkonfiguration enthält.
- Erstellt ein CryptoAPI-ICertRequest2-Objekt und verwendet es sowie die Zeichenfolgen, die die Zertifizierungsstellenkonfiguration und die Zertifikatanforderung enthalten, um die Anforderung an die Zertifizierungsstelle zu übermitteln.
- Überprüft den Status des Registrierungsprozesses und speichert das installierte Zertifikat in einer Datei. Die EncodeToFileW-Funktion ist in enrollCommon.cpp definiert.