Vérification des messages signés à l’aide de listes CTL

L’un des avantages de l’utilisation des listes de certificats de confiance (CTL) est que les applications peuvent être conçues pour vérifier automatiquement les messages signés par rapport à des certificats approuvés sans déranger l’utilisateur avec des boîtes de dialogue. Il permet également de faire confiance aux sources de contrôle de l’administrateur réseau.

La procédure suivante peut être utilisée pour vérifier la signature d’un message signé à l’aide d’une liste CTL.

Pour vérifier un message signé à l’aide d’une liste de certificats de confiance

  1. Décodez le message comme suit :

    1. Obtient un pointeur vers le message reçu (l' objet BLOBencodé).
    2. Appelez CryptMsgOpenToDecode, en passant les arguments nécessaires.
    3. Appelez CryptMsgUpdate une fois, en passant le handle récupéré à l’étape b et un pointeur vers les données qui doivent être décodées. Cela entraîne le suivi des actions appropriées sur le message, en fonction du type de message.
  2. Vérifiez la signature du message décodé, signé, et récupérez un pointeur vers le _ contexte de certificatdu signataire.

    Pour ce faire, vous pouvez appeler CryptMsgGetAndVerifySigner, en passant le handle de message récupéré à l’étape 1C comme paramètre hCryptMsg . Si l’appel de fonction retourne la valeur true, la signature a été vérifiée et un pointeur vers le _ contexte PCCERT du signataire est retourné dans le paramètre ppSigner .

  3. Vérifiez que le signataire est une source approuvée comme suit :

    1. Ouvrez le magasin de certificats contenant la liste CTL appropriée.
    2. Obtient un pointeur vers le _ contexte de la liste de certificats de confiance en appelant CertFindCTLInStore.
    3. Pour confirmer que le signataire est une source approuvée, appelez CertFindSubjectInCTL, en passant le pointeur récupéré à l’étape précédente dans le paramètre pCtlContext , le _ _ type de sujet du certificat CTL _ dans le paramètre DwSubjectType et le pointeur vers le _ contexte de certificat récupéré à l’étape 2 dans le paramètre pvSubject . Si l’appel de fonction retourne la valeur true, le _ contexte de certificat transmis à la fonction est une source approuvée dans la liste de certificats de confiance.