CryptVerifySignature

Controleert of een digitale handtekening voor de gegevens geldig is.

Opmaak 

CryptVerifySignature (gegevens ; algoritme ; publiekeRSASleutel ; handtekening)

Parameters 

gegevens - een tekstuitdrukking die staat voor de gegevens die moeten worden vergeleken met handtekening.

algoritme - de naam van de cryptografische algoritme die moet worden gebruikt (raadpleeg CryptAuthCode functie).

publiekeRSASleutel-tekst die staat voor de publieke RSA-sleutel PKCS #1 in PEM-formaat die hoort bij de privésleutel die wordt gebruikt om handtekening te genereren.

handtekening - de binaire RSA-handtekening die moet worden vergeleken met gegevens, zoals de waarde die wordt geretourneerd door de CryptGenerateSignature functie.

Resulterend gegevenstype 

getal

Afkomstig uit versie 

18.0

Beschrijving 

Om een handtekening te verifiëren, vergelijkt deze functie de berichtwaarde van gegevens (aan de hand van de opgegeven algoritme) met de waarde die is verkregen door het decoderen van handtekening met behulp van publiekeRSASleutel.

Een publieke RSA-sleutel moet de volgende opmaak hebben:

Kopiëren
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqqDiwrPQwVaJzOzfFVBd
...
egkXva5cYBb8PNifmlPXVb8CAwEAAQ==
-----END PUBLIC KEY-----

Als de handtekening geldig is voor de gegevens, geeft deze functie 1 (waar) als resultaat. Als de handtekening niet geldig is, geeft de functie 0 (onwaar) als resultaat. Als een van de parameters ongeldig is, geeft de functie "?" als resultaat.

Voorbeeld 1 

Maakt gebruik van de SHA-512-algoritme om de waarde van Tabel::OndertekendeTekst te genereren. Decodeert de handtekening die in Base64 is opgeslagen in het tekstveld Tabel::Handtekening en retourneert deze als containergegevens. Decodeert de handtekening met behulp van de waarde in het veld Tabel::PubliekeRSASleutel en vergelijkt de handtekeningwaarde met de waarde van het veld Tabel::OndertekendeTekst. Als de handtekening geldig is, geeft de functie 1 als resultaat.

Kopiëren
CryptVerifySignature ( 
    Tabel::OndertekendeTekst ; "SHA512" ; Tabel::PubliekeRSASleutel ;     
    Base64Decode (         
        Tabel::Handtekening ; "sig.data"     
    ) 
)