CertGetIssuerCertificateFromStore-Funktion (wincrypt.h)
Die CertGetIssuerCertificateFromStore-Funktion ruft den Zertifikatkontext aus dem Zertifikatspeicher für den ersten oder nächsten Aussteller des angegebenen Antragstellerzertifikats ab. Anstelle dieser Funktion werden die neuen Funktionen zur Überprüfung der Zertifikatkette empfohlen.
Syntax
PCCERT_CONTEXT CertGetIssuerCertificateFromStore(
[in] HCERTSTORE hCertStore,
[in] PCCERT_CONTEXT pSubjectContext,
[in, optional] PCCERT_CONTEXT pPrevIssuerContext,
[in, out] DWORD *pdwFlags
);
Parameter
[in] hCertStore
Handle eines Zertifikatspeichers.
[in] pSubjectContext
Ein Zeiger auf eine CERT_CONTEXT-Struktur , die die Antragstellerinformationen enthält. Dieser Parameter kann aus einem beliebigen Zertifikatspeicher abgerufen oder von der aufrufenden Anwendung mithilfe der CertCreateCertificateContext-Funktion erstellt werden.
[in, optional] pPrevIssuerContext
Ein Zeiger auf eine CERT_CONTEXT-Struktur , die die Ausstellerinformationen enthält. Ein Aussteller kann über mehrere Zertifikate verfügen, insbesondere wenn sich ein Gültigkeitszeitraum ändert. Dieser Parameter muss für den Aufruf NULL sein, um das erste Ausstellerzertifikat abzurufen. Um das nächste Zertifikat für den Aussteller abzurufen, legen Sie pPrevIssuerContext auf die vom vorherigen Aufruf zurückgegebene CERT_CONTEXT-Struktur fest.
Diese Funktion gibt die CERT_CONTEXT frei, auf die von Nicht-NULL-Werten dieses Parameters verwiesen wird.
[in, out] pdwFlags
Die folgenden Flags ermöglichen Überprüfungsprüfungen für das zurückgegebene Zertifikat. Sie können mithilfe eines bitweisen OR-Vorgangs kombiniert werden, um mehrere Überprüfungen zu ermöglichen.
Wenn die Überprüfung eines aktivierten Typs erfolgreich ist, wird dessen Flag auf Null festgelegt. Wenn es fehlschlägt, bleibt sein Flag bei der Rückgabe festgelegt. Bei CERT_STORE_REVOCATION_FLAG ist die Überprüfung erfolgreich, wenn die Funktion keine Zertifikatsperrliste im Zusammenhang mit dem Zertifikat des Antragstellers findet.
Wenn CERT_STORE_REVOCATION_FLAG festgelegt ist und der Aussteller keine Zertifikatsperrliste im Speicher hat, wird CERT_STORE_NO_CRL_FLAG festgelegt, und CERT_STORE_REVOCATION_FLAG bleibt festgelegt.
Wenn CERT_STORE_SIGNATURE_FLAG oder CERT_STORE_REVOCATION_FLAG festgelegt ist, wird CERT_STORE_NO_ISSUER_FLAG festgelegt, wenn die Funktion kein Ausstellerzertifikat im Speicher findet. Ausführliche Informationen finden Sie unter Hinweise.
Bei einem Fehler bei der Überprüfung wird weiterhin ein Zeiger auf die CERT_CONTEXT des Ausstellers zurückgegeben, und GetLastError wird nicht aktualisiert.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Zeiger auf einen schreibgeschützten Aussteller CERT_CONTEXT.
Wenn die Funktion fehlschlägt und das erste oder nächste Ausstellerzertifikat nicht gefunden wird, ist der Rückgabewert NULL.
Nur die zuletzt zurückgegebene CERT_CONTEXT-Struktur muss durch Aufrufen von CertFreeCertificateContext freigegeben werden. Wenn der zurückgegebene CERT_CONTEXT von einem Aufruf der Funktion als pPrevIssuerContext-Parameter bei einem nachfolgenden Aufruf angegeben wird, wird der Kontext im Rahmen der Aktion der Funktion freigegeben.
Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Es folgen einige mögliche Fehlercodes.
Rückgabecode | Beschreibung |
---|---|
|
Für das Antragstellerzertifikat wurde kein Aussteller gefunden. |
|
Das Ausstellerzertifikat ist mit dem Antragstellerzertifikat identisch. Es handelt sich um ein selbstsigniertes Stammzertifikat. |
|
Das Handle im hCertStore-Parameter ist nicht mit dem des Zertifikatkontexts identisch, auf den der pPrevIssuerContext-Parameter verweist, oder ein nicht unterstütztes Flag wurde in pdwFlags festgelegt. |
Hinweise
Der zurückgegebene Zeiger wird freigegeben, wenn er als pPrevIssuerContext-Parameter bei einem nachfolgenden Aufruf der Funktion übergeben wird. Andernfalls muss der Zeiger explizit durch Aufrufen von CertFreeCertificateContext freigegeben werden. Ein pPrevIssuerContext , der nicht NULL ist, wird immer von CertGetIssuerCertificateFromStore mithilfe eines Aufrufs von CertFreeCertificateContext freigegeben, auch wenn ein Fehler in der Funktion vorliegt.
CertDuplicateCertificateContext kann aufgerufen werden, um ein Duplikat des Ausstellerzertifikats zu erstellen.
Die Hexadezimalwerte für dwFlags können mithilfe eines bitweisen OR-Vorgangs kombiniert werden, um mehrere Überprüfungen zu aktivieren. Um beispielsweise die Signatur- und Zeitvalidität zu aktivieren, wird der Wert 0x00000003 bei der Eingabe in dwFlags übergeben. Wenn in diesem Fall CERT_STORE_SIGNATURE_FLAG Überprüfung erfolgreich ist, aber CERT_STORE_TIME_VALIDITY_FLAG Überprüfung fehlschlägt, wird dwFlags bei der Ausgabe als 0x00000002 zurückgegeben.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | wincrypt.h |
Bibliothek | Crypt32.lib |
DLL | Crypt32.dll |