/* * KDF/MGF * (C) 1999-2007 Jack Lloyd * * Distributed under the terms of the Botan license */ #ifndef BOTAN_KDF_BASE_H__ #define BOTAN_KDF_BASE_H__ #include #include namespace Botan { /* * Key Derivation Function */ class BOTAN_DLL KDF { public: SecureVector derive_key(u32bit, const MemoryRegion&, const std::string& = "") const; SecureVector derive_key(u32bit, const MemoryRegion&, const MemoryRegion&) const; SecureVector derive_key(u32bit, const MemoryRegion&, const byte[], u32bit) const; SecureVector derive_key(u32bit, const byte[], u32bit, const std::string& = "") const; SecureVector derive_key(u32bit, const byte[], u32bit, const byte[], u32bit) const; virtual ~KDF() {} private: virtual SecureVector derive(u32bit, const byte[], u32bit, const byte[], u32bit) const = 0; }; /* * Mask Generation Function */ class BOTAN_DLL MGF { public: virtual void mask(const byte[], u32bit, byte[], u32bit) const = 0; virtual ~MGF() {} }; } #endif