aboutsummaryrefslogtreecommitdiffstats
path: root/src/mac
diff options
context:
space:
mode:
Diffstat (limited to 'src/mac')
-rw-r--r--src/mac/cbc_mac/cbc_mac.cpp5
-rw-r--r--src/mac/cbc_mac/cbc_mac.h5
-rw-r--r--src/mac/cmac/cmac.cpp5
-rw-r--r--src/mac/cmac/cmac.h5
-rw-r--r--src/mac/hmac/hmac.cpp3
-rw-r--r--src/mac/hmac/hmac.h5
-rw-r--r--src/mac/mac.h15
-rw-r--r--src/mac/ssl3mac/ssl3_mac.cpp6
-rw-r--r--src/mac/ssl3mac/ssl3_mac.h5
-rw-r--r--src/mac/x919_mac/x919_mac.cpp5
-rw-r--r--src/mac/x919_mac/x919_mac.h5
11 files changed, 34 insertions, 30 deletions
diff --git a/src/mac/cbc_mac/cbc_mac.cpp b/src/mac/cbc_mac/cbc_mac.cpp
index 48cc8ab3e..a3899c87e 100644
--- a/src/mac/cbc_mac/cbc_mac.cpp
+++ b/src/mac/cbc_mac/cbc_mac.cpp
@@ -89,10 +89,7 @@ MessageAuthenticationCode* CBC_MAC::clone() const
* CBC-MAC Constructor
*/
CBC_MAC::CBC_MAC(BlockCipher* e_in) :
- MessageAuthenticationCode(e_in->block_size(),
- e_in->MINIMUM_KEYLENGTH,
- e_in->MAXIMUM_KEYLENGTH,
- e_in->KEYLENGTH_MULTIPLE),
+ MessageAuthenticationCode(e_in->block_size()),
e(e_in), state(e->block_size())
{
position = 0;
diff --git a/src/mac/cbc_mac/cbc_mac.h b/src/mac/cbc_mac/cbc_mac.h
index 6b30ef764..ff2a8f3fa 100644
--- a/src/mac/cbc_mac/cbc_mac.h
+++ b/src/mac/cbc_mac/cbc_mac.h
@@ -23,6 +23,11 @@ class BOTAN_DLL CBC_MAC : public MessageAuthenticationCode
std::string name() const;
MessageAuthenticationCode* clone() const;
+ Key_Length_Specification key_spec() const
+ {
+ return e->key_spec();
+ }
+
/**
* @param cipher the underlying block cipher to use
*/
diff --git a/src/mac/cmac/cmac.cpp b/src/mac/cmac/cmac.cpp
index 2147f9a45..37f83ffe4 100644
--- a/src/mac/cmac/cmac.cpp
+++ b/src/mac/cmac/cmac.cpp
@@ -131,10 +131,7 @@ MessageAuthenticationCode* CMAC::clone() const
* CMAC Constructor
*/
CMAC::CMAC(BlockCipher* e_in) :
- MessageAuthenticationCode(e_in->block_size(),
- e_in->MINIMUM_KEYLENGTH,
- e_in->MAXIMUM_KEYLENGTH,
- e_in->KEYLENGTH_MULTIPLE),
+ MessageAuthenticationCode(e_in->block_size()),
e(e_in)
{
if(e->block_size() == 16)
diff --git a/src/mac/cmac/cmac.h b/src/mac/cmac/cmac.h
index ac929eaf3..aa9bfb38e 100644
--- a/src/mac/cmac/cmac.h
+++ b/src/mac/cmac/cmac.h
@@ -23,6 +23,11 @@ class BOTAN_DLL CMAC : public MessageAuthenticationCode
std::string name() const;
MessageAuthenticationCode* clone() const;
+ Key_Length_Specification key_spec() const
+ {
+ return e->key_spec();
+ }
+
/**
* CMAC's polynomial doubling operation
* @param in the input
diff --git a/src/mac/hmac/hmac.cpp b/src/mac/hmac/hmac.cpp
index 06923138a..284bc87ec 100644
--- a/src/mac/hmac/hmac.cpp
+++ b/src/mac/hmac/hmac.cpp
@@ -85,8 +85,7 @@ MessageAuthenticationCode* HMAC::clone() const
* HMAC Constructor
*/
HMAC::HMAC(HashFunction* hash_in) :
- MessageAuthenticationCode(hash_in->output_length(),
- 0, 2*hash_in->hash_block_size()),
+ MessageAuthenticationCode(hash_in->output_length()),
hash(hash_in)
{
if(hash->hash_block_size() == 0)
diff --git a/src/mac/hmac/hmac.h b/src/mac/hmac/hmac.h
index 33af62f6a..505d0dd6b 100644
--- a/src/mac/hmac/hmac.h
+++ b/src/mac/hmac/hmac.h
@@ -23,6 +23,11 @@ class BOTAN_DLL HMAC : public MessageAuthenticationCode
std::string name() const;
MessageAuthenticationCode* clone() const;
+ Key_Length_Specification key_spec() const
+ {
+ return Key_Length_Specification(0, 2*hash->hash_block_size());
+ }
+
/**
* @param hash the hash to use for HMACing
*/
diff --git a/src/mac/mac.h b/src/mac/mac.h
index b788e06c8..1cb87d21e 100644
--- a/src/mac/mac.h
+++ b/src/mac/mac.h
@@ -41,24 +41,13 @@ class BOTAN_DLL MessageAuthenticationCode : public BufferedComputation,
virtual std::string name() const = 0;
/**
- * Reset the internal state of this object.
- */
- virtual void clear() = 0;
-
- /**
* @param mac_len the output length of this MAC
* @param key_min the minimum key size
* @param key_max the maximum key size
* @param key_mod the modulo restriction on the key size
*/
- MessageAuthenticationCode(size_t mac_len,
- size_t key_min,
- size_t key_max = 0,
- size_t key_mod = 1) :
- BufferedComputation(mac_len),
- SymmetricAlgorithm(key_min, key_max, key_mod) {}
-
- virtual ~MessageAuthenticationCode() {}
+ MessageAuthenticationCode(size_t mac_len) :
+ BufferedComputation(mac_len) {}
};
}
diff --git a/src/mac/ssl3mac/ssl3_mac.cpp b/src/mac/ssl3mac/ssl3_mac.cpp
index fcbccc06e..daaca1b57 100644
--- a/src/mac/ssl3mac/ssl3_mac.cpp
+++ b/src/mac/ssl3mac/ssl3_mac.cpp
@@ -73,14 +73,14 @@ MessageAuthenticationCode* SSL3_MAC::clone() const
* SSL3-MAC Constructor
*/
SSL3_MAC::SSL3_MAC(HashFunction* hash_in) :
- MessageAuthenticationCode(hash_in->output_length(),
- hash_in->output_length()),
+ MessageAuthenticationCode(hash_in->output_length()),
hash(hash_in)
{
if(hash->hash_block_size() == 0)
throw Invalid_Argument("SSL3-MAC cannot be used with " + hash->name());
- size_t INNER_HASH_LENGTH =
+ // Quirk to deal with specification bug
+ const size_t INNER_HASH_LENGTH =
(hash->name() == "SHA-160") ? 60 : hash->hash_block_size();
i_key.resize(INNER_HASH_LENGTH);
diff --git a/src/mac/ssl3mac/ssl3_mac.h b/src/mac/ssl3mac/ssl3_mac.h
index 50042f3d0..455cfa266 100644
--- a/src/mac/ssl3mac/ssl3_mac.h
+++ b/src/mac/ssl3mac/ssl3_mac.h
@@ -23,6 +23,11 @@ class BOTAN_DLL SSL3_MAC : public MessageAuthenticationCode
std::string name() const;
MessageAuthenticationCode* clone() const;
+ Key_Length_Specification key_spec() const
+ {
+ return Key_Length_Specification(hash->output_length());
+ }
+
/**
* @param hash the underlying hash to use
*/
diff --git a/src/mac/x919_mac/x919_mac.cpp b/src/mac/x919_mac/x919_mac.cpp
index c46ab82cb..bd53a6c7d 100644
--- a/src/mac/x919_mac/x919_mac.cpp
+++ b/src/mac/x919_mac/x919_mac.cpp
@@ -85,10 +85,7 @@ MessageAuthenticationCode* ANSI_X919_MAC::clone() const
* ANSI X9.19 MAC Constructor
*/
ANSI_X919_MAC::ANSI_X919_MAC(BlockCipher* e_in) :
- MessageAuthenticationCode(e_in->block_size(),
- e_in->MINIMUM_KEYLENGTH,
- 2*e_in->MAXIMUM_KEYLENGTH,
- 2*e_in->KEYLENGTH_MULTIPLE),
+ MessageAuthenticationCode(e_in->block_size()),
e(e_in), d(e->clone()), state(e->block_size()), position(0)
{
if(e->name() != "DES")
diff --git a/src/mac/x919_mac/x919_mac.h b/src/mac/x919_mac/x919_mac.h
index e9fe56c8d..600955919 100644
--- a/src/mac/x919_mac/x919_mac.h
+++ b/src/mac/x919_mac/x919_mac.h
@@ -23,6 +23,11 @@ class BOTAN_DLL ANSI_X919_MAC : public MessageAuthenticationCode
std::string name() const;
MessageAuthenticationCode* clone() const;
+ Key_Length_Specification key_spec() const
+ {
+ return Key_Length_Specification(8, 16, 8);
+ }
+
/**
* @param cipher the underlying block cipher to use
*/