Sample code for 30+ languages & platforms
C#

Verify an RSA Signature Against the Signed Hash

See more Apple Keychain Examples

Demonstrates how to validate an RSA Signature against the hash that was signed.

Chilkat C# Downloads

C#
bool success = false;

Chilkat.BinData bd = new Chilkat.BinData();
int i;
for (i = 0; i <= 100; i++) {
    bd.AppendEncoded("000102030405060708090A0B0C0D0E0F","hex");
}

string sha256_base64 = bd.GetHash("sha256","base64");
Debug.WriteLine("sha256 hash in base64 format: " + sha256_base64);

string base64_rsa_sig = "AwF2BbOvL6jA5DwmMAc9n6J2Cc8PI6Rj5W079+aKJcIEtPWRzHor0Bvc3aftGM3Jbgj6SXlIC3M3RYS7UZOnfiHKFNZgbxaNT5WwsWooK42ZkC8DBZl0p7OunBUKd5SciUo+TKilioeUkriN3L1Zl9hwi3HVDVqgVo3XXskwIftSqLSFlepTLTmOWj9Y93dp8J4D9RyLtNgFQBc0WB22tyJTsuY56mLcWe1AMF3LizB9OrbwjynF2u16xWlrJdugccz795fJBUV9aQSD+8S3KeqwQhoi8RK1uhD68aGCyaSpBq0NZ8COAkn7MXaF4POxrAAt8udfHM+PRfSOptcH/w==";

//  Get the public key to be used for signature verification.
Chilkat.PublicKey pubKey = new Chilkat.PublicKey();
success = pubKey.LoadFromFile("rsaKeys/chilkat-rsa-2048.pem");
if (success == false) {
    Debug.WriteLine(pubKey.LastErrorText);
    return;
}

Chilkat.Rsa rsa = new Chilkat.Rsa();
success = rsa.UsePublicKey(pubKey);
if (success == false) {
    Debug.WriteLine(rsa.LastErrorText);
    return;
}

//  Verify the hash against the signature.
rsa.EncodingMode = "base64";
success = rsa.VerifyHashENC(sha256_base64,"sha256",base64_rsa_sig);

if (success == false) {
    Debug.WriteLine(rsa.LastErrorText);
    Debug.WriteLine("Signature invalid.");
}
else {
    Debug.WriteLine("Signature valid.");
}