AESCrypt is a simple to use, opinionated AES encryption / decryption Objective-C class that just works.
AESCrypt uses the AES-256-CBC cipher and encodes the encrypted data with base64.
A corresponding gem to easily handle AES encryption / decryption in Ruby is available at http://github.com/Gurpartap/aescrypt.
Add this line to your class:
#import "AESCrypt.h"
NSString *message = @"top secret message";
NSString *password = @"p4ssw0rd";
Encrypting
NSString *encryptedData = [AESCrypt encrypt:message password:password];
Decrypting
NSString *message = [AESCrypt decrypt:encryptedData password:password];
AESCrypt includes Base64 and Crypto extensions for NSData and NSString classes. If you're already using an extension that provides these, there is no need to use the included classes. Change the code in the AESCrypt class to correspond to your existing implementation of these extensions.
The AESCrypt Ruby gem, available at http://github.com/Gurpartap/aescrypt, understands what you're talking about in your Objective-C code. The purpose of the Ruby gem and Objective-C class is to have something that works out of the box across the server (Ruby) and client (Objective-C). However, a standard encryption technique is implemented, which ensures that you can handle the data with any AES compatible library available across the web. So, you're not locked-in.
Here's how you would use the Ruby gem:
message = "top secret message"
password = "p4ssw0rd"
Encrypting
encrypted_data = AESCrypt.encrypt(message, password)
Decrypting
message = AESCrypt.decrypt(encrypted_data, password)
See the Ruby gem README at http://github.com/Gurpartap/aescrypt for more details.
NSData+CommonCrypto is Copyright (c) 2008-2009, Jim Dovey
AESCrypt is Copyright (c) 2012 Gurpartap Singh
See LICENSE for license terms.