Decodifica dei dati firmati
Il processo generale seguente decodifica un tipo di dati firmato .
Per decodificare un messaggio firmato
- Ottenere un puntatore al BLOB codificato.
- Chiamare CryptMsgOpenToDecode, passando gli argomenti necessari.
- 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.
- 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
- Chiamare CryptMsgGetParam, passando l'handle del messaggio e CMSG_SIGNER_CERT_INFO_PARAM per ottenere il CERT_INFO del firmatario dal messaggio.
- Chiamare CertOpenStore per aprire un archivio temporaneo inizializzato con i certificati del messaggio.
- Chiamare CertGetSubjectCertificateFromStore per ottenere il CERT_INFO del firmatario dai certificati inclusi nel messaggio.
- Chiamare CryptMsgControl, passando CMSG_CTRL_VERIFY_SIGNATURE per verificare le firme.
- 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.