Freigeben über


IX509CertificateRequestPkcs10::GetCspStatuses-Methode (certenroll.h)

Die GetCspStatuses-Methode ruft eine ICspStatuses-Auflistung ab, die alle Anbieter/Algorithmus-Paare enthält, die mit der beabsichtigten Verwendung des privaten Schlüssels übereinstimmen, wie vom Aufrufer angegeben.

Syntax

HRESULT GetCspStatuses(
  [in]  X509KeySpec  KeySpec,
  [out] ICspStatuses **ppCspStatuses
);

Parameter

[in] KeySpec

Ein X509KeySpec-Enumerationswert , der die beabsichtigte Verwendung des Schlüssels angibt. Dies kann einer der folgenden Werte sein.

Wert Bedeutung
XCN_AT_NONE
Nur Kryptografie-API: CNG-Anbieter (Next Generation) sind ausgewählt.
XCN_AT_KEYEXCHANGE
Es werden nur Kryptografiedienstanbieter (CryptoAPI Kryptografiedienstanbieter , CSPs) mit Verschlüsselungsalgorithmen (einschließlich Schlüsselaustausch) ausgewählt.
XCN_AT_SIGNATURE
Es sind nur CryptoAPI-CSPs mit Signaturalgorithmen ausgewählt.

[out] ppCspStatuses

Adresse einer Variablen, die einen Zeiger auf eine ICspStatuses-Schnittstelle empfängt , die die Auflistung darstellt.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion S_OK zurück.

Wenn die Funktion fehlschlägt, gibt sie einen HRESULT-Wert zurück, der den Fehler angibt. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle. Eine Liste allgemeiner Fehlercodes finden Sie unter Allgemeine HRESULT-Werte.

Rückgabecode Beschreibung
CERTSRV_E_PROPERTY_EMPTY
Der private Schlüssel wurde nicht gefunden.
OLE_E_BLANK
Das Objekt wird nicht initialisiert.

Hinweise

Diese Methode ruft eine Auflistung von ICspStatus-Objekten ab. Jedes Objekt stellt ein einzelnes Anbieter-Algorithmus-Paar dar. Wenn Sie beim Initialisieren des Anforderungsobjekts IX509CertificateRequestPkcs10 eine Vorlage angeben, wirken sich Vorlagenattribute wie die pKIDefaultCSPs und pKIDefaultKeySpec darauf aus, welche Paare anfänglich aktiviert sind. Sie können die folgenden Eigenschaften für jedes ICspStatus-Objekt aufrufen, um Informationen zu einem Paar abzurufen:

Die von dieser Methode abgerufene Auflistung wird intern im Anforderungsobjekt gespeichert. Bis zu drei Sammlungen, eine für jeden KeySpec-Wert , können erstellt und gespeichert werden. Dies geschieht, um den Auswahlstatus der Anbieter-Algorithmus-Paare beizubehalten, sodass relevante Eigenschaftenseiten mehrmals genau und schnell angezeigt werden können und die Codieren-Methode identifizieren kann, welche Anbieter und Algorithmen ausgewählt werden, wenn ein privater Schlüssel erstellt werden muss. Wenn der Auswahlstatus eines Anbieter/Algorithmus-Paares geändert wird, werden die Änderungen in der entsprechenden Auflistung gespeichert. Änderungen, die an den Membern einer Auflistung vorgenommen werden, wirken sich nicht auf die Member einer anderen Auflistung aus. Die Auflistungen sind vorhanden, solange das PKCS #10-Objekt weiterhin vorhanden ist.

Angenommen, diese Methode wird aufgerufen, wenn der KeySpec-Parameter auf XCN_AT_SIGNATURE festgelegt ist und dass eine Vorlage verwendet wird, um die Anforderung zu initialisieren. Die folgenden Anweisungen sind wahr:

  • Eine Auflistung von ICspStatus-Objekten wird erstellt und im IX509CertificateRequestPkcs10-Objekt gespeichert. Die Auflistung enthält alle gültigen Anbieter/Algorithmus-Paare, die auf dem Computer installiert sind.
  • Da der KeySpec-Parameter nicht auf XCN_AT_NONE festgelegt ist, wird die Selected-Eigenschaft für jede Kryptografie-API: CNG-Anbieter/Algorithmuspaar (Next Generation) in der Auflistung auf SelectedNo festgelegt.
  • Da der KeySpec-Parameter nicht auf XCN_AT_KEYEXCHANGE festgelegt ist, wird die Selected-Eigenschaft für jedes CryptoAPI-CSP/Algorithmus-Paar in der Sammlung auf SelectedNo festgelegt, in der der Algorithmus zum Verschlüsseln von Daten oder archivieren eines Schlüssels verwendet werden kann.
  • Für jeden Anbieter, auf den von der Vorlage oder dem privaten Schlüssel verwiesen wird, aber auf dem Computer nicht unterstützt wird, wird ein ICspStatus-Platzhalterobjekt erstellt und der Auflistung hinzugefügt, und die Selected-Eigenschaft ist auf SelectedNo festgelegt.
  • Die Selected-Eigenschaft ist für jedes CryptoAPI-CSP/Algorithmus-Paar auf SelectedYes festgelegt, bei dem der Algorithmus nur zum Signieren von Daten verwendet werden kann.
  • Die Ordinal-Eigenschaft wird so festgelegt, dass sie die CSP-Reihenfolge (sofern vorhanden) widerspiegelt, die durch das Vorlagenattribute pKIDefaultCSPs identifiziert wird. Die zuerst durch das Attribut aufgeführten CSPs werden zuerst in der Auflistung sortiert. Diese Eigenschaft wird während der Registrierung verwendet, wenn ein privater Schlüssel erstellt werden muss. Das erste ausgewählte CSP/Algorithmus-Paar wird zum Erstellen des Schlüssels verwendet, aber wenn der Vorgang fehlschlägt, wird das nächste ausgewählte Paar versucht.
  • Durch erneutes Aufrufen dieser Methode mit demselben KeySpec-Parameter wird ein Zeiger auf die vorhandene Auflistung abgerufen, die zuvor für diesen Parameterwert erstellt wurde.
  • Das erneute Aufrufen dieser Methode mit einem anderen KeySpec-Parameter wirkt sich nicht auf die Auflistung aus, die für den XCN_AT_SIGNATURE KeySpec-Wert erstellt wurde. Darüber hinaus wirkt sich das Ändern der Selected-Eigenschaft auf einem beliebigen Element der neuen Auflistung nicht auf ein Element der vorherigen Auflistung aus.

Die GetCspStatuses-Methode unterscheidet sich von der CspStatuses-Eigenschaft mithilfe des KeySpec-Parameters . Mit der -Methode können Benutzer diesen Wert angeben, aber die -Eigenschaft verwendet den Wert, der für den privaten Schlüssel festgelegt ist, der dem Anforderungsobjekt zugeordnet ist.

Sie müssen das IX509CertificateRequestPkcs10-Objekt initialisieren, bevor Sie diese Methode aufrufen. Weitere Informationen finden Sie unter einer der folgenden Methoden:

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile certenroll.h
DLL CertEnroll.dll

Weitere Informationen

IX509CertificateRequestPkcs10