/src/botan/src/lib/pk_pad/padding.cpp
Line | Count | Source (jump to first uncovered line) |
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 | | { "GOST-34.10-2012-256", {"EMSA1"} }, |
28 | | { "GOST-34.10-2012-512", {"EMSA1"} }, |
29 | | { "RSA", {"EMSA4", "EMSA3"} }, |
30 | | }; |
31 | | |
32 | | std::vector<std::string> get_sig_paddings(const std::string& algo) |
33 | 0 | { |
34 | 0 | if(allowed_signature_paddings.count(algo) > 0) |
35 | 0 | return allowed_signature_paddings.at(algo); |
36 | 0 | return {}; |
37 | 0 | } |
38 | | |
39 | | bool sig_algo_and_pad_ok(const std::string& algo, const std::string& padding) |
40 | 0 | { |
41 | 0 | std::vector<std::string> pads = get_sig_paddings(algo); |
42 | 0 | return std::find(pads.begin(), pads.end(), padding) != pads.end(); |
43 | 0 | } |
44 | | } |