~ubuntu-branches/debian/sid/botan/sid

« back to all changes in this revision

Viewing changes to src/lib/pk_pad/padding.cpp

  • Committer: Package Import Robot
  • Author(s): Laszlo Boszormenyi (GCS)
  • Date: 2018-03-01 22:23:25 UTC
  • mfrom: (1.2.2)
  • Revision ID: package-import@ubuntu.com-20180301222325-7p7vc45gu3hta34d
Tags: 2.4.0-2
* Don't remove .doctrees from the manual if it doesn't exist.
* Don't specify parallel to debhelper.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
}