Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Objective-C) Verify an RSA Signature Against the Signed StringSee more Apple Keychain ExamplesDemonstrates how to validate an RSA Signature against the string that was signed.
#import <CkoStringBuilder.h> #import <NSString.h> #import <CkoPublicKey.h> #import <CkoRsa.h> // Create the same string we previously signed in this example: // RSA Sign utf-8 Bytes of String to get Base64 RSA Signature CkoStringBuilder *sb = [[CkoStringBuilder alloc] init]; BOOL crlfLineEnding = YES; int i; for (i = 0; i <= 10; i++) { [sb AppendLine: @"This is a test." crlf: crlfLineEnding]; } NSString *base64_rsa_sig = @"gWgpEXQqvXN6wh0MuFXPiw2xCb8cnmdizBT1TD1Tpm2GlJ8gnD59DGSj35GGXk1tM+mCOvMa2uW/9gmz8p6A90JLbn918i/2wKGvcde4wXnzPO7JADSNn2UwYzf3rp4/q/JrHv1GZETRJhABSFqTxOgdmdbEJQE/zijOSctCtQAM2CTb6t2BO8uHKSSUAwPH2cbeWxqsaVRLT4ruk5nZOxhoLgLMSjupiSzbE8zSTkkFOEHD+Mbb2xwg85AI0E4DsUnp+hLwwtS0blesgSyvtBY8oJODJeFcJsR7JDOTPdzHQHgJRl/2A4ij5xT91TpXy7ok43jhT6O9j7Q3qrafIQ=="; // Get the public key to be used for signature verification. CkoPublicKey *pubKey = [[CkoPublicKey alloc] init]; BOOL success = [pubKey LoadFromFile: @"rsaKeys/chilkat-rsa-2048.pem"]; if (success == NO) { NSLog(@"%@",pubKey.LastErrorText); return; } CkoRsa *rsa = [[CkoRsa alloc] init]; [rsa ImportPublicKeyObj: pubKey]; // Verify the string against the signature. // We signed the utf-8 byte representation of the string, so we must indicate // to also validate against the utf-8 byte representation. rsa.Charset = @"utf-8"; rsa.EncodingMode = @"base64"; NSString *signedString = [sb GetAsString]; success = [rsa VerifyStringENC: signedString hashAlg: @"sha256" sig: base64_rsa_sig]; if (success == NO) { NSLog(@"%@",rsa.LastErrorText); NSLog(@"%@",@"Signature invalid."); } else { NSLog(@"%@",@"Signature valid."); } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.