news platforms download manual SVN FAQ wiki mailing lists related links

Crypto++® Library 5.6.0

What is it?

Crypto++ Library is a free C++ class library of cryptographic schemes. Currently the library contains the following algorithms:

algorithm typename
authenticated encryption schemes GCM, CCM, EAX
high speed stream ciphers Panama, Sosemanuk, Salsa20, XSalsa20
AES and AES candidates AES (Rijndael), RC6, MARS, Twofish, Serpent, CAST-256
other block ciphers IDEA, Triple-DES (DES-EDE2 and DES-EDE3), Camellia, SEED, RC5, Blowfish, TEA, XTEA, Skipjack, SHACAL-2
block cipher modes of operation ECB, CBC, CBC ciphertext stealing (CTS), CFB, OFB, counter mode (CTR)
message authentication codes VMAC, HMAC, CMAC, CBC-MAC, DMAC, Two-Track-MAC
hash functions SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, and SHA-512), Tiger, WHIRLPOOL, RIPEMD-128, RIPEMD-256, RIPEMD-160, RIPEMD-320
public-key cryptography RSA, DSA, ElGamal, Nyberg-Rueppel (NR), Rabin-Williams (RW), LUC, LUCELG, DLIES (variants of DHAES), ESIGN
padding schemes for public-key systems PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363 EMSA2 and EMSA5
key agreement schemes Diffie-Hellman (DH), Unified Diffie-Hellman (DH2), Menezes-Qu-Vanstone (MQV), LUCDIF, XTR-DH
elliptic curve cryptography ECDSA, ECNR, ECIES, ECDH, ECMQV
insecure or obsolescent algorithms retained for backwards compatibility and historical value MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL 3.0, WAKE, WAKE-OFB, DESX (DES-XEX3), RC2, SAFER, 3-WAY, GOST, SHARK, CAST-128, Square

Other features include:

License

The License of Crypto++ is somewhat unusual amongst open source projects. A distinction is made between the library as a compilation (i.e., collection), which is copyrighted by Wei Dai, and the individual files in it, which are public domain (with the exception of mars.cpp which is subject to its own license, included in that file).

The library is copyrighted as a compilation in order to place certain disclaimers (regarding warranty, export, and patents) in the license and to keep the attributions and public domain declarations intact when Crypto++ is distributed in source code form. The fact that individual files are public domain means that legally you can place code segments, entire files, or small sets of files (up to the limit set by fair use) into your own project and do anything you want with them without worrying about the copyright.

Because one purpose of the project is to act as a repository of public domain (not copyrighted) cryptographic source code, the code in Crypto++ was either written specifically for this project by its contributors and placed in the public domain, or derived from other sources that are public domain (again with the exception of mars.cpp).

What's new?

Platforms

These porting notes will help you compile Crypto++ on various platforms. If you need to compile Crypto++ 4.2 or earlier, please click here.

For detailed build status on various compiler/OS/CPU combinations and for platforms not listed below, please see this FAQ entry.

To apply these patches, run "patch < patchfile" in the directory where you've unzipped the Crypto++ source code files. "patch" is a standard utility on Unix systems. On Windows you can use patch from Cygwin or download a port of patch. See this Wikipedia article for more information.

Compiler OS To Compile
Crypto++ 5.1
To Compile
Crypto++ 5.2.1
To Compile
Crypto++ 5.4
To Compile
Crypto++ 5.5.2
To Compile
Crypto++ 5.6.0
MSVC 6.0 SP5/SP6 WIN32 no changes needed
Processor Pack supported/recommended
patch if Processor Pack is not installed patch if Processor Pack is not installed no changes needed
MSVC .NET 2002 SP1 no changes needed see note patch available not tested
MSVC .NET 2003 SP1 patch available no changes needed use "cryptest.dsw" workspace to build
MSVC 2005 SP1 WIN32/WIN64 not available no changes needed no changes needed
MSVC 2008 SP1 not available
Turbo C++ 2006/
Borland C++Builder 2006, 2007, 2009
WIN32 add missing project file
GCC 2.95.2 UNIX/WIN32/BeOS/
MSDOS (DJGPP 2.03)
no changes needed not tested
GCC 3.3 UNIX/
Mac OS X (Darwin)/
WIN32 (Cygwin/MinGW)
no changes needed no changes needed no changes needed
GCC 3.4 patch by Mikael Kilpeläinen
GCC 4.0, 4.1, 4.2, 4.3 not available patch by Jens Peter Secher
Apple GCC 932.1 (2.95.2) Mac OS X (Darwin) no changes needed not tested not tested
Apple GCC 1161 (3.1) no changes needed
CodeWarrior Pro 8.3 Mac OS/WIN32 fixed project file available no changes needed not tested
Sun Studio 11, 12 (CC 5.8, 5.9) Solaris not available patch, then run "gmake CXX=CC" "gmake CXX=CC"
Intel C++ Compiler 9.1, 10.0 Windows not available no changes needed not tested
Linux "make CXX=icpc"
Intel C++ Compiler 11.0
Linux not tested "make CXX=icpc"

Download

US Original SourceForge Mirrors
Crypto++ 5.0 Crypto++ 5.0
Crypto++ 5.1 Crypto++ 5.1
Crypto++ 5.2 Crypto++ 5.2
Crypto++ 5.2.1 Crypto++ 5.2.1
Crypto++ 5.4 Crypto++ 5.4
Crypto++ 5.5.1 Crypto++ 5.5.1
Crypto++ 5.5.2 Crypto++ 5.5.2
Crypto++ 5.6.0 Crypto++ 5.6.0

