/* * OAEP * (C) 1999-2007 Jack Lloyd * * Botan is released under the Simplified BSD License (see license.txt) */ #ifndef BOTAN_OAEP_H__ #define BOTAN_OAEP_H__ #include #include namespace Botan { /** * OAEP (called EME1 in IEEE 1363 and in earlier versions of the library) */ class BOTAN_DLL OAEP final : public EME { public: size_t maximum_input_size(size_t) const override; static OAEP* make(const Spec& spec); /** * @param hash object to use for hashing (takes ownership) * @param P an optional label. Normally empty. */ OAEP(HashFunction* hash, const std::string& P = ""); private: secure_vector pad(const byte in[], size_t in_length, size_t key_length, RandomNumberGenerator& rng) const override; secure_vector unpad(byte& valid_mask, const byte in[], size_t in_len) const override; secure_vector m_Phash; std::unique_ptr m_hash; }; } #endif