views:

2633

answers:

7

What is the best encryption library in C/C++ In terms of:

  • entropy
  • quality
  • ease of use
  • readability
  • portability
  • performance

What's your favorite and why do you like it?

+7  A: 

We've used OpenSSL with good success. Portable, standards compliant and easy to use.

Rob Walker
Except, if it comes from Debian. ;)
Alex B
the debian edition has been updated,however :)
warren
+4  A: 

I'm gonna have to go with LibTomCrypt. It's often overlooked for OpenSSL, but TomCrypt is just so lightweight and simple. As for quality, TomCrypt is widely accepted as top-quality encryption. Also, it's license is public domain which avoids the attribution hassle for your documentation that BSD licenses give you when writing commercial software.

bmdhacks
What is the current development status for LibTomCrypt? This is my question at http://stackoverflow.com/questions/2264060/libtomcrypt-and-libtommathdevelopment-status
Craig McQueen
A: 

My favorite is GNU's library:

[Libgcrypt][1]

It's performance is good, and its used EVERYWHERE so it's very well tested.

dicroce
A: 

The C++ version isn't out yet but goolge KeyCzar http://code.google.com/p/keyczar/ might be worth looking at. Whatever you feel about their business they do have a lot of smart programmers working for them.

Martin Beckett
+2  A: 

Crypto++ seem to have a good reputation

warren
you mean Crypto++?
Jason S
yes - let me edit that
warren
+4  A: 

I've used CryptoPP in the past (http://www.cryptopp.com/) and although its API style and programming paradigms take a little getting used to, I liked it in the end. It provides a wide range of symmetric and asymmetric algorithms with much flexibility. Documentation is so-so, the API docs are there but there's little 'high-level' overview and simple sample code. I ended up puzzling together pieces of code from around the net. It was easy to integrate into my project (linked statically). I'm using MSVC - 2003 when I started using it, now switched to 2008. It's portable across several platforms (check out the website). I've always used the default RNG, don't know which one that is.

Roel
A: 

GPGme. Simple to use and compatible with the OpenPGP format

bortzmeyer