diff options
Diffstat (limited to 'src/lib/mac/cbc_mac')
-rw-r--r-- | src/lib/mac/cbc_mac/cbc_mac.cpp | 99 | ||||
-rw-r--r-- | src/lib/mac/cbc_mac/cbc_mac.h | 50 | ||||
-rw-r--r-- | src/lib/mac/cbc_mac/info.txt | 7 |
3 files changed, 0 insertions, 156 deletions
diff --git a/src/lib/mac/cbc_mac/cbc_mac.cpp b/src/lib/mac/cbc_mac/cbc_mac.cpp deleted file mode 100644 index ba403b564..000000000 --- a/src/lib/mac/cbc_mac/cbc_mac.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* -* CBC-MAC -* (C) 1999-2007 Jack Lloyd -* -* Botan is released under the Simplified BSD License (see license.txt) -*/ - -#include <botan/cbc_mac.h> - -namespace Botan { - -/* -* Update an CBC-MAC Calculation -*/ -void CBC_MAC::add_data(const uint8_t input[], size_t length) - { - verify_key_set(m_state.empty() == false); - - size_t xored = std::min(output_length() - m_position, length); - xor_buf(&m_state[m_position], input, xored); - m_position += xored; - - if(m_position < output_length()) - return; - - m_cipher->encrypt(m_state); - input += xored; - length -= xored; - while(length >= output_length()) - { - xor_buf(m_state, input, output_length()); - m_cipher->encrypt(m_state); - input += output_length(); - length -= output_length(); - } - - xor_buf(m_state, input, length); - m_position = length; - } - -/* -* Finalize an CBC-MAC Calculation -*/ -void CBC_MAC::final_result(uint8_t mac[]) - { - verify_key_set(m_state.empty() == false); - - if(m_position) - m_cipher->encrypt(m_state); - - copy_mem(mac, m_state.data(), m_state.size()); - zeroise(m_state); - m_position = 0; - } - -/* -* CBC-MAC Key Schedule -*/ -void CBC_MAC::key_schedule(const uint8_t key[], size_t length) - { - m_state.resize(m_cipher->block_size()); - m_cipher->set_key(key, length); - } - -/* -* Clear memory of sensitive data -*/ -void CBC_MAC::clear() - { - m_cipher->clear(); - zap(m_state); - m_position = 0; - } - -/* -* Return the name of this type -*/ -std::string CBC_MAC::name() const - { - return "CBC-MAC(" + m_cipher->name() + ")"; - } - -/* -* Return a clone of this object -*/ -MessageAuthenticationCode* CBC_MAC::clone() const - { - return new CBC_MAC(m_cipher->clone()); - } - -/* -* CBC-MAC Constructor -*/ -CBC_MAC::CBC_MAC(BlockCipher* cipher) : - m_cipher(cipher) - { - } - -} diff --git a/src/lib/mac/cbc_mac/cbc_mac.h b/src/lib/mac/cbc_mac/cbc_mac.h deleted file mode 100644 index ed4eb2bd1..000000000 --- a/src/lib/mac/cbc_mac/cbc_mac.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -* CBC-MAC -* (C) 1999-2007 Jack Lloyd -* -* Botan is released under the Simplified BSD License (see license.txt) -*/ - -#ifndef BOTAN_CBC_MAC_H_ -#define BOTAN_CBC_MAC_H_ - -#include <botan/mac.h> -#include <botan/block_cipher.h> - -BOTAN_FUTURE_INTERNAL_HEADER(cbc_mac.h) - -namespace Botan { - -/** -* CBC-MAC -*/ -class BOTAN_PUBLIC_API(2,0) CBC_MAC final : public MessageAuthenticationCode - { - public: - std::string name() const override; - MessageAuthenticationCode* clone() const override; - size_t output_length() const override { return m_cipher->block_size(); } - void clear() override; - - Key_Length_Specification key_spec() const override - { - return m_cipher->key_spec(); - } - - /** - * @param cipher the block cipher to use - */ - explicit CBC_MAC(BlockCipher* cipher); - private: - void add_data(const uint8_t[], size_t) override; - void final_result(uint8_t[]) override; - void key_schedule(const uint8_t[], size_t) override; - - std::unique_ptr<BlockCipher> m_cipher; - secure_vector<uint8_t> m_state; - size_t m_position = 0; - }; - -} - -#endif diff --git a/src/lib/mac/cbc_mac/info.txt b/src/lib/mac/cbc_mac/info.txt deleted file mode 100644 index 994a63872..000000000 --- a/src/lib/mac/cbc_mac/info.txt +++ /dev/null @@ -1,7 +0,0 @@ -<defines> -CBC_MAC -> 20131128 -</defines> - -<requires> -block -</requires> |