Я должен перегрузить класс ниже дважды. Как только я должен реализовать его с AES (Rijndael) и один раз с Twofish. Однако я не могу найти простой реализации, которая позволяет шифровать только один блок. Реализации, которые я нашел, включаются с включенными CBC и Padding. Любой намек?Библиотека AES или код для C++
#ifndef CRYPTER_H
#define CRYPTER_H
#include <valarray>
class Crypter {
public:
Crypter();
virtual ~Crypter();
//Encrypts a single block of 16 byte.
virtual std::valarray<unsigned char> encrypt(std::valarray<unsigned char> plaintext,
std::valarray<unsigned char> passphrase) = 0;
//Decrypts a single block of 16 byte.
virtual std::valarray<unsigned char> decrypt(std::valarray<unsigned char> cyphertext,
std::valarray<unsigned char> passphrase) = 0;
};
#endif /* CRYPTER_H */
Вы проверили OpenSSL и Crypto ++? –
openssl поддерживает режим CTR, и поэтому, возможно, crypto ++ – Jens
Попробуйте также PolarSSL aka mbedTLS. Существует реализация AES. – i486