Cocoa Objective-C Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CUnicode C++Unicode CMFCDelphi DLLDelphi ActiveXFoxProJavaPerlPHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Objective-C Examples

Bounced Email
Digital Certificates
Digital Signatures
DKIM / DomainKey
DSA
Email Object
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
POP3
RSA
MIME
SMTP
Socket
SOCKS Proxy
Spider
SSH Key
SSH
SFTP
Tar
Upload
XML
XMP
Zip


More Examples...
Amazon S3
NTLM
RSS
Atom
PPMD
Deflate
Bzip2
LZW
Diffie-Hellman
Bz2
Character Encoding
CSV

 

 

 

 

 

 

 

 

RSA Sign with PKCS8 Encrypted Key

Demonstrates how to load a private key from an encrypted PKCS8 file and create an RSA digital signature (and then verify it).

Download: Chilkat Cocoa Objective-C Libraries

NSMutableString *strOutput = [NSMutableString stringWithCapacity:1000];

CkoPrivateKey *pkey = [[[CkoPrivateKey alloc] init] autorelease];

//  Load the private key from an RSA PEM file:
[pkey LoadPkcs8EncryptedFile: @"raul_privateKey.key" password: @"a0123456789"];

BOOL success;

NSString *pkeyXml;
//  Get the private key in XML format:
pkeyXml = [pkey GetXml];

CkoRsa *rsa = [[[CkoRsa alloc] init] autorelease];

//  Any string argument automatically begins the 30-day trial.

success = [rsa UnlockComponent: @"Anything for 30-day trial."];
if (success != YES) {
    [strOutput appendString: @"RSA component unlock failed"];
    [strOutput appendString: @"\n"];
    self.mainTextField.stringValue = strOutput;
    return;
}

//  Import the private key into the RSA component:
success = [rsa ImportPrivateKey: pkeyXml];
if (success != YES) {
    [strOutput appendString: rsa.LastErrorText];
    [strOutput appendString: @"\n"];
    self.mainTextField.stringValue = strOutput;
    return;
}

//  This example will sign a string, and receive the signature
//  in a hex-encoded string.  Therefore, set the encoding mode
//  to "hex":
rsa.EncodingMode = @"hex";

NSString *strData;
strData = @"This is the string to be signed.";

//  Sign the string using the sha-1 hash algorithm.
//  Other valid choices are "md2" and "md5".
NSString *hexSig;
hexSig = [rsa SignStringENC: strData hashAlg: @"sha-1"];

[strOutput appendString: hexSig];
[strOutput appendString: @"\n"];

//  Now verify with the public key.
//  This example shows how to use the public key from
//  a digital certificate (.cer file)
CkoCert *cert = [[[CkoCert alloc] init] autorelease];
success = [cert LoadFromFile: @"raul_publicKey.cer"];
if (success != YES) {
    [strOutput appendString: cert.LastErrorText];
    [strOutput appendString: @"\n"];
    self.mainTextField.stringValue = strOutput;
    return;
}

CkoPublicKey *pubKey;
pubKey = [cert ExportPublicKey];

NSString *pubKeyXml;
//  Get the private key in XML format:
pubKeyXml = [pubKey GetXml];

CkoRsa *rsa2 = [[[CkoRsa alloc] init] autorelease];
success = [rsa2 ImportPublicKey: pubKeyXml];
if (success != YES) {
    [strOutput appendString: rsa2.LastErrorText];
    [strOutput appendString: @"\n"];
    self.mainTextField.stringValue = strOutput;
    return;
}

//  Verify the signature against the original data:
rsa2.EncodingMode = @"hex";
success = [rsa2 VerifyStringENC: strData hashAlg: @"sha-1" sig: hexSig];
if (success != YES) {
    [strOutput appendString: rsa2.LastErrorText];
    [strOutput appendString: @"\n"];
    self.mainTextField.stringValue = strOutput;
    return;
}

[strOutput appendString: @"Signature verified!"];
[strOutput appendString: @"\n"];

//  Verify with incorrect data:
success = [rsa2 VerifyStringENC: @"something else" hashAlg: @"sha-1" sig: hexSig];
if (success != YES) {
    [strOutput appendString: ];
    [strOutput appendString: @"\n"];}


self.mainTextField.stringValue = strOutput;



© 2000-2013 Chilkat Software, Inc. All Rights Reserved.