Botan 3.6.1
Crypto and TLS for C&
Botan::DL_PublicKey Class Referencefinal

#include <dl_scheme.h>

Public Member Functions

bool check_key (RandomNumberGenerator &rng, bool strong) const
 
std::vector< uint8_t > DER_encode () const
 
 DL_PublicKey (const AlgorithmIdentifier &alg_id, std::span< const uint8_t > key_bits, DL_Group_Format format)
 
 DL_PublicKey (const DL_Group &group, const BigInt &public_key)
 
size_t estimated_strength () const
 
const BigIntget_int_field (std::string_view algo_name, std::string_view field) const
 
const DL_Groupgroup () const
 
size_t p_bits () const
 
const BigIntpublic_key () const
 
std::vector< uint8_t > public_key_as_bytes () const
 

Detailed Description

Definition at line 21 of file dl_scheme.h.

Constructor & Destructor Documentation

◆ DL_PublicKey() [1/2]

Botan::DL_PublicKey::DL_PublicKey ( const DL_Group & group,
const BigInt & public_key )

Definition at line 38 of file dl_scheme.cpp.

38 :
39 m_group(group), m_public_key(public_key) {}
const BigInt & public_key() const
Definition dl_scheme.h:31
const DL_Group & group() const
Definition dl_scheme.h:29

◆ DL_PublicKey() [2/2]

Botan::DL_PublicKey::DL_PublicKey ( const AlgorithmIdentifier & alg_id,
std::span< const uint8_t > key_bits,
DL_Group_Format format )

Definition at line 41 of file dl_scheme.cpp.

43 :
44 m_group(alg_id.parameters(), format), m_public_key(decode_single_bigint(key_bits)) {}

Member Function Documentation

◆ check_key()

bool Botan::DL_PublicKey::check_key ( RandomNumberGenerator & rng,
bool strong ) const

Definition at line 56 of file dl_scheme.cpp.

56 {
57 return m_group.verify_group(rng, strong) && m_group.verify_public_element(m_public_key);
58}
bool verify_public_element(const BigInt &y) const
Definition dl_group.cpp:324
bool verify_group(RandomNumberGenerator &rng, bool strong=true) const
Definition dl_group.cpp:373

References Botan::DL_Group::verify_group(), and Botan::DL_Group::verify_public_element().

◆ DER_encode()

std::vector< uint8_t > Botan::DL_PublicKey::DER_encode ( ) const

Definition at line 50 of file dl_scheme.cpp.

50 {
51 std::vector<uint8_t> output;
52 DER_Encoder(output).encode(m_public_key);
53 return output;
54}

References Botan::DER_Encoder::encode().

◆ estimated_strength()

size_t Botan::DL_PublicKey::estimated_strength ( ) const

Definition at line 60 of file dl_scheme.cpp.

60 {
61 return m_group.estimated_strength();
62}
size_t estimated_strength() const
Definition dl_group.cpp:470

References Botan::DL_Group::estimated_strength().

◆ get_int_field()

const BigInt & Botan::DL_PublicKey::get_int_field ( std::string_view algo_name,
std::string_view field ) const

Definition at line 101 of file dl_scheme.cpp.

101 {
102 if(field == "p") {
103 return m_group.get_p();
104 } else if(field == "q") {
105 return m_group.get_q();
106 } else if(field == "g") {
107 return m_group.get_g();
108 } else if(field == "y") {
109 return m_public_key;
110 } else {
111 throw Unknown_PK_Field_Name(algo, field);
112 }
113}
const BigInt & get_p() const
Definition dl_group.cpp:426
const BigInt & get_g() const
Definition dl_group.cpp:433
const BigInt & get_q() const
Definition dl_group.cpp:440

References Botan::DL_Group::get_g(), Botan::DL_Group::get_p(), and Botan::DL_Group::get_q().

◆ group()

const DL_Group & Botan::DL_PublicKey::group ( ) const
inline

Definition at line 29 of file dl_scheme.h.

29{ return m_group; }

◆ p_bits()

size_t Botan::DL_PublicKey::p_bits ( ) const

Definition at line 64 of file dl_scheme.cpp.

64 {
65 return m_group.p_bits();
66}
size_t p_bits() const
Definition dl_group.cpp:452

References Botan::DL_Group::p_bits().

◆ public_key()

const BigInt & Botan::DL_PublicKey::public_key ( ) const
inline

Definition at line 31 of file dl_scheme.h.

31{ return m_public_key; }

◆ public_key_as_bytes()

std::vector< uint8_t > Botan::DL_PublicKey::public_key_as_bytes ( ) const

Definition at line 46 of file dl_scheme.cpp.

46 {
47 return m_public_key.serialize(m_group.p_bytes());
48}
T serialize(size_t len) const
Definition bigint.h:712
size_t p_bytes() const
Definition dl_group.cpp:456

References Botan::DL_Group::p_bytes(), and Botan::BigInt::serialize().


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