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

 

 

 

 

 

 

 

 

3DES Encryption, ECB, CBC modes

3DES encryption. The Chilkat encryption component supports Triple-DES in both ECB (Electronic Cookbook) and CBC (Cipher-Block Chaining) cipher modes.

Download: Chilkat Cocoa Objective-C Libraries

NSMutableString *strOutput = [NSMutableString stringWithCapacity:1000];

CkoCrypt2 *crypt = [[[CkoCrypt2 alloc] init] autorelease];

BOOL success;
success = [crypt UnlockComponent: @"Anything for 30-day trial"];
if (success != YES) {
    [strOutput appendString: crypt.LastErrorText];
    [strOutput appendString: @"\n"];
    self.mainTextField.stringValue = strOutput;
    return;
}

//  Specify 3DES for the encryption algorithm:
crypt.CryptAlgorithm = @"3des";

//  CipherMode may be "ecb" or "cbc"
crypt.CipherMode = @"cbc";

//  KeyLength must be 192.  3DES is technically 168-bits;
//  the most-significant bit of each key byte is a parity bit,
//  so we must indicate a KeyLength of 192, which includes
//  the parity bits.
crypt.KeyLength = [NSNumber numberWithInt:192];

//  The padding scheme determines the contents of the bytes
//  that are added to pad the result to a multiple of the
//  encryption algorithm's block size.  3DES has a block
//  size of 8 bytes, so encrypted output is always
//  a multiple of 8.
crypt.PaddingScheme = [NSNumber numberWithInt:0];

//  EncodingMode specifies the encoding of the output for
//  encryption, and the input for decryption.
//  It may be "hex", "url", "base64", or "quoted-printable".
crypt.EncodingMode = @"hex";

//  An initialization vector is required if using CBC or CFB modes.
//  ECB mode does not use an IV.
//  The length of the IV is equal to the algorithm's block size.
//  It is NOT equal to the length of the key.
NSString *ivHex;
ivHex = @"0001020304050607";
[crypt SetEncodedIV: ivHex encoding: @"hex"];

//  The secret key must equal the size of the key.  For
//  3DES, the key must be 24 bytes (i.e. 192-bits).
NSString *keyHex;
keyHex = @"000102030405060708090A0B0C0D0E0F0001020304050607";
[crypt SetEncodedKey: keyHex encoding: @"hex"];

//  Encrypt a string...
//  The input string is 44 ANSI characters (i.e. 44 bytes), so
//  the output should be 48 bytes (a multiple of 8).
//  Because the output is a hex string, it should
//  be 96 characters long (2 chars per byte).
NSString *encStr;
encStr = [crypt EncryptStringENC: @"The quick brown fox jumps over the lazy dog."];
[strOutput appendString: encStr];
[strOutput appendString: @"\n"];

//  Now decrypt:
NSString *decStr;
decStr = [crypt DecryptStringENC: encStr];
[strOutput appendString: decStr];
[strOutput appendString: @"\n"];

self.mainTextField.stringValue = strOutput;



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