Botan 3.9.0
Crypto and TLS for C&
Botan::AlgorithmIdentifier Class Referencefinal

#include <asn1_obj.h>

Inheritance diagram for Botan::AlgorithmIdentifier:
Botan::ASN1_Object

Public Types

enum  Encoding_Option : uint8_t { USE_NULL_PARAM , USE_EMPTY_PARAM }

Public Member Functions

 AlgorithmIdentifier ()=default
 AlgorithmIdentifier (const OID &oid, const std::vector< uint8_t > &params)
 AlgorithmIdentifier (const OID &oid, Encoding_Option enc)
 AlgorithmIdentifier (std::string_view oid_name, const std::vector< uint8_t > &params)
 AlgorithmIdentifier (std::string_view oid_name, Encoding_Option enc)
std::vector< uint8_t > BER_encode () const
void decode_from (BER_Decoder &from) override
bool empty () const
void encode_into (DER_Encoder &to) const override
const OIDget_oid () const
const std::vector< uint8_t > & get_parameters () const
const OIDoid () const
const std::vector< uint8_t > & parameters () const
bool parameters_are_empty () const
bool parameters_are_null () const
bool parameters_are_null_or_empty () const

Detailed Description

Algorithm Identifier

Definition at line 464 of file asn1_obj.h.

Member Enumeration Documentation

◆ Encoding_Option

Enumerator
USE_NULL_PARAM 
USE_EMPTY_PARAM 

Definition at line 466 of file asn1_obj.h.

Constructor & Destructor Documentation

◆ AlgorithmIdentifier() [1/5]

Botan::AlgorithmIdentifier::AlgorithmIdentifier ( )
default

◆ AlgorithmIdentifier() [2/5]

Botan::AlgorithmIdentifier::AlgorithmIdentifier ( const OID & oid,
Encoding_Option enc )

Definition at line 30 of file alg_id.cpp.

30 : m_oid(oid) {
31 constexpr uint8_t DER_NULL[] = {0x05, 0x00};
32
33 if(option == USE_NULL_PARAM) {
34 m_parameters.assign(DER_NULL, DER_NULL + 2);
35 }
36}
const OID & oid() const
Definition asn1_obj.h:479

References oid(), and USE_NULL_PARAM.

◆ AlgorithmIdentifier() [3/5]

Botan::AlgorithmIdentifier::AlgorithmIdentifier ( std::string_view oid_name,
Encoding_Option enc )

Definition at line 41 of file alg_id.cpp.

41 : m_oid(OID::from_string(oid)) {
42 constexpr uint8_t DER_NULL[2] = {0x05, 0x00};
43
44 if(option == USE_NULL_PARAM) {
45 m_parameters.assign(DER_NULL, DER_NULL + 2);
46 }
47}
static OID from_string(std::string_view str)
Definition asn1_oid.cpp:86

References oid(), and USE_NULL_PARAM.

◆ AlgorithmIdentifier() [4/5]

Botan::AlgorithmIdentifier::AlgorithmIdentifier ( const OID & oid,
const std::vector< uint8_t > & params )

Definition at line 18 of file alg_id.cpp.

18 :
19 m_oid(oid), m_parameters(param) {}

References oid().

◆ AlgorithmIdentifier() [5/5]

Botan::AlgorithmIdentifier::AlgorithmIdentifier ( std::string_view oid_name,
const std::vector< uint8_t > & params )

Definition at line 24 of file alg_id.cpp.

References AlgorithmIdentifier(), and oid().

Member Function Documentation

◆ BER_encode()

std::vector< uint8_t > Botan::ASN1_Object::BER_encode ( ) const
inherited

Return the encoding of this object. This is a convenience method when just one object needs to be serialized. Use DER_Encoder for complicated encodings.

Definition at line 19 of file asn1_obj.cpp.

