Freigeben über


CryptGetTimeValidObject-Funktion (wincrypt.h)

Die CryptGetTimeValidObject-Funktion ruft eine CRL, eine OCSP-Antwort oder ein CTL-Objekt ab, das innerhalb eines bestimmten Kontexts und einer bestimmten Zeit gültig ist.

Syntax

BOOL CryptGetTimeValidObject(
  [in]                LPCSTR                                  pszTimeValidOid,
  [in]                LPVOID                                  pvPara,
  [in]                PCCERT_CONTEXT                          pIssuer,
  [in, optional]      LPFILETIME                              pftValidFor,
  [in]                DWORD                                   dwFlags,
  [in]                DWORD                                   dwTimeout,
  [out, optional]     LPVOID                                  *ppvObject,
  [in, optional]      PCRYPT_CREDENTIALS                      pCredentials,
  [in, out, optional] PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO pExtraInfo
);

Parameter

[in] pszTimeValidOid

Ein Zeiger auf einen Objektbezeichner (Object Identifier, OID), der das angeforderte Objekt identifiziert. Wenn das HIWORD des parameters pszTimeValidOid 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
TIME_VALID_OID_GET_CTL
((LPCSTR)1)
Stellt eine Zertifikatvertrauensliste (Certificate Trust List, CTL) basierend auf einer URL bereit, die aus der NextUpdateLocation-Eigenschaft oder Erweiterung des aktuellen CTL-Kontexts abgerufen wird.

Für den pvPara-Parameter: Ein Zeiger auf einen PCCTL_CONTEXT , der die aktuelle Zertifikatvertrauensliste darstellt.

TIME_VALID_OID_GET_CRL
Dieser Wert ist für die zukünftige Verwendung reserviert.
TIME_VALID_OID_GET_CRL_FROM_CERT
((LPCSTR)3)
Stellt eine Zertifikatsperrliste basierend auf Informationen bereit, die aus der Erweiterung der Zertifikatsperrlistenpunkte des aktuellen Zertifikatkontexts abgerufen wurden.

Für den pvPara-Parameter: Ein Zeiger auf einen PCCERT_CONTEXT , der das Zertifikat des Antragstellers darstellt.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT
((LPCSTR)4)
Stellt eine Delta-Zertifikatsperrliste bereit, die auf Informationen basiert, die aus der neuesten Zertifikatsperrlistenerweiterung des aktuellen Zertifikatkontexts abgerufen wurden.

Für den pvPara-Parameter: Ein Zeiger auf einen PCCERT_CONTEXT , der das Zertifikat des Antragstellers darstellt.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL
((LPCSTR)5)
Stellt eine Delta-Zertifikatsperrliste basierend auf Informationen bereit, die aus der neuesten CRL-Erweiterung des aktuellen CRL-Kontexts abgerufen wurden.

Für den pvPara-Parameter: Ein Zeiger auf einen PCCERT_CRL_CONTEXT_PAIR , der das Antragstellerzertifikat und seine Basis-Zertifikatsperrliste darstellt.

[in] pvPara

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

[in] pIssuer

Ein Zeiger auf eine CERT_CONTEXT , die das Zertifikat des Ausstellers enthält.

[in, optional] pftValidFor

Ein Zeiger auf eine optionale FILETIME-Strukturversion der aktuellen Systemzeit oder eine Frischezeit aus dem aktuellen Kontext.

[in] dwFlags

Ein Wert, der verschiedene Abruffaktoren wie Timeout, Quelle und Gültigkeitsprüfung bestimmt.

In der folgenden Tabelle sind mögliche Werte für den dwFlags-Parameter aufgeführt.

