Freigeben über


Private und Öffentliche Schlüsselfunktionen

CertEnroll.dll implementiert die Schnittstellen IX509PrivateKey und IX509PublicKey . Sie können beispielsweise die IX509PrivateKey-Schnittstelle verwenden, um die folgenden Aktionen für einen privaten Schlüssel auszuführen:

  • Erstellen, Öffnen, Schließen, Importieren, Exportieren und Löschen des Schlüssels.
  • Geben Sie den Algorithmus für öffentliche Schlüssel an, oder rufen Sie sie ab.
  • Geben Sie Informationen zum verfügbaren Kryptografiedienstanbieter (CSP) an, der den Algorithmus für öffentliche Schlüssel unterstützt, oder rufen Sie sie ab.
  • Geben Sie das Zertifikat an, das dem privaten Schlüssel zugeordnet ist, oder rufen Sie es ab.
  • Geben Sie den Namen des Schlüsselcontainers an, oder rufen Sie den Namen ab.
  • Geben Sie eine Beschreibung von und einen Anzeigenamen für den Schlüssel an, oder rufen Sie sie ab.
  • Geben Sie die Exporteinschränkungen für einen privaten Schlüssel an, oder rufen Sie sie ab.
  • Geben Sie einen booleschen Wert an, der angibt, ob der Schlüssel vorhanden ist, oder rufen Sie diesen ab.
  • Geben Sie einen Wert an, der angibt, wie der Schlüssel vor der Verwendung geschützt ist, oder rufen Sie diesen ab.
  • Geben Sie einen Wert an, der angibt, ob der Schlüssel für signieren, verschlüsseln oder beides verwendet werden kann.
  • Geben Sie einen Wert an, der den spezifischen Zweck angibt, für den der Schlüssel verwendet werden kann, oder rufen Sie diesen ab.
  • Geben Sie die Länge des Schlüssels an, oder rufen Sie sie ab.
  • Geben Sie einen Wert an, der angibt, ob der Schlüssel im Kontext eines Computers oder Benutzers verwendet oder gespeichert wird.
  • Rufen Sie einen booleschen Wert ab, der angibt, ob der Schlüssel geöffnet wurde.
  • Geben Sie eine persönliche Identifikationsnummer an, um auf einen privaten Schlüssel auf einem intelligenten Karte zuzugreifen.
  • Geben Sie den Namen des CSP an, der dem Schlüssel zugeordnet ist, oder rufen Sie sie ab.
  • Geben Sie den Sicherheitsdeskriptor für den Schlüssel an, oder rufen Sie sie ab.

Jeder der folgenden Abschnitte identifiziert eine Funktion, die von Xenroll.dll exportiert wird und zum Verwalten eines kryptografischen Schlüssels verwendet werden kann. In jedem Thema wird auch erläutert, wie sie CertEnroll.dll verwenden, um die Funktion zu ersetzen, oder gibt an, dass keine Zuordnung zwischen den beiden Bibliotheken vorhanden ist:

ContainerNameWStr

Die ContainerNameWStr-Funktion in Xenroll.dll gibt den Namen des Schlüsselcontainers an oder ruft diese ab.

Wenn Sie CertEnroll.dll verwenden, können Sie die folgenden Aktionen ausführen, um den Namen eines Schlüsselcontainers abzurufen:

  1. Rufen Sie die Request-Eigenschaft für ein vorhandenes IX509Enrollment-Objekt auf .
  2. Rufen Sie die GetInnerRequest-Methode für die aus Schritt 1 zurückgegebene Anforderung auf, um die innerste Anforderung abzurufen.
  3. Rufen Sie QueryInterface für das IX509CertificateRequest-Objekt auf, das aus Schritt 2 zurückgegeben wurde, um es in ein IX509CertificateRequestPkcs10-Objekt zu umwandeln.
  4. Rufen Sie die PrivateKey-Eigenschaft für die PKCS #10-Anforderung auf.
  5. Rufen Sie die ContainerName-Eigenschaft für das IX509PrivateKey-Objekt auf, das aus Schritt 4 abgerufen wurde.

GenKeyFlags

Die in Xenroll.dll definierte GenKeyFlags-Funktion gibt Flags an oder ruft diese ab, die zum Generieren eines privaten Schlüssels oder eines Öffentlichen/privaten Schlüsselpaars verwendet werden.

Wenn Sie CertEnroll.dll verwenden, können Sie eine Reihe verschiedener Eigenschaften angeben, die bestimmen, wie ein privater Schlüssel erstellt wird. Weitere Informationen finden Sie unter Erstellen.

