Função CertFindCRLInStore (wincrypt.h)
A função CertFindCRLInStore localiza o primeiro ou o próximo contexto de CRL ( lista de certificados revogados ) em um repositório de certificados que corresponde a um critério de pesquisa estabelecido pelo parâmetro dwFindType e pelo parâmetro pvFindPara associado. Essa função pode ser usada em um loop para localizar todos os contextos de CRL em um repositório de certificados que correspondam aos critérios de localização especificados.
Sintaxe
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
Um identificador do repositório de certificados a ser pesquisado.
[in] dwCertEncodingType
Esse parâmetro não é usado no momento. Ele deve ser definido como zero.
[in] dwFindFlags
Se dwFindType for CRL_FIND_ISSUED_BY, por padrão, somente a correspondência de nome do emissor será feita. Os sinalizadores a seguir podem ser usados para fazer filtragem adicional.
Valor | Significado |
---|---|
|
Verifica se há uma CRL que tem uma extensão de AKI (Identificador de Chave de Autoridade). Se a CRL tiver uma AKI, somente uma CRL cuja AKI corresponda ao emissor será retornada.
Nota A extensão AKI tem o valor OID ( identificador de objeto ) szOID_AUTHORITY_KEY_IDENTIFIER2 e sua estrutura de dados correspondente.
|
|
Use a chave pública no certificado do emissor para verificar a assinatura na CRL. Retorna apenas uma CRL que tem uma assinatura válida. |
|
Localiza e retorna uma CRL delta. |
|
Localiza e retorna uma CRL base. |
|
A assinatura é verificada quanto à força após a verificação bem-sucedida. Esse sinalizador só se aplica quando o parâmetro dwFindType é definido como CRL_FIND_ISSUED_FOR. Você também deve definir CRL_FIND_ISSUED_BY_SIGNATURE_FLAG. Se tiver êxito, as seguintes propriedades de assinatura forte serão definidas no contexto da CRL:
|
[in] dwFindType
Especifica o tipo de pesquisa que está sendo feita. O valor de dwFindType determina o tipo de dados, o conteúdo e o uso do parâmetro pvFindPara . Os tipos de pesquisa definidos atualmente e seus requisitos de pvFindPara são os seguintes.
Valor | Significado |
---|---|
|
Nenhum critério de pesquisa. A próxima CRL no repositório é retornada. |
|
Pesquisa a próxima CRL no repositório que corresponde ao emissor no CERT_CONTEXT. |
|
Pesquisa a próxima CRL que corresponde ao CRL_CONTEXT das seguintes maneiras:
|
|
Pesquisa a próxima CRL no repositório que corresponde ao emissor do certificado de entidade na estrutura CRL_FIND_ISSUED_FOR_PARA.
Se nenhuma CRL for encontrada, pesquisa a próxima CRL no repositório que corresponde ao emissor na estrutura CRL_FIND_ISSUED_FOR_PARA. Nota Ao usar certificados cruzados, o nome da entidade no certificado do emissor pode não corresponder ao nome do emissor no certificado da entidade e à CRL correspondente.
|
[in] pvFindPara
Esse parâmetro é determinado pelo valor de dwFindType. Para obter detalhes, consulte a tabela anteriormente neste tópico.
[in] pPrevCrlContext
Um ponteiro para o último CRL_CONTEXT retornado por essa função. Deve ser NULL para obter a primeira CRL na loja atendendo aos critérios de pesquisa. As CRLs sucessivas que atendem aos critérios de pesquisa podem ser encontradas definindo pPrevCrlContext como o ponteiro PCCRL_CONTEXT retornado por uma chamada anterior para a função. O processo de pesquisa ignora todas as CRLs que não correspondem aos critérios de pesquisa ou que foram excluídas anteriormente do repositório por CertDeleteCRLFromStore. Essa função libera o CRL_CONTEXT referenciado por valores desse parâmetro que não são NULL.
Retornar valor
Se a função for bem-sucedida, a função retornará um ponteiro para um contexto de CRL somente leitura. Quando terminar de usar o contexto crl retornado, libere-o chamando a função CertFreeCRLContext ou libere-a implicitamente passando-a como o parâmetro pPrevCrlContext em uma chamada subsequente para a função CertFindCRLInStore .
Se a função falhar e uma CRL que corresponde aos critérios de pesquisa não for encontrada, o valor retornado será NULL. Para obter informações de erro estendidas, chame GetLastError. Alguns códigos de erro possíveis seguem.
Código de retorno | Descrição |
---|---|
|
O identificador no parâmetro hCertStore não é o mesmo que no contexto crl apontado pelo parâmetro pPrevCrlContext ou um tipo de pesquisa que não é válido foi especificado no parâmetro dwFindType . |
|
Nenhuma CRL está no repositório, nenhuma CRL foi encontrada que correspondeu aos critérios de pesquisa ou o final da lista do repositório foi atingido. |
Comentários
O ponteiro retornado é liberado quando passado como o parâmetro pPrevCrlContext em uma chamada subsequente para a função. Caso contrário, o ponteiro deve ser liberado explicitamente chamando CertFreeCRLContext. Um pPrevCrlContext que não é NULL é sempre liberado por CertFindCRLInStore usando uma chamada para CertFreeCRLContext, mesmo que haja um erro na função.
CertDuplicateCRLContext pode ser chamado para tornar uma duplicata do contexto retornado. O contexto de CRL retornado pode ser adicionado a um repositório de certificados diferente usando CertAddCRLContextToStore ou um link para esse contexto de CRL pode ser adicionado a um repositório de não coleção usando CertAddCRLLinkToStore.
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 |