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 (OID), der das angeforderte Objekt identifiziert. Wenn die HIWORD- des pszTimeValidOid Parameter null ist, gibt die LOWORD- den ganzzahligen Bezeichner für den Typ der angegebenen Struktur an.

Dieser Parameter kann einer der folgenden Werte sein: Informationen dazu, wie sich diese Werte auf den pvPara-Parameter auswirken, finden Sie in der Überschrift "For the pvPara parameter" in the Meaning column.

Wert Bedeutung
TIME_VALID_OID_GET_CTL
((LPCSTR)1)
Stellt eine Zertifikatvertrauensliste (Certificate Trust List, CTL) basierend auf einer URL bereit, die von der NextUpdateLocation Eigenschaft oder Erweiterung des aktuellen CTL-Kontexts abgerufen wird.

Für den pvPara-Parameter: Ein Zeiger auf eine PCCTL_CONTEXT, die 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 CRL basierend auf Informationen bereit, die aus der Erweiterung der CRL-Verteilungspunkte des aktuellen Zertifikatkontexts abgerufen wurden.

Für den pvPara-Parameter: Ein Zeiger auf eine PCCERT_CONTEXT, die das Antragstellerzertifikat darstellt.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT
((LPCSTR)4)
Stellt eine Delta-CRL basierend auf Informationen bereit, die aus der neuesten CRL-Erweiterung des aktuellen Zertifikatkontexts abgerufen wurden.

Für den pvPara-Parameter: Ein Zeiger auf eine PCCERT_CONTEXT, die das Antragstellerzertifikat darstellt.

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

Für den pvPara-Parameter: Ein Zeiger auf eine PCCERT_CRL_CONTEXT_PAIR, die das Antragstellerzertifikat und dessen Basis-CRL darstellt.

[in] pvPara

Eine Struktur, die durch den Wert pszTimeValidOidbestimmt wird. Ausführliche Informationen finden Sie in der Beschreibung für den pszTimeValidOid Parameter.

[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 Aktualitätszeit 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 kumulative Timeout-Registrierungseinstellung des Clientcomputers für Abrufe von Sperr-URL.
CRYPT_CACHE_ONLY_RETRIEVAL
0x00000002
Rufen Sie nur die codierten Bits 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 Überprüfung der Gültigkeit der Zeit durch. Verwenden Sie diese Option, um eine neuere Basis-CRL über das Kabel abzurufen oder die Überprüfung der Gültigkeitsdauer 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 von einem OCSP-Antwortdienst nur basierend auf Autoritätsinformationszugriffs-URLs im aktuellen Kontext ab. Die CertVerifyRevocation--Funktion legt dieses Kennzeichen fest, wenn sie mit dem dwFlags Parameter aufgerufen wird, der auf CERT_VERIFY_REV_SERVER_OCSP_FLAG festgelegt ist.
CRYPT_WIRE_ONLY_RETRIEVAL
0x00000004
Ruft nur die codierten Bits aus dem Draht 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 zurzeit unterstützte Anmeldeinformationstyp sind Benutzername 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 TRUEzurück.

Wenn die Funktion fehlschlägt, wird FALSE-zurückgegeben. Rufen Sie für erweiterte Fehlerinformationen GetLastError-auf.

Einige mögliche Fehlercodes folgen.

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

Bemerkungen

Die Dynamic Link Library von Cryptnet implementiert einen zeit gültigen Objektcache (TVO), der verwendet wird, um die CryptGetTimeValidObject--Funktion zu unterstützen. Der Cache wird von einem prozess-globalen TVO-Agent verwendet, bei dem jeder Cacheeintrag aus den folgenden Informationen besteht.

  • Ursprungsbezeichner
  • Kontext-OID
  • Zusammenhang
  • Abruf-URL
  • Ablaufzeit
  • Informationen zur Offline-URL-Zeit
Der TVO-Agent unterstützt das Abrufen von TVO-Objekten bei Bedarf oder durch automatische Aktualisierung.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2008 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- wincrypt.h
Library Cryptnet.lib
DLL- Cryptnet.dll