19 {
20 std::vector<uint8_t> output;
21 DER_Encoder der(output);
22 this->encode_into(der);
23 return output;
24}
virtual void encode_into(DER_Encoder &to) const =0

References encode_into().

Referenced by decode_from(), Botan::Certificate_Store_In_SQL::find_all_certs(), Botan::Certificate_Store_In_SQL::find_cert(), Botan::X509_Certificate::fingerprint(), Botan::Certificate_Store_In_SQL::insert_cert(), Botan::X509_Object::PEM_encode(), Botan::PSS_Params::PSS_Params(), and Botan::Certificate_Store_In_SQL::revoke_cert().

◆ decode_from()

void Botan::AlgorithmIdentifier::decode_from ( BER_Decoder & from)
overridevirtual

Decode whatever this object is from from

Parameters
fromthe BER_Decoder that will be read from

Implements Botan::ASN1_Object.

Definition at line 82 of file alg_id.cpp.

82 {
83 codec.start_sequence().decode(m_oid).raw_bytes(m_parameters).end_cons();
84}

References Botan::BER_Decoder::decode(), Botan::BER_Decoder::end_cons(), Botan::BER_Decoder::raw_bytes(), and Botan::BER_Decoder::start_sequence().

◆ empty()

bool Botan::AlgorithmIdentifier::empty ( ) const
inline

Definition at line 495 of file asn1_obj.h.

495{ return m_oid.empty() && m_parameters.empty(); }

◆ encode_into()

void Botan::AlgorithmIdentifier::encode_into ( DER_Encoder & to) const
overridevirtual

Encode whatever this object is into to

Parameters
tothe DER_Encoder that will be written to

Implements Botan::ASN1_Object.

Definition at line 75 of file alg_id.cpp.

75 {
76 codec.start_sequence().encode(oid()).raw_bytes(parameters()).end_cons();
77}
const std::vector< uint8_t > & parameters() const
Definition asn1_obj.h:481

References Botan::DER_Encoder::encode(), Botan::DER_Encoder::end_cons(), oid(), parameters(), Botan::DER_Encoder::raw_bytes(), and Botan::DER_Encoder::start_sequence().

◆ get_oid()

const OID & Botan::AlgorithmIdentifier::get_oid ( ) const
inline

Definition at line 483 of file asn1_obj.h.

483{ return m_oid; }

References get_oid().

Referenced by get_oid().

◆ get_parameters()

const std::vector< uint8_t > & Botan::AlgorithmIdentifier::get_parameters ( ) const
inline

Definition at line 485 of file asn1_obj.h.

485 {
486 return m_parameters;
487 }

References get_parameters().

Referenced by get_parameters().

◆ oid()

◆ parameters()

const std::vector< uint8_t > & Botan::AlgorithmIdentifier::parameters ( ) const
inline

◆ parameters_are_empty()

bool Botan::AlgorithmIdentifier::parameters_are_empty ( ) const
inline

Definition at line 491 of file asn1_obj.h.

491{ return m_parameters.empty(); }

Referenced by parameters_are_null_or_empty(), and Botan::PK_Ops::Verification_with_Hash::Verification_with_Hash().

◆ parameters_are_null()

bool Botan::AlgorithmIdentifier::parameters_are_null ( ) const

Definition at line 49 of file alg_id.cpp.

49 {
50 return (m_parameters.size() == 2 && (m_parameters[0] == 0x05) && (m_parameters[1] == 0x00));
51}

Referenced by parameters_are_null_or_empty(), and Botan::PK_Ops::Verification_with_Hash::Verification_with_Hash().

◆ parameters_are_null_or_empty()

bool Botan::AlgorithmIdentifier::parameters_are_null_or_empty ( ) const
inline

Definition at line 493 of file asn1_obj.h.

bool parameters_are_empty() const
Definition asn1_obj.h:491
bool parameters_are_null() const
Definition alg_id.cpp:49

References parameters_are_empty(), and parameters_are_null().

Referenced by Botan::operator==().


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