GetKeyLen

Die in Xenroll.dll definierte GetKeyLen-Funktion ruft die maximale oder minimale Schlüsselgröße eines Verschlüsselungsschlüssels ab.

Wenn Sie CertEnroll.dll verwenden, können Sie die Length-Eigenschaft für ein IX509PrivateKey - oder IX509PublicKey-Objekt aufrufen, um die Schlüsselgröße in Bits abzurufen.

GetKeyLenEx

Die in Xenroll.dll definierte GetKeyLenEx-Funktion ruft die maximale oder minimale Schlüsselgröße oder die Inkrementlänge eines Verschlüsselungsschlüssels ab.

Wenn Sie CertEnroll.dll verwenden, können Sie die Length-Eigenschaft für ein IX509PrivateKey - oder IX509PublicKey-Objekt aufrufen, um die Schlüsselgröße in Bits abzurufen. Wenn ein Algorithmus inkrementelle Schlüssellängen unterstützt, können Sie die Eigenschaft IncrementLength für das ICspAlgorithm-Objekt aufrufen, um den Inkrementwert abzurufen. Sie können auch die Eigenschaften MinLength und MaxLength aufrufen, um die minimalen und maximalen Schlüsselgrößen abzurufen.

GetSupportedKeySpec

Die in Xenroll.dll definierte GetSupportedKeySpec-Funktion ruft einen Wert ab, der angibt, ob ein CSP Austauschschlüssel, Signaturschlüssel oder beides unterstützt.

Wenn Sie CertEnroll.dll verwenden, können Sie die KeySpec-Eigenschaft für die IX509PrivateKey - oder ICspInformation-Objekte aufrufen, um die vom Schlüssel unterstützten Vorgänge abzurufen.

KeySpec

Die keySpec-Funktion , die in Xenroll.dll definiert ist, gibt den Schlüsseltyp an oder ruft sie ab.

Wenn Sie CertEnroll.dll verwenden, können Sie die KeySpec-Eigenschaft für ein IX509PrivateKey-Objekt aufrufen, um die vom Schlüssel unterstützten Vorgänge abzurufen.

LimitExchangeKeyToEncipherment

Die in Xenroll.dll definierte Funktion LimitExchangeKeyToEncipherment gibt einen booleschen Wert an oder ruft diesen ab, der angibt, ob ein Verschlüsselungsschlüssel nur für die Daten- oder Schlüsselenchiffrierung verwendet werden kann.

CertEnroll.dll enthält keine direkte Entsprechung für diese Funktion. Sie können jedoch ein nahezu gleichwertiges Ergebnis erzielen, indem Sie ein IX509ExtensionKeyUsage-Objekt angeben und es der Zertifikatanforderung hinzufügen.

PVKFileNameWStr

Die in Xenroll.dll definierte PVKFileNameWStr-Funktion gibt den Namen einer Datei an oder ruft diesen ab, die exportierte Schlüssel enthält.

Wenn Sie CertEnroll.dll verwenden, können Sie die Export-Methode für ein IX509PrivateKey-Objekt aufrufen, um einen Schlüssel in einen BSTR zu exportieren. Sie können die ExportPublicKey-Methode aufrufen, um den öffentlichen Schlüsselteil eines asymmetrischen Schlüsselpaars zu exportieren.

ReuseHardwareKeyIfUnableToGenNew

Die in Xenroll.dll definierte Funktion ReuseHardwareKeyIfUnableToGenNew gibt einen booleschen Wert an, der angibt, ob ein vorhandener Schlüssel wiederverwendet wird, wenn beim Generieren eines neuen Schlüssels ein Fehler auftritt.

Wenn Sie CertEnroll.dll verwenden, können Sie die InitializeFromCertificate-Methode für ein IX509CertificateRequestPkcs10-Objekt aufrufen und einen Wert des X509RequestInheritOptions-Enumerationstyps angeben, um einen vorhandenen privaten Schlüssel wiederzuverwenden.

UseExistingKeySet

Die in Xenroll.dll definierte UseExistingKeySet-Funktion gibt einen booleschen Wert an oder ruft diesen ab, der angibt, ob vorhandene Schlüssel verwendet werden sollen.

Wenn Sie CertEnroll.dll verwenden, können Sie die InitializeFromCertificate-Methode für ein IX509CertificateRequestPkcs10-Objekt aufrufen und einen Wert des X509RequestInheritOptions-Enumerationstyps angeben, um vorhandene private und öffentliche Schlüssel wiederzuverwenden.

Zuordnen Xenroll.dll zu CertEnroll.dll