Você está offline; aguardando reconexão

Como executar a verificação de CRL com CAPICOM

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 304298
Sumário
Por padrão, a verificação de lista (certificados REVOGADOS) não será executada pela função Certificate.IsValid ou Chain.Build . No entanto, você pode ativar verificação de CRL para ambas as funções, definindo a propriedade Certificate.IsValid.CheckFlag antes de chamar corretamente.
Mais Informações

Duas variações de verificação de CRL

Há duas configurações para a propriedade Certificate.IsValid.CheckFlag que induzem a verificação de CRL:
CAPICOM_CHECK_OFFLINE_REVOCATION_STATUS
CAPICOM_CHECK_ONLINE_REVOCATION_STATUS
A configuração OFFLINE faz com que CAPICOM Verificar locais de CRLs. Esses podem ser baixados intencionalmente pelo usuário ou automaticamente armazenados em cache. Se não houver nenhum local CRLs e ONLINE verificação não está ativado, uma constante CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN é retornada nos Certificate.Status .
A configuração ONLINE faz com que o CAPICOM verificar CRLs locais apenas como no caso OFFLINE. No entanto, se nenhum local válido CRLs forem encontradas, CAPICOM verifica o CDP (ponto de distribuição de CRL) listados no certificado. Se um CDP não for especificado ou não puder ser resolvido, uma constante CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN será retornada em Certificate.Status .

CRL verificação em um certificado individual

Por exemplo, considere o código a seguir, no qual certificado foi instanciado tem como um válido CAPICOM certificados objeto:
cert.IsValid.CheckFlag = CAPICOM_CHECK_TRUSTED_ROOT Or _                          CAPICOM_CHECK_TIME_VALIDITY Or _                          CAPICOM_CHECK_SIGNATURE_VALIDITY Or _                            CAPICOM_CHECK_ONLINE_REVOCATION_STATUS   If cert.IsValid.Result Then   'CERTIFICATE IS VALID! Else   Dim chain As New Chain   chain.Build (cert)   If CAPICOM_TRUST_IS_REVOKED And chain.Status Then     'AT LEAST ONE CERTIFICATE IN THE CHAIN HAS BEEN REVOKED.    End If     If CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN And chain.Status Then     'THE REVOCATION STATUS COULD NOT BE DETERMINED.  End If End If 				

Verificação em certificados em um objeto SignedData CRL

O método SignedData.Verify não aciona CRL verificação mesmo quando CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE está ativado. Para executar a verificação de certificados em um SignedData da CRL objeto não é diferente de executar a verificação em um certificado individual da CRL. A propriedade Certificate.IsValid.CheckFlag deve ser definida para certificado do cada assinante. Considere o código a seguir, sData foi instanciado como um objeto CAPICOM SignedData válido:
Dim cert Dim chain as New Chain For i = 1 To sData.Certificates.Count   Set cert = sData.Certificates(i)   cert.IsValid.CheckFlag = CAPICOM_CHECK_TRUSTED_ROOT Or _                            CAPICOM_CHECK_TIME_VALIDITY Or _                            CAPICOM_CHECK_SIGNATURE_VALIDITY Or _                            CAPICOM_CHECK_ONLINE_REVOCATION_STATUS   If cert.IsValid.Result Then     'CERTIFICATE IS VALID!   Else     chain.Build cert     If CAPICOM_TRUST_IS_REVOKED And chain.Status Then      'AT LEAST ONE CERTIFICATE IN THE CHAIN HAS BEEN REVOKED.     End If       If CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN And chain.Status Then       'THE REVOCATION STATUS COULD NOT BE DETERMINED.    End If   End If   Next i 				
A inclusão somente esse código em comparação com o código de exemplo na seção "Verificação em um individuais certificado CRL" deste artigo é o loop em todos os certificados no objeto SignedData .
Referências
Para obter informações adicionais sobre como usar o CAPICOM, consulte a documentação de Platform SDK.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 304298 - Última Revisão: 11/21/2006 15:37:46 - Revisão: 4.3

Interface de Programação de Aplicativos do Microsoft Win32

  • kbmt kbapi kbcrypt kbhowto kbkernbase kbsecurity KB304298 KbMtpt
Comentários
sByTagName("head")[0].appendChild(m);