Función CertVerifySubjectCertificateContext (wincrypt.h)

La función CertVerifySubjectCertificateContext realiza las comprobaciones de comprobación habilitadas en un certificado comprobando la validez del emisor del certificado. Se recomiendan las nuevas funciones de verificación de la cadena de certificados en lugar de esta función.

Sintaxis

BOOL CertVerifySubjectCertificateContext(
  [in]           PCCERT_CONTEXT pSubject,
  [in, optional] PCCERT_CONTEXT pIssuer,
  [in, out]      DWORD          *pdwFlags
);

Parámetros

[in] pSubject

Puntero a una estructura de CERT_CONTEXT que contiene el certificado del firmante.

[in, optional] pIssuer

Puntero a un CERT_CONTEXT que contiene el certificado del emisor. Al comprobar solo CERT_STORE_TIME_VALIDITY_FLAG, pIssuer puede ser NULL.

[in, out] pdwFlags

Un puntero a un valor DWORD contiene marcas de comprobación de comprobación. Las marcas siguientes se pueden establecer para habilitar las comprobaciones de comprobación en el certificado del firmante. Se pueden combinar mediante una operación OR bit a bit para habilitar varias comprobaciones.

Valor Significado
CERT_STORE_REVOCATION_FLAG
Comprueba si el certificado del firmante está en la lista de revocación del emisor.
CERT_STORE_SIGNATURE_FLAG
Usa la clave pública en el certificado del emisor para comprobar la firma en el certificado del firmante.
CERT_STORE_TIME_VALIDITY_FLAG
Obtiene la hora actual y comprueba que se encuentra dentro del período de validez del certificado del firmante.
 

Si una comprobación de comprobación habilitada se realiza correctamente, su marca se establece en cero. Si se produce un error, su marca se establece al devolver.

Si CERT_STORE_REVOCATION_FLAG se ha habilitado y el emisor no tiene una CRL en el almacén, CERT_STORE_NO_CRL_FLAG se establece además de CERT_STORE_REVOCATION_FLAG.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es TRUE.

Si se produce un error en la función, el valor devuelto es FALSE.

Para un error de comprobación de comprobación, se sigue devolviendo TRUE . False solo se devuelve cuando se pasa un parámetro incorrecto.

Para obtener información de error extendida, llame a GetLastError. Un posible código de error es el siguiente.

Código devuelto Descripción
E_INVALIDARG
Se estableció un bit no admitido en pdwFlags. Se puede establecer cualquier combinación de CERT_STORE_SIGNATURE_FLAG, CERT_STORE_TIME_VALIDITY_FLAG y CERT_STORE_REVOCATION_FLAG. Si pIssuer es NULL, solo se puede establecer CERT_STORE_TIME_VALIDITY_FLAG.

Comentarios

El valor hexadecimal de las marcas se puede combinar mediante operaciones OR bit a bit para habilitar varias comprobaciones. Por ejemplo, para habilitar la validez de la firma y la hora, el valor

CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG

se coloca en el valor DWORDpdwFlags como parámetro de entrada. Si CERT_STORE_SIGNATURE_FLAG comprobación se realiza correctamente, pero CERT_STORE_TIME_VALIDITY_FLAG se produce un error en la comprobación, pdwFlags se establece en CERT_STORE_TIME_VALIDITY_FLAG cuando se devuelve la función.

Requisitos

Requisito Value
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

CERT_CONTEXT

CertGetIssuerCertificateFromStore

Funciones de certificado