Función CertAddEncodedCRLToStore (wincrypt.h)

La función CertAddEncodedCRLToStore crea un contexto de lista de revocación de certificados (CRL) a partir de una CRL codificada y la agrega al almacén de certificados. La función realiza una copia del contexto CRL antes de agregarla al almacén.

Sintaxis

BOOL CertAddEncodedCRLToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            DWORD         dwCertEncodingType,
  [in]            const BYTE    *pbCrlEncoded,
  [in]            DWORD         cbCrlEncoded,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCRL_CONTEXT *ppCrlContext
);

Parámetros

[in] hCertStore

Identificador de un almacén de certificados.

[in] dwCertEncodingType

Especifica el tipo de codificación utilizada. Siempre es aceptable especificar los tipos de codificación de certificados y mensajes mediante su combinación con una operación OR bit a bit, como se muestra en el ejemplo siguiente:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING tipos de codificación definidos actualmente son:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCrlEncoded

Puntero a un búfer que contiene la CRL codificada que se va a agregar al almacén de certificados.

[in] cbCrlEncoded

Tamaño, en bytes, del búfer pbCrlEncoded .

[in] dwAddDisposition

Especifica la acción que se debe realizar si ya existe un CRL coincidente o un vínculo a una CRL coincidente en el almacén. Los valores de disposición definidos actualmente y sus usos son los siguientes.

Valor Significado
CERT_STORE_ADD_ALWAYS
No realiza ninguna comprobación de una CRL coincidente existente o un vínculo a una CRL coincidente. Siempre se agrega una nueva CRL al almacén. Esto puede provocar duplicados en un almacén.
CERT_STORE_ADD_NEW
Si existe una CRL coincidente o un vínculo a una CRL coincidente, se produce un error en la operación. GetLastError devuelve el código CRYPT_E_EXISTS.
CERT_STORE_ADD_NEWER
Si existe una CRL coincidente o un vínculo a una CRL coincidente, se comparan las horas ThisUpdate de las CRL. Si la CRL existente tiene un tiempo ThisUpdate menor que la hora ThisUpdate en la nueva CRL, la CRL o el vínculo antiguos se reemplazan igual que por CERT_STORE_ADD_REPLACE_EXISTING. Si la CRL existente tiene una hora ThisUpdate mayor o igual que la hora ThisUpdate en la CRL que se va a agregar, se produce un error en la función getLastError que devuelve el código de CRYPT_E_EXISTS.

Si no se encuentra una CRL coincidente o un vínculo a una CRL coincidente en el almacén, se agrega una nueva CRL al almacén.

CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
La acción es la misma que para CERT_STORE_ADD_NEWER, salvo que si se reemplaza una CRL anterior, las propiedades de la CRL anterior se incorporan a la CRL de reemplazo.
CERT_STORE_ADD_REPLACE_EXISTING
Si existe una CRL coincidente o un vínculo a una CRL coincidente, esa CRL o vínculo existente se elimina y se crea una nueva CRL y se agrega al almacén. Si no existe una CRL coincidente o un vínculo a una CRL coincidente, se agrega uno.
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
Si existe una CRL coincidente en el almacén, ese contexto existente se elimina antes de crear y agregar el nuevo contexto. El nuevo contexto hereda las propiedades de la CRL existente.
CERT_STORE_ADD_USE_EXISTING
Si existe una CRL coincidente o un vínculo a una CRL coincidente, se usa esa CRL existente y se agregan las propiedades de la nueva CRL. No se produce un error en la función, pero no se agrega ninguna CRL nueva. Si ppCertContext no es NULL, se duplica el contexto existente.

Si no existe una CRL coincidente o un vínculo a una CRL coincidente, se agrega una nueva CRL.

[out, optional] ppCrlContext

Puntero a un puntero a la estructura de CRL_CONTEXT descodificada. Se trata de un parámetro opcional que puede ser NULL, lo que indica que la aplicación que realiza la llamada no requiere una copia de la CRL nueva o existente. Si se realiza una copia, ese contexto debe liberarse mediante CertFreeCRLContext.

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 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
CRYPT_E_EXISTS
CERT_STORE_ADD_NEW se establece y la CRL ya existe en el almacén, o CERT_STORE_ADD_NEWER se establece y hay una CRL en el almacén con un tiempo ThisUpdate mayor o igual que la hora ThisUpdate para que se agregue la CRL.
E_INVALIDARG
Se especificó un valor de disposición que no es válido en el parámetro dwAddDisposition o se especificó un tipo de codificación que no es válido. Actualmente, solo se admite el tipo de codificación X509_ASN_ENCODING.
 

Si se produce un error en la función, GetLastError puede devolver un error de codificación y descodificación de sintaxis abstracta uno (ASN.1). Para obtener información sobre estos errores, vea Valores devueltos de codificación y descodificación de ASN.1.

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

CertAddCRLContextToStore

CertFreeCRLContext

Funciones de lista de revocación de certificados