Botan 3.4.0
Crypto and TLS for C&
Public Types | Public Member Functions | List of all members
Botan::KyberMode Class Reference

#include <kyber.h>

Public Types

enum  Mode {
  Kyber512_R3 , Kyber768_R3 , Kyber1024_R3 , Kyber512 = Kyber512_R3 ,
  Kyber768 = Kyber768_R3 , Kyber1024 = Kyber1024_R3 , Kyber512_90s , Kyber768_90s ,
  Kyber1024_90s
}
 

Public Member Functions

bool is_90s () const
 
bool is_available () const
 
bool is_modern () const
 
 KyberMode (const OID &oid)
 
 KyberMode (Mode mode)
 
 KyberMode (std::string_view str)
 
Mode mode () const
 
OID object_identifier () const
 
bool operator!= (const KyberMode &other) const
 
bool operator== (const KyberMode &other) const
 
std::string to_string () const
 

Detailed Description

Definition at line 30 of file kyber.h.

Member Enumeration Documentation

◆ Mode

Enumerator
Kyber512_R3 
Kyber768_R3 
Kyber1024_R3 
Kyber512 
Kyber768 
Kyber1024 
Kyber512_90s 
Kyber768_90s 
Kyber1024_90s 

Definition at line 32 of file kyber.h.

32 {
33 // Kyber512 as proposed in round 3 of the NIST competition
35 // Kyber768 as proposed in round 3 of the NIST competition
37 // Kyber1024 as proposed in round 3 of the NIST competition
39
40 Kyber512 BOTAN_DEPRECATED("Use Kyber512_R3") = Kyber512_R3,
41 Kyber768 BOTAN_DEPRECATED("Use Kyber768_R3") = Kyber768_R3,
42 Kyber1024 BOTAN_DEPRECATED("Use Kyber1024_R3") = Kyber1024_R3,
43
44 Kyber512_90s BOTAN_DEPRECATED("Kyber 90s mode is deprecated"),
45 Kyber768_90s BOTAN_DEPRECATED("Kyber 90s mode is deprecated"),
46 Kyber1024_90s BOTAN_DEPRECATED("Kyber 90s mode is deprecated"),
47 };
#define BOTAN_DEPRECATED(msg)
Definition compiler.h:125

Constructor & Destructor Documentation

◆ KyberMode() [1/3]

Botan::KyberMode::KyberMode ( Mode mode)

Definition at line 99 of file kyber.cpp.

99: m_mode(mode) {}
Mode mode() const
Definition kyber.h:56

◆ KyberMode() [2/3]

Botan::KyberMode::KyberMode ( const OID & oid)
explicit

Definition at line 101 of file kyber.cpp.

101: m_mode(kyber_mode_from_string(oid.to_formatted_string())) {}

◆ KyberMode() [3/3]

Botan::KyberMode::KyberMode ( std::string_view str)
explicit

Definition at line 103 of file kyber.cpp.

103: m_mode(kyber_mode_from_string(str)) {}

Member Function Documentation

◆ is_90s()

bool Botan::KyberMode::is_90s ( ) const

Definition at line 128 of file kyber.cpp.

128 {
129 return m_mode == Kyber512_90s || m_mode == Kyber768_90s || m_mode == Kyber1024_90s;
130}

References Kyber1024_90s, Kyber512_90s, and Kyber768_90s.

Referenced by is_available(), and is_modern().

◆ is_available()

bool Botan::KyberMode::is_available ( ) const

Definition at line 136 of file kyber.cpp.

136 {
137#if defined(BOTAN_HAS_KYBER)
138 if(is_modern()) {
139 return true;
140 }
141#endif
142
143#if defined(BOTAN_HAS_KYBER_90S)
144 if(is_90s()) {
145 return true;
146 }
147#endif
148
149 return false;
150}
bool is_modern() const
Definition kyber.cpp:132
bool is_90s() const
Definition kyber.cpp:128

References is_90s(), and is_modern().

◆ is_modern()

bool Botan::KyberMode::is_modern ( ) const

Definition at line 132 of file kyber.cpp.

132 {
133 return !is_90s();
134}

References is_90s().

Referenced by is_available().

◆ mode()

Mode Botan::KyberMode::mode ( ) const
inline

Definition at line 56 of file kyber.h.

56{ return m_mode; }

Referenced by Botan::Kyber_PublicKey::mode().

◆ object_identifier()

OID Botan::KyberMode::object_identifier ( ) const

Definition at line 105 of file kyber.cpp.

105 {
106 return OID::from_string(to_string());
107}
std::string to_string() const
Definition kyber.cpp:109
static OID from_string(std::string_view str)
Definition asn1_oid.cpp:74

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

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

◆ operator!=()

bool Botan::KyberMode::operator!= ( const KyberMode & other) const
inline

Definition at line 66 of file kyber.h.

66{ return !(*this == other); }

◆ operator==()

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

Definition at line 64 of file kyber.h.

64{ return m_mode == other.m_mode; }

◆ to_string()

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

Definition at line 109 of file kyber.cpp.

109 {
110 switch(m_mode) {
111 case Kyber512_90s:
112 return "Kyber-512-90s-r3";
113 case Kyber768_90s:
114 return "Kyber-768-90s-r3";
115 case Kyber1024_90s:
116 return "Kyber-1024-90s-r3";
117 case Kyber512_R3:
118 return "Kyber-512-r3";
119 case Kyber768_R3:
120 return "Kyber-768-r3";
121 case Kyber1024_R3:
122 return "Kyber-1024-r3";
123 }
124
126}
#define BOTAN_ASSERT_UNREACHABLE()
Definition assert.h:137

References BOTAN_ASSERT_UNREACHABLE, Kyber1024_90s, Kyber1024_R3, Kyber512_90s, Kyber512_R3, Kyber768_90s, and Kyber768_R3.

Referenced by object_identifier().


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