以下のクラスを 2 回オーバーロードすることになっています。1 回は AES (Rijndael) で、もう 1 回は Twofish で実装することになっています。ただし、単一のブロックのみを暗号化できる単純な実装が見つからないようです。私が見つけた実装には、CBC とパディングが含まれています。ヒントはありますか?
#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 */