Fonction CertGetEnhancedKeyUsage (wincrypt.h)

La fonction CertGetEnhancedKeyUsage retourne des informations provenant de l’extension EKU ( Enhanced Key Usage ) ou de la propriété étendue EKU d’un certificat. Les EKU indiquent des utilisations valides du certificat.

Syntaxe

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

Paramètres

[in] pCertContext

Pointeur vers un contexte de certificat CERT_CONTEXT .

[in] dwFlags

Indique si la fonction signale les extensions d’un certificat, ses propriétés étendues ou les deux. Si la valeur est égale à zéro, la fonction retourne les utilisations valides d’un certificat en fonction de l’extension EKU et de la valeur de propriété étendue EKU du certificat.

Pour renvoyer uniquement la valeur de l’extension EKU ou de la propriété EKU, définissez les indicateurs suivants.

Valeur Signification
CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG
Obtenez uniquement l’extension.
CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG
Obtenez uniquement la valeur de la propriété étendue.

[out] pUsage

Pointeur vers une structure CERT_ENHKEY_USAGE (CERT_ENHKEY_USAGE est un autre nom typedef pour la structure CTL_USAGE ) qui reçoit les utilisations valides du certificat.

Ce paramètre peut avoir la valeur NULL pour définir la taille de l’utilisation de la clé à des fins d’allocation de mémoire. Pour plus d’informations, consultez Récupération de données de longueur inconnue.

[in, out] pcbUsage

Pointeur vers un DWORD qui spécifie la taille, en octets, de la structure pointée par pUsage. Lorsque la fonction retourne, le DWORD contient la taille, en octets, de la structure.

Valeur retournée

Si la fonction réussit, la fonction retourne une valeur différente de zéro (TRUE).

Si la fonction échoue, elle retourne zéro (FALSE).

Remarques

Si un certificat a une extension EKU, cette extension répertorie les identificateurs d’objet (OID) pour les utilisations valides de ce certificat. Dans un environnement Microsoft, un certificat peut également avoir des propriétés étendues EKU qui spécifient des utilisations valides pour le certificat.

  • Si un certificat n’a ni extension EKU ni propriétés étendues EKU, il est supposé être valide pour toutes les utilisations.
  • S’il possède une extension EKU ou des propriétés étendues EKU, mais pas les deux, il est valide uniquement pour les utilisations indiquées dans l’extension ou les propriétés étendues dont il dispose.
  • Si un certificat a à la fois une extension EKU et des propriétés étendues EKU, il est valide uniquement pour les utilisations qui se trouvent sur les deux listes.
Si dwFlags a la valeur zéro, le membre cUsageIdentifier de la structure CERT_ENHKEY_USAGE est défini sur le nombre d’utilisations valides du certificat déterminé par la valeur de l’extension EKU et de la valeur de la propriété étendue EKU.

Si le membre cUsageIdentifier est égal à zéro, le certificat peut être valide pour toutes les utilisations ou le certificat n’a peut-être aucune utilisation valide. Le retour d’un appel à GetLastError peut être utilisé pour déterminer si le certificat est bon pour toutes les utilisations ou pour aucun. Si GetLastError retourne CRYPT_E_NOT_FOUND, le certificat est adapté à toutes les utilisations. S’il retourne zéro, le certificat n’a aucune utilisation valide.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête wincrypt.h
Bibliothèque Crypt32.lib
DLL Crypt32.dll

Voir aussi

CertSetEnhancedKeyUsage

Fonctions d’utilisation des clés améliorées