Compartir a través de


Función CertFindCRLInStore (wincrypt.h)

La función CertFindCRLInStore busca el primer o siguiente contexto de lista de revocación de certificados (CRL) en un almacén de certificados que coincida con un criterio de búsqueda establecido por el parámetro dwFindType y el parámetro pvFindPara asociado. Esta función se puede usar en un bucle para buscar todos los contextos CRL en un almacén de certificados que coincidan con los criterios de búsqueda especificados.

Sintaxis

PCCRL_CONTEXT CertFindCRLInStore(
  [in] HCERTSTORE    hCertStore,
  [in] DWORD         dwCertEncodingType,
  [in] DWORD         dwFindFlags,
  [in] DWORD         dwFindType,
  [in] const void    *pvFindPara,
  [in] PCCRL_CONTEXT pPrevCrlContext
);

Parámetros

[in] hCertStore

Identificador del almacén de certificados que se va a buscar.

[in] dwCertEncodingType

Este parámetro no se usa actualmente. Debe establecerse en cero.

[in] dwFindFlags

Si dwFindType está CRL_FIND_ISSUED_BY, de forma predeterminada, solo se realiza la coincidencia de nombres del emisor. Las marcas siguientes se pueden usar para realizar un filtrado adicional.

Valor Significado
CRL_FIND_ISSUED_BY_AKI_FLAG
Comprueba si hay una CRL que tiene una extensión de identificador de clave de autoridad (AKI). Si la CRL tiene una AKI, solo se devuelve una CRL cuya AKI coincide con el emisor.
Nota La extensión AKI tiene el valor de identificador de objeto (OID) szOID_AUTHORITY_KEY_IDENTIFIER2 y su estructura de datos correspondiente.
 
CRL_FIND_ISSUED_BY_SIGNATURE_FLAG
Use la clave pública en el certificado del emisor para comprobar la firma en la CRL. Solo devuelve una CRL que tiene una firma válida.
CRL_FIND_ISSUED_BY_DELTA_FLAG
Busca y devuelve una CRL delta.
CRL_FIND_ISSUED_BY_BASE_FLAG
Busca y devuelve una CRL base.
CRL_FIND_ISSUED_FOR_SET_STRONG_PROPERTIES_FLAG
La firma se comprueba si hay intensidad después de la comprobación correcta. Esta marca solo se aplica cuando el parámetro dwFindType se establece en CRL_FIND_ISSUED_FOR. También debe establecer CRL_FIND_ISSUED_BY_SIGNATURE_FLAG. Si se ejecuta correctamente, las siguientes propiedades de firma segura se establecerán en el contexto de CRL:
  • CERT_SIGN_HASH_CNG_ALG_PROP_ID
  • CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Windows 8 y Windows Server 2012: comienza la compatibilidad con esta marca.

[in] dwFindType

Especifica el tipo de búsqueda que se está realizando. El valor de dwFindType determina el tipo de datos, el contenido y el uso del parámetro pvFindPara . Los tipos de búsqueda definidos actualmente y sus requisitos pvFindPara son los siguientes.

Valor Significado
CRL_FIND_ANY
No se usa el parámetro pvFindPara . Debe establecerse en NULL.
No hay criterios de búsqueda. Se devuelve la siguiente CRL en el almacén.
CRL_FIND_ISSUED_BY
Puntero a un CERT_CONTEXT.
Busca la siguiente CRL en el almacén que coincida con el emisor en el CERT_CONTEXT.
CRL_FIND_EXISTING
Puntero a un CRL_CONTEXT.
Busca la siguiente CRL que coincida con el CRL_CONTEXT de las siguientes maneras:
  • Ambos son CRL base o delta.
  • Los blobs de nombre de emisor para ambos son idénticos.
  • Si existen, los blobs de extensión codificada Authority/KeyIdentifier y IssuingDistributionPoint coinciden.
CRL_FIND_ISSUED_FOR
Puntero a un CRL_FIND_ISSUED_FOR_PARA.
Busca la siguiente CRL en el almacén que coincide con el emisor del certificado del firmante en la estructura CRL_FIND_ISSUED_FOR_PARA.

Si no se encuentra ninguna CRL, busca la siguiente CRL en el almacén que coincide con el emisor en la estructura CRL_FIND_ISSUED_FOR_PARA.

Nota Al usar certificados cruzados, es posible que el nombre del firmante del certificado del emisor no coincida con el nombre del emisor en el certificado del firmante y su CRL correspondiente.
 

[in] pvFindPara

Este parámetro viene determinado por el valor de dwFindType. Para obtener más información, consulte la tabla anterior en este tema.

[in] pPrevCrlContext

Puntero al último CRL_CONTEXT devuelto por esta función. Debe ser NULL para obtener la primera CRL en el almacén que cumpla los criterios de búsqueda. Las CRL sucesivas que cumplen los criterios de búsqueda se pueden encontrar estableciendo pPrevCrlContext en el puntero PCCRL_CONTEXT devuelto por una llamada anterior a la función. El proceso de búsqueda omite las CRL que no coinciden con los criterios de búsqueda o que certDeleteCRLFromStore eliminó previamente del almacén. Esta función libera el CRL_CONTEXT al que hacen referencia los valores de este parámetro que no son NULL.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve un puntero a un contexto CRL de solo lectura. Cuando haya terminado de usar el contexto CRL devuelto, áleguelo llamando a la función CertFreeCRLContext o liberándolo implícitamente pasando como parámetro pPrevCrlContext en una llamada posterior a la función CertFindCRLInStore .

Si se produce un error en la función y no se encuentra una CRL que coincida con los criterios de búsqueda, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError. A continuación se indican algunos códigos de error posibles.

Código devuelto Descripción
E_INVALIDARG
El identificador del parámetro hCertStore no es el mismo que el del contexto CRL al que apunta el parámetro pPrevCrlContext o un tipo de búsqueda que no es válido se especificó en el parámetro dwFindType .
CRYPT_E_NOT_FOUND
No hay CRL en el almacén, no se encontró ninguna CRL que coincida con los criterios de búsqueda o se alcanzó el final de la lista de la tienda.

Comentarios

El puntero devuelto se libera cuando se pasa como parámetro pPrevCrlContext en una llamada posterior a la función. De lo contrario, el puntero debe liberarse explícitamente llamando a CertFreeCRLContext. CertFindCRLInStore libera siempre un pPrevCrlContext que no es NULL mediante una llamada a CertFreeCRLContext, incluso si se produce un error en la función.

Se puede llamar a CertDuplicateCRLContext para duplicar el contexto devuelto. El contexto CRL devuelto se puede agregar a un almacén de certificados diferente mediante CertAddCRLContextToStore o un vínculo a ese contexto CRL se puede agregar a un almacén que no sea de colección mediante CertAddCRLLinkToStore.

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

CRL_CONTEXT

CertAddCRLContextToStore

CertAddCRLLinkToStore

CertDeleteCRLFromStore

CertDuplicateCRLContext

CertFreeCRLContext

Funciones de lista de revocación de certificados