/************************************************* * CBC Mode Header File * * (C) 1999-2008 The Botan Project * *************************************************/ #ifndef BOTAN_CBC_H__ #define BOTAN_CBC_H__ #include #include namespace Botan { /************************************************* * CBC Encryption * *************************************************/ class CBC_Encryption : public BlockCipherMode { public: CBC_Encryption(const std::string&, const std::string&); CBC_Encryption(const std::string&, const std::string&, const SymmetricKey&, const InitializationVector&); private: std::string name() const; void write(const byte[], u32bit); void end_msg(); const BlockCipherModePaddingMethod* padder; }; /************************************************* * CBC Decryption * *************************************************/ class CBC_Decryption : public BlockCipherMode { public: CBC_Decryption(const std::string&, const std::string&); CBC_Decryption(const std::string&, const std::string&, const SymmetricKey&, const InitializationVector&); private: std::string name() const; void write(const byte[], u32bit); void end_msg(); const BlockCipherModePaddingMethod* padder; SecureVector temp; }; } #endif