Botan 3.0.0-alpha0
Crypto and TLS for C&
Public Member Functions | List of all members
Botan::ECIES_System_Params Class Referencefinal

#include <ecies.h>

Inheritance diagram for Botan::ECIES_System_Params:
Botan::ECIES_KA_Params

Public Member Functions

bool check_mode () const
 
bool cofactor_mode () const
 
PointGFp::Compression_Type compression_type () const
 
std::unique_ptr< Cipher_Modecreate_cipher (Botan::Cipher_Dir direction) const
 creates an instance of the data encryption method More...
 
std::unique_ptr< MessageAuthenticationCodecreate_mac () const
 creates an instance of the message authentication code More...
 
size_t dem_keylen () const
 returns the length of the key used by the data encryption method More...
 
const EC_Groupdomain () const
 
 ECIES_System_Params (const EC_Group &domain, const std::string &kdf_spec, const std::string &dem_algo_spec, size_t dem_key_len, const std::string &mac_spec, size_t mac_key_len)
 
 ECIES_System_Params (const EC_Group &domain, const std::string &kdf_spec, const std::string &dem_algo_spec, size_t dem_key_len, const std::string &mac_spec, size_t mac_key_len, PointGFp::Compression_Type compression_type, ECIES_Flags flags)
 
 ECIES_System_Params (const ECIES_System_Params &)=default
 
const std::string & kdf_spec () const
 
size_t mac_keylen () const
 returns the length of the key used by the message authentication code More...
 
bool old_cofactor_mode () const
 
ECIES_System_Paramsoperator= (const ECIES_System_Params &)=delete
 
size_t secret_length () const
 
bool single_hash_mode () const
 
virtual ~ECIES_System_Params ()=default
 

Detailed Description

Definition at line 124 of file ecies.h.

Constructor & Destructor Documentation

◆ ECIES_System_Params() [1/3]

Botan::ECIES_System_Params::ECIES_System_Params ( const EC_Group domain,
const std::string &  kdf_spec,
const std::string &  dem_algo_spec,
size_t  dem_key_len,
const std::string &  mac_spec,
size_t  mac_key_len 
)
Parameters
domainec domain parameters of the involved ec keys
kdf_specname of the key derivation function
dem_algo_specname of the data encryption method
dem_key_lenlength of the key used for the data encryption method
mac_specname of the message authentication code
mac_key_lenlength of the key used for the message authentication code

Definition at line 214 of file ecies.cpp.

