Funzione CertVerifySubjectCertificateContext (wincrypt.h)

La funzione CertVerifySubjectCertificateContext esegue i controlli di verifica abilitati su un certificato controllando la validità dell'autorità emittente del certificato. Le nuove funzioni di verifica della catena di certificati sono consigliate invece di questa funzione.

Sintassi

BOOL CertVerifySubjectCertificateContext(
  [in]           PCCERT_CONTEXT pSubject,
  [in, optional] PCCERT_CONTEXT pIssuer,
  [in, out]      DWORD          *pdwFlags
);

Parametri

[in] pSubject

Puntatore a una struttura CERT_CONTEXT contenente il certificato del soggetto.

[in, optional] pIssuer

Puntatore a un CERT_CONTEXT contenente il certificato dell'autorità emittente. Quando si controlla solo CERT_STORE_TIME_VALIDITY_FLAG, pIssuer può essere NULL.

[in, out] pdwFlags

Un puntatore a un valore DWORD contiene flag di controllo di verifica. I flag seguenti possono essere impostati per abilitare i controlli di verifica sul certificato soggetto. Possono essere combinati usando un'operazione OR bit per bit per abilitare più verifiche.

Valore Significato
CERT_STORE_REVOCATION_FLAG
Controlla se il certificato soggetto si trova nell'elenco di revoche dell'autorità emittente.
CERT_STORE_SIGNATURE_FLAG
Usa la chiave pubblica nel certificato dell'autorità emittente per verificare la firma nel certificato soggetto.
CERT_STORE_TIME_VALIDITY_FLAG
Ottiene l'ora corrente e verifica che si trova entro il periodo di validità del certificato soggetto.
 

Se un controllo di verifica abilitato ha esito positivo, il flag è impostato su zero. Se ha esito negativo, il flag viene impostato al momento della restituzione.

Se CERT_STORE_REVOCATION_FLAG è stato abilitato e l'autorità emittente non dispone di un CRL nell'archivio, CERT_STORE_NO_CRL_FLAG viene impostato oltre a CERT_STORE_REVOCATION_FLAG.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE.

Per un errore di verifica, viene comunque restituito TRUE. FALSE viene restituito solo quando viene passato un parametro non valido.

Per informazioni sugli errori estesi, chiamare GetLastError. Un possibile codice di errore è il seguente.

Codice restituito Descrizione
E_INVALIDARG
Un bit non supportato è stato impostato in pdwFlags. È possibile impostare qualsiasi combinazione di CERT_STORE_SIGNATURE_FLAG, CERT_STORE_TIME_VALIDITY_FLAG e CERT_STORE_REVOCATION_FLAG. Se pIssuer è NULL, è possibile impostare solo CERT_STORE_TIME_VALIDITY_FLAG.

Commenti

Il valore esadecimale dei flag può essere combinato usando operazioni OR bit per bit per abilitare più verifiche. Ad esempio, per abilitare la validità della firma e dell'ora, il valore

CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG

viene inserito nel valore DWORDpdwFlags come parametro di input. Se CERT_STORE_SIGNATURE_FLAG verifica ha esito positivo, ma CERT_STORE_TIME_VALIDITY_FLAG verifica ha esito negativo, pdwFlags viene impostato su CERT_STORE_TIME_VALIDITY_FLAG quando la funzione viene restituita.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

CERT_CONTEXT

CertGetIssuerCertificateFromStore

Funzioni per i certificati