diff options
Diffstat (limited to 'src/block/lion/lion.h')
-rw-r--r-- | src/block/lion/lion.h | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/src/block/lion/lion.h b/src/block/lion/lion.h deleted file mode 100644 index 37aad19f2..000000000 --- a/src/block/lion/lion.h +++ /dev/null @@ -1,67 +0,0 @@ -/* -* Lion -* (C) 1999-2007 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#ifndef BOTAN_LION_H__ -#define BOTAN_LION_H__ - -#include <botan/block_cipher.h> -#include <botan/stream_cipher.h> -#include <botan/hash.h> - -namespace Botan { - -/** -* Lion is a block cipher construction designed by Ross Anderson and -* Eli Biham, described in "Two Practical and Provably Secure Block -* Ciphers: BEAR and LION". It has a variable block size and is -* designed to encrypt very large blocks (up to a megabyte) - -* http://www.cl.cam.ac.uk/~rja14/Papers/bear-lion.pdf -*/ -class BOTAN_DLL Lion : public BlockCipher - { - public: - void encrypt_n(const byte in[], byte out[], size_t blocks) const; - void decrypt_n(const byte in[], byte out[], size_t blocks) const; - - size_t block_size() const { return BLOCK_SIZE; } - - Key_Length_Specification key_spec() const - { - return Key_Length_Specification(2, 2*hash->output_length(), 2); - } - - void clear(); - std::string name() const; - BlockCipher* clone() const; - - /** - * @param hash the hash to use internally - * @param cipher the stream cipher to use internally - * @param block_size the size of the block to use - */ - Lion(HashFunction* hash, - StreamCipher* cipher, - size_t block_size); - - Lion(const Lion&) = delete; - Lion& operator=(const Lion&) = delete; - - ~Lion() { delete hash; delete cipher; } - private: - void key_schedule(const byte[], size_t); - - const size_t BLOCK_SIZE, LEFT_SIZE, RIGHT_SIZE; - - HashFunction* hash; - StreamCipher* cipher; - secure_vector<byte> key1, key2; - }; - -} - -#endif |