Sample code for 30+ languages & platforms
Objective-C

Blowfish OFB Output Feedback Mode Encryption

See more Encryption Examples

Demonstrates how to encrypt using Blowfish OFB (Output Feedback) mode.

Chilkat Objective-C Downloads

Objective-C
#import <CkoCrypt2.h>
#import <NSString.h>

//  This example assumes the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

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

//  Use "blowfish2" to produce correct results that match published blowfish test vectors.
crypt.CryptAlgorithm = @"blowfish2";
//  Set the cipher mode to Output Feedback
crypt.CipherMode = @"ofb";
crypt.KeyLength = [NSNumber numberWithInt:256];

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

//  The block size of the blowfish algoirthm is 8 bytes, therefore the IV is 8 bytes.
NSString *ivHex = @"0001020304050607";
[crypt SetEncodedIV: ivHex encoding: @"hex"];

//  The secret key must equal the size of the key.  For
//  256-bit encryption, the binary secret key is 32 bytes.
NSString *keyHex = @"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4";
[crypt SetEncodedKey: keyHex encoding: @"hex"];

//  Encrypt a string...
NSString *encStr = [crypt EncryptStringENC: @"Emergencies have always been the pretext on which the safeguards of individual liberty have been eroded. -- Friedrich Hayek"];
NSLog(@"%@",encStr);

CkoCrypt2 *decrypt = [[CkoCrypt2 alloc] init];
decrypt.CryptAlgorithm = @"blowfish2";
decrypt.CipherMode = @"ofb";
decrypt.KeyLength = [NSNumber numberWithInt:256];
decrypt.EncodingMode = @"hex";
[decrypt SetEncodedIV: ivHex encoding: @"hex"];
[decrypt SetEncodedKey: keyHex encoding: @"hex"];

//  Now decrypt:
NSString *decStr = [decrypt DecryptStringENC: encStr];
NSLog(@"%@",decStr);