struttura CERT_CHAIN_PARA (wincrypt.h)

La struttura CERT_CHAIN_PARA stabilisce i criteri di ricerca e corrispondenza da usare per la compilazione di una catena di certificati.

Sintassi

typedef struct _CERT_CHAIN_PARA {
  DWORD                   cbSize;
  CERT_USAGE_MATCH        RequestedUsage;
  CERT_USAGE_MATCH        RequestedIssuancePolicy;
  DWORD                   dwUrlRetrievalTimeout;
  BOOL                    fCheckRevocationFreshnessTime;
  DWORD                   dwRevocationFreshnessTime;
  LPFILETIME              pftCacheResync;
  PCCERT_STRONG_SIGN_PARA pStrongSignPara;
  DWORD                   dwStrongSignFlags;
} CERT_CHAIN_PARA, *PCERT_CHAIN_PARA;

Members

cbSize

Dimensione, in byte, della struttura.

RequestedUsage

Struttura che indica il tipo di corrispondenza necessario per trovare i certificati dell'autorità emittente per la compilazione di una catena di certificati. La struttura a cui punta indica se la logica AND o OR deve essere utilizzata nel processo di corrispondenza. La struttura include anche una matrice di OID da associare.

RequestedIssuancePolicy

Struttura facoltativa che indica il tipo di vincolo dei criteri di rilascio che si applica durante la compilazione di una catena di certificati. La struttura a cui punta indica se la logica AND o OR deve essere utilizzata nel processo di corrispondenza. La struttura include anche una matrice di OID da associare.

Nota Questo membro può essere usato solo se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS è definito usando la direttiva #define prima di includere Wincrypt.h. Se questo valore è definito, l'applicazione deve zero tutti i campi inutilizzati.
 

dwUrlRetrievalTimeout

Tempo facoltativo, in millisecondi, prima del timeout del controllo delle revoche. Questo membro è facoltativo.

Nota Questo membro può essere usato solo se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS è definito usando la direttiva #define prima di includere Wincrypt.h. Se questo valore è definito, l'applicazione deve zero tutti i campi inutilizzati.
 

fCheckRevocationFreshnessTime

Membro facoltativo. Quando questo flag è TRUE, viene effettuato un tentativo di recuperare un nuovo CRL se questo aggiornamento è maggiore o uguale all'ora di sistema corrente meno il valore dwRevocationFreshnessTime . Se questo flag non è impostato, viene usata l'ora successiva di aggiornamento del CRL.

Nota Questo membro può essere usato solo se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS è definito usando la direttiva #define prima di includere Wincrypt.h. Se questo valore è definito, l'applicazione deve zero tutti i campi inutilizzati.
 

dwRevocationFreshnessTime

Ora corrente, in secondi, meno l'ora di aggiornamento del CRL di tutti gli elementi controllati.

Nota Questo membro può essere usato solo se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS è definito usando la direttiva #define prima di includere Wincrypt.h. Se questo valore è definito, l'applicazione deve zero tutti i campi inutilizzati.
 

pftCacheResync

Membro facoltativo. Se impostato su un valore non NULL , le informazioni memorizzate nella cache prima dell'ora specificata vengono considerate non valide e viene eseguita la risincronizzazione della cache.

Windows Vista: Inizia il supporto per questo membro.

Nota Questo membro può essere usato solo se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS è definito usando la direttiva #define prima di includere Wincrypt.h. Se questo valore è definito, l'applicazione deve zero tutti i campi inutilizzati.
 

pStrongSignPara

facoltativo. Specificare un puntatore a una struttura di CERT_STRONG_SIGN_PARA per abilitare il controllo delle firme complesse.

Windows 8 e Windows Server 2012: inizia il supporto per questo membro.

Nota Questo membro può essere usato solo se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS è definito usando la direttiva #define prima di includere Wincrypt.h. Se questo valore è definito, l'applicazione deve zero tutti i campi inutilizzati.
 

dwStrongSignFlags

Flag facoltativi che modificano il comportamento di recupero della catena. Può essere zero o il valore seguente.

Valore Significato
CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG
0x00000001
Se la catena è con firma avanzata, la chiave pubblica nel certificato finale verrà verificata per verificare se soddisfa i requisiti minimi di lunghezza della chiave pubblica per una firma complessa. È possibile specificare CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG per disabilitare il controllo predefinito.
 

Windows 8 e Windows Server 2012: inizia il supporto per questa proprietà.

Nota Questo membro può essere usato solo se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS è definito usando la direttiva #define prima di includere Wincrypt.h. Se questo valore è definito, l'applicazione deve zero tutti i campi inutilizzati.
 

Commenti

Quando si verifica la presenza di firme complesse, si applicano le osservazioni seguenti.

  • Impostare il membro pStrongSignPara per verificare la presenza di firme complesse quando si usa la funzione CertGetCertificateChain o CertSelectCertificateChains .
  • Se nella catena viene trovato un certificato senza firma complessa, gli errori di CERT_TRUST_HAS_WEAK_SIGNATURE e CERT_TRUST_IS_NOT_SIGNATURE_VALID vengono impostati nel campo dwErrorStatus della struttura CERT_TRUST_STATUS . Il parametro ppChainContext della funzione CertGetCertificateChain e il parametro pprgpSelection della funzione CertSelectCertificateChains puntano a una struttura CERT_CHAIN_CONTEXT che, a sua volta, punta alla struttura CERT_TRUST_STATUS .
  • Se la catena è con firma avanzata, viene verificata la chiave pubblica nel certificato finale per determinare se soddisfa i requisiti minimi di lunghezza della chiave pubblica per una firma complessa. Se la condizione non viene soddisfatta, gli errori CERT_TRUST_HAS_WEAK_SIGNATURE e CERT_TRUST_IS_NOT_SIGNATURE_VALID vengono impostati nel campo dwErrorStatus della struttura CERT_TRUST_STATUS . Impostare il valore CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG nel membro dwStrongSignFlags per disabilitare questo controllo.
  • Se i flag CERT_STRONG_SIGN_ENABLE_CRL_CHECK o CERT_STRONG_SIGN_ENABLE_OCSP_CHECK vengono impostati nella struttura CERT_STRONG_SIGN_SERIALIZED_INFO a cui fa riferimento la struttura CERT_STRONG_SIGN_PARA a cui punta il membro pStrongSignPara e viene trovata una risposta CRL o OCSP senza una firma complessa, la risposta CRL o OCSP verrà considerata offline. Ovvero, gli errori di CERT_TRUST_IS_OFFLINE_REVOCATION e CERT_TRUST_REVOCATION_STATUS_UNKNOWN vengono impostati nel campo dwErrorStatus della struttura CERT_TRUST_STATUS . Inoltre, il membro dwRevocationResult della struttura CERT_REVOCATION_INFO è impostato su NTE_BAD_ALGID.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione wincrypt.h

Vedi anche

CERT_USAGE_MATCH