Funzione CertGetEnhancedKeyUsage (wincrypt.h)

La funzione CertGetEnhancedKeyUsage restituisce informazioni dall'estensione EKU ( Enhanced Key Usage ) o dalla proprietà estesa EKU di un certificato. Le EKU indicano usi validi del certificato.

Sintassi

BOOL CertGetEnhancedKeyUsage(
  [in]      PCCERT_CONTEXT     pCertContext,
  [in]      DWORD              dwFlags,
  [out]     PCERT_ENHKEY_USAGE pUsage,
  [in, out] DWORD              *pcbUsage
);

Parametri

[in] pCertContext

Puntatore a un contesto di certificato CERT_CONTEXT .

[in] dwFlags

Indica se la funzione segnala le estensioni di un certificato, le relative proprietà estese o entrambe. Se impostato su zero, la funzione restituisce gli usi validi di un certificato in base all'estensione EKU e al valore della proprietà estesa EKU del certificato.

Per restituire solo il valore dell'estensione EKU o della proprietà EKU, impostare i flag seguenti.

Valore Significato
CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG
Ottenere solo l'estensione.
CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG
Ottiene solo il valore della proprietà estesa.

[out] pUsage

Puntatore a una struttura CERT_ENHKEY_USAGE (CERT_ENHKEY_USAGE è un nome typedef alternativo per la struttura CTL_USAGE ) che riceve gli usi validi del certificato.

Questo parametro può essere NULL per impostare le dimensioni dell'utilizzo della chiave ai fini dell'allocazione della memoria. Per altre informazioni, vedere Recupero di dati di lunghezza sconosciuta.

[in, out] pcbUsage

Puntatore a un DWORD che specifica le dimensioni, in byte, della struttura a cui punta pUsage. Quando la funzione viene restituita, la DWORD contiene le dimensioni, in byte, della struttura.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce un valore diverso da zero (TRUE).

Se la funzione non riesce, restituisce zero (FALSE).

Commenti

Se un certificato ha un'estensione EKU, tale estensione elenca gli identificatori di oggetto (OID) per usi validi di tale certificato. In un ambiente Microsoft, un certificato potrebbe avere anche proprietà estese EKU che specificano usi validi per il certificato.

  • Se un certificato non ha né un'estensione EKU né proprietà estese EKU, si presuppone che sia valido per tutti gli usi.
  • Se ha un'estensione EKU o proprietà estese EKU, ma non entrambe, è valida solo per gli usi indicati nell'estensione o nelle proprietà estese di cui dispone.
  • Se un certificato ha sia un'estensione EKU che le proprietà estese EKU, è valido solo per gli usi presenti in entrambi gli elenchi.
Se dwFlags è impostato su zero, il membro cUsageIdentifier della struttura CERT_ENHKEY_USAGE viene impostato sul numero di usi validi del certificato determinato dal valore dell'estensione EKU e dal valore della proprietà estesa EKU.

Se il membro cUsageIdentifier è zero, il certificato potrebbe essere valido per tutti gli usi o il certificato potrebbe non avere usi validi. La restituzione da una chiamata a GetLastError può essere usata per determinare se il certificato è valido per tutti gli usi o per nessuno. Se GetLastError restituisce CRYPT_E_NOT_FOUND, il certificato è valido per tutti gli usi. Se restituisce zero, il certificato non ha utilizzi validi.

Requisiti

   
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

CertSetEnhancedKeyUsage

Funzioni di utilizzo chiave avanzate