/* * EME1 * (C) 1999-2007 Jack Lloyd * * Distributed under the terms of the Botan license */ #ifndef BOTAN_EME1_H__ #define BOTAN_EME1_H__ #include #include #include namespace Botan { /** * EME1, aka OAEP */ class BOTAN_DLL EME1 : public EME { public: u32bit maximum_input_size(u32bit) const; /** * @param hash object to use for hashing (takes ownership) * @param P an optional label. Normally empty. */ EME1(HashFunction* hash, const std::string& P = ""); ~EME1() { delete mgf; } private: SecureVector pad(const byte[], u32bit, u32bit, RandomNumberGenerator&) const; SecureVector unpad(const byte[], u32bit, u32bit) const; const u32bit HASH_LENGTH; SecureVector Phash; MGF* mgf; }; } #endif