Botan  2.7.0
Crypto and TLS for C++11
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 &)=default
 
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 209 of file ecies.cpp.

211  :
212  ECIES_System_Params(domain, kdf_spec, dem_algo_spec, dem_key_len, mac_spec, mac_key_len, PointGFp::UNCOMPRESSED,
214  {
215  }
const std::string & kdf_spec() const
Definition: ecies.h:110
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:209
const EC_Group & domain() const
Definition: ecies.h:75

◆ 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 192 of file ecies.cpp.

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

195  :
196  ECIES_KA_Params(domain, kdf_spec, dem_key_len + mac_key_len, compression_type, flags),
197  m_dem_spec(dem_algo_spec),
198  m_dem_keylen(dem_key_len),
199  m_mac_spec(mac_spec),
200  m_mac_keylen(mac_key_len)
201  {
202  // ISO 18033: "At most one of CofactorMode, OldCofactorMode, and CheckMode may be 1."
203  if(size_t(cofactor_mode()) + size_t(old_cofactor_mode()) + size_t(check_mode()) > 1)
204  {
205  throw Invalid_Argument("ECIES: only one of cofactor_mode, old_cofactor_mode and check_mode can be set");
206  }
207  }
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:182
bool check_mode() const
Definition: ecies.h:100
PointGFp::Compression_Type compression_type() const
Definition: ecies.h:105
Flags flags(Flag flags)
Definition: p11.h:858
const std::string & kdf_spec() const
Definition: ecies.h:110
bool cofactor_mode() const
Definition: ecies.h:90
bool old_cofactor_mode() const
Definition: ecies.h:95
const EC_Group & domain() const
Definition: ecies.h:75

◆ 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.

References Botan::CHECK_MODE.

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

101  {
102  return (m_flags & ECIES_Flags::CHECK_MODE) == ECIES_Flags::CHECK_MODE;
103  }
(decryption only) if set: test if the (ephemeral) public key is on the curve

◆ cofactor_mode()

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

Definition at line 90 of file ecies.h.

References Botan::COFACTOR_MODE.

Referenced by ECIES_System_Params().

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

◆ compression_type()

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

Definition at line 105 of file ecies.h.

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

106  {
107  return m_compression_mode;
108  }

◆ 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 222 of file ecies.cpp.

References Botan::Cipher_Mode::create_or_throw().

223  {
224  return Cipher_Mode::create_or_throw(m_dem_spec, direction);
225  }
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

◆ create_mac()

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

creates an instance of the message authentication code

Definition at line 217 of file ecies.cpp.

References Botan::MessageAuthenticationCode::create_or_throw().

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

◆ 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

Definition at line 75 of file ecies.h.

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

76  {
77  return m_domain;
78  }

◆ kdf_spec()

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

Definition at line 110 of file ecies.h.

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

111  {
112  return m_kdf_spec;
113  }

◆ 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.

References Botan::OLD_COFACTOR_MODE.

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

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

◆ operator=()

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

◆ secret_length()

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

Definition at line 80 of file ecies.h.

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

81  {
82  return m_length;
83  }

◆ single_hash_mode()

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

Definition at line 85 of file ecies.h.

References Botan::SINGLE_HASH_MODE.

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

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

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