CryptVerifySignature
Verifica se una firma digitale è valida per i dati.
Formato
CryptVerifySignature ( dati ; algoritmo ; chiaveRSAPubblica ; firma )
Parametri
dati
- qualsiasi espressione di testo che rappresenta i dati da verificare rispetto a firma
.
algoritmo
- il nome dell'algoritmo crittografico da utilizzare (vedere la funzione CryptAuthCode).
chiaveRSAPubblica
- testo che rappresenta la chiave RSA pubblica PKCS #1 in formato PEM corrispondente alla chiave privata utilizzata per generare firma
.
firma
- la firma RSA binaria da verificare rispetto a dati
, come il valore restituito dalla funzione CryptGenerateSignature.
Tipo di dati riportato
Numero
Creata nella versione
18.0
Descrizione
Per verificare una firma, questa funzione confronta il digest del messaggio di dati
(utilizzando l'algoritmo specificato) con il digest ottenuto decrittando firma
utilizzando chiaveRSAPubblica
.
Una chiave RSA pubblica deve essere in questo formato:
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqqDiwrPQwVaJzOzfFVBd
...
egkXva5cYBb8PNifmlPXVb8CAwEAAQ==
-----END PUBLIC KEY-----
Se la firma è valida per i dati, questa funzione restituisce 1 (Vero); se la firma non è valida, restituisce 0 (Falso). Se uno dei parametri non è valido, restituisce "?".
Esempio 1
Utilizza l'algoritmo SHA-512 per generare il digest di Tabella::TestoFirmato. Esegue la decodifica Base64 della firma memorizzata nel campo Testo Tabella::Firma e la restituisce come dati Contenitore. Decritta la firma utilizzando il valore nel campo Tabella::ChiaveRSAPubblica e confronta il digest della firma con il digest in base al campo Tabella::TestoFirmato. Se la firma è valida, restituisce 1.
CryptVerifySignature (
Tabella::TestoFirmato ; "SHA512" ; Tabella::ChiaveRSAPubblica ;
Base64Decode (
Tabella::Firma ; "firma.data"
)
)