Partager via


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é

  1. Obtenez un pointeur vers l’objet BLOB encodé.
  2. Appelez CryptMsgOpenToDecode, en passant les arguments nécessaires.
  3. 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.
  4. 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é

  1. Appelez CryptMsgGetParam, en passant le handle de message et CMSG_SIGNER_CERT_INFO_PARAM pour obtenir le CERT_INFO du signataire à partir du message.
  2. Appelez CertOpenStore pour ouvrir un magasin temporaire initialisé avec les certificats du message.
  3. Appelez CertGetSubjectCertificateFromStore pour obtenir le CERT_INFO du signataire à partir des certificats inclus dans le message.
  4. Appelez CryptMsgControl, en passant CMSG_CTRL_VERIFY_SIGNATURE pour vérifier les signatures.
  5. 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.