7 #include <botan/emsa.h>
8 #include <botan/hash.h>
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)
std::string arg(size_t i) const
virtual std::string name() const =0
std::string hash_for_emsa(const std::string &algo_spec)
bool arg_count_between(size_t lower, size_t upper) const
static std::unique_ptr< HashFunction > create(const std::string &algo_spec, const std::string &provider="")
size_t arg_as_integer(size_t i, size_t def_value) const
const std::string & algo_name() const
virtual AlgorithmIdentifier config_for_x509(const Private_Key &key, const std::string &cert_hash_name) const
EMSA * get_emsa(const std::string &algo_spec)