Wert Bedeutung
CRYPT_ACCUMULATIVE_TIMEOUT
0x00000800
Verwenden Sie die Registrierungseinstellung für das kumulative Timeout des Clientcomputers für Abrufe der Sperr-URL.
CRYPT_CACHE_ONLY_RETRIEVAL
0x00000002
Rufen Sie die codierten Bits nur aus dem Client-URL-Cache ab. Verwenden Sie die Verbindung nicht, um die URL abzurufen.
CRYPT_CHECK_FRESHNESS_TIME_VALIDITY
0x00000400
Überprüfen Sie, ob die ThisUpdate-Eigenschaft oder -Erweiterung des aktuellen Kontexts größer oder gleich dem ftValidFor-Parameter ist.
CRYPT_DONT_CHECK_TIME_VALIDITY
0x00000200
Führen Sie keine Zeitgültigkeitsprüfung durch. Verwenden Sie dies, um eine neuere Basis-Zertifikatsperrliste über die Verbindung abzurufen oder die Zeitgültigkeitsprüfung während eines Cacheabrufs zu umgehen. Wenn dieses Flag festgelegt ist, kann pftValidForNULL sein.
CRYPT_DONT_VERIFY_SIGNATURE
0x00000100
Führen Sie keine Signaturüberprüfung durch. Verwenden Sie dies, wenn die Überprüfung des abgerufenen Objekts außerhalb dieser Funktion ausgeführt wird, oder um einen Ersatz eines abgerufenen Cacheeintrags durch einen neuen Cacheeintrag für das Objekt zu erzwingen.
CRYPT_KEEP_TIME_VALID
0x00000080
Dieser Wert ist für die zukünftige Verwendung reserviert.
CRYPT_OCSP_ONLY_RETRIEVAL
0x01000000
Ruft das zeit gültige Objekt aus einem OCSP-Antwortdienst nur basierend auf den Zugriffs-URLs für Autoritätsinformationen im aktuellen Kontext ab. Die CertVerifyRevocation-Funktion legt dieses Flag fest, wenn es aufgerufen wird, wobei der dwFlags-Parameter auf CERT_VERIFY_REV_SERVER_OCSP_FLAG festgelegt ist.
CRYPT_WIRE_ONLY_RETRIEVAL
0x00000004
Ruft nur die codierten Bits aus der Leitung ab. Verwendet nicht den URL-Cache.

[in] dwTimeout

Ein Wert in Millisekunden, der angibt, wann ein URL-Abrufversuch beendet werden soll, der kein Ergebnis zurückgegeben hat.

[out, optional] ppvObject

Ein Zeiger auf eine Adresse für das zurückgegebene Objekt. Der Rückgabetyp kann einer der unterstützten Typen sein, die im pszObjectOid-Parameter der CryptRetrieveObjectByUrl-Funktion angezeigt werden.

[in, optional] pCredentials

Ein Zeiger auf eine optionale CRYPT_CREDENTIALS Struktur, die für den Zugriff auf die URL verwendet wird. Der einzige Typ von Anmeldeinformationen, die derzeit unterstützt werden, sind Benutzernamen- und Kennwortanmeldeinformationen.

[in, out, optional] pExtraInfo

Ein Zeiger auf eine optionale CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO-Struktur , die zusätzliche Informationen zum Cacheeintrag für ein Objekt enthält.

Rückgabewert

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

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

Es folgen einige mögliche Fehlercodes.

Rückgabecode Beschreibung
CRYPT_E_NOT_FOUND
Der angegebene Aufrufer TIME_VALID_OID_GET_CRL für den parameter pszTimeValidOid . Diese OID wird nicht unterstützt.
CRYPT_E_NOT_IN_REVOCATION_DATABASE
Der Aufrufer legt das CRYPT_OCSP_ONLY_RETRIEVAL-Flag fest, und der Kontext enthält eine Nicht-OCSP-URL.
E_INVALIDARG
Die Funktion konnte keine Zertifikatsperrliste aus einem Zertifikatkontext abrufen oder eine CTL abrufen, und es konnte keine URLs aus einem Cacheeintrag kopiert werden.
E_OUTOFMEMORY
Die Funktion konnte keinen Arbeitsspeicher für einen internen Arrayvorgang zuweisen.
ERROR_NOT_CONNECTED
Der Aufrufer hat das CRYPT_CACHE_ONLY_RETRIEVAL-Flag nicht festgelegt und ist nicht mit dem Internet verbunden.

Hinweise

Die Cryptnet Dynamic Link-Bibliothek implementiert einen TVO-Cache (Time Valid Object), der zur Unterstützung der CryptGetTimeValidObject-Funktion verwendet wird. Der Cache wird von einem prozess globalen TVO-Agent verwendet, wobei jeder Cacheeintrag aus den folgenden Informationen besteht.

  • Ursprungsbezeichner
  • Kontext-OID
  • Kontext
  • Abruf-URL
  • Ablaufzeit
  • Offline-URL-Zeitinformationen
Der TVO-Agent unterstützt den Abruf von TVO-Objekten bei Bedarf oder durch automatische Aktualisierung.

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 wincrypt.h
Bibliothek Cryptnet.lib
DLL Cryptnet.dll