r = EVP_DecryptFinal_ex (ctx, plaintext.data().get() + len, &len);
if (r != 1) {
throw CryptoError ("could not finish decryption");
r = EVP_DecryptFinal_ex (ctx, plaintext.data().get() + len, &len);
if (r != 1) {
throw CryptoError ("could not finish decryption");