diff options
Diffstat (limited to 'src/kdf/kdf2')
-rw-r--r-- | src/kdf/kdf2/kdf2.cpp | 12 | ||||
-rw-r--r-- | src/kdf/kdf2/kdf2.h | 7 |
2 files changed, 5 insertions, 14 deletions
diff --git a/src/kdf/kdf2/kdf2.cpp b/src/kdf/kdf2/kdf2.cpp index fa975ccb9..fdeb09869 100644 --- a/src/kdf/kdf2/kdf2.cpp +++ b/src/kdf/kdf2/kdf2.cpp @@ -4,9 +4,7 @@ *************************************************/ #include <botan/kdf2.h> -#include <botan/lookup.h> #include <botan/loadstor.h> -#include <memory> namespace Botan { @@ -20,7 +18,6 @@ SecureVector<byte> KDF2::derive(u32bit out_len, SecureVector<byte> output; u32bit counter = 1; - std::auto_ptr<HashFunction> hash(get_hash(hash_name)); while(out_len && counter) { hash->update(secret, secret_len); @@ -39,13 +36,4 @@ SecureVector<byte> KDF2::derive(u32bit out_len, return output; } -/************************************************* -* KDF2 Constructor * -*************************************************/ -KDF2::KDF2(const std::string& h_name) : hash_name(h_name) - { - if(!have_hash(hash_name)) - throw Algorithm_Not_Found(hash_name); - } - } diff --git a/src/kdf/kdf2/kdf2.h b/src/kdf/kdf2/kdf2.h index f3768f15f..33db36ad4 100644 --- a/src/kdf/kdf2/kdf2.h +++ b/src/kdf/kdf2/kdf2.h @@ -7,6 +7,7 @@ #define BOTAN_KDF2_H__ #include <botan/kdf.h> +#include <botan/base.h> namespace Botan { @@ -19,9 +20,11 @@ class BOTAN_DLL KDF2 : public KDF SecureVector<byte> derive(u32bit, const byte[], u32bit, const byte[], u32bit) const; - KDF2(const std::string&); + KDF2(HashFunction* h) : hash(h) {} + KDF2(const KDF2& other) : hash(other.hash->clone()) {} + ~KDF2() { delete hash; } private: - const std::string hash_name; + HashFunction* hash; }; } |