Função CertGetEnhancedKeyUsage (wincrypt.h)

A função CertGetEnhancedKeyUsage retorna informações da extensão EKU ( uso avançado de chave ) ou da propriedade estendida EKU de um certificado. EKUs indicam usos válidos do certificado.

Sintaxe

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

Parâmetros

[in] pCertContext

Um ponteiro para um contexto de certificado CERT_CONTEXT .

[in] dwFlags

Indica se a função relatará as extensões de um certificado, suas propriedades estendidas ou ambas. Se definida como zero, a função retornará os usos válidos de um certificado com base na extensão de EKU e no valor da propriedade estendida EKU do certificado.

Para retornar apenas a extensão de EKU ou o valor da propriedade EKU, defina os sinalizadores a seguir.

Valor Significado
CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG
Obtenha apenas a extensão.
CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG
Obtenha apenas o valor da propriedade estendida.

[out] pUsage

Um ponteiro para uma estrutura de CERT_ENHKEY_USAGE (CERT_ENHKEY_USAGE é um nome typedef alternativo para a estrutura CTL_USAGE ) que recebe os usos válidos do certificado.

Esse parâmetro pode ser NULL para definir o tamanho do uso da chave para fins de alocação de memória. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.

[in, out] pcbUsage

Um ponteiro para um DWORD que especifica o tamanho, em bytes, da estrutura apontada por pUsage. Quando a função retorna, o DWORD contém o tamanho, em bytes, da estrutura.

Valor retornado

Se a função for bem-sucedida, a função retornará diferente de zero (TRUE).

Se a função falhar, ela retornará zero (FALSE).

Comentários

Se um certificado tiver uma extensão de EKU, essa extensão listará identificadores de objeto (OIDs) para usos válidos desse certificado. Em um ambiente da Microsoft, um certificado também pode ter propriedades estendidas de EKU que especificam usos válidos para o certificado.

  • Se um certificado não tiver uma extensão de EKU nem propriedades estendidas de EKU, ele será considerado válido para todos os usos.
  • Se tiver uma extensão de EKU ou propriedades estendidas de EKU, mas não ambas, ela será válida apenas para os usos indicados na extensão ou nas propriedades estendidas que ela tem.
  • Se um certificado tiver uma extensão de EKU e propriedades estendidas de EKU, ele será válido apenas para os usos que estão em ambas as listas.
Se dwFlags for definido como zero, o membro cUsageIdentifier da estrutura CERT_ENHKEY_USAGE será definido como o número de usos válidos do certificado determinado pelo valor da extensão EKU e pelo valor da propriedade estendida EKU.

Se o membro cUsageIdentifier for zero, o certificado poderá ser válido para todos os usos ou o certificado poderá não ter usos válidos. O retorno de uma chamada para GetLastError pode ser usado para determinar se o certificado é bom para todos os usos ou para nenhum. Se GetLastError retornar CRYPT_E_NOT_FOUND, o certificado será bom para todos os usos. Se retornar zero, o certificado não terá usos válidos.

Requisitos

   
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

CertSetEnhancedKeyUsage

Funções de uso de chave aprimoradas