As it says on the tin: this MR adds OpenSSL cryptographic backend.
Since in OpenSSL almost any operation fails I had to adjust several internal interfaces.
One additional change is
decrypt_verify function because OpenSSL insists on decrypting and verifying the tag itself (instead of in our code as for EAX for other backends). Since old
decrypt does not work at all on OpenSSL I've marked it as
#[deprecated] and adjusted all codepaths to use
Since there are just a few changes that can be done atomically this is one big commit. (I'm OK with extracting the adjustments into separate commits if you think this is good).
I've also fixed tests that required EAX and added one test for code that wasn't tested (thanks to tarpaulin for hints!).
The new backend is marked
experimental as I'm not really sure how to mark it :)
Related ticket: #333 (closed).