Cryptography/Open Source Cryptography
From Wikibooks, open books for an open world
- The GNU Crypto project (http://www.gnu.org/software/gnu-crypto/), part of the GNU project, released under the aegis of GNU, aims at providing free, versatile, high-quality, and provably correct implementations of cryptographic primitives and tools in the Java programming language for use by programmers and end-users. Its license is similar to using the LGPL, except that static linking is permitted.
- Botan (http://botan.randombit.net/), a C++98 crypto library. It includes several cryptographic algorithms like AES, DES, SHA-1, RSA, DSA, Diffie-Hellman, and many others. It also supports X.509 certificates and CRLs, and PKCS #10 certificate requests, and has a high level filter/pipe message processing system. Easily portable to most systems and compilers, it is available under the BSD Revised license.
- Mhash ( http://mhash.sourceforge.net/ ) is an OpenSource (under GNU Lesser GPL) C library which provides a uniform interface to a large number of hash algorithms (SHA1, SHA160, SHA192, SHA224, SHA384, SHA512, HAVAL128, HAVAL160, HAVAL192, HAVAL224, HAVAL256, RIPEMD128, RIPEMD256, RIPEMD320, MD4, MD5, TIGER, TIGER128, TIGER160, ALDER32, CRC32, CRC32b, WHIRLPOOL, GOST, SNEFRU128, SNEFRU256), for Windows support you need to use cygwin to compile. A Python interface exists.
- NaCl (pronounced "salt") is the CACE Networking and Cryptography library, a public-domain library for Python, C, and C++, for public-key authenticated encryption and network communication.
- Crypto++ ( http://www.cryptopp.com/ ), an open source C++ class library of cryptographic algorithms (AES, RSA, DSA, SHA-512, etc.) and implementations of complete cryptographic schemes (GCM, CCM, EAX, etc.). Each individual file is in the public domain.
- Bouncy Castle ( http://www.bouncycastle.org/ ) includes APIs for both the Java and the C# programming languages.