Botan 3.7.1
Crypto and TLS for C&
Botan::Classic_McEliece_Parameter_Set Class Reference

#include <cmce_parameter_set.h>

Public Types

enum class  Code {
  ClassicMcEliece_348864 , ClassicMcEliece_348864f , ClassicMcEliece_460896 , ClassicMcEliece_460896f ,
  ClassicMcEliece_6688128 , ClassicMcEliece_6688128f , ClassicMcEliece_6688128pc , ClassicMcEliece_6688128pcf ,
  ClassicMcEliece_6960119 , ClassicMcEliece_6960119f , ClassicMcEliece_6960119pc , ClassicMcEliece_6960119pcf ,
  ClassicMcEliece_8192128 , ClassicMcEliece_8192128f , ClassicMcEliece_8192128pc , ClassicMcEliece_8192128pcf
}
 

Public Member Functions

 Classic_McEliece_Parameter_Set (Code code)
 
Code code () const
 Get the code for a given parameter set.
 
bool operator== (const Classic_McEliece_Parameter_Set &other) const
 
std::string to_string () const
 Get the parameter set name for a given parameter set.
 

Static Public Member Functions

static Classic_McEliece_Parameter_Set from_oid (const OID &oid)
 Get the parameter set for a given OID.
 
static Classic_McEliece_Parameter_Set from_string (std::string_view param_name)
 Get the parameter set for a given parameter set name.
 

Detailed Description

All Classic McEliece parameter sets defined in the NIST Round 4 submission and the Classic McEliece ISO Draft.

Instances are defined in the following format: mceliece{n}{t}{[pc]}{[f]}

Instance with 'pc' use plaintext confirmation as defined in the ISO Draft. Instance with 'f' use matrix reduction with the semi-systematic form.

Definition at line 26 of file cmce_parameter_set.h.

Member Enumeration Documentation

◆ Code

Enumerator
ClassicMcEliece_348864 
ClassicMcEliece_348864f 
ClassicMcEliece_460896 
ClassicMcEliece_460896f 
ClassicMcEliece_6688128 
ClassicMcEliece_6688128f 
ClassicMcEliece_6688128pc 
ClassicMcEliece_6688128pcf 
ClassicMcEliece_6960119 
ClassicMcEliece_6960119f 
ClassicMcEliece_6960119pc 
ClassicMcEliece_6960119pcf 
ClassicMcEliece_8192128 
ClassicMcEliece_8192128f 
ClassicMcEliece_8192128pc 
ClassicMcEliece_8192128pcf 

Definition at line 28 of file cmce_parameter_set.h.

28 {
31
34
35 ClassicMcEliece_6688128, // ISO + NIST
36 ClassicMcEliece_6688128f, // ISO + NIST
39
40 ClassicMcEliece_6960119, // ISO + NIST
41 ClassicMcEliece_6960119f, // ISO + NIST
44
45 ClassicMcEliece_8192128, // ISO + NIST
46 ClassicMcEliece_8192128f, // ISO + NIST
49 };

Constructor & Destructor Documentation

◆ Classic_McEliece_Parameter_Set()

Botan::Classic_McEliece_Parameter_Set::Classic_McEliece_Parameter_Set ( Code code)
inline

Definition at line 53 of file cmce_parameter_set.h.

53: m_code(code) {}
Code code() const
Get the code for a given parameter set.

Referenced by from_string().

Member Function Documentation

◆ code()

Code Botan::Classic_McEliece_Parameter_Set::code ( ) const
inline

Get the code for a given parameter set.

Definition at line 73 of file cmce_parameter_set.h.

73{ return m_code; }

Referenced by Botan::Classic_McEliece_Parameters::create(), Botan::Classic_McEliece_Parameters::estimated_strength(), and from_string().

◆ from_oid()

Classic_McEliece_Parameter_Set Botan::Classic_McEliece_Parameter_Set::from_oid ( const OID & oid)
static

Get the parameter set for a given OID.

Definition at line 110 of file cmce_parameter_set.cpp.

110 {
111 return from_string(oid.to_formatted_string());
112}
static Classic_McEliece_Parameter_Set from_string(std::string_view param_name)
Get the parameter set for a given parameter set name.

References from_string(), and Botan::OID::to_formatted_string().

Referenced by Botan::Classic_McEliece_Parameters::create().

◆ from_string()

Classic_McEliece_Parameter_Set Botan::Classic_McEliece_Parameter_Set::from_string ( std::string_view param_name)
static

Get the parameter set for a given parameter set name.

Definition at line 16 of file cmce_parameter_set.cpp.

16 {
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}
std::string fmt(std::string_view format, const T &... args)
Definition fmt.h:53

References Classic_McEliece_Parameter_Set(), ClassicMcEliece_348864, ClassicMcEliece_348864f, ClassicMcEliece_460896, ClassicMcEliece_460896f, ClassicMcEliece_6688128, ClassicMcEliece_6688128f, ClassicMcEliece_6688128pc, ClassicMcEliece_6688128pcf, ClassicMcEliece_6960119, ClassicMcEliece_6960119f, ClassicMcEliece_6960119pc, ClassicMcEliece_6960119pcf, ClassicMcEliece_8192128, ClassicMcEliece_8192128f, ClassicMcEliece_8192128pc, ClassicMcEliece_8192128pcf, code(), and Botan::fmt().

Referenced by botan_privkey_load_classic_mceliece(), botan_pubkey_load_classic_mceliece(), Botan::Classic_McEliece_Parameters::create(), Botan::create_private_key(), and from_oid().

◆ operator==()

bool Botan::Classic_McEliece_Parameter_Set::operator== ( const Classic_McEliece_Parameter_Set & other) const
inline

Definition at line 75 of file cmce_parameter_set.h.

75{ return m_code == other.m_code; }

◆ to_string()

std::string Botan::Classic_McEliece_Parameter_Set::to_string ( ) const

Get the parameter set name for a given parameter set.

Definition at line 72 of file cmce_parameter_set.cpp.

72 {
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}
#define BOTAN_ASSERT_UNREACHABLE()
Definition assert.h:137

References BOTAN_ASSERT_UNREACHABLE, ClassicMcEliece_348864, ClassicMcEliece_348864f, ClassicMcEliece_460896, ClassicMcEliece_460896f, ClassicMcEliece_6688128, ClassicMcEliece_6688128f, ClassicMcEliece_6688128pc, ClassicMcEliece_6688128pcf, ClassicMcEliece_6960119, ClassicMcEliece_6960119f, ClassicMcEliece_6960119pc, ClassicMcEliece_6960119pcf, ClassicMcEliece_8192128, ClassicMcEliece_8192128f, ClassicMcEliece_8192128pc, and ClassicMcEliece_8192128pcf.

Referenced by Botan::Classic_McEliece_Parameters::object_identifier().


The documentation for this class was generated from the following files: