I'm having some issues with encryption/decryption with different cipher suites.
On one hand, I am using PHP to encrypt a string:
base64_encode(openssl_encrypt($data, "AES-128-CBC", $password, OPENSSL_RAW_DATA, "0123456789abdefg"));
And on the other hand, I am decrypting it with CryptoPP:
std::string decrypted = decrypt(dl_notdecrypted, decryption_key, "0123456789abdefg");
The function "decrypt":
std::string decrypt(const std::string& str_in, const std::string& key, const std::string& iv)
{
std::string str_out;
CryptoPP::CBC_Mode<CryptoPP::AES>::Decryption decryption((byte*)key.c_str(), key.length(), (byte*)iv.c_str());
CryptoPP::StringSource decryptor(str_in, true,
new CryptoPP::Base64Decoder(
new CryptoPP::StreamTransformationFilter(decryption,
new CryptoPP::StringSink(str_out)
)
)
);
return str_out;
}
It fails with a "Unknown Exception". I am guessing this is a padding issue with OpenSSL, but I have no clue how I am supposed to fix this.
If there is any help available with this, that would be very nice.