AESCrypt-ObjC - Simple AES encryption / decryption for iOS and OS X
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:
NSString *message = @"top secret message"; NSString *password = @"p4ssw0rd";
NSString *encryptedData = [AESCrypt encrypt:message password:password];
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.
Corresponding usage in Ruby
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"
encrypted_data = AESCrypt.encrypt(message, password)
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.