Funzione CryptGetTimeValidObject (wincrypt.h)

La funzione CryptGetTimeValidObject recupera una risposta CRL, una risposta OCSP o un oggetto CTL valido entro un determinato contesto e tempo.

Sintassi

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

Parametri

[in] pszTimeValidOid

Puntatore a un identificatore di oggetto (OID) che identifica l'oggetto richiesto. Se il parametro HIWORD del parametro pszTimeValidOid è zero, LOWORD specifica l'identificatore intero per il tipo della struttura specificata.

Questo parametro può avere uno dei valori seguenti. Per informazioni su come questi valori influiscono sul parametro pvPara, vedere l'intestazione "Per il parametro pvPara" nella colonna Significato.

Valore Significato
TIME_VALID_OID_GET_CTL
((LPCSTR)1)
Fornisce un elenco di attendibilità certificato (CTL) basato su un URL ottenuto dalla proprietà NextUpdateLocation o dall'estensione del contesto CTL corrente.

Per il parametro pvPara: puntatore a un PCCTL_CONTEXT che rappresenta l'elenco di attendibilità del certificato corrente.

TIME_VALID_OID_GET_CRL
Questo valore è riservato per l'uso futuro.
TIME_VALID_OID_GET_CRL_FROM_CERT
((LPCSTR)3)
Fornisce una CRL basata sulle informazioni ottenute dall'estensione dei punti di distribuzione CRL del contesto di certificato corrente.

Per il parametro pvPara: puntatore a un PCCERT_CONTEXT che rappresenta il certificato soggetto.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT
((LPCSTR)4)
Fornisce un CRL delta basato su informazioni ottenute dall'estensione CRL più recente del contesto del certificato corrente.

Per il parametro pvPara: puntatore a un PCCERT_CONTEXT che rappresenta il certificato soggetto.

TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL
((LPCSTR)5)
Fornisce una CRL delta basata su informazioni ottenute dall'estensione CRL più recente del contesto CRL corrente.

Per il parametro pvPara: puntatore a un PCCERT_CRL_CONTEXT_PAIR che rappresenta il certificato soggetto e la relativa CRL di base.

[in] pvPara

Struttura determinata dal valore di pszTimeValidOid. Per informazioni dettagliate, vedere la descrizione del parametro pszTimeValidOid .

[in] pIssuer

Puntatore a un CERT_CONTEXT contenente il certificato dell'autorità emittente.

[in, optional] pftValidFor

Puntatore a una versione facoltativa della struttura FILETIME dell'ora di sistema corrente o un tempo di aggiornamento dal contesto corrente.

[in] dwFlags

Valore che determina vari fattori di recupero, ad esempio timeout, origine e validità.

Nella tabella seguente sono elencati i valori possibili per il parametro dwFlags .

Valore Significato
CRYPT_ACCUMULATIVE_TIMEOUT
0x00000800
Usare l'impostazione del Registro di sistema di timeout cumulativo del computer client per il recupero degli URL di revoca.
CRYPT_CACHE_ONLY_RETRIEVAL
0x00000002
Recuperare solo i bit codificati dalla cache degli URL client. Non usare il filo per recuperare l'URL.
CRYPT_CHECK_FRESHNESS_TIME_VALIDITY
0x00000400
Verificare se la proprietà ThisUpdate o l'estensione del contesto corrente è maggiore o uguale al parametro ftValidFor .
CRYPT_DONT_CHECK_TIME_VALIDITY
0x00000200
Non eseguire il controllo di validità del tempo. Usare questa operazione per recuperare una CRL di base più recente sul cavo o per ignorare il controllo della validità del tempo durante il recupero della cache. Quando questo flag è impostato, pftValidFor può essere NULL.
CRYPT_DONT_VERIFY_SIGNATURE
0x00000100
Non eseguire la verifica della firma. Utilizzare questa opzione quando la verifica dell'oggetto recuperato verrà eseguita all'esterno di questa funzione o per forzare una sostituzione di una voce della cache recuperata con una nuova voce della cache per l'oggetto.
CRYPT_KEEP_TIME_VALID
0x00000080
Questo valore è riservato per l'uso futuro.
CRYPT_OCSP_ONLY_RETRIEVAL
0x01000000
Recupera l'ora valida dell'oggetto da un servizio di risposta OCSP solo in base agli URL di accesso alle informazioni dell'autorità nel contesto corrente. La funzione CertVerifyRevocation imposta questo flag quando viene chiamato con il parametro dwFlags impostato su CERT_VERIFY_REV_SERVER_OCSP_FLAG.
CRYPT_WIRE_ONLY_RETRIEVAL
0x00000004
Recupera i bit codificati solo dal filo. Non usa la cache DEGLI URL.

[in] dwTimeout

Valore, in millisecondi, che specifica quando terminare un tentativo di recupero URL che non ha restituito un risultato.

[out, optional] ppvObject

Puntatore a un indirizzo per l'oggetto restituito. Il tipo restituito può essere uno dei tipi supportati visualizzati nel parametro pszObjectOid della funzione CryptRetrieveObjectByUrl .

[in, optional] pCredentials

Puntatore a una struttura di CRYPT_CREDENTIALS facoltativa usata per accedere all'URL. L'unico tipo di credenziali attualmente supportato è nome utente e credenziali password.

[in, out, optional] pExtraInfo

Puntatore a una struttura di CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO facoltativa che contiene informazioni aggiuntive sulla voce della cache per un oggetto.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce TRUE.

Se la funzione ha esito negativo, restituisce FALSE. Per informazioni sull'errore estese, chiamare GetLastError.

Alcuni codici di errore possibili seguono.

Codice restituito Descrizione
CRYPT_E_NOT_FOUND
Il chiamante specificato TIME_VALID_OID_GET_CRL per il parametro pszTimeValidOid . Questo OID non è supportato.
CRYPT_E_NOT_IN_REVOCATION_DATABASE
Il chiamante imposta il flag CRYPT_OCSP_ONLY_RETRIEVAL e il contesto include un URL non OCSP.
E_INVALIDARG
La funzione non è riuscita a recuperare un CRL da un contesto di certificato o recuperare un CTL e non è riuscito a copiare gli URL da una voce della cache.
E_OUTOFMEMORY
Impossibile allocare memoria per un'operazione di matrice interna.
ERROR_NOT_CONNECTED
Il chiamante non ha impostato il flag di CRYPT_CACHE_ONLY_RETRIEVAL e non è connesso a Internet.

Commenti

La libreria di collegamento dinamica di Cryptnet implementa una cache dell'oggetto valida per l'ora (TVO) usata per supportare la funzione CryptGetTimeValidObject . La cache viene usata da un agente TVO globale del processo in cui ogni voce della cache è costituita dalle informazioni seguenti.

  • Identificatore di origine
  • OID di contesto
  • Contesto
  • URL di recupero
  • Data di scadenza
  • Informazioni sull'ora dell'URL offline
L'agente TVO supporta il recupero di oggetti TVO su richiesta o tramite aggiornamento automatico.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Cryptnet.lib
DLL Cryptnet.dll