CryptGetObjectUrl-Funktion (wincrypt.h)

Die CryptGetObjectUrl-Funktion ruft die URL des Remoteobjekts aus einem Zertifikat, einer Zertifikatvertrauensliste (Certificate Trust List , CTL) oder einer Zertifikatsperrliste (Certificate Revocation List , CRL) ab.

Die Funktion übernimmt das Objekt, decodiert es und stellt einen Zeiger auf ein Array von URLs aus dem -Objekt bereit. Aus einem Zertifikat würde sich beispielsweise eine Zertifikatsperrlistenverteilerliste mit URLs im Array befinden.

Syntax

BOOL CryptGetObjectUrl(
  [in]      LPCSTR           pszUrlOid,
  [in]      LPVOID           pvPara,
  [in]      DWORD            dwFlags,
  [out]     PCRYPT_URL_ARRAY pUrlArray,
  [in, out] DWORD            *pcbUrlArray,
  [out]     PCRYPT_URL_INFO  pUrlInfo,
  [in, out] DWORD            *pcbUrlInfo,
            LPVOID           pvReserved
);

Parameter

[in] pszUrlOid

Ein Zeiger auf einen Objektbezeichner (Object Identifier, OID), der die angeforderte URL identifiziert. Wenn das HIWORD des pszUrlOid-Parameters 0 ist, gibt LOWORD den ganzzahligen Bezeichner für den Typ der angegebenen Struktur an.

Dieser Parameter kann einen der folgenden Werte annehmen. Informationen dazu, wie sich diese Werte auf den pvPara-Parameter auswirken, finden Sie in der Überschrift "Für den pvPara-Parameter " in der Spalte Bedeutung .

Wert Bedeutung
URL_OID_CERTIFICATE_ISSUER
Stellt die URL des Zertifikatausstellers bereit, der von der Berechtigungsinformationszugriffserweiterung oder -eigenschaft eines Zertifikats abgerufen wird.

Für den pvPara-Parameter : Ein Zeiger auf eine CERT_CONTEXT Struktur, die vom Aussteller ausgegeben wurde, dessen URL angefordert wird.

URL_OID_CERTIFICATE_CRL_DIST_POINT
Stellt eine Liste der URLs der Zertifikatsperrlistenverteilungspunkte bereit, die aus der Erweiterung oder Eigenschaft eines Zertifikats für den CRL-Verteilungspunkt abgerufen werden.

Für den pvPara-Parameter : Ein Zeiger auf eine CERT_CONTEXT-Struktur , deren CRL-Verteilungspunkt angefordert wird.

URL_OID_CERTIFICATE_CRL_DIST_POINT_AND_OCSP
Stellt eine Liste der OCSP- und CRL-Verteilungspunkt-URLs aus den AIA-Erweiterungen (Authority Information Access) und CRL-Verteilungspunkterweiterungen oder -Eigenschaften eines Zertifikats bereit. Die Funktion gibt zuerst alle URLs des CRL-Verteilungspunkts zurück. Bevor Sie OCSP-URLs verwenden, müssen Sie das Präfix L"ocsp:" entfernen.

Für den pvPara-Parameter : Ein Zeiger auf eine CERT_CONTEXT Struktur, deren OCSP- und CRL-Verteilungspunkt-URLs angefordert werden.

URL_OID_CERTIFICATE_OCSP
Stellt eine OCSP-URL aus der AIA-Erweiterung (Authority Information Access) oder -Eigenschaft eines Zertifikats bereit.

Für den pvPara-Parameter : Ein Zeiger auf eine CERT_CONTEXT Struktur, deren OCSP-URL angefordert wird.

URL_OID_CERTIFICATE_OCSP_AND_CRL_DIST_POINT
Stellt eine Liste der OCSP- und CRL-Verteilungspunkt-URLs aus den AIA-Erweiterungen (Authority Information Access) und CRL-Verteilungspunkterweiterungen oder -Eigenschaften eines Zertifikats bereit. Die Funktion gibt zuerst alle OCSP-URLs zurück. Bevor Sie OCSP-URLs verwenden, müssen Sie das Präfix L"ocsp:" entfernen.

Für den pvPara-Parameter : Ein Zeiger auf eine CERT_CONTEXT Struktur, deren OCSP- und CRL-Verteilungspunkt-URLs angefordert werden.

URL_OID_CERTIFICATE_ONLY_OCSP
Stellt eine Liste der OCSP-URLs aus der AIA-Erweiterung (Authority Information Access) oder -Eigenschaft eines Zertifikats bereit. Bevor Sie OCSP-URLs verwenden, müssen Sie das Präfix L"ocsp:" entfernen.

Für den pvPara-Parameter : Ein Zeiger auf eine CERT_CONTEXT Struktur, deren OCSP-URLs angefordert werden.

URL_OID_CTL_ISSUER
Stellt die URL des CTL-Ausstellers bereit, der von einer Methode des Zugriffsattributes für Autoritätsinformationen abgerufen wurde, die in den einzelnen Anmeldeinformationen in der PKCS #7-CTL codiert ist.

Für den pvPara-Parameter : Ein Zeiger auf einen Signer Index CTL_CONTEXT Struktur, die vom Aussteller ausgegeben wurde, dessen URL, die durch den Signerindex identifiziert wurde, angefordert wird.

URL_OID_CTL_NEXT_UPDATE
Stellt die URL der nächsten Aktualisierung der CTL bereit, die von einer Zugriffsberechtigungsinformations-CTL-Erweiterung, -Eigenschaft oder -Anmeldeinformationsattributmethode abgerufen wird.

