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 |
---|---|
|
Nur Kryptografie-API: CNG-Anbieter (Next Generation) sind ausgewählt. |
|
Es werden nur Kryptografiedienstanbieter (CryptoAPI Kryptografiedienstanbieter , CSPs) mit Verschlüsselungsalgorithmen (einschließlich Schlüsselaustausch) ausgewählt. |
|
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 |
---|---|
|
Der private Schlüssel wurde nicht gefunden. |
|
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 CspInformation-Eigenschaft ruft Anbieterinformationen ab.
- Die CspAlgorithm-Eigenschaft ruft Algorithmusinformationen ab.
- Die EnrollmentStatus-Eigenschaft ruft ein IX509EnrollmentStatus-Objekt ab. Rufen Sie die Selected-Eigenschaft für das status-Objekt auf, um zu bestimmen, ob das Anbieter-Algorithmus-Paar für diese Anforderung aktiviert ist.
- Die Ordinal-Eigenschaft ruft die Position in der Anbieter-Algorithmus-Paarauflistung ab.
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:
- InitializeDecode
- InitializeFromCertificate
- InitializeFromPrivateKey
- InitializeFromPublicKey
- InitializeFromTemplateName
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 |