Sample code for 30+ languages & platforms
Objective-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 Objective-C Downloads

Objective-C
#import <CkoBinData.h>
#import <NSString.h>
#import <CkoPublicKey.h>
#import <CkoRsa.h>

BOOL success = NO;

CkoBinData *bd = [[CkoBinData alloc] init];
int i;
for (i = 0; i <= 100; i++) {
    [bd AppendEncoded: @"000102030405060708090A0B0C0D0E0F" encoding: @"hex"];
}

NSString *sha256_base64 = [bd GetHash: @"sha256" encoding: @"base64"];
NSLog(@"%@%@",@"sha256 hash in base64 format: ",sha256_base64);

NSString *base64_rsa_sig = @"AwF2BbOvL6jA5DwmMAc9n6J2Cc8PI6Rj5W079+aKJcIEtPWRzHor0Bvc3aftGM3Jbgj6SXlIC3M3RYS7UZOnfiHKFNZgbxaNT5WwsWooK42ZkC8DBZl0p7OunBUKd5SciUo+TKilioeUkriN3L1Zl9hwi3HVDVqgVo3XXskwIftSqLSFlepTLTmOWj9Y93dp8J4D9RyLtNgFQBc0WB22tyJTsuY56mLcWe1AMF3LizB9OrbwjynF2u16xWlrJdugccz795fJBUV9aQSD+8S3KeqwQhoi8RK1uhD68aGCyaSpBq0NZ8COAkn7MXaF4POxrAAt8udfHM+PRfSOptcH/w==";

//  Get the public key to be used for signature verification.
CkoPublicKey *pubKey = [[CkoPublicKey alloc] init];
success = [pubKey LoadFromFile: @"rsaKeys/chilkat-rsa-2048.pem"];
if (success == NO) {
    NSLog(@"%@",pubKey.LastErrorText);
    return;
}

CkoRsa *rsa = [[CkoRsa alloc] init];
success = [rsa UsePublicKey: pubKey];
if (success == NO) {
    NSLog(@"%@",rsa.LastErrorText);
    return;
}

//  Verify the hash against the signature.
rsa.EncodingMode = @"base64";
success = [rsa VerifyHashENC: sha256_base64 hashAlg: @"sha256" encodedSig: base64_rsa_sig];

if (success == NO) {
    NSLog(@"%@",rsa.LastErrorText);
    NSLog(@"%@",@"Signature invalid.");
}
else {
    NSLog(@"%@",@"Signature valid.");
}