Cross-language AES Encryptor/Decryptor data format.
The primary targets are Swift and Objective-C, but implementations are available in C, C++, C#, Erlang, Go, Haskell, Java, PHP, Python, Javascript, and Ruby.
The data format includes all the metadata required to securely implement AES encryption, as described in “Properly encrypting with AES with CommonCrypto,” and iOS 6 Programming Pushing the Limits, Chapter 15. Specifically, it includes:
- AES-256 encryption
- CBC mode
- Password stretching with PBKDF2
- Password salting
- Random IV
- Encrypt-then-hash HMAC