216 :
217 ECIES_System_Params(domain, kdf_spec, dem_algo_spec, dem_key_len, mac_spec, mac_key_len, PointGFp::UNCOMPRESSED,
219 {
220 }
const std::string & kdf_spec() const
Definition: ecies.h:110
const EC_Group & domain() const
Definition: ecies.h:75
ECIES_System_Params(const EC_Group &domain, const std::string &kdf_spec, const std::string &dem_algo_spec, size_t dem_key_len, const std::string &mac_spec, size_t mac_key_len)
Definition: ecies.cpp:214

◆ ECIES_System_Params() [2/3]

Botan::ECIES_System_Params::ECIES_System_Params ( const EC_Group domain,
const std::string &  kdf_spec,
const std::string &  dem_algo_spec,
size_t  dem_key_len,
const std::string &  mac_spec,
size_t  mac_key_len,
PointGFp::Compression_Type  compression_type,
ECIES_Flags  flags 
)
Parameters
domainec domain parameters of the involved ec keys
kdf_specname of the key derivation function
dem_algo_specname of the data encryption method
dem_key_lenlength of the key used for the data encryption method
mac_specname of the message authentication code
mac_key_lenlength of the key used for the message authentication code
compression_typeformat of encoded keys (affects the secret derivation if single_hash_mode is used)
flagsoptions, see documentation of ECIES_Flags

Definition at line 197 of file ecies.cpp.

200 :
201 ECIES_KA_Params(domain, kdf_spec, dem_key_len + mac_key_len, compression_type, flags),
202 m_dem_spec(dem_algo_spec),
203 m_dem_keylen(dem_key_len),
204 m_mac_spec(mac_spec),
205 m_mac_keylen(mac_key_len)
206 {
207 // ISO 18033: "At most one of CofactorMode, OldCofactorMode, and CheckMode may be 1."
208 if(size_t(cofactor_mode()) + size_t(old_cofactor_mode()) + size_t(check_mode()) > 1)
209 {
210 throw Invalid_Argument("ECIES: only one of cofactor_mode, old_cofactor_mode and check_mode can be set");
211 }
212 }
bool check_mode() const
Definition: ecies.h:100
bool old_cofactor_mode() const
Definition: ecies.h:95
ECIES_KA_Params(const EC_Group &domain, const std::string &kdf_spec, size_t length, PointGFp::Compression_Type compression_type, ECIES_Flags flags)
Definition: ecies.cpp:187
bool cofactor_mode() const
Definition: ecies.h:90
PointGFp::Compression_Type compression_type() const
Definition: ecies.h:105
Flags flags(Flag flags)
Definition: p11.h:860

References Botan::ECIES_KA_Params::check_mode(), Botan::ECIES_KA_Params::cofactor_mode(), and Botan::ECIES_KA_Params::old_cofactor_mode().

◆ ECIES_System_Params() [3/3]

Botan::ECIES_System_Params::ECIES_System_Params ( const ECIES_System_Params )
default

◆ ~ECIES_System_Params()

virtual Botan::ECIES_System_Params::~ECIES_System_Params ( )
virtualdefault

Member Function Documentation

◆ check_mode()

bool Botan::ECIES_KA_Params::check_mode ( ) const
inlineinherited

Definition at line 100 of file ecies.h.

101 {
103 }
@ CHECK_MODE
(decryption only) if set: test if the (ephemeral) public key is on the curve

References Botan::CHECK_MODE.

Referenced by Botan::ECIES_Decryptor::ECIES_Decryptor(), and ECIES_System_Params().

◆ cofactor_mode()

bool Botan::ECIES_KA_Params::cofactor_mode ( ) const
inlineinherited

Definition at line 90 of file ecies.h.

91 {
93 }
@ COFACTOR_MODE
(decryption only) if set: use cofactor multiplication during (ecdh) key agreement

References Botan::COFACTOR_MODE.

Referenced by ECIES_System_Params().

◆ compression_type()

PointGFp::Compression_Type Botan::ECIES_KA_Params::compression_type ( ) const
inlineinherited

Definition at line 105 of file ecies.h.

106 {
107 return m_compression_mode;
108 }

Referenced by Botan::ECIES_KA_Operation::derive_secret(), and Botan::ECIES_Encryptor::ECIES_Encryptor().

◆ create_cipher()

std::unique_ptr< Cipher_Mode > Botan::ECIES_System_Params::create_cipher ( Botan::Cipher_Dir  direction) const

creates an instance of the data encryption method

Definition at line 227 of file ecies.cpp.

228 {
229 return Cipher_Mode::create_or_throw(m_dem_spec, direction);
230 }
static std::unique_ptr< Cipher_Mode > create_or_throw(const std::string &algo, Cipher_Dir direction, const std::string &provider="")
Definition: cipher_mode.cpp:40

References Botan::Cipher_Mode::create_or_throw().

Referenced by Botan::ECIES_Decryptor::ECIES_Decryptor(), and Botan::ECIES_Encryptor::ECIES_Encryptor().

◆ create_mac()

std::unique_ptr< MessageAuthenticationCode > Botan::ECIES_System_Params::create_mac ( ) const

creates an instance of the message authentication code

Definition at line 222 of file ecies.cpp.

223 {
225 }
static std::unique_ptr< MessageAuthenticationCode > create_or_throw(const std::string &algo_spec, const std::string &provider="")
Definition: mac.cpp:134

References Botan::MessageAuthenticationCode::create_or_throw().

Referenced by Botan::ECIES_Decryptor::ECIES_Decryptor(), and Botan::ECIES_Encryptor::ECIES_Encryptor().

◆ dem_keylen()

size_t Botan::ECIES_System_Params::dem_keylen ( ) const
inline

returns the length of the key used by the data encryption method

Definition at line 163 of file ecies.h.

164 {
165 return m_dem_keylen;
166 }

◆ domain()

const EC_Group & Botan::ECIES_KA_Params::domain ( ) const
inlineinherited

◆ kdf_spec()

const std::string & Botan::ECIES_KA_Params::kdf_spec ( ) const
inlineinherited

Definition at line 110 of file ecies.h.

111 {
112 return m_kdf_spec;
113 }

Referenced by Botan::ECIES_KA_Operation::derive_secret().

◆ mac_keylen()

size_t Botan::ECIES_System_Params::mac_keylen ( ) const
inline

returns the length of the key used by the message authentication code

Definition at line 169 of file ecies.h.

170 {
171 return m_mac_keylen;
172 }

◆ old_cofactor_mode()

bool Botan::ECIES_KA_Params::old_cofactor_mode ( ) const
inlineinherited

Definition at line 95 of file ecies.h.

96 {
98 }
@ OLD_COFACTOR_MODE
if set: use ecdhc instead of ecdh

References Botan::OLD_COFACTOR_MODE.

Referenced by Botan::ECIES_KA_Operation::derive_secret(), and ECIES_System_Params().

◆ operator=()

ECIES_System_Params & Botan::ECIES_System_Params::operator= ( const ECIES_System_Params )
delete

◆ secret_length()

size_t Botan::ECIES_KA_Params::secret_length ( ) const
inlineinherited

Definition at line 80 of file ecies.h.

81 {
82 return m_length;
83 }

Referenced by Botan::ECIES_KA_Operation::derive_secret().

◆ single_hash_mode()

bool Botan::ECIES_KA_Params::single_hash_mode ( ) const
inlineinherited

Definition at line 85 of file ecies.h.

86 {
88 }
@ SINGLE_HASH_MODE
if set: prefix the input of the (ecdh) key agreement with the encoded (ephemeral) public key

References Botan::SINGLE_HASH_MODE.

Referenced by Botan::ECIES_KA_Operation::derive_secret().


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