(Objective-C) RSA Encrypt and OpenSSL Decrypt
Demonstrates how to use Chilkat to RSA encrypt, and then use OpenSSL to decrypt.
#import <CkoRsa.h>
#import <CkoPrivateKey.h>
#import <NSString.h>
#import <CkoBinData.h>
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoRsa *rsa = [[CkoRsa alloc] init];
BOOL success = [rsa GenerateKey: [NSNumber numberWithInt: 2048]];
CkoPrivateKey *privKey = [rsa ExportPrivateKeyObj];
success = [privKey SavePkcs8PemFile: @"qa_output/privKey.pem"];
rsa.EncodingMode = @"base64";
NSString *plainText = @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890";
BOOL bUsePrivateKey = NO;
NSString *encryptedStr = [rsa EncryptStringENC: plainText bUsePrivateKey: bUsePrivateKey];
CkoBinData *bd = [[CkoBinData alloc] init];
[bd AppendEncoded: encryptedStr encoding: @"base64"];
success = [bd WriteFile: @"qa_output/enc.dat"];
// The OpenSSL command to decrypt is:
// openssl pkeyutl -in enc.dat -inkey privKey.pem -keyform PEM -pkeyopt rsa_padding_mode:pkcs1 -decrypt
NSLog(@"%@",@"OK");
|