CryptVerifySignature
Überprüft, ob eine digitale Signatur für die Daten gültig ist.
Format
CryptVerifySignature ( Daten ; Algorithmus ; öffentlicherRSASchlüssel ; Signatur )
Parameter
Daten
- beliebiger Textausdruck, der die Daten angibt, die mit Signatur
verglichen werden.
Algorithmus
- Name des zu verwendenden kryptografischen Algorithmus (siehe Funktion „CryptAuthCode“).
öffentlicherRSASchlüssel
- Text, der den öffentlichen RSA-Schlüssel PKCS #1 im PEM-Format angibt, der mit dem privaten Schlüssel für die Erstellung der Signatur
verglichen wird.
Signatur
- die binäre RSA-Signatur, die mit Daten
verglichen wird, etwa dem Wert, den die Funktion „CryptGenerateSignature“ zurückgibt.
Zurückgegebener Datentyp
Zahl
Ursprung in Version
18.0
Beschreibung
Um eine Signatur zu verifizieren, vergleicht diese Funktion den Meldungsextrakt von Daten
(anhand des angegebenen Algorithmus) mit dem Extrakt, den die Entschlüsselung von Signatur
mit öffentlicherRSASchlüssel
ergab.
Ein öffentlicher RSA-Schlüssel muss folgendes Format aufweisen:
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqqDiwrPQwVaJzOzfFVBd
...
egkXva5cYBb8PNifmlPXVb8CAwEAAQ==
-----END PUBLIC KEY-----
Wenn die Signatur für die Daten gültig ist, gibt diese Funktion 1 (wahr) zurück. Wenn die Signatur ungültig ist, gibt sie 0 (falsch) zurück. Wenn einer der Parameter ungültig ist, gibt sie „?“ zurück.
Beispiel 1
Verwendet den SHA-512-Algorithmus, um den Extrakt von Tabelle::SignierterText zu generieren. Entschlüsselt die Base64-Kodierung der Signatur, die im Textfeld Tabelle::Signatur gespeichert ist, und gibt sie als Containerdaten zurück. Entschlüsselt die Signatur anhand des Werts im Feld Tabelle::öffentlicherRSASchlüssel und vergleicht den Signaturextrakt mit dem Extrakt auf der Basis des Felds Tabelle::SignierterText. Wenn die Signatur gültig ist, wird 1 zurückgegeben.
CryptVerifySignature (
Tabelle::SignierterText ; "SHA512" ; Tabelle::öffentlicherRSASchlüssel ;
Base64Decode (
Tabelle::Signatur ; "sig.data"
)
)