enrollFromPublicKey
Das Beispiel enrollFromPublicKey initialisiert ein PKCS #10-Zertifikatanforderungsobjekt, umschließt es in ein CMC-Anforderungsobjekt, sendet die CMC-Anforderung an eine Unternehmenszertifizierungsstelle (Ca) 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)
Beispiel für 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-Objekt und ruft die Create-Methode auf, um einen asymmetrischen privaten Schlüssel mit den Kryptografieanbieter-, Schlüsselgröße- und KeySpec-Werten 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 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 das Signaturzertifikatobjekt der Auflistung 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 die status des Registrierungsprozesses und speichert das installierte Zertifikat in einer Datei. Die EncodeToFileW-Funktion ist in enrollCommon.cpp definiert.
Zugehörige Themen