Share via


Función CertGetCRLFromStore (wincrypt.h)

La función CertGetCRLFromStore obtiene el primer o siguiente contexto de la lista de revocación de certificados (CRL) del almacén de certificados del emisor especificado. La función también realiza las comprobaciones de comprobación habilitadas en la CRL. Se recomiendan las nuevas funciones de comprobación de la cadena de certificados en lugar de esta función.

Sintaxis

PCCRL_CONTEXT CertGetCRLFromStore(
  [in]           HCERTSTORE     hCertStore,
  [in, optional] PCCERT_CONTEXT pIssuerContext,
  [in]           PCCRL_CONTEXT  pPrevCrlContext,
  [in, out]      DWORD          *pdwFlags
);

Parámetros

[in] hCertStore

Identificador de un almacén de certificados.

[in, optional] pIssuerContext

Puntero a un emisor CERT_CONTEXT. El puntero pIssuerContext puede provenir de este almacén u otro almacén, o bien podría haberse creado mediante la llamada a CertCreateCertificateContext. Si se pasa NULL para este parámetro, se encuentran todas las CRL del almacén.

[in] pPrevCrlContext

Puntero a un CRL_CONTEXT. Un emisor puede tener varias CRL. Por ejemplo, puede generar CRL delta mediante una extensión X.509 versión 3. Este parámetro debe ser NULL en la primera llamada para obtener la CRL. Para obtener la siguiente CRL del emisor, el parámetro se establece en el CRL_CONTEXT devuelto por una llamada anterior. Esta función siempre libera un pPrevCrlContext distinto de NULL llamando a CertFreeCRLContext, incluso para un error.

[in, out] pdwFlags

Los siguientes valores de marca se definen para habilitar las comprobaciones de comprobación en la CRL devuelta. Estas marcas se pueden combinar mediante una operación OR bit a bit.

Valor Significado
CERT_STORE_SIGNATURE_FLAG
Usa la clave pública en el certificado del emisor para comprobar la firma en la CRL devuelta.
CERT_STORE_TIME_VALIDITY_FLAG
Obtiene la hora actual y comprueba que está dentro del tiempo entre thisUpdate y NextUpdate de la CRL.
CERT_STORE_BASE_CRL_FLAG
Obtiene una CRL base.
CERT_STORE_DELTA_CRL_FLAG
Obtiene una CRL delta.
 

Si una comprobación de comprobación habilitada se realiza correctamente, su marca se establece en cero.

Si se produce un error en una comprobación de comprobación habilitada, su marca permanece establecida tras la devolución. Si pIssuerContext es NULL, siempre se produce un error en un CERT_STORE_SIGNATURE_FLAG habilitado y también se establece el CERT_STORE_NO_ISSUER_FLAG. Para obtener más información, consulte Comentarios.

Si solo se establece una de CERT_STORE_BASE_CRL_FLAG o CERT_STORE_DELTA_CRL_FLAG, esta función devuelve una CRL base o delta y se borrará la marca delta o base adecuada al devolver. Si se establecen ambas marcas, solo se borrará una de las marcas.

Para un error de comprobación de comprobación, todavía se devuelve un puntero al primer o siguiente CRL_CONTEXT y GetLastError no se actualiza.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un puntero a un CRL_CONTEXT de solo lectura.

Si se produce un error en la función y no se encuentra la primera o la siguiente CRL, el valor devuelto es NULL.

El CRL_CONTEXT devuelto debe liberarse llamando a CertFreeCRLContext. Sin embargo, cuando se proporciona el CRL_CONTEXT devuelto para pPrevCrlContext en una llamada posterior, la función lo libera.

Para obtener información de error extendida, llame a GetLastError. Siguen algunos códigos de error posibles.

Valor Descripción
E_INVALIDARG
El identificador del parámetro hCertStore no es el mismo que en el contexto crL al que apunta el parámetro pPrevCrlContext o se estableció una marca no admitida en pdwFlags.
CRYPT_E_NOT_FOUND
Ninguna CRL existía en el almacén para el emisor o la función alcanzó el final de la lista del almacén.

Comentarios

Se puede llamar a CertDuplicateCRLContext para crear una CRL duplicada.

Los valores hexadecimales de las marcas se pueden combinar mediante una operación OR bit a bit para habilitar ambas comprobaciones. Por ejemplo, para habilitar ambas comprobaciones, el valor DWORD al que apunta pdwFlags se establece en el valor CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG. Si la comprobación del CERT_STORE_SIGNATURE_FLAG se realizó correctamente, pero CERT_STORE_TIME_VALIDITY_FLAG error de comprobación, el valor DWORD al que apunta pdwFlags se establece en CERT_STORE_TIME_VALIDITY_FLAG cuando la función devuelve.

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

CRL_CONTEXT

CertCreateCertificateContext

CertDuplicateCRLContext

CertFreeCRLContext

CertGetCRLContextProperty

Funciones de lista de revocación de certificados