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:

Copia
-----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.

Copia
CryptVerifySignature ( 
    Tabella::TestoFirmato ; "SHA512" ; Tabella::ChiaveRSAPubblica ;     
    Base64Decode (         
        Tabella::Firma ; "firma.data"     
    ) 
)