(JavaScript) Verify an RSA Signature Against the Signed Hash
Demonstrates how to validate an RSA Signature against the hash that was signed.Note: This example requires Chilkat v11.0.0 or greater.
var success = false;
var bd = new CkBinData();
var i;
for (i = 0; i <= 100; i++) {
bd.AppendEncoded("000102030405060708090A0B0C0D0E0F","hex");
}
var sha256_base64 = bd.GetHash("sha256","base64");
console.log("sha256 hash in base64 format: " + sha256_base64);
var base64_rsa_sig = "AwF2BbOvL6jA5DwmMAc9n6J2Cc8PI6Rj5W079+aKJcIEtPWRzHor0Bvc3aftGM3Jbgj6SXlIC3M3RYS7UZOnfiHKFNZgbxaNT5WwsWooK42ZkC8DBZl0p7OunBUKd5SciUo+TKilioeUkriN3L1Zl9hwi3HVDVqgVo3XXskwIftSqLSFlepTLTmOWj9Y93dp8J4D9RyLtNgFQBc0WB22tyJTsuY56mLcWe1AMF3LizB9OrbwjynF2u16xWlrJdugccz795fJBUV9aQSD+8S3KeqwQhoi8RK1uhD68aGCyaSpBq0NZ8COAkn7MXaF4POxrAAt8udfHM+PRfSOptcH/w==";
// Get the public key to be used for signature verification.
var pubKey = new CkPublicKey();
success = pubKey.LoadFromFile("rsaKeys/chilkat-rsa-2048.pem");
if (success == false) {
console.log(pubKey.LastErrorText);
return;
}
var rsa = new CkRsa();
success = rsa.UsePublicKey(pubKey);
if (success == false) {
console.log(rsa.LastErrorText);
return;
}
// Verify the hash against the signature.
rsa.EncodingMode = "base64";
success = rsa.VerifyHashENC(sha256_base64,"sha256",base64_rsa_sig);
if (success == false) {
console.log(rsa.LastErrorText);
console.log("Signature invalid.");
}
else {
console.log("Signature valid.");
}
|