9#include <botan/scan_name.h>
10#include <botan/exceptn.h>
12#if defined(BOTAN_HAS_EMSA1)
13 #include <botan/emsa1.h>
16#if defined(BOTAN_HAS_EMSA_X931)
17 #include <botan/emsa_x931.h>
20#if defined(BOTAN_HAS_EMSA_PKCS1)
21 #include <botan/emsa_pkcs1.h>
24#if defined(BOTAN_HAS_EMSA_PSSR)
25 #include <botan/pssr.h>
28#if defined(BOTAN_HAS_EMSA_RAW)
29 #include <botan/emsa_raw.h>
32#if defined(BOTAN_HAS_ISO_9796)
33 #include <botan/iso9796.h>
39 const std::string&)
const
48#if defined(BOTAN_HAS_EMSA1)
56#if defined(BOTAN_HAS_EMSA_PKCS1)
68 if(req.
arg(0) ==
"Raw")
83#if defined(BOTAN_HAS_EMSA_PSSR)
121 return new PSSR(h.release());
128#if defined(BOTAN_HAS_ISO_9796)
136 const bool implicit = req.
arg(1,
"exp") ==
"imp";
148 const bool implicit = req.
arg(1,
"exp") ==
"imp";
155#if defined(BOTAN_HAS_EMSA_X931)
170#if defined(BOTAN_HAS_EMSA_RAW)
195 const std::string pos_hash = emsa_name.
arg(0);
200#if defined(BOTAN_HAS_SHA2_64)
virtual std::string name() const =0
virtual AlgorithmIdentifier config_for_x509(const Private_Key &key, const std::string &cert_hash_name) const
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
size_t arg_as_integer(size_t i, size_t def_value) const
bool arg_count_between(size_t lower, size_t upper) const
std::string hash_for_emsa(const std::string &algo_spec)
EMSA * get_emsa(const std::string &algo_spec)