Função CertAddEncodedCRLToStore (wincrypt.h)

A função CertAddEncodedCRLToStore cria um contexto de CRL ( lista de certificados revogados ) de uma CRL codificada e a adiciona ao repositório de certificados. A função faz uma cópia do contexto de CRL antes de adicioná-la ao repositório.

Sintaxe

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 um repositório de certificados.

[in] dwCertEncodingType

Especifica o tipo de codificação usado. É sempre aceitável especificar os tipos de codificação de certificado e mensagem combinando-os com uma operação OR bit a bit, conforme mostrado no exemplo a seguir:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING Tipos de codificação definidos no momento são:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCrlEncoded

Um ponteiro para um buffer que contém a CRL codificada a ser adicionada ao repositório de certificados.

[in] cbCrlEncoded

O tamanho, em bytes, do buffer pbCrlEncoded .

[in] dwAddDisposition

Especifica a ação a ser tomada se uma CRL correspondente ou um link para uma CRL correspondente já existir no repositório. Os valores de disposição definidos no momento e seus usos são os seguintes.

Valor Significado
CERT_STORE_ADD_ALWAYS
Não faz marcar para uma CRL correspondente existente ou um link para uma CRL correspondente. Uma nova CRL sempre é adicionada ao repositório. Isso pode levar a duplicatas em um repositório.
CERT_STORE_ADD_NEW
Se existir uma CRL correspondente ou um link para uma CRL correspondente, a operação falhará. GetLastError retorna o código CRYPT_E_EXISTS.
CERT_STORE_ADD_NEWER
Se existir uma CRL correspondente ou um link para uma CRL correspondente, os tempos de ThisUpdate nas CRLs serão comparados. Se a CRL existente tiver um tempo ThisUpdate menor que o tempo ThisUpdate na nova CRL, a CRL ou o link antigo será substituído da mesma forma que o CERT_STORE_ADD_REPLACE_EXISTING. Se a CRL existente tiver um tempo ThisUpdate maior ou igual ao tempo ThisUpdate na CRL a ser adicionada, a função falhará com GetLastError retornando o código CRYPT_E_EXISTS.

Se uma CRL correspondente ou um link para uma CRL correspondente não for encontrado no repositório, uma nova CRL será adicionada ao repositório.

CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
A ação é a mesma que para CERT_STORE_ADD_NEWER, exceto que, se uma CRL mais antiga for substituída, as propriedades da CRL mais antiga serão incorporadas à CRL de substituição.
CERT_STORE_ADD_REPLACE_EXISTING
Se existir uma CRL correspondente ou um link para uma CRL correspondente, essa CRL ou link existente será excluído e uma nova CRL será criada e adicionada ao repositório. Se uma CRL correspondente ou um link para uma CRL correspondente não existir, uma será adicionada.
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
Se houver uma CRL correspondente no repositório, esse contexto existente será excluído antes de criar e adicionar o novo contexto. O novo contexto herda propriedades da CRL existente.
CERT_STORE_ADD_USE_EXISTING
Se existir uma CRL correspondente ou um link para uma CRL correspondente, essa CRL existente será usada e as propriedades da nova CRL serão adicionadas. A função não falha, mas nenhuma nova CRL é adicionada. Se ppCertContext não for NULL, o contexto existente será duplicado.

Se uma CRL correspondente ou um link para uma CRL correspondente não existir, uma nova CRL será adicionada.

[out, optional] ppCrlContext

Um ponteiro para um ponteiro para a estrutura de CRL_CONTEXT decodificada. Esse é um parâmetro opcional que pode ser NULL, indicando que o aplicativo de chamada não requer uma cópia da CRL nova ou existente. Se uma cópia for feita, esse contexto deverá ser liberado usando CertFreeCRLContext.

Retornar valor

Se a função for bem-sucedida, o valor retornado será TRUE.

Se a função falhar, o valor retornado será FALSE. Para obter informações de erro estendidas, chame GetLastError. Alguns códigos de erro possíveis seguem.

Código de retorno Descrição
CRYPT_E_EXISTS
CERT_STORE_ADD_NEW está definido e a CRL já existe no repositório ou CERT_STORE_ADD_NEWER está definida e há uma CRL no repositório com um tempo ThisUpdate maior ou igual ao tempo ThisUpdate para que a CRL seja adicionada.
E_INVALIDARG
Um valor de disposição que não é válido foi especificado no parâmetro dwAddDisposition ou um tipo de codificação que não é válido foi especificado. Atualmente, há suporte apenas para o tipo de codificação X509_ASN_ENCODING.
 

Se a função falhar, GetLastError poderá retornar um erro de codificação/decodificação de ASN.1 (Abstract Syntax Notation One ). Para obter informações sobre esses erros, consulte Codificação/Decodificação de Valores Retornados do ASN.1.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

CertAddCRLContextToStore

CertFreeCRLContext

Funções de lista de revogação de certificados