diff options
author | lloyd <[email protected]> | 2015-02-18 04:51:17 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2015-02-18 04:51:17 +0000 |
commit | 888aed4ec2f08684a9707c1251f27285942578c5 (patch) | |
tree | 4c78c5ca5a31b217f407c3adbd138a227181b1c5 /src/lib/kdf/hkdf/hkdf.h | |
parent | 88285f51ba4fd5bc1a1cc06b0760b3926046f29b (diff) |
Convert HKDF to the normal KDF interface
Diffstat (limited to 'src/lib/kdf/hkdf/hkdf.h')
-rw-r--r-- | src/lib/kdf/hkdf/hkdf.h | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/src/lib/kdf/hkdf/hkdf.h b/src/lib/kdf/hkdf/hkdf.h index f1ae61453..c5737b1cc 100644 --- a/src/lib/kdf/hkdf/hkdf.h +++ b/src/lib/kdf/hkdf/hkdf.h @@ -1,6 +1,6 @@ /* * HKDF -* (C) 2013 Jack Lloyd +* (C) 2013,2015 Jack Lloyd * * Botan is released under the Simplified BSD License (see license.txt) */ @@ -16,33 +16,24 @@ namespace Botan { /** * HKDF, see @rfc 5869 for details +* This is only the expansion portion of HKDF */ -class BOTAN_DLL HKDF +class BOTAN_DLL HKDF : public KDF { public: - HKDF(MessageAuthenticationCode* extractor, - MessageAuthenticationCode* prf) : - m_extractor(extractor), m_prf(prf) {} + HKDF(MessageAuthenticationCode* prf) : m_prf(prf) {} - HKDF(MessageAuthenticationCode* prf) : - m_extractor(prf), m_prf(m_extractor->clone()) {} + static HKDF* make(const Spec& spec); - void start_extract(const byte salt[], size_t salt_len); - void extract(const byte input[], size_t input_len); - void finish_extract(); + KDF* clone() const { return new HKDF(m_prf->clone()); } - /** - * Only call after extract - * @param output_len must be less than 256*hashlen - */ - void expand(byte output[], size_t output_len, - const byte info[], size_t info_len); + std::string name() const { return "HKDF(" + m_prf->name() + ")"; } - std::string name() const; + size_t kdf(byte out[], size_t out_len, + const byte secret[], size_t secret_len, + const byte salt[], size_t salt_len) const override; - void clear(); private: - std::unique_ptr<MessageAuthenticationCode> m_extractor; std::unique_ptr<MessageAuthenticationCode> m_prf; }; |