From 90391ca3d85e6bc65da3a8951e1765692233e803 Mon Sep 17 00:00:00 2001 From: lloyd <lloyd@randombit.net> Date: Sat, 8 Nov 2008 18:48:46 +0000 Subject: Move declaration of MessageAuthenticationCode base class to mac.h (from base.h) --- src/core/base.cpp | 13 +---------- src/core/base.h | 35 ---------------------------- src/core/info.txt | 1 + src/core/mac.h | 56 +++++++++++++++++++++++++++++++++++++++++++++ src/filters/filters.h | 4 +++- src/kdf/tls_prf/prf_tls.h | 2 +- src/libstate/engine.h | 2 ++ src/mac/cbc_mac/cbc_mac.h | 2 +- src/mac/cmac/cmac.h | 2 +- src/mac/hmac/hmac.h | 2 +- src/mac/ssl3mac/ssl3_mac.h | 1 + src/mac/x919_mac/x919_mac.h | 2 +- src/modes/eax/eax.h | 1 + src/rng/hmac_rng/hmac_rng.h | 2 +- src/rng/randpool/randpool.h | 1 + src/s2k/pbkdf2/pbkdf2.h | 2 +- 16 files changed, 73 insertions(+), 55 deletions(-) create mode 100644 src/core/mac.h diff --git a/src/core/base.cpp b/src/core/base.cpp index 0682affe9..ff7fa5d4e 100644 --- a/src/core/base.cpp +++ b/src/core/base.cpp @@ -4,6 +4,7 @@ *************************************************/ #include <botan/base.h> +#include <botan/mac.h> #include <botan/version.h> namespace Botan { @@ -75,18 +76,6 @@ BufferedComputation::BufferedComputation(u32bit olen) : OUTPUT_LENGTH(olen) { } -/************************************************* -* MessageAuthenticationCode Constructor * -*************************************************/ -MessageAuthenticationCode::MessageAuthenticationCode(u32bit mlen, - u32bit key_min, - u32bit key_max, - u32bit key_mod) : - BufferedComputation(mlen), - SymmetricAlgorithm(key_min, key_max, key_mod) - { - } - /************************************************* * Default MAC verification operation * *************************************************/ diff --git a/src/core/base.h b/src/core/base.h index b7b50c402..64186f903 100644 --- a/src/core/base.h +++ b/src/core/base.h @@ -298,41 +298,6 @@ class BOTAN_DLL BufferedComputation virtual void final_result(byte[]) = 0; }; -/** -* This class represents Message Authentication Code (MAC) objects. -*/ -class BOTAN_DLL MessageAuthenticationCode : public BufferedComputation, - public SymmetricAlgorithm - { - public: - /** - * Verify a MAC. - * @param in the MAC to verify as a byte array - * @param length the length of the byte array - * @return true if the MAC is valid, false otherwise - */ - virtual bool verify_mac(const byte[], u32bit); - - /** - * Get a new object representing the same algorithm as *this - */ - virtual MessageAuthenticationCode* clone() const = 0; - - /** - * Get the name of this algorithm. - * @return the name of this algorithm - */ - virtual std::string name() const = 0; - - /** - * Reset the internal state of this object. - */ - virtual void clear() throw() = 0; - - MessageAuthenticationCode(u32bit, u32bit, u32bit = 0, u32bit = 1); - virtual ~MessageAuthenticationCode() {} - }; - } #endif diff --git a/src/core/info.txt b/src/core/info.txt index 34705048b..45c8f7b9e 100644 --- a/src/core/info.txt +++ b/src/core/info.txt @@ -26,6 +26,7 @@ enums.h exceptn.cpp exceptn.h hash.h +mac.h mem_pool.cpp mem_pool.h mutex.h diff --git a/src/core/mac.h b/src/core/mac.h new file mode 100644 index 000000000..e7bdada14 --- /dev/null +++ b/src/core/mac.h @@ -0,0 +1,56 @@ +/** +* Base class for message authentiction codes +* (C) 1999-2007 Jack Lloyd +*/ + +#ifndef BOTAN_MESSAGE_AUTH_CODE_BASE_H__ +#define BOTAN_MESSAGE_AUTH_CODE_BASE_H__ + +#include <botan/base.h> + +namespace Botan { + +/** +* This class represents Message Authentication Code (MAC) objects. +*/ +class BOTAN_DLL MessageAuthenticationCode : public BufferedComputation, + public SymmetricAlgorithm + { + public: + /** + * Verify a MAC. + * @param in the MAC to verify as a byte array + * @param length the length of the byte array + * @return true if the MAC is valid, false otherwise + */ + virtual bool verify_mac(const byte[], u32bit); + + /** + * Get a new object representing the same algorithm as *this + */ + virtual MessageAuthenticationCode* clone() const = 0; + + /** + * Get the name of this algorithm. + * @return the name of this algorithm + */ + virtual std::string name() const = 0; + + /** + * Reset the internal state of this object. + */ + virtual void clear() throw() = 0; + + MessageAuthenticationCode(u32bit mac_len, + u32bit key_min, + u32bit key_max = 0, + u32bit key_mod = 1) : + BufferedComputation(mac_len), + SymmetricAlgorithm(key_min, key_max, key_mod) {} + + virtual ~MessageAuthenticationCode() {} + }; + +} + +#endif diff --git a/src/filters/filters.h b/src/filters/filters.h index dc9e22308..84e157742 100644 --- a/src/filters/filters.h +++ b/src/filters/filters.h @@ -6,9 +6,11 @@ #ifndef BOTAN_FILTERS_H__ #define BOTAN_FILTERS_H__ -#include <botan/pipe.h> #include <botan/base.h> #include <botan/hash.h> +#include <botan/mac.h> + +#include <botan/pipe.h> #include <botan/basefilt.h> #include <botan/data_snk.h> diff --git a/src/kdf/tls_prf/prf_tls.h b/src/kdf/tls_prf/prf_tls.h index e5ddc9c0f..7d29e883b 100644 --- a/src/kdf/tls_prf/prf_tls.h +++ b/src/kdf/tls_prf/prf_tls.h @@ -7,7 +7,7 @@ #define BOTAN_TLS_PRF_H__ #include <botan/kdf.h> -#include <botan/base.h> +#include <botan/mac.h> namespace Botan { diff --git a/src/libstate/engine.h b/src/libstate/engine.h index 10648943b..bd8d1b408 100644 --- a/src/libstate/engine.h +++ b/src/libstate/engine.h @@ -8,6 +8,8 @@ #include <botan/base.h> #include <botan/hash.h> +#include <botan/mac.h> + #include <botan/mutex.h> #include <botan/pow_mod.h> #include <botan/basefilt.h> diff --git a/src/mac/cbc_mac/cbc_mac.h b/src/mac/cbc_mac/cbc_mac.h index b3e2b08a9..2b30fedd2 100644 --- a/src/mac/cbc_mac/cbc_mac.h +++ b/src/mac/cbc_mac/cbc_mac.h @@ -6,7 +6,7 @@ #ifndef BOTAN_CBC_MAC_H__ #define BOTAN_CBC_MAC_H__ -#include <botan/base.h> +#include <botan/mac.h> namespace Botan { diff --git a/src/mac/cmac/cmac.h b/src/mac/cmac/cmac.h index b8af593e3..556d9dd9e 100644 --- a/src/mac/cmac/cmac.h +++ b/src/mac/cmac/cmac.h @@ -6,7 +6,7 @@ #ifndef BOTAN_CMAC_H__ #define BOTAN_CMAC_H__ -#include <botan/base.h> +#include <botan/mac.h> namespace Botan { diff --git a/src/mac/hmac/hmac.h b/src/mac/hmac/hmac.h index 8c19cec6a..122441120 100644 --- a/src/mac/hmac/hmac.h +++ b/src/mac/hmac/hmac.h @@ -6,7 +6,7 @@ #ifndef BOTAN_HMAC_H__ #define BOTAN_HMAC_H__ -#include <botan/base.h> +#include <botan/mac.h> #include <botan/hash.h> namespace Botan { diff --git a/src/mac/ssl3mac/ssl3_mac.h b/src/mac/ssl3mac/ssl3_mac.h index 769602aa3..b9875a0c1 100644 --- a/src/mac/ssl3mac/ssl3_mac.h +++ b/src/mac/ssl3mac/ssl3_mac.h @@ -7,6 +7,7 @@ #define BOTAN_SSL3_MAC_H__ #include <botan/hash.h> +#include <botan/mac.h> namespace Botan { diff --git a/src/mac/x919_mac/x919_mac.h b/src/mac/x919_mac/x919_mac.h index b10b3e709..85b8254a5 100644 --- a/src/mac/x919_mac/x919_mac.h +++ b/src/mac/x919_mac/x919_mac.h @@ -6,7 +6,7 @@ #ifndef BOTAN_ANSI_X919_MAC_H__ #define BOTAN_ANSI_X919_MAC_H__ -#include <botan/base.h> +#include <botan/mac.h> namespace Botan { diff --git a/src/modes/eax/eax.h b/src/modes/eax/eax.h index 676e5334e..f3fc6970c 100644 --- a/src/modes/eax/eax.h +++ b/src/modes/eax/eax.h @@ -7,6 +7,7 @@ #define BOTAN_EAX_H__ #include <botan/basefilt.h> +#include <botan/mac.h> namespace Botan { diff --git a/src/rng/hmac_rng/hmac_rng.h b/src/rng/hmac_rng/hmac_rng.h index 4b09c4d13..b9ea064c3 100644 --- a/src/rng/hmac_rng/hmac_rng.h +++ b/src/rng/hmac_rng/hmac_rng.h @@ -6,8 +6,8 @@ #ifndef BOTAN_HMAC_RNG_H__ #define BOTAN_HMAC_RNG_H__ +#include <botan/mac.h> #include <botan/rng.h> -#include <botan/base.h> #include <vector> namespace Botan { diff --git a/src/rng/randpool/randpool.h b/src/rng/randpool/randpool.h index 16ffcefd6..198a34552 100644 --- a/src/rng/randpool/randpool.h +++ b/src/rng/randpool/randpool.h @@ -8,6 +8,7 @@ #include <botan/rng.h> #include <botan/base.h> +#include <botan/mac.h> #include <vector> namespace Botan { diff --git a/src/s2k/pbkdf2/pbkdf2.h b/src/s2k/pbkdf2/pbkdf2.h index 52148df2f..f9969c0b0 100644 --- a/src/s2k/pbkdf2/pbkdf2.h +++ b/src/s2k/pbkdf2/pbkdf2.h @@ -7,7 +7,7 @@ #define BOTAN_PBKDF2_H__ #include <botan/s2k.h> -#include <botan/hash.h> +#include <botan/mac.h> namespace Botan { -- cgit v1.2.3