Botan 3.12.0
Crypto and TLS for C&
cmce_parameter_set.cpp
Go to the documentation of this file.
1/*
2 * Classic McEliece Parameters
3 * (C) 2024 Jack Lloyd
4 * 2024 Fabian Albert, Amos Treiber - Rohde & Schwarz Cybersecurity
5 *
6 * Botan is released under the Simplified BSD License (see license.txt)
7 **/
8
9#include <botan/cmce_parameter_set.h>
10
11#include <botan/assert.h>
12#include <botan/internal/fmt.h>
13
14namespace Botan {
15
17 const Code code = [&] {
18 if(nm == "ClassicMcEliece_348864" || nm == "348864") {
19 return ClassicMcEliece_348864;
20 }
21 if(nm == "ClassicMcEliece_348864f" || nm == "348864f") {
22 return ClassicMcEliece_348864f;
23 }
24 if(nm == "ClassicMcEliece_460896" || nm == "460896") {
25 return ClassicMcEliece_460896;
26 }
27 if(nm == "ClassicMcEliece_460896f" || nm == "460896f") {
28 return ClassicMcEliece_460896f;
29 }
30 if(nm == "ClassicMcEliece_6688128" || nm == "6688128") {
31 return ClassicMcEliece_6688128;
32 }
33 if(nm == "ClassicMcEliece_6688128f" || nm == "6688128f") {
34 return ClassicMcEliece_6688128f;
35 }
36 if(nm == "ClassicMcEliece_6688128pc" || nm == "6688128pc") {
37 return ClassicMcEliece_6688128pc;
38 }
39 if(nm == "ClassicMcEliece_6688128pcf" || nm == "6688128pcf") {
40 return ClassicMcEliece_6688128pcf;
41 }
42 if(nm == "ClassicMcEliece_6960119" || nm == "6960119") {
43 return ClassicMcEliece_6960119;
44 }
45 if(nm == "ClassicMcEliece_6960119f" || nm == "6960119f") {
46 return ClassicMcEliece_6960119f;
47 }
48 if(nm == "ClassicMcEliece_6960119pc" || nm == "6960119pc") {
49 return ClassicMcEliece_6960119pc;
50 }
51 if(nm == "ClassicMcEliece_6960119pcf" || nm == "6960119pcf") {
52 return ClassicMcEliece_6960119pcf;
53 }
54 if(nm == "ClassicMcEliece_8192128" || nm == "8192128") {
55 return ClassicMcEliece_8192128;
56 }
57 if(nm == "ClassicMcEliece_8192128f" || nm == "8192128f") {
58 return ClassicMcEliece_8192128f;
59 }
60 if(nm == "ClassicMcEliece_8192128pc" || nm == "8192128pc") {
61 return ClassicMcEliece_8192128pc;
62 }
63 if(nm == "ClassicMcEliece_8192128pcf" || nm == "8192128pcf") {
64 return ClassicMcEliece_8192128pcf;
65 }
66
67 throw Invalid_Argument(fmt("Cannot convert '{}' to ClassicMcEliece parameter set", nm));
68 }();
70}
71
73 switch(m_code) {
74 case ClassicMcEliece_348864:
75 return "ClassicMcEliece_348864";
76 case ClassicMcEliece_348864f:
77 return "ClassicMcEliece_348864f";
78 case ClassicMcEliece_460896:
79 return "ClassicMcEliece_460896";
80 case ClassicMcEliece_460896f:
81 return "ClassicMcEliece_460896f";
82 case ClassicMcEliece_6688128:
83 return "ClassicMcEliece_6688128";
84 case ClassicMcEliece_6688128f:
85 return "ClassicMcEliece_6688128f";
86 case ClassicMcEliece_6688128pc:
87 return "ClassicMcEliece_6688128pc";
88 case ClassicMcEliece_6688128pcf:
89 return "ClassicMcEliece_6688128pcf";
90 case ClassicMcEliece_6960119:
91 return "ClassicMcEliece_6960119";
92 case ClassicMcEliece_6960119f:
93 return "ClassicMcEliece_6960119f";
94 case ClassicMcEliece_6960119pc:
95 return "ClassicMcEliece_6960119pc";
96 case ClassicMcEliece_6960119pcf:
97 return "ClassicMcEliece_6960119pcf";
98 case ClassicMcEliece_8192128:
99 return "ClassicMcEliece_8192128";
100 case ClassicMcEliece_8192128f:
101 return "ClassicMcEliece_8192128f";
102 case ClassicMcEliece_8192128pc:
103 return "ClassicMcEliece_8192128pc";
104 case ClassicMcEliece_8192128pcf:
105 return "ClassicMcEliece_8192128pcf";
106 }
108}
109
113
114} // namespace Botan
#define BOTAN_ASSERT_UNREACHABLE()
Definition assert.h:163
std::string to_string() const
Get the parameter set name for a given parameter set.
static Classic_McEliece_Parameter_Set from_string(std::string_view param_name)
Get the parameter set for a given parameter set name.
Code code() const
Get the code for a given parameter set.
static Classic_McEliece_Parameter_Set from_oid(const OID &oid)
Get the parameter set for a given OID.
Invalid_Argument(std::string_view msg)
Definition exceptn.cpp:77
std::string to_formatted_string() const
Definition asn1_oid.cpp:139
std::string fmt(std::string_view format, const T &... args)
Definition fmt.h:53