diff options
Diffstat (limited to 'src/lib/pbkdf')
-rw-r--r-- | src/lib/pbkdf/pbkdf.cpp | 13 | ||||
-rw-r--r-- | src/lib/pbkdf/pbkdf1/info.txt | 7 | ||||
-rw-r--r-- | src/lib/pbkdf/pbkdf1/pbkdf1.cpp | 54 | ||||
-rw-r--r-- | src/lib/pbkdf/pbkdf1/pbkdf1.h | 53 |
4 files changed, 0 insertions, 127 deletions
diff --git a/src/lib/pbkdf/pbkdf.cpp b/src/lib/pbkdf/pbkdf.cpp index 73b482725..1434ec183 100644 --- a/src/lib/pbkdf/pbkdf.cpp +++ b/src/lib/pbkdf/pbkdf.cpp @@ -9,10 +9,6 @@ #include <botan/exceptn.h> #include <botan/scan_name.h> -#if defined(BOTAN_HAS_PBKDF1) -#include <botan/pbkdf1.h> -#endif - #if defined(BOTAN_HAS_PBKDF2) #include <botan/pbkdf2.h> #endif @@ -46,15 +42,6 @@ std::unique_ptr<PBKDF> PBKDF::create(const std::string& algo_spec, } #endif -#if defined(BOTAN_HAS_PBKDF1) - if(req.algo_name() == "PBKDF1" && req.arg_count() == 1) - { - if(auto hash = HashFunction::create(req.arg(0))) - return std::unique_ptr<PBKDF>(new PKCS5_PBKDF1(hash.release())); - - } -#endif - #if defined(BOTAN_HAS_PGP_S2K) if(req.algo_name() == "OpenPGP-S2K" && req.arg_count() == 1) { diff --git a/src/lib/pbkdf/pbkdf1/info.txt b/src/lib/pbkdf/pbkdf1/info.txt deleted file mode 100644 index e4b972e4b..000000000 --- a/src/lib/pbkdf/pbkdf1/info.txt +++ /dev/null @@ -1,7 +0,0 @@ -<defines> -PBKDF1 -> 20131128 -</defines> - -<requires> -hash -</requires> diff --git a/src/lib/pbkdf/pbkdf1/pbkdf1.cpp b/src/lib/pbkdf/pbkdf1/pbkdf1.cpp deleted file mode 100644 index ad922ce9c..000000000 --- a/src/lib/pbkdf/pbkdf1/pbkdf1.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* -* PBKDF1 -* (C) 1999-2007 Jack Lloyd -* -* Botan is released under the Simplified BSD License (see license.txt) -*/ - -#include <botan/pbkdf1.h> -#include <botan/exceptn.h> - -namespace Botan { - -size_t PKCS5_PBKDF1::pbkdf(uint8_t output_buf[], size_t output_len, - const std::string& passphrase, - const uint8_t salt[], size_t salt_len, - size_t iterations, - std::chrono::milliseconds msec) const - { - if(output_len > m_hash->output_length()) - throw Invalid_Argument("PKCS5_PBKDF1: Requested output length too long"); - - m_hash->update(passphrase); - m_hash->update(salt, salt_len); - secure_vector<uint8_t> key = m_hash->final(); - - const auto start = std::chrono::high_resolution_clock::now(); - size_t iterations_performed = 1; - - while(true) - { - if(iterations == 0) - { - if(iterations_performed % 10000 == 0) - { - auto time_taken = std::chrono::high_resolution_clock::now() - start; - auto msec_taken = std::chrono::duration_cast<std::chrono::milliseconds>(time_taken); - if(msec_taken > msec) - break; - } - } - else if(iterations_performed == iterations) - break; - - m_hash->update(key); - m_hash->final(key.data()); - - ++iterations_performed; - } - - copy_mem(output_buf, key.data(), output_len); - return iterations_performed; - } - -} diff --git a/src/lib/pbkdf/pbkdf1/pbkdf1.h b/src/lib/pbkdf/pbkdf1/pbkdf1.h deleted file mode 100644 index f5e95b836..000000000 --- a/src/lib/pbkdf/pbkdf1/pbkdf1.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -* PBKDF1 -* (C) 1999-2007 Jack Lloyd -* -* Botan is released under the Simplified BSD License (see license.txt) -*/ - -#ifndef BOTAN_PBKDF1_H_ -#define BOTAN_PBKDF1_H_ - -#include <botan/pbkdf.h> -#include <botan/hash.h> - -BOTAN_FUTURE_INTERNAL_HEADER(pbkdf1.h) - -namespace Botan { - -/** -* PKCS #5 v1 PBKDF, aka PBKDF1 -* Can only generate a key up to the size of the hash output. -* Unless needed for backwards compatibility, use PKCS5_PBKDF2 -*/ -class BOTAN_PUBLIC_API(2,0) PKCS5_PBKDF1 final : public PBKDF - { - public: - /** - * Create a PKCS #5 instance using the specified hash function. - * @param hash pointer to a hash function object to use - */ - explicit PKCS5_PBKDF1(HashFunction* hash) : m_hash(hash) {} - - std::string name() const override - { - return "PBKDF1(" + m_hash->name() + ")"; - } - - PBKDF* clone() const override - { - return new PKCS5_PBKDF1(m_hash->clone()); - } - - size_t pbkdf(uint8_t output_buf[], size_t output_len, - const std::string& passphrase, - const uint8_t salt[], size_t salt_len, - size_t iterations, - std::chrono::milliseconds msec) const override; - private: - std::unique_ptr<HashFunction> m_hash; - }; - -} - -#endif |