Compartilhar via


Função CertGetCRLFromStore (wincrypt.h)

A função CertGetCRLFromStore obtém o primeiro ou o próximo contexto de CRL (lista de certificados revogados) do repositório de certificados do emissor especificado. A função também executa as verificações de verificação habilitadas na CRL. As novas funções de verificação de cadeia de certificados são recomendadas em vez dessa função.

Sintaxe

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

[in, optional] pIssuerContext

Um ponteiro para um emissor CERT_CONTEXT. O ponteiro pIssuerContext pode vir desse repositório ou de outro repositório ou pode ter sido criado pela chamada CertCreateCertificateContext. Se NULL for passado para esse parâmetro, todas as CRLs no repositório serão encontradas.

[in] pPrevCrlContext

Um ponteiro para um CRL_CONTEXT. Um emissor pode ter várias CRLs. Por exemplo, ele pode gerar CRLs delta usando uma extensão X.509 versão 3. Esse parâmetro deve ser NULL na primeira chamada para obter a CRL. Para obter a próxima CRL para o emissor, o parâmetro é definido como o CRL_CONTEXT retornado por uma chamada anterior. Um pPrevCrlContext não NULL é sempre liberado por essa função chamando CertFreeCRLContext, mesmo para um erro.

[in, out] pdwFlags

Os valores de sinalizador a seguir são definidos para habilitar verificações de verificação na CRL retornada. Esses sinalizadores podem ser combinados usando uma operação OR bit a bit.

Valor Significado
CERT_STORE_SIGNATURE_FLAG
Usa a chave pública no certificado do emissor para verificar a assinatura na CRL retornada.
CERT_STORE_TIME_VALIDITY_FLAG
Obtém a hora atual e verifica se ela está dentro do tempo entre ThisUpdate e NextUpdate da CRL.
CERT_STORE_BASE_CRL_FLAG
Obtém uma CRL base.
CERT_STORE_DELTA_CRL_FLAG
Obtém uma CRL delta.
 

Se uma verificação habilitada marcar for bem-sucedida, seu sinalizador será definido como zero.

Se uma verificação habilitada marcar falhar, seu sinalizador permanecerá definido no retorno. Se pIssuerContext for NULL, um CERT_STORE_SIGNATURE_FLAG habilitado sempre falhará e o CERT_STORE_NO_ISSUER_FLAG também será definido. Para obter mais detalhes, confira Comentários.

Se apenas um dos CERT_STORE_BASE_CRL_FLAG ou CERT_STORE_DELTA_CRL_FLAG estiver definido, essa função retornará uma CRL base ou delta e o sinalizador base ou delta apropriado será limpo no retorno. Se ambos os sinalizadores estiverem definidos, apenas um dos sinalizadores será limpo.

Para uma verificação marcar falha, um ponteiro para o primeiro ou próximo CRL_CONTEXT ainda é retornado e GetLastError não é atualizado.

Valor retornado

Se a função for bem-sucedida, o valor retornado será um ponteiro para um CRL_CONTEXT somente leitura.

Se a função falhar e a primeira ou a próxima CRL não for encontrada, o valor retornado será NULL.

O CRL_CONTEXT retornado deve ser liberado chamando CertFreeCRLContext. No entanto, quando o CRL_CONTEXT retornado é fornecido para pPrevCrlContext em uma chamada subsequente, a função a libera.

Para obter informações de erro estendidas, chame GetLastError. Alguns códigos de erro possíveis seguem.

Valor Descrição
E_INVALIDARG
O identificador no parâmetro hCertStore não é o mesmo que no contexto crl apontado pelo parâmetro pPrevCrlContext ou um sinalizador sem suporte foi definido em pdwFlags.
CRYPT_E_NOT_FOUND
Nenhuma CRL existia no repositório do emissor ou a função chegou ao final da lista do repositório.

Comentários

CertDuplicateCRLContext pode ser chamado para fazer uma CRL duplicada.

Os valores hexadecimal dos sinalizadores podem ser combinados usando uma operação OR bit a bit para habilitar ambas as verificações. Por exemplo, para habilitar ambas as verificações, o valor DWORD apontado por pdwFlags é definido como valor CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG. Se a verificação de CERT_STORE_SIGNATURE_FLAG tiver sido bem-sucedida, mas CERT_STORE_TIME_VALIDITY_FLAG verificação falhar, o valor DWORD apontado por pdwFlags será definido como CERT_STORE_TIME_VALIDITY_FLAG quando a função retornar.

Requisitos

   
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

CRL_CONTEXT

CertCreateCertificateContext

CertDuplicateCRLContext

CertFreeCRLContext

CertGetCRLContextProperty

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