Remember to use the "-a" (auto-convert text files) option when unzipping on a Unix machine. After downloading, please read the Readme.txt included in the zip archive for build instructions and other important notes.

The zip files should have the following hashes:

crypto50.zip:

MD5: fe8d4ef49b69874763f6dab30cbb6292
SHA-1: d0d83e60b6c03408370ca6c13aa5cac5e2220bf1
RIPEMD-160: 150db13d4df29020829f0fe817f54ee5a0595e50
SHA-256: c67c64693f32195e69d3d7e5bdf47afbd91e8b69d0407a2bc68a745d9dbebb26
crypto51.zip:
MD5: f4bfd4ac39dc1b7f0764d61a1ec4df16
SHA-1: 95905714c85f6fb563e66edb5478818df787fe2d
RIPEMD-160: 8b7420c421be39e9976f1ce2a80840d7ed6b38ef
SHA-256: d183a98c28feb1e0f7d21d177469831e5052aa8ca446475e95a5ebe7a7feb3cd
crypto52.zip:
MD5: 5c09d632ef36e889f1727fb50cb21c4d
SHA-1: 1fef7da7d7cdc23a4d51906d585e0b91c163693d
RIPEMD-160: abc73242f96b2bbd0a09786803a693a2883c1003
SHA-256: 103bf2cab8f3a0e245c50af9992aca1583796b4c2dcccc16a0207a09a17a2a66
cryptopp521.zip:
MD5: 82a00c44235ccbae2bedf9cb16c40ac3
SHA-1: 4b84311d1cbde04df5d88b5375d29c2e35ccb89c
RIPEMD-160: 7c4d3cf702a1cf38f2a19cb5cebf170dabc23a35
SHA-256: d578d297f1804a6b1c3f9090cc77091e49ae6d0311846a45117e79d4d20c2a39
cryptopp54.zip:
MD5: 40e760012d1b0b7e316676ef09e0a814
SHA-1: 88f6534b713fbbf5c1af5fdddc402b221eea73bf
RIPEMD-160: 8efd6d1ab9a34f69dfa2ef04852eff0efb69b47f
SHA-256: fa9aceb1b46c886b5c13fe5aa3d0cdbd74b4a2dd894e290cbdbfd17fe8a7fe5a
cryptopp551.zip:
SHA-1: 9e30568f0fd653e5626038d4e424dbc2cd637b85
SHA-512: 24e1c572f78b9ee9e5836c81707f6cf458ef0dbc234ba3c2937f5088342ced67b72bff73ba25d8f6d0f4367295c4606ddf837467823668777b82501bfca0f0ce
WHIRLPOOL: 5521685af5a503c7f914c7564d5a8f2d2677c35716890bfe65e271bff2c0a71dcf90dfcb8a1a6ade250bfcde76ee8b849deac689e56da56dd2d912e42f2d3931
cryptopp552.zip:
SHA-1: 18efe451b3c682f40db75dc2b09cb448a835e7d6
SHA-512: 62fa0aa79081b14cc87345c5364182d83cd1bde6ea732bcecc5cae02879d218159b324a0872d6ef70c1b1916cadb2243036918cbcf962f78b84c788c55d7520f
WHIRLPOOL: ff32165cd7bac87004d5a60550226ef6391901185d2c2262f58b278d6cc705fb74d5cfaabbcdc47fed16448b52499b061ab0bb07556b95e3ccd4b4441cbd3952
cryptopp560.zip:
SHA-1: b836783ebd72d5bc6a916620ab2b1ecec316fef1
SHA-512: 37c5820404f9fa94e4ebe595865de17af13876bf5ef20c8612e019427893227f80095f21ee71c6caf781f14a493dc56805eb965e909f8fdce31a9f748b772655
WHIRLPOOL: fab7114bcd3eef5df0ef9d794ccb5f54670a7ef27f57f9662339e27d42dd2d19223ebee395e6a17e0fb2d48ea74139f3093f688db14bdefa650fb27f520c006b

While You Are Downloading

FIPS 140-2 Conformance

The following versions of Crypto++ have been validated by NIST and CSE for FIPS 140-2 level 1 conformance. Because only compiled executable code can receive FIPS validation, these versions are listed separately from the other source-code-only downloads. These download packages include the validated binary object, header files, API reference, and FIPS related documentation. Source code is also included for debugging purposes. (You cannot compile Crypto++ yourself and claim FIPS 140-2 conformance on the resulting module, unless the it goes through the validation process again.)

Because these packages contain compiled executable code, they have been signed with a PGP public key which is included inside the package. You can verify the PGP key's fingerprint by following the certificate link and obtaining a copy of the Crypto++ Library Security Policy from NIST's web site. The fingerprint is given in the Security Policy.

Mailing Lists

There are two mailing lists for Crypto++.

As a courtesy, please join the discussion list with your real name instead of an online handle. When posting a question to the mailing list, be sure to provide the following information, if applicable:

To Contribute

If you wish to contribute a bug fix or new feature to Crypto++, please post it to the mailing list if its a small patch. Contact Wei Dai directly if the amount of code is more substantial.

Paid Support and Consulting

If you are interested in paid support for Crypto++ or consulting on a Crypto++ related project, please take a look at this list of companies and individuals providing such services. This listing is a free service for the Crypto++ community, and anyone may sign up to be listed by following the above link.


hosted by ibiblio Valid HTML 4.0 Transitional
visitors since 4/7/2004.
Written by: Wei Dai Last modified: 3/15/2009