estructura CERT_CHAIN_PARA (wincrypt.h)

La estructura de CERT_CHAIN_PARA establece los criterios de búsqueda y coincidencia que se van a usar en la creación de una cadena de certificados.

Sintaxis

typedef struct _CERT_CHAIN_PARA {
  DWORD                   cbSize;
  CERT_USAGE_MATCH        RequestedUsage;
  CERT_USAGE_MATCH        RequestedIssuancePolicy;
  DWORD                   dwUrlRetrievalTimeout;
  BOOL                    fCheckRevocationFreshnessTime;
  DWORD                   dwRevocationFreshnessTime;
  LPFILETIME              pftCacheResync;
  PCCERT_STRONG_SIGN_PARA pStrongSignPara;
  DWORD                   dwStrongSignFlags;
} CERT_CHAIN_PARA, *PCERT_CHAIN_PARA;

Miembros

cbSize

Tamaño, en bytes, de esta estructura.

RequestedUsage

Estructura que indica el tipo de coincidencia necesario para buscar certificados emisores para crear una cadena de certificados. La estructura a la que se apunta indica si se va a usar la lógica AND o OR en el proceso coincidente. La estructura también incluye una matriz de OID que se van a buscar coincidencias.

RequestedIssuancePolicy

Estructura opcional que indica el tipo de coincidencia de restricciones de directiva de emisión que se aplica al crear una cadena de certificados. La estructura a la que se apunta indica si se va a usar la lógica AND o OR en el proceso coincidente. La estructura también incluye una matriz de OID que se van a buscar coincidencias.

Nota Este miembro solo se puede usar si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS se define mediante la directiva #define antes de incluir Wincrypt.h. Si se define este valor, la aplicación debe cero todos los campos sin usar.
 

dwUrlRetrievalTimeout

Hora opcional, en milisegundos, antes de que se agote el tiempo de espera de la comprobación de revocación. Este miembro es opcional.

Nota Este miembro solo se puede usar si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS se define mediante la directiva #define antes de incluir Wincrypt.h. Si se define este valor, la aplicación debe cero todos los campos sin usar.
 

fCheckRevocationFreshnessTime

Miembro opcional. Cuando esta marca es TRUE, se intenta recuperar una nueva CRL si esta actualización es mayor o igual que la hora actual del sistema menos el valor dwRevocationFreshnessTime . Si no se establece esta marca, se usa la próxima hora de actualización de la CRL.

Nota Este miembro solo se puede usar si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS se define mediante la directiva #define antes de incluir Wincrypt.h. Si se define este valor, la aplicación debe cero todos los campos sin usar.
 

dwRevocationFreshnessTime

La hora actual, en segundos, menos la hora de actualización de la CRL de todos los elementos comprobados.

Nota Este miembro solo se puede usar si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS se define mediante la directiva #define antes de incluir Wincrypt.h. Si se define este valor, la aplicación debe cero todos los campos sin usar.
 

pftCacheResync

Miembro opcional. Cuando se establece en un valor distinto de NULL , se considera que la información almacenada en caché antes del tiempo especificado no es válida y se realiza la resincronización de caché.

Windows Vista: Comienza la compatibilidad con este miembro.

Nota Este miembro solo se puede usar si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS se define mediante la directiva #define antes de incluir Wincrypt.h. Si se define este valor, la aplicación debe cero todos los campos sin usar.
 

pStrongSignPara

Opcional. Especifique un puntero a una estructura de CERT_STRONG_SIGN_PARA para habilitar la comprobación de firmas seguras.

Windows 8 y Windows Server 2012: comienza el soporte técnico para este miembro.

Nota Este miembro solo se puede usar si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS se define mediante la directiva #define antes de incluir Wincrypt.h. Si se define este valor, la aplicación debe cero todos los campos sin usar.
 

dwStrongSignFlags

Marcas opcionales que modifican el comportamiento de recuperación de la cadena. Puede ser cero o el valor siguiente.

Valor Significado
CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG
0x00000001
Si la cadena tiene una firma segura, se comprobará la clave pública del certificado final para comprobar si cumple los requisitos mínimos de longitud de clave pública para una firma segura. Puede especificar CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG para deshabilitar la comprobación predeterminada.
 

Windows 8 y Windows Server 2012: comienza la compatibilidad con esta propiedad.

Nota Este miembro solo se puede usar si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS se define mediante la directiva #define antes de incluir Wincrypt.h. Si se define este valor, la aplicación debe cero todos los campos sin usar.
 

Comentarios

Los siguientes comentarios se aplican al comprobar si hay firmas seguras.

  • Establezca el miembro pStrongSignPara para comprobar si hay firmas seguras al usar la función CertGetCertificateChain o CertSelectCertificateChains .
  • Si se encuentra un certificado sin una firma segura en la cadena, los errores de CERT_TRUST_HAS_WEAK_SIGNATURE y CERT_TRUST_IS_NOT_SIGNATURE_VALID se establecen en el campo dwErrorStatus de la estructura CERT_TRUST_STATUS . El parámetro ppChainContext de la función CertGetCertificateChain y el parámetro pprgpSelection de la función CertSelectCertificateChains apuntan a una estructura de CERT_CHAIN_CONTEXT que, a su vez, apunta a la estructura CERT_TRUST_STATUS .
  • Si la cadena tiene una firma segura, se comprueba la clave pública del certificado final para determinar si cumple los requisitos mínimos de longitud de clave pública para una firma segura. Si no se cumple la condición, el CERT_TRUST_HAS_WEAK_SIGNATURE y los errores de CERT_TRUST_IS_NOT_SIGNATURE_VALID se establecen en el campo dwErrorStatus de la estructura CERT_TRUST_STATUS . Establezca el valor CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG en el miembro dwStrongSignFlags para deshabilitar esta comprobación.
  • Si las marcas CERT_STRONG_SIGN_ENABLE_CRL_CHECK o CERT_STRONG_SIGN_ENABLE_OCSP_CHECK se establecen en la estructura de CERT_STRONG_SIGN_SERIALIZED_INFO a la que hace referencia la estructura CERT_STRONG_SIGN_PARA apuntada por el miembro pStrongSignPara y se encuentra una respuesta CRL o OCSP sin una firma segura, la respuesta CRL o OCSP se tratará como sin conexión. Es decir, los errores CERT_TRUST_IS_OFFLINE_REVOCATION y CERT_TRUST_REVOCATION_STATUS_UNKNOWN se establecen en el campo dwErrorStatus de la estructura CERT_TRUST_STATUS . Además, el miembro dwRevocationResult de la estructura CERT_REVOCATION_INFO se establece en NTE_BAD_ALGID.

Requisitos

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

Consulte también

CERT_USAGE_MATCH