aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorlloyd <lloyd@randombit.net>2008-09-28 17:11:26 +0000
committerlloyd <lloyd@randombit.net>2008-09-28 17:11:26 +0000
commitda412e1f1169d4b51bbef84eb2948b73416bd48a (patch)
tree6878b5a1201b009f3ee89e7e7d3514f4eeffa001 /src
parent1680c75cd7f583f213493731c50eeb6dd6fea74a (diff)
Modularize CBC-MAC
Diffstat (limited to 'src')
-rw-r--r--src/cbc_mac.cpp109
1 files changed, 0 insertions, 109 deletions
diff --git a/src/cbc_mac.cpp b/src/cbc_mac.cpp
deleted file mode 100644
index d5275b0ed..000000000
--- a/src/cbc_mac.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/*************************************************
-* CBC-MAC Source File *
-* (C) 1999-2007 Jack Lloyd *
-*************************************************/
-
-#include <botan/cbc_mac.h>
-#include <botan/lookup.h>
-#include <botan/xor_buf.h>
-#include <algorithm>
-
-namespace Botan {
-
-/*************************************************
-* Update an CBC-MAC Calculation *
-*************************************************/
-void CBC_MAC::add_data(const byte input[], u32bit length)
- {
- u32bit xored = std::min(OUTPUT_LENGTH - position, length);
- xor_buf(state + position, input, xored);
- position += xored;
-
- if(position < OUTPUT_LENGTH)
- return;
-
- e->encrypt(state);
- input += xored;
- length -= xored;
- while(length >= OUTPUT_LENGTH)
- {
- xor_buf(state, input, OUTPUT_LENGTH);
- e->encrypt(state);
- input += OUTPUT_LENGTH;
- length -= OUTPUT_LENGTH;
- }
-
- xor_buf(state, input, length);
- position = length;
- }
-
-/*************************************************
-* Finalize an CBC-MAC Calculation *
-*************************************************/
-void CBC_MAC::final_result(byte mac[])
- {
- if(position)
- e->encrypt(state);
-
- copy_mem(mac, state.begin(), state.size());
- state.clear();
- position = 0;
- }
-
-/*************************************************
-* CBC-MAC Key Schedule *
-*************************************************/
-void CBC_MAC::key(const byte key[], u32bit length)
- {
- e->set_key(key, length);
- }
-
-/*************************************************
-* Clear memory of sensitive data *
-*************************************************/
-void CBC_MAC::clear() throw()
- {
- e->clear();
- state.clear();
- position = 0;
- }
-
-/*************************************************
-* Return the name of this type *
-*************************************************/
-std::string CBC_MAC::name() const
- {
- return "CBC-MAC(" + e->name() + ")";
- }
-
-/*************************************************
-* Return a clone of this object *
-*************************************************/
-MessageAuthenticationCode* CBC_MAC::clone() const
- {
- return new CBC_MAC(e->name());
- }
-
-/*************************************************
-* CBC-MAC Constructor *
-*************************************************/
-CBC_MAC::CBC_MAC(const std::string& cipher) :
- MessageAuthenticationCode(block_size_of(cipher),
- min_keylength_of(cipher),
- max_keylength_of(cipher),
- keylength_multiple_of(cipher)),
- state(block_size_of(cipher))
- {
- e = get_block_cipher(cipher);
- position = 0;
- }
-
-/*************************************************
-* CBC-MAC Destructor *
-*************************************************/
-CBC_MAC::~CBC_MAC()
- {
- delete e;
- }
-
-}