Botan  1.10.9
Public Member Functions | Protected Member Functions | List of all members
Botan::PK_Key_Agreement_Key Class Referenceabstract

#include <pk_keys.h>

Inheritance diagram for Botan::PK_Key_Agreement_Key:
Botan::Private_Key Botan::Public_Key Botan::DH_PrivateKey Botan::ECDH_PrivateKey

Public Member Functions

virtual std::string algo_name () const =0
 
virtual AlgorithmIdentifier algorithm_identifier () const =0
 
virtual bool check_key (RandomNumberGenerator &rng, bool strong) const =0
 
virtual OID get_oid () const
 
virtual size_t max_input_bits () const =0
 
virtual size_t message_part_size () const
 
virtual size_t message_parts () const
 
virtual AlgorithmIdentifier pkcs8_algorithm_identifier () const
 
virtual MemoryVector< bytepkcs8_private_key () const =0
 
virtual MemoryVector< bytepublic_value () const =0
 
virtual MemoryVector< bytex509_subject_public_key () const =0
 
virtual ~PK_Key_Agreement_Key ()
 

Protected Member Functions

void gen_check (RandomNumberGenerator &rng) const
 
void load_check (RandomNumberGenerator &rng) const
 

Detailed Description

PK Secret Value Derivation Key

Definition at line 118 of file pk_keys.h.

Constructor & Destructor Documentation

virtual Botan::PK_Key_Agreement_Key::~PK_Key_Agreement_Key ( )
inlinevirtual

Definition at line 126 of file pk_keys.h.

126 {}

Member Function Documentation

virtual std::string Botan::Public_Key::algo_name ( ) const
pure virtualinherited
virtual AlgorithmIdentifier Botan::Public_Key::algorithm_identifier ( ) const
pure virtualinherited
virtual bool Botan::Public_Key::check_key ( RandomNumberGenerator rng,
bool  strong 
) const
pure virtualinherited
void Botan::Private_Key::gen_check ( RandomNumberGenerator rng) const
protectedinherited

Self-test after generating a key

Parameters
rnga random number generator

Definition at line 49 of file pk_keys.cpp.

References Botan::Public_Key::algo_name(), and Botan::Public_Key::check_key().

Referenced by Botan::DH_PrivateKey::DH_PrivateKey(), Botan::DSA_PrivateKey::DSA_PrivateKey(), Botan::ElGamal_PrivateKey::ElGamal_PrivateKey(), Botan::NR_PrivateKey::NR_PrivateKey(), Botan::RSA_PrivateKey::RSA_PrivateKey(), and Botan::RW_PrivateKey::RW_PrivateKey().

50  {
51  if(!check_key(rng, BOTAN_PRIVATE_KEY_STRONG_CHECKS_ON_GENERATE))
52  throw Self_Test_Failure(algo_name() + " private key generation failed");
53  }
virtual bool check_key(RandomNumberGenerator &rng, bool strong) const =0
virtual std::string algo_name() const =0
RandomNumberGenerator * rng
Definition: global_rng.cpp:165
OID Botan::Public_Key::get_oid ( ) const
virtualinherited

Get the OID of the underlying public key scheme.

Returns
OID of the public key scheme

Definition at line 17 of file pk_keys.cpp.

References Botan::Public_Key::algo_name(), and Botan::OIDS::lookup().

Referenced by Botan::DL_Scheme_PublicKey::algorithm_identifier(), Botan::IF_Scheme_PublicKey::algorithm_identifier(), Botan::GOST_3410_PublicKey::algorithm_identifier(), and Botan::EC_PublicKey::algorithm_identifier().

18  {
19  try {
20  return OIDS::lookup(algo_name());
21  }
22  catch(Lookup_Error)
23  {
24  throw Lookup_Error("PK algo " + algo_name() + " has no defined OIDs");
25  }
26  }
virtual std::string algo_name() const =0
std::string lookup(const OID &oid)
Definition: oids.cpp:31
void Botan::Private_Key::load_check ( RandomNumberGenerator rng) const
protectedvirtualinherited

