Partager via


Fonction CryptGetTimeValidObject (wincrypt.h)

La fonction CryptGetTimeValidObject récupère une liste de révocation de certificats, une réponse OCSP ou un objet CTL valide dans un contexte et une heure donnés.

Syntaxe

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
);

Paramètres

[in] pszTimeValidOid

Pointeur vers un identificateur d’objet (OID) qui identifie l’objet demandé. Si le HIWORD du paramètre pszTimeValidOid est égal à zéro, loWORD spécifie l’identificateur entier pour le type de la structure spécifiée.

Ce paramètre peut prendre les valeurs suivantes. Pour plus d’informations sur la façon dont ces valeurs affectent le paramètre pvPara, consultez le titre « Pour le paramètre pvPara » dans la colonne Meaning.

Valeur Signification
TIME_VALID_OID_GET_CTL
((LPCSTR)1)
Fournit une liste de certificats d’approbation (CTL) basée sur une URL obtenue à partir de la propriété Ou de l’extension NextUpdateLocation du contexte CTL actuel.

Pour le paramètre pvPara : pointeur vers un PCCTL_CONTEXT qui représente la liste d’approbation de certificats actuelle.

TIME_VALID_OID_GET_CRL
Cette valeur est réservée à une utilisation ultérieure.
TIME_VALID_OID_GET_CRL_FROM_CERT
((LPCSTR)3)
Fournit une liste de révocation de certificats basée sur les informations obtenues à partir de l’extension des points de distribution de liste de révocation de certificats du contexte de certificat actuel.

Pour le paramètre pvPara : pointeur vers un PCCERT_CONTEXT qui représente le certificat d’objet.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT
((LPCSTR)4)
Fournit une liste de révocation de certificats delta basée sur les informations obtenues à partir de l’extension de liste de révocation de certificats la plus récente du contexte de certificat actuel.

Pour le paramètre pvPara : pointeur vers un PCCERT_CONTEXT qui représente le certificat d’objet.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL
((LPCSTR)5)
Fournit une liste de révocation de certificats delta basée sur les informations obtenues à partir de l’extension de liste de révocation de certificats la plus récente du contexte de liste de révocation de certificats actuel.

Pour le paramètre pvPara : pointeur vers un PCCERT_CRL_CONTEXT_PAIR qui représente le certificat d’objet et sa liste de révocation de certificats de base.

[in] pvPara

Structure déterminée par la valeur de pszTimeValidOid. Pour plus d’informations, consultez la description du paramètre pszTimeValidOid .

[in] pIssuer

Pointeur vers un CERT_CONTEXT contenant le certificat de l’émetteur.

[in, optional] pftValidFor

Pointeur vers une version facultative de la structure FILETIME de l’heure système actuelle ou une heure d’actualisation à partir du contexte actuel.

[in] dwFlags

Valeur qui détermine différents facteurs de récupération tels que le délai d’attente, la source et les vérifications de validité.

Le tableau suivant répertorie les valeurs possibles pour le paramètre dwFlags .

Valeur Signification
CRYPT_ACCUMULATIVE_TIMEOUT
0x00000800
Utilisez le paramètre de Registre du délai d’attente cumulé de l’ordinateur client pour les récupérations d’URL de révocation.
CRYPT_CACHE_ONLY_RETRIEVAL
0x00000002
Récupérez les bits encodés à partir du cache d’URL du client uniquement. N’utilisez pas le câble pour récupérer l’URL.
CRYPT_CHECK_FRESHNESS_TIME_VALIDITY
0x00000400
Vérifiez si la propriété ou l’extension ThisUpdate du contexte actuel est supérieure ou égale au paramètre ftValidFor .
CRYPT_DONT_CHECK_TIME_VALIDITY
0x00000200
N’effectuez pas de case activée de validité temporelle. Utilisez cette option pour récupérer une liste de révocation de certificats de base plus récente sur le réseau ou pour contourner la validité temporelle case activée lors d’une récupération du cache. Lorsque cet indicateur est défini, pftValidFor peut avoir la valeur NULL.
CRYPT_DONT_VERIFY_SIGNATURE
0x00000100
N’effectuez pas de vérification de signature. Utilisez cette option lorsque la vérification de l’objet récupéré est effectuée en dehors de cette fonction ou pour forcer le remplacement d’une entrée de cache récupérée par une nouvelle entrée de cache pour l’objet.
CRYPT_KEEP_TIME_VALID
0x00000080
Cette valeur est réservée à une utilisation ultérieure.
CRYPT_OCSP_ONLY_RETRIEVAL
0x01000000
Récupère l’objet de temps valide à partir d’un service de répondeur OCSP uniquement en fonction des URL d’accès aux informations d’autorité dans le contexte actuel. La fonction CertVerifyRevocation définit cet indicateur lorsqu’il est appelé avec le paramètre dwFlags défini sur CERT_VERIFY_REV_SERVER_OCSP_FLAG.
CRYPT_WIRE_ONLY_RETRIEVAL
0x00000004
Récupère les bits encodés du câble uniquement. N’utilise pas le cache d’URL.

[in] dwTimeout

Valeur, en millisecondes, qui spécifie quand mettre fin à une tentative de récupération d’URL qui n’a pas retourné de résultat.

[out, optional] ppvObject

Pointeur vers une adresse pour l’objet retourné. Le type de retour peut être l’un des types pris en charge indiqués dans le paramètre pszObjectOid de la fonction CryptRetrieveObjectByUrl .

[in, optional] pCredentials

Pointeur vers une structure CRYPT_CREDENTIALS facultative utilisée pour accéder à l’URL. Le seul type d’informations d’identification actuellement pris en charge sont les informations d’identification de nom d’utilisateur et de mot de passe.

[in, out, optional] pExtraInfo

Pointeur vers une structure CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO facultative qui contient des informations supplémentaires sur l’entrée de cache d’un objet.

Valeur retournée

Si la fonction réussit, la fonction retourne TRUE.

Si la fonction échoue, elle retourne FALSE. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Certains codes d’erreur possibles suivent.

Code de retour Description
CRYPT_E_NOT_FOUND
L’appelant spécifié TIME_VALID_OID_GET_CRL pour le paramètre pszTimeValidOid . Cet OID n’est pas pris en charge.
CRYPT_E_NOT_IN_REVOCATION_DATABASE
L’appelant définit l’indicateur CRYPT_OCSP_ONLY_RETRIEVAL et le contexte inclut une URL non OCSP.
E_INVALIDARG
La fonction n’a pas pu récupérer une liste de révocation de certificats à partir d’un contexte de certificat ou une CTL, et elle n’a pas pu copier les URL à partir d’une entrée de cache.
E_OUTOFMEMORY
La fonction n’a pas pu allouer de mémoire pour une opération de tableau interne.
ERROR_NOT_CONNECTED
L’appelant n’a pas défini l’indicateur CRYPT_CACHE_ONLY_RETRIEVAL et n’est pas connecté à Internet.

Remarques

La bibliothèque de liens dynamiques Cryptnet implémente un cache d’objet time valid (TVO) qui est utilisé pour prendre en charge la fonction CryptGetTimeValidObject . Le cache est utilisé par un agent TVO global de processus où chaque entrée de cache se compose des informations suivantes.

  • Identificateur d’origine
  • OID de contexte
  • Context
  • URL de récupération
  • Heure d’expiration
  • Informations sur l’heure de l’URL hors connexion
L’agent TVO prend en charge la récupération d’objets TVO à la demande ou par mise à jour automatique.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wincrypt.h
Bibliothèque Cryptnet.lib
DLL Cryptnet.dll