diff options
Diffstat (limited to 'src/modes/modebase.h')
-rw-r--r-- | src/modes/modebase.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/modes/modebase.h b/src/modes/modebase.h new file mode 100644 index 000000000..9793c23d2 --- /dev/null +++ b/src/modes/modebase.h @@ -0,0 +1,37 @@ +/************************************************* +* Block Cipher Mode Header File * +* (C) 1999-2007 Jack Lloyd * +*************************************************/ + +#ifndef BOTAN_MODEBASE_H__ +#define BOTAN_MODEBASE_H__ + +#include <botan/basefilt.h> +#include <botan/block_cipher.h> + +namespace Botan { + +/** +* This class represents an abstract block cipher mode +*/ +class BOTAN_DLL BlockCipherMode : public Keyed_Filter + { + public: + std::string name() const; + + BlockCipherMode(BlockCipher*, const std::string&, + u32bit, u32bit = 0, u32bit = 1); + + virtual ~BlockCipherMode() { delete cipher; } + protected: + void set_iv(const InitializationVector&); + const u32bit BLOCK_SIZE, BUFFER_SIZE, IV_METHOD; + const std::string mode_name; + BlockCipher* cipher; + SecureVector<byte> buffer, state; + u32bit position; + }; + +} + +#endif |