Función CertGetEnhancedKeyUsage (wincrypt.h)

La función CertGetEnhancedKeyUsage devuelve información de la extensión de uso mejorado de claves (EKU) o de la propiedad extendida EKU de un certificado. Las EKU indican los usos válidos del certificado.

Sintaxis

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

Parámetros

[in] pCertContext

Puntero a un contexto de certificado de CERT_CONTEXT .

[in] dwFlags

Indica si la función informará sobre las extensiones de un certificado, sus propiedades extendidas o ambas. Si se establece en cero, la función devuelve los usos válidos de un certificado en función de la extensión EKU y el valor de propiedad extendida de EKU del certificado.

Para devolver solo el valor de la propiedad EKU o la extensión EKU, establezca las marcas siguientes.

Valor Significado
CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG
Obtenga solo la extensión.
CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG
Obtenga solo el valor de propiedad extendida.

[out] pUsage

Puntero a una estructura de CERT_ENHKEY_USAGE (CERT_ENHKEY_USAGE es un nombre de definición de tipo alternativo para la estructura CTL_USAGE ) que recibe los usos válidos del certificado.

Este parámetro puede ser NULL para establecer el tamaño del uso de la clave con fines de asignación de memoria. Para obtener más información, vea Recuperar datos de longitud desconocida.

[in, out] pcbUsage

Puntero a un DWORD que especifica el tamaño, en bytes, de la estructura a la que apunta pUsage. Cuando la función devuelve, DWORD contiene el tamaño, en bytes, de la estructura.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve un valor distinto de cero (TRUE).

Si se produce un error en la función, devuelve cero (FALSE).

Comentarios

Si un certificado tiene una extensión EKU, esa extensión enumera los identificadores de objeto (OID) para usos válidos de ese certificado. En un entorno de Microsoft, un certificado también puede tener propiedades extendidas de EKU que especifiquen usos válidos para el certificado.

  • Si un certificado no tiene ninguna extensión de EKU ni propiedades extendidas de EKU, se supone que es válido para todos los usos.
  • Si tiene una extensión EKU o propiedades extendidas de EKU, pero no ambas, solo es válida para los usos indicados en la extensión o las propiedades extendidas que tiene.
  • Si un certificado tiene una extensión de EKU y propiedades extendidas de EKU, solo es válido para los usos que se encuentran en ambas listas.
Si dwFlags se establece en cero, el miembro cUsageIdentifier de la estructura CERT_ENHKEY_USAGE se establece en el número de usos válidos del certificado determinado por el valor de la extensión EKU y el valor de la propiedad extendida de EKU.

Si el miembro cUsageIdentifier es cero, es posible que el certificado sea válido para todos los usos o que el certificado no tenga ningún uso válido. La devolución de una llamada a GetLastError se puede usar para determinar si el certificado es bueno para todos los usos o para ninguno. Si GetLastError devuelve CRYPT_E_NOT_FOUND, el certificado es adecuado para todos los usos. Si devuelve cero, el certificado no tiene ningún uso válido.

Requisitos

   
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado wincrypt.h
Library Crypt32.lib
Archivo DLL Crypt32.dll

Consulte también

CertSetEnhancedKeyUsage

Funciones de uso de claves mejoradas