(Objective-C) RSASSA-PSS Algorithm with SHA256 Hashing
RSA encrypt a SHA256 hash with OAEP padding. Note: This example requires Chilkat v11.0.0 or greater.
#import <CkoPrivateKey.h>
#import <CkoRsa.h>
#import <NSString.h>
BOOL success = NO;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoPrivateKey *privkey = [[CkoPrivateKey alloc] init];
// Load the private key object from a PEM file.
// (To load from a PEM string, call LoadPem instead.)
success = [privkey LoadPemFile: @"somePath/myPrivateKey.pem"];
if (success == NO) {
NSLog(@"%@",privkey.LastErrorText);
return;
}
CkoRsa *rsa = [[CkoRsa alloc] init];
// Use RSA-PSS by setting PkcsPadding = NO
rsa.PkcsPadding = NO;
// Use SHA256
rsa.OaepHash = @"SHA-256";
[rsa UsePrivateKey: privkey];
// Generate a base64 signature.
rsa.EncodingMode = @"base64";
NSString *sigStr = [rsa SignStringENC: @"String to be signed" hashAlg: @"SHA-256"];
if (rsa.LastMethodSuccess == NO) {
NSLog(@"%@",rsa.LastErrorText);
return;
}
NSLog(@"%@%@",@"Signature: ",sigStr);
|