Décodage des données signées
Le processus général suivant décode un type de données signé .
Pour décoder un message signé
- Obtenez un pointeur vers l’objet BLOB encodé.
- Appelez CryptMsgOpenToDecode, en passant les arguments nécessaires.
- Appelez CryptMsgUpdate une fois, en passant le handle récupéré à l’étape 2 et un pointeur vers les données à décoder. Cela entraîne l’exécution des actions appropriées sur le message, en fonction du type de message.
- Appelez CryptMsgGetParam, en passant le handle récupéré à l’étape 2 et les types de paramètres appropriés pour accéder aux données décodées. Par exemple, passez CMSG_CONTENT_PARAM pour obtenir un pointeur vers le contenu décodé.
Le processus général suivant vérifie la signature d’un message décodé et signé.
Pour vérifier la signature d’un message décodé, signé
- Appelez CryptMsgGetParam, en passant le handle de message et CMSG_SIGNER_CERT_INFO_PARAM pour obtenir le CERT_INFO du signataire à partir du message.
- Appelez CertOpenStore pour ouvrir un magasin temporaire initialisé avec les certificats du message.
- Appelez CertGetSubjectCertificateFromStore pour obtenir le CERT_INFO du signataire à partir des certificats inclus dans le message.
- Appelez CryptMsgControl, en passant CMSG_CTRL_VERIFY_SIGNATURE pour vérifier les signatures.
- Appelez CryptMsgClose pour fermer le message.
Le résultat de ces procédures est que la signature est vérifiée et qu’un pointeur est récupéré vers le contenu du message décodé obtenu à l’étape 4 de la procédure pour décoder un message signé.
Pour plus d’informations sur le codage C, consultez l’exemple de programme C : signature, encodage, décodage et vérification d’un message.