diff options
author | lloyd <[email protected]> | 2008-11-08 18:52:37 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2008-11-08 18:52:37 +0000 |
commit | a236130625cec42d3577293cc8eb571c7a8099f4 (patch) | |
tree | 00b630cfc6bb6cff1f62784622c48b7348ae7d06 /src/mac | |
parent | 90391ca3d85e6bc65da3a8951e1765692233e803 (diff) |
Move mac base classes from src/core to src/mac
Diffstat (limited to 'src/mac')
-rw-r--r-- | src/mac/mac.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/mac/mac.h b/src/mac/mac.h new file mode 100644 index 000000000..e7bdada14 --- /dev/null +++ b/src/mac/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 |