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 |
---|---|
|
Obtenha apenas a extensão. |
|
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 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 |