Botan  2.8.0
Crypto and TLS for C++11
padding.cpp
Go to the documentation of this file.
1 /*
2 * Sets of allowed padding schemes for public key types
3 *
4 * This file was automatically generated by ./src/scripts/oids.py on 2017-12-20
5 *
6 * All manual edits to this file will be lost. Edit the script
7 * then regenerate this source file.
8 *
9 * Botan is released under the Simplified BSD License (see license.txt)
10 */
11 
12 #include <botan/internal/padding.h>
13 #include <map>
14 #include <vector>
15 #include <string>
16 #include <algorithm>
17 
18 namespace Botan {
19 
20 const std::map<const std::string, std::vector<std::string>> allowed_signature_paddings =
21  {
22  { "DSA", {"EMSA1"} },
23  { "ECDSA", {"EMSA1"} },
24  { "ECGDSA", {"EMSA1"} },
25  { "ECKCDSA", {"EMSA1"} },
26  { "GOST-34.10", {"EMSA1"} },
27  { "RSA", {"EMSA4", "EMSA3"} },
28  };
29 
30 const std::vector<std::string> get_sig_paddings(const std::string algo)
31  {
32  if(allowed_signature_paddings.count(algo) > 0)
33  return allowed_signature_paddings.at(algo);
34  return {};
35  }
36 
37 bool sig_algo_and_pad_ok(const std::string algo, const std::string padding)
38  {
39  std::vector<std::string> pads = get_sig_paddings(algo);
40  return std::find(pads.begin(), pads.end(), padding) != pads.end();
41  }
42 }
const std::map< const std::string, std::vector< std::string > > allowed_signature_paddings
Definition: padding.cpp:20
bool sig_algo_and_pad_ok(const std::string algo, const std::string padding)
Definition: padding.cpp:37
Definition: alg_id.cpp:13
const std::vector< std::string > get_sig_paddings(const std::string algo)
Definition: padding.cpp:30