diff options
Diffstat (limited to 'src/prf/hkdf/hkdf.cpp')
-rw-r--r-- | src/prf/hkdf/hkdf.cpp | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/src/prf/hkdf/hkdf.cpp b/src/prf/hkdf/hkdf.cpp deleted file mode 100644 index 0a1f7cb31..000000000 --- a/src/prf/hkdf/hkdf.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* -* HKDF -* (C) 2013 Jack Lloyd -* -* Distributed under the terms of the Botan license -*/ - -#include <botan/hkdf.h> - -namespace Botan { - -std::string HKDF::name() const - { - return "HKDF(" + m_prf->name() + ")"; - } - -void HKDF::clear() - { - m_extractor->clear(); - m_prf->clear(); - } - -void HKDF::start_extract(const byte salt[], size_t salt_len) - { - m_extractor->set_key(salt, salt_len); - } - -void HKDF::extract(const byte input[], size_t input_len) - { - m_extractor->update(input, input_len); - } - -void HKDF::finish_extract() - { - m_prf->set_key(m_extractor->final()); - } - -void HKDF::expand(byte output[], size_t output_len, - const byte info[], size_t info_len) - { - if(output_len > m_prf->output_length() * 255) - throw std::invalid_argument("HKDF requested output too large"); - - byte counter = 1; - - secure_vector<byte> T; - - while(output_len) - { - m_prf->update(T); - m_prf->update(info, info_len); - m_prf->update(counter++); - T = m_prf->final(); - - const size_t to_write = std::min(T.size(), output_len); - copy_mem(&output[0], &T[0], to_write); - output += to_write; - output_len -= to_write; - } - } - -} |