Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[CAPICOM est un composant 32 bits uniquement disponible pour une utilisation dans les systèmes d’exploitation suivants : Windows Server 2008, Windows Vista et Windows XP. Utilisez plutôt .NET Framework pour implémenter des fonctionnalités de sécurité. Pour plus d’informations, consultez Alternatives à l’utilisation de CAPICOM.]
CAPICOM n’active pas la vérification de révocation de certificats par défaut. Toutefois, la vérification de la révocation de certificats peut être activée par programmation pour un certificat particulier via la propriété IsValid.CheckFlag d’un objet Certificate. Une fois que la valeur appropriée de CheckFlag a été définie, accédez à la propriété IsValid.Result de l’objet Certificate ou générez le chemin de vérification du certificat à l’aide de la méthode Build d’un objet Chain force la vérification de la révocation.
Dans l’exemple suivant, le certificat a été instancié en tant que certificat CAPICOM valide.
Dim cert As Certificate
Dim LocalStore As New Store
' Open the My store.
LocalStore.Open LocalStore.Open CAPICOM_CURRENT_USER_STORE, _
CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_WRITE
' Get the first certificate in the My store.
set cert = LocalStore.Certificates.Item(1)
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
Le précédent s’applique à un certificat individuel, quelle que soit la façon dont il a été obtenu. L’exécution d’une vérification de révocation sur les certificats d’un objet SignedData n’est pas différente, car la méthode Verify de l’objet SignedData ne peut pas être utilisée à cet effet, car l’activation de CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE n’entraîne pas la vérification de la liste de révocation de certificats.
Au lieu de cela, checkFlag doit être défini pour le certificat de chaque signataire. Prenons l’exemple suivant où sData a été instancié en tant qu’objet CAPICOM SignedData valide.
Dim cert As Certificate
Dim chain As New Chain
' sData is an existing SignedData object.
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
'THE 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
L’exemple supplémentaire est la boucle sur tous les certificats de l’objet SignedData .