Für den pvPara-Parameter : Ein Zeiger auf einen SignerIndex CTL_CONTEXT Struktur, deren nächste Aktualisierungs-URL angefordert wird, und ein optionaler Signerindex, falls er zum Überprüfen der Signaturinformationsattribute erforderlich ist.

URL_OID_CRL_ISSUER
Stellt die URL des Zertifikatsperrlistenausstellers bereit, der von einer Eigenschaft für eine Zertifikatsperrliste abgerufen wurde, die vom Antragstellerzertifikatzertifikat geerbt wurde (entweder vom Antragstellerzertifikataussteller oder der Zertifikatverteilungspunkterweiterung des Antragstellers). Es ist als Erweiterungsmethode für den Zugriff auf Autoritätsinformationen codiert.

Für den pvPara-Parameter : Ein Zeiger auf eine CRL_CONTEXT Struktur, die vom Aussteller ausgegeben wurde, dessen URL angefordert wird.

URL_OID_CERTIFICATE_FRESHEST_CRL
Ruft die neueste Zertifikatsperrlistenerweiterung oder -eigenschaft des Zertifikats ab.

Für den pvPara-Parameter : Der PCCERT_CONTEXT eines Zertifikats, dessen aktueller Zertifikatsperrlistenverteilungspunkt angefordert wird.

URL_OID_CRL_FRESHEST_CRL
Ruft die neueste CRL-Erweiterung oder -Eigenschaft der Zertifikatsperrliste ab.

Für den pvPara-Parameter : Ein Zeiger auf eine CERT_CRL_CONTEXT_PAIR-Struktur , die die Basissperrliste eines Zertifikats enthält, dessen aktueller CRL-Verteilungspunkt angefordert wird.

URL_OID_CROSS_CERT_DIST_POINT
Ruft die Zertifikatverteilungspunkterweiterung oder -eigenschaft des Zertifikats ab.

Für den pvPara-Parameter : Der PCCERT_CONTEXT eines Zertifikats, dessen Zertifikatverteilungspunkt angefordert wird.

URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS
Ruft die zertifikatübergreifende Erweiterung oder Eigenschaft des Zertifikats Subject Information Access ab.

Für den pvPara-Parameter : Der PCCERT_CONTEXT eines Zertifikats, dessen zertifikatübergreifender Zugriff auf Antragstellerinformationen angefordert wird.

[in] pvPara

Eine Struktur, die durch den Wert von pszUrlOid bestimmt wird. Ausführliche Informationen finden Sie in der Beschreibung des PszUrlOid-Parameters .

[in] dwFlags

Eine Reihe von Flags, die zum Abrufen des URL-Locators für ein Objekt verwendet werden. Dies kann null oder eine Kombination aus einem oder mehreren der folgenden Werte sein.

Wert Bedeutung
CRYPT_GET_URL_FROM_PROPERTY
Sucht die URL aus der Eigenschaft des Objekts (dem Speicherort der Daten).
CRYPT_GET_URL_FROM_EXTENSION
Sucht die URL aus der Erweiterung des Objekts.
CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE
Sucht die URL aus einem nicht authentifizierten Attribut aus den Anmeldedaten.
CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE
Sucht die URL aus einem authentifizierten Attribut aus den Anmeldedaten.

[out] pUrlArray

Ein Zeiger auf einen Puffer, um die Daten für den Werteintrag zu empfangen. Dieser Parameter kann NULL sein, um die Länge des Puffers zu ermitteln, der zum Aufnehmen der Daten erforderlich ist.

Weitere Informationen finden Sie unter Abrufen von Daten unbekannter Länge.

[in, out] pcbUrlArray

Ein Zeiger auf ein DWORD , der die Größe des Puffers in Bytes angibt, auf den der pUrlArray-Parameter verweist. Wenn die Funktion zurückgibt, enthält das DWORD die Anzahl der im Puffer gespeicherten Bytes. Dieser Parameter kann nur NULL sein, wenn pUrlArrayNULL ist.

[out] pUrlInfo

Ein optionaler Zeiger auf eine CRYPT_URL_INFO-Struktur , die die Daten für den Werteintrag empfängt.

[in, out] pcbUrlInfo

Ein Zeiger auf ein DWORD , der die Größe des Puffers in Bytes angibt, auf den der pUrlArray-Parameter verweist. Wenn die Funktion zurückgibt, enthält das DWORD die Anzahl der im Puffer gespeicherten Bytes.

Hinweis Bei der Verarbeitung der im Puffer zurückgegebenen Daten müssen Anwendungen die tatsächliche Größe der zurückgegebenen Daten verwenden. Die tatsächliche Größe kann etwas kleiner sein als die Größe des Puffers, der bei der Eingabe angegeben wird. Bei der Eingabe werden Puffergrößen in der Regel groß genug angegeben, um sicherzustellen, dass die größtmöglichen Ausgabedaten in den Puffer passen. Bei der Ausgabe wird die Variable aktualisiert, auf die dieser Parameter verweist, um die tatsächliche Größe der in den Puffer kopierten Daten widerzuspiegeln.
 

pvReserved

Für die zukünftige Verwendung reserviert und muss NULL sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion nonzero (TRUE) zurück.

Wenn die Funktion fehlschlägt, gibt sie null (FALSE) zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Cryptnet.lib
DLL Cryptnet.dll

Weitere Informationen

Remoteobjektabruffunktionen