Botan 3.7.1
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 Code code = [&] {
18 if(nm == "ClassicMcEliece_348864" || nm == "348864") {
20 }
21 if(nm == "ClassicMcEliece_348864f" || nm == "348864f") {
23 }
24 if(nm == "ClassicMcEliece_460896" || nm == "460896") {
26 }
27 if(nm == "ClassicMcEliece_460896f" || nm == "460896f") {
29 }
30 if(nm == "ClassicMcEliece_6688128" || nm == "6688128") {
32 }
33 if(nm == "ClassicMcEliece_6688128f" || nm == "6688128f") {
35 }
36 if(nm == "ClassicMcEliece_6688128pc" || nm == "6688128pc") {
38 }
39 if(nm == "ClassicMcEliece_6688128pcf" || nm == "6688128pcf") {
41 }
42 if(nm == "ClassicMcEliece_6960119" || nm == "6960119") {
44 }
45 if(nm == "ClassicMcEliece_6960119f" || nm == "6960119f") {
47 }
48 if(nm == "ClassicMcEliece_6960119pc" || nm == "6960119pc") {
50 }
51 if(nm == "ClassicMcEliece_6960119pcf" || nm == "6960119pcf") {
53 }
54 if(nm == "ClassicMcEliece_8192128" || nm == "8192128") {
56 }
57 if(nm == "ClassicMcEliece_8192128f" || nm == "8192128f") {
59 }
60 if(nm == "ClassicMcEliece_8192128pc" || nm == "8192128pc") {
62 }
63 if(nm == "ClassicMcEliece_8192128pcf" || nm == "8192128pcf") {
65 }
66
67 throw Invalid_Argument(fmt("Cannot convert '{}' to ClassicMcEliece parameter set", nm));
68 }();
70}
71
73 switch(m_code) {
75 return "ClassicMcEliece_348864";
77 return "ClassicMcEliece_348864f";
79 return "ClassicMcEliece_460896";
81 return "ClassicMcEliece_460896f";
83 return "ClassicMcEliece_6688128";
85 return "ClassicMcEliece_6688128f";
87 return "ClassicMcEliece_6688128pc";
89 return "ClassicMcEliece_6688128pcf";
91 return "ClassicMcEliece_6960119";
93 return "ClassicMcEliece_6960119f";
95 return "ClassicMcEliece_6960119pc";
97 return "ClassicMcEliece_6960119pcf";
99 return "ClassicMcEliece_8192128";
101 return "ClassicMcEliece_8192128f";
103 return "ClassicMcEliece_8192128pc";
105 return "ClassicMcEliece_8192128pcf";
106 }
108}
109
113
114} // namespace Botan
#define BOTAN_ASSERT_UNREACHABLE()
Definition assert.h:137
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.
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