I'll be using AES from OpenSSL. I understand why I don't want to use ECB from reading pages like this Wikipedia article, which has a great example of what happens when you attempt to encrypt with electronic codebook.
But what I'm missing, is some sort of comparison table with all the other modes so I understand the positives and negatives of the various modes. Where can I find this information so I can make an informed decision on what mode to use?
Looks like OpenSSL's EVP api (which I believe is the recommended API when using OpenSSL?) only supports 2 modes [OpenSSL] – GCM and CCM – which drastically reduces my choices.
Unsurprisingly, that OpenSSL page is somewhat misleading or incomplete. Looking at
/usr/include/openssl/evp.h I see there are 30+ variations on AES to choose from, including:
- ...and many more!
So I'm back to reading about all the different modes so I can make a semi-intelligent choice as to which I should be using.