aboutsummaryrefslogtreecommitdiffstats
path: root/src/block/block_cipher.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/block/block_cipher.h')
-rw-r--r--src/block/block_cipher.h162
1 files changed, 0 insertions, 162 deletions
diff --git a/src/block/block_cipher.h b/src/block/block_cipher.h
deleted file mode 100644
index 5cbd6bdae..000000000
--- a/src/block/block_cipher.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
-* Block Cipher Base Class
-* (C) 1999-2009 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#ifndef BOTAN_BLOCK_CIPHER_H__
-#define BOTAN_BLOCK_CIPHER_H__
-
-#include <botan/sym_algo.h>
-
-namespace Botan {
-
-/**
-* This class represents a block cipher object.
-*/
-class BOTAN_DLL BlockCipher : public SymmetricAlgorithm
- {
- public:
-
- /**
- * @return block size of this algorithm
- */
- virtual size_t block_size() const = 0;
-
- /**
- * @return native parallelism of this cipher in blocks
- */
- virtual size_t parallelism() const { return 1; }
-
- /**
- * @return prefererred parallelism of this cipher in bytes
- */
- size_t parallel_bytes() const
- {
- return parallelism() * block_size() * BOTAN_BLOCK_CIPHER_PAR_MULT;
- }
-
- /**
- * Encrypt a block.
- * @param in The plaintext block to be encrypted as a byte array.
- * Must be of length block_size().
- * @param out The byte array designated to hold the encrypted block.
- * Must be of length block_size().
- */
- void encrypt(const byte in[], byte out[]) const
- { encrypt_n(in, out, 1); }
-
- /**
- * Decrypt a block.
- * @param in The ciphertext block to be decypted as a byte array.
- * Must be of length block_size().
- * @param out The byte array designated to hold the decrypted block.
- * Must be of length block_size().
- */
- void decrypt(const byte in[], byte out[]) const
- { decrypt_n(in, out, 1); }
-
- /**
- * Encrypt a block.
- * @param block the plaintext block to be encrypted
- * Must be of length block_size(). Will hold the result when the function
- * has finished.
- */
- void encrypt(byte block[]) const { encrypt_n(block, block, 1); }
-
- /**
- * Decrypt a block.
- * @param block the ciphertext block to be decrypted
- * Must be of length block_size(). Will hold the result when the function
- * has finished.
- */
- void decrypt(byte block[]) const { decrypt_n(block, block, 1); }
-
- /**
- * Encrypt one or more blocks
- * @param block the input/output buffer (multiple of block_size())
- */
- template<typename Alloc>
- void encrypt(std::vector<byte, Alloc>& block) const
- {
- return encrypt_n(&block[0], &block[0], block.size() / block_size());
- }
-
- /**
- * Decrypt one or more blocks
- * @param block the input/output buffer (multiple of block_size())
- */
- template<typename Alloc>
- void decrypt(std::vector<byte, Alloc>& block) const
- {
- return decrypt_n(&block[0], &block[0], block.size() / block_size());
- }
-
- /**
- * Encrypt one or more blocks
- * @param in the input buffer (multiple of block_size())
- * @param out the output buffer (same size as in)
- */
- template<typename Alloc, typename Alloc2>
- void encrypt(const std::vector<byte, Alloc>& in,
- std::vector<byte, Alloc2>& out) const
- {
- return encrypt_n(&in[0], &out[0], in.size() / block_size());
- }
-
- /**
- * Decrypt one or more blocks
- * @param in the input buffer (multiple of block_size())
- * @param out the output buffer (same size as in)
- */
- template<typename Alloc, typename Alloc2>
- void decrypt(const std::vector<byte, Alloc>& in,
- std::vector<byte, Alloc2>& out) const
- {
- return decrypt_n(&in[0], &out[0], in.size() / block_size());
- }
-
- /**
- * Encrypt one or more blocks
- * @param in the input buffer (multiple of block_size())
- * @param out the output buffer (same size as in)
- * @param blocks the number of blocks to process
- */
- virtual void encrypt_n(const byte in[], byte out[],
- size_t blocks) const = 0;
-
- /**
- * Decrypt one or more blocks
- * @param in the input buffer (multiple of block_size())
- * @param out the output buffer (same size as in)
- * @param blocks the number of blocks to process
- */
- virtual void decrypt_n(const byte in[], byte out[],
- size_t blocks) const = 0;
-
- /**
- * @return new object representing the same algorithm as *this
- */
- virtual BlockCipher* clone() const = 0;
- };
-
-/**
-* Represents a block cipher with a single fixed block size
-*/
-template<size_t BS, size_t KMIN, size_t KMAX = 0, size_t KMOD = 1>
-class Block_Cipher_Fixed_Params : public BlockCipher
- {
- public:
- enum { BLOCK_SIZE = BS };
- size_t block_size() const { return BS; }
-
- Key_Length_Specification key_spec() const
- {
- return Key_Length_Specification(KMIN, KMAX, KMOD);
- }
- };
-
-}
-
-#endif