estructura CERT_CHAIN_POLICY_STATUS (wincrypt.h)

La estructura de CERT_CHAIN_POLICY_STATUS contiene la información de estado de la cadena de certificados devuelta por la función CertVerifyCertificateChainPolicy cuando se validan las cadenas de certificados.

Sintaxis

typedef struct _CERT_CHAIN_POLICY_STATUS {
  DWORD cbSize;
  DWORD dwError;
  LONG  lChainIndex;
  LONG  lElementIndex;
  void  *pvExtraPolicyStatus;
} CERT_CHAIN_POLICY_STATUS, *PCERT_CHAIN_POLICY_STATUS;

Miembros

cbSize

Tamaño, en bytes, de esta estructura.

dwError

Valor que indica que se encontró un error o una condición no válida durante el proceso de validación. Los valores de este miembro son específicos del tipo de directiva especificado por el valor del parámetro pszPolicyOID de la función CertVerifyCertificateChainPolicy .

Errores de directiva base (CERT_CHAIN_POLICY_BASE)

Valor Significado
TRUST_E_CERT_SIGNATURE
0x80096004L
No se puede comprobar la firma del certificado.
CRYPT_E_REVOKED
0x80092010L
Se ha revocado el certificado o la firma.
CERT_E_UNTRUSTEDROOT
0x800B0109L
Una cadena de certificación se procesó correctamente, pero finalizó en un certificado raíz que no es de confianza para el proveedor de confianza.
CERT_E_UNTRUSTEDTESTROOT
0x800B010DL
El certificado raíz es un certificado de prueba y la configuración de la directiva no permite certificados de prueba.
CERT_E_CHAINING
0x800B010AL
No se creó correctamente una cadena de certificados.
CERT_E_WRONG_USAGE
0x800B0110L
El certificado no es válido para el uso solicitado.
CERT_E_EXPIRED
0x800B0101L
Un certificado necesario no está dentro de su período de validez.
CERT_E_INVALID_NAME
0x800B0114L
El certificado tiene un nombre no válido. El nombre no se incluye en la lista permitida o se excluye explícitamente.
CERT_E_INVALID_POLICY
0x800B0113L
El certificado tiene una directiva no válida.
TRUST_E_BASIC_CONSTRAINTS
0x80096019L
Las restricciones básicas del certificado no son válidas o faltan.
CERT_E_CRITICAL
0x800B0105L
El certificado se usa para un propósito distinto del propósito especificado por su ENTIDAD de certificación.
CERT_E_VALIDITYPERIODNESTING
0x800B0102L
Los períodos de validez de la cadena de certificación no anidan correctamente.
CRYPT_E_NO_REVOCATION_CHECK
0x80092012L
La función de revocación no pudo comprobar la revocación del certificado.
CRYPT_E_REVOCATION_OFFLINE
0x80092013L
La función de revocación no pudo comprobar la revocación debido a que el servidor de revocación estaba sin conexión.
 

Errores de directiva de restricciones básicas (CERT_CHAIN_POLICY_BASIC_CONSTRAINTS).

Valor Significado
TRUST_E_BASIC_CONSTRAINTS
0x80096019L
Las restricciones básicas del certificado no son válidas o faltan.
 

Errores de directiva authenticode (CERT_CHAIN_POLICY_AUTHENTICODE y CERT_CHAIN_POLICY_AUTHENTICODE_TS).

Estos errores se agregan a los errores de la directiva base.

Valor Significado
CERT_E_PURPOSE
0x800B0106L
El certificado se usa para un propósito distinto de uno especificado por la entidad de certificación emisora.
CERT_E_REVOKED
0x800B010CL
El emisor ha revocado explícitamente el certificado.
CERT_E_REVOCATION_FAILURE
0x800B010EL
No se pudo continuar el proceso de revocación y no se pudo comprobar el certificado.
 

Errores de directiva SSL (CERT_CHAIN_POLICY_SSL).

Estos errores se agregan a los errores de la directiva base.

Valor Significado
CERT_E_UNTRUSTEDROOT
0x800B0109L
Una cadena de certificación se procesó correctamente, pero finalizó en un certificado raíz que no es de confianza para el proveedor de confianza.
CERT_E_CN_NO_MATCH
0x800B010FL
El nombre CN del certificado no coincide con el valor pasado.
CERT_E_PURPOSE
0x800B0106L
El certificado se usa para un propósito distinto del especificado por su ENTIDAD de certificación.
CERT_E_ROLE
0x800B0103L
Un certificado que solo se puede usar como entidad de finalización se usa como entidad de certificación o viceversa.
 

Errores de directiva raíz de Microsoft (CERT_CHAIN_POLICY_MICROSOFT_ROOT).

Valor Significado
CERT_E_UNTRUSTEDROOT
0x800B0109L
Una cadena de certificación se procesó correctamente, pero finalizó en un certificado raíz que no es de confianza para el proveedor de confianza.
 

Errores de directiva ev.

Valor Significado
CERT_E_CHAINING
0x800B010AL
No se pudo compilar la cadena de certificados en una entidad raíz de confianza.
CERT_E_WRONG_USAGE
0x800B0110L
El certificado no es válido para el uso solicitado.

lChainIndex

Índice que indica la cadena en la que se encontró un error o condición que no es válido. Para obtener más información, vea la sección Comentarios.

lElementIndex

Índice que indica el elemento de una cadena donde se encontró un error o condición que no es válido. Para obtener más información, vea la sección Comentarios.

pvExtraPolicyStatus

Puntero a una estructura. El tipo de estructura viene determinado por el valor del parámetro pszPolicyOID de la función CertVerifyCertificateChainPolicy . Además de los errores dwError , el estado adicional específico del OID de directiva también se puede devolver aquí para proporcionar información adicional sobre el estado de la cadena. Este puntero se puede establecer opcionalmente para que apunte a una estructura de AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS .

Comentarios

Si lChainIndex y lElementIndex se establecen en –1, el error o condición que no es válido se aplica al contexto de cadena completo. Si solo lElementIndex se establece en –1, el error o condición que no es válido se aplica a la cadena indizada por lChainIndex. De lo contrario, el error o condición que no es válido se aplica al elemento certificate en pChainContext-rgpChain>[lChainIndex]->rgpElement[lElementIndex].

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado wincrypt.h