Self-test after loading a key

Parameters
rnga random number generator

Reimplemented from Botan::Public_Key.

Definition at line 40 of file pk_keys.cpp.

References Botan::Public_Key::algo_name(), and Botan::Public_Key::check_key().

Referenced by Botan::DH_PrivateKey::DH_PrivateKey(), Botan::DSA_PrivateKey::DSA_PrivateKey(), Botan::ElGamal_PrivateKey::ElGamal_PrivateKey(), Botan::IF_Scheme_PrivateKey::IF_Scheme_PrivateKey(), and Botan::NR_PrivateKey::NR_PrivateKey().

41  {
42  if(!check_key(rng, BOTAN_PRIVATE_KEY_STRONG_CHECKS_ON_LOAD))
43  throw Invalid_Argument(algo_name() + ": Invalid private key");
44  }
virtual bool check_key(RandomNumberGenerator &rng, bool strong) const =0
virtual std::string algo_name() const =0
std::invalid_argument Invalid_Argument
Definition: exceptn.h:20
RandomNumberGenerator * rng
Definition: global_rng.cpp:165
virtual size_t Botan::Public_Key::max_input_bits ( ) const
pure virtualinherited

Get the maximum message size in bits supported by this public key.

Returns
maximum message size in bits

Implemented in Botan::GOST_3410_PublicKey, Botan::ECDH_PublicKey, Botan::ECDSA_PublicKey, Botan::IF_Scheme_PublicKey, Botan::NR_PublicKey, Botan::DSA_PublicKey, Botan::ElGamal_PublicKey, and Botan::DH_PublicKey.

Referenced by Botan::choose_sig_format().

virtual size_t Botan::Public_Key::message_part_size ( ) const
inlinevirtualinherited

Find out the message part size supported by this scheme/key.

Returns
size of the message parts in bits

Reimplemented in Botan::GOST_3410_PublicKey, Botan::ECDSA_PublicKey, Botan::NR_PublicKey, and Botan::DSA_PublicKey.

Definition at line 56 of file pk_keys.h.

56 { return 0; }
virtual size_t Botan::Public_Key::message_parts ( ) const
inlinevirtualinherited

Find out the number of message parts supported by this scheme.

Returns
number of message parts

Reimplemented in Botan::GOST_3410_PublicKey, Botan::ECDSA_PublicKey, Botan::NR_PublicKey, and Botan::DSA_PublicKey.

Definition at line 50 of file pk_keys.h.

Referenced by Botan::EAC_Signed_Object::check_signature(), Botan::X509_Object::check_signature(), and Botan::choose_sig_format().

50 { return 1; }
virtual AlgorithmIdentifier Botan::Private_Key::pkcs8_algorithm_identifier ( ) const
inlinevirtualinherited
Returns
PKCS #8 AlgorithmIdentifier for this key Might be different from the X.509 identifier, but normally is not

Reimplemented in Botan::GOST_3410_PrivateKey.

Definition at line 98 of file pk_keys.h.

Referenced by Botan::PKCS8::BER_encode().

99  { return algorithm_identifier(); }
virtual AlgorithmIdentifier algorithm_identifier() const =0
virtual MemoryVector<byte> Botan::Private_Key::pkcs8_private_key ( ) const
pure virtualinherited
Returns
PKCS #8 private key encoding for this key object

Implemented in Botan::EC_PrivateKey, Botan::DL_Scheme_PrivateKey, and Botan::IF_Scheme_PrivateKey.

Referenced by Botan::PKCS8::BER_encode().

virtual MemoryVector<byte> Botan::PK_Key_Agreement_Key::public_value ( ) const
pure virtual
virtual MemoryVector<byte> Botan::Public_Key::x509_subject_public_key ( ) const
pure virtualinherited
Returns
X.509 subject key encoding for this key object

Implemented in Botan::EC_PublicKey, Botan::GOST_3410_PublicKey, Botan::IF_Scheme_PublicKey, and Botan::DL_Scheme_PublicKey.

Referenced by Botan::X509::BER_encode().


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