9#include <botan/scan_name.h>
10#include <botan/exceptn.h>
11#include <botan/parsing.h>
13#if defined(BOTAN_HAS_EME_OAEP)
14#include <botan/oaep.h>
17#if defined(BOTAN_HAS_EME_PKCS1)
18#include <botan/eme_pkcs.h>
21#if defined(BOTAN_HAS_EME_RAW)
22#include <botan/eme_raw.h>
29#if defined(BOTAN_HAS_EME_RAW)
30 if(algo_spec ==
"Raw")
34#if defined(BOTAN_HAS_EME_PKCS1)
35 if(algo_spec ==
"PKCS1v15" || algo_spec ==
"EME-PKCS1-v1_5")
39#if defined(BOTAN_HAS_EME_OAEP)
56 if(mgf_params.size() == 2 && mgf_params[0] ==
"MGF1")
63 return new OAEP(
hash.release(), mgf1_hash.release(), req.
arg(2,
""));
80 return pad(msg, msg_len, key_bits, rng);
90 return pad(msg.data(), msg.size(), key_bits, rng);
secure_vector< uint8_t > encode(const uint8_t in[], size_t in_length, size_t key_length, RandomNumberGenerator &rng) const
virtual secure_vector< uint8_t > pad(const uint8_t in[], size_t in_length, size_t key_length, RandomNumberGenerator &rng) const =0
static std::unique_ptr< HashFunction > create(const std::string &algo_spec, const std::string &provider="")
std::string arg(size_t i) const
const std::string & algo_name() const
EME * get_eme(const std::string &algo_spec)
std::vector< std::string > parse_algorithm_name(const std::string &namex)
std::vector< T, secure_allocator< T > > secure_vector