Condividi tramite


Decodifica dei dati firmati

Il processo generale seguente decodifica un tipo di dati firmato .

Per decodificare un messaggio firmato

  1. Ottenere un puntatore al BLOB codificato.
  2. Chiamare CryptMsgOpenToDecode, passando gli argomenti necessari.
  3. Chiamare CryptMsgUpdate una volta, passando l'handle recuperato nel passaggio 2 e un puntatore ai dati da decodificare. In questo modo, le azioni appropriate devono essere eseguite sul messaggio, a seconda del tipo di messaggio.
  4. Chiamare CryptMsgGetParam, passando l'handle recuperato nel passaggio 2 e i tipi di parametri appropriati per accedere ai dati decodificati. Ad esempio, passare CMSG_CONTENT_PARAM per ottenere un puntatore al contenuto decodificato.

Il processo generale seguente verifica la firma di un messaggio decodificato e firmato.

Per verificare la firma di un messaggio decodificato, firmato

  1. Chiamare CryptMsgGetParam, passando l'handle del messaggio e CMSG_SIGNER_CERT_INFO_PARAM per ottenere il CERT_INFO del firmatario dal messaggio.
  2. Chiamare CertOpenStore per aprire un archivio temporaneo inizializzato con i certificati del messaggio.
  3. Chiamare CertGetSubjectCertificateFromStore per ottenere il CERT_INFO del firmatario dai certificati inclusi nel messaggio.
  4. Chiamare CryptMsgControl, passando CMSG_CTRL_VERIFY_SIGNATURE per verificare le firme.
  5. Chiamare CryptMsgClose per chiudere il messaggio.

Il risultato di queste procedure è che la firma viene verificata e un puntatore viene recuperato nel contenuto del messaggio decodificato ottenuto nel passaggio 4 della procedura per decodificare un messaggio firmato.

Per informazioni dettagliate sulla codifica C, vedere Esempio di programma C: firma, codifica, decodifica e verifica di un messaggio.