Orwell is an easy to use Java library which provides cryptographic and privacy functionality for the pathologically paranoid. Orwell initially started off as the cryptographic library for Tinfoil-SMS as we did not see any cryptographic library that provided the level of security and privacy we wanted.
Orwell uses Stripped Castle, which is a modified version of the the excellent Bouncy Castle library as a basis for much of the functionality provided. Stripped Castle is the same as Bouncy Castle, just with slight enhancements made to support using Bouncy Castle on Android and to improve the security of the block ciphers used.
Orwell uses Elliptic Curve Cryptography as the basis for the public key exchange. The key exchange protocol uses a unique signing scheme based on the use of a priori information to facilitate signing and verifying the keys, rather than depending on a centralized Certificate Authority.
After the key exchange a hybrid encryption scheme is used known as Integrated Encryption Scheme (IES) to facilitate sending and receiving encrypted messages by using the Elliptic Curves and a priori information in order to derive the symmetric keys that are used.
All of the source code in this repository, where the copyright notice is indicated in the source code, is licensed under the GNU Lesser General Public License, Version 3
Under the LGPLV3 you are free to link to and use the resultant library binary files in derived works that are licensed under terms of your choice. However, any changes to the library source code must remain under the same licensing terms of the GPLV3. Essentially, any changes or bug fixes that you make to the library are much appreciated, submit a pull request or contact me!