тот же подход, что и у @Jon, немного упрощенный
std::string ciphertext = "..."; // what Python encryption produces
std::string decryptedtext;
byte key[ CryptoPP::AES::DEFAULT_KEYLENGTH ], iv[ CryptoPP::AES::BLOCKSIZE ];
// populate key and iv with the correct values
CryptoPP::CBC_Mode< CryptoPP::AES >::Decryption decryptor;
decryptor.SetKeyWithIV(key, sizeof(key), iv);
CryptoPP::StringSource(ciphertext, true,
new CryptoPP::StreamTransformationFilter( decryptor,
new CryptoPP::StringSink( decryptedtext )
)
);
Параметр true
для CryptoPP::StringSource
означает «потреблять весь ввод»
Обратите внимание, что (очевидно) вам нужен ваш C ++ расшифровщик, чтобы знать IV, который вы использовали для шифрования. Поскольку вы генерируете случайный IV в Python, популярный метод заключается в добавлении IV к зашифрованному тексту.