diff options
Diffstat (limited to 'src/kdf/pbkdf2')
-rw-r--r-- | src/kdf/pbkdf2/info.txt | 10 | ||||
-rw-r--r-- | src/kdf/pbkdf2/pbkdf2.cpp | 80 | ||||
-rw-r--r-- | src/kdf/pbkdf2/pbkdf2.h | 38 |
3 files changed, 0 insertions, 128 deletions
diff --git a/src/kdf/pbkdf2/info.txt b/src/kdf/pbkdf2/info.txt deleted file mode 100644 index e51a331c6..000000000 --- a/src/kdf/pbkdf2/info.txt +++ /dev/null @@ -1,10 +0,0 @@ -realname "Pbkdf2" - -define PBKDF2 - -load_on auto - -<add> -pbkdf2.cpp -pbkdf2.h -</add> diff --git a/src/kdf/pbkdf2/pbkdf2.cpp b/src/kdf/pbkdf2/pbkdf2.cpp deleted file mode 100644 index baa227526..000000000 --- a/src/kdf/pbkdf2/pbkdf2.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/************************************************* -* PBKDF2 Source File * -* (C) 1999-2007 Jack Lloyd * -*************************************************/ - -#include <botan/pbkdf2.h> -#include <botan/loadstor.h> -#include <botan/xor_buf.h> - -namespace Botan { - -/************************************************* -* Return a PKCS#5 PBKDF2 derived key * -*************************************************/ -OctetString PKCS5_PBKDF2::derive(u32bit key_len, - const std::string& passphrase, - const byte salt[], u32bit salt_size, - u32bit iterations) const - { - if(iterations == 0) - throw Invalid_Argument("PKCS#5 PBKDF2: Invalid iteration count"); - - if(passphrase.length() == 0) - throw Invalid_Argument("PKCS#5 PBKDF2: Empty passphrase is invalid"); - - mac->set_key(reinterpret_cast<const byte*>(passphrase.data()), - passphrase.length()); - - SecureVector<byte> key(key_len); - - byte* T = key.begin(); - - u32bit counter = 1; - while(key_len) - { - u32bit T_size = std::min(mac->OUTPUT_LENGTH, key_len); - SecureVector<byte> U(mac->OUTPUT_LENGTH); - - mac->update(salt, salt_size); - for(u32bit j = 0; j != 4; ++j) - mac->update(get_byte(j, counter)); - mac->final(U); - xor_buf(T, U, T_size); - - for(u32bit j = 1; j != iterations; ++j) - { - mac->update(U); - mac->final(U); - xor_buf(T, U, T_size); - } - - key_len -= T_size; - T += T_size; - ++counter; - } - - return key; - } - -/************************************************* -* Return the name of this type * -*************************************************/ -std::string PKCS5_PBKDF2::name() const - { - return "PBKDF2(" + mac->name() + ")"; - } - -S2K* PKCS5_PBKDF2::clone() const - { - return new PKCS5_PBKDF2(mac->clone()); - } - -/************************************************* -* PKCS5_PBKDF2 Constructor * -*************************************************/ -PKCS5_PBKDF2::PKCS5_PBKDF2(MessageAuthenticationCode* m) : mac(m) {} - -PKCS5_PBKDF2::~PKCS5_PBKDF2() { delete mac; } - -} diff --git a/src/kdf/pbkdf2/pbkdf2.h b/src/kdf/pbkdf2/pbkdf2.h deleted file mode 100644 index 1b27c5acb..000000000 --- a/src/kdf/pbkdf2/pbkdf2.h +++ /dev/null @@ -1,38 +0,0 @@ -/************************************************* -* PBKDF2 Header File * -* (C) 1999-2007 Jack Lloyd * -*************************************************/ - -#ifndef BOTAN_PBKDF2_H__ -#define BOTAN_PBKDF2_H__ - -#include <botan/s2k.h> -#include <botan/base.h> - -namespace Botan { - -/** -* This class implements the PKCS #5 PBKDF2 functionality. -*/ -class BOTAN_DLL PKCS5_PBKDF2 : public S2K - { - public: - std::string name() const; - S2K* clone() const; - - /** - * Create a PKCS #5 instance using the specified message auth code - * @param mac the MAC to use - */ - PKCS5_PBKDF2(MessageAuthenticationCode* mac); - ~PKCS5_PBKDF2(); - private: - OctetString derive(u32bit, const std::string&, - const byte[], u32bit, u32bit) const; - - MessageAuthenticationCode* mac; - }; - -} - -#endif |