Botan  2.19.1
Crypto and TLS for C++11
Public Types | Public Member Functions | Public Attributes | List of all members
Botan::AlgorithmIdentifier Class Referencefinal

#include <asn1_obj.h>

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

Public Types

enum  Encoding_Option { USE_NULL_PARAM, USE_EMPTY_PARAM }
 

Public Member Functions

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

Public Attributes

BOTAN_DEPRECATED_PUBLIC_MEMBER_VARIABLES __pad0__: OID oid
 
std::vector< uint8_t > parameters
 

Detailed Description

Algorithm Identifier

Definition at line 429 of file asn1_obj.h.

Member Enumeration Documentation

Enumerator
USE_NULL_PARAM 
USE_EMPTY_PARAM 

Definition at line 432 of file asn1_obj.h.

Constructor & Destructor Documentation

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

Definition at line 35 of file alg_id.cpp.

References parameters, and USE_NULL_PARAM.

36  :
37  oid(alg_id),
38  parameters()
39  {
40  const uint8_t DER_NULL[] = { 0x05, 0x00 };
41 
42  if(option == USE_NULL_PARAM)
43  parameters.assign(DER_NULL, DER_NULL + 2);
44  }
std::vector< uint8_t > parameters
Definition: asn1_obj.h:462
Botan::AlgorithmIdentifier::AlgorithmIdentifier ( const std::string &  oid_name,
Encoding_Option  enc 
)

Definition at line 49 of file alg_id.cpp.

References parameters, and USE_NULL_PARAM.

50  :
51  oid(OID::from_string(alg_id)),
52  parameters()
53  {
54  const uint8_t DER_NULL[] = { 0x05, 0x00 };
55 
56  if(option == USE_NULL_PARAM)
57  parameters.assign(DER_NULL, DER_NULL + 2);
58  }
std::vector< uint8_t > parameters
Definition: asn1_obj.h:462
static OID from_string(const std::string &str)
Definition: asn1_oid.cpp:62
Botan::AlgorithmIdentifier::AlgorithmIdentifier ( const OID oid,
const std::vector< uint8_t > &  params 
)

Definition at line 18 of file alg_id.cpp.

19  :
20  oid(alg_id),
21  parameters(param)
22  {}
std::vector< uint8_t > parameters
Definition: asn1_obj.h:462
Botan::AlgorithmIdentifier::AlgorithmIdentifier ( const std::string &  oid_name,
const std::vector< uint8_t > &  params 
)

Definition at line 27 of file alg_id.cpp.

28  :
30  {}
static OID from_string(const std::string &str)
Definition: asn1_oid.cpp:62

Member Function Documentation

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 16 of file asn1_obj.cpp.

References Botan::ASN1_Object::encode_into().

Referenced by Botan::PSSR::config_for_x509(), 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(), and Botan::Certificate_Store_In_SQL::revoke_cert().

17  {
18  std::vector<uint8_t> output;
19  DER_Encoder der(output);
20  this->encode_into(der);
21  return output;
22  }
virtual void encode_into(DER_Encoder &to) const =0
void Botan::AlgorithmIdentifier::decode_from ( class 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 101 of file alg_id.cpp.

References Botan::BER_Decoder::decode(), Botan::BER_Decoder::end_cons(), parameters, Botan::BER_Decoder::raw_bytes(), Botan::SEQUENCE, and Botan::BER_Decoder::start_cons().

102  {
103  codec.start_cons(SEQUENCE)
104  .decode(oid)
105  .raw_bytes(parameters)
106  .end_cons();
107  }
std::vector< uint8_t > parameters
Definition: asn1_obj.h:462
void Botan::AlgorithmIdentifier::encode_into ( class 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 90 of file alg_id.cpp.

References Botan::DER_Encoder::encode(), Botan::DER_Encoder::end_cons(), get_oid(), get_parameters(), Botan::DER_Encoder::raw_bytes(), Botan::SEQUENCE, and Botan::DER_Encoder::start_cons().

91  {
92  codec.start_cons(SEQUENCE)
93  .encode(get_oid())
94  .raw_bytes(get_parameters())
95  .end_cons();
96  }
const OID & get_oid() const
Definition: asn1_obj.h:445
const std::vector< uint8_t > & get_parameters() const
Definition: asn1_obj.h:446
const OID& Botan::AlgorithmIdentifier::get_oid ( ) const
inline
const std::vector<uint8_t>& Botan::AlgorithmIdentifier::get_parameters ( ) const
inline
bool Botan::AlgorithmIdentifier::parameters_are_empty ( ) const
inline

Definition at line 449 of file asn1_obj.h.

449 { return parameters.empty(); }
std::vector< uint8_t > parameters
Definition: asn1_obj.h:462
bool Botan::AlgorithmIdentifier::parameters_are_null ( ) const

Definition at line 60 of file alg_id.cpp.

References parameters.

61  {
62  return (parameters.size() == 2 && (parameters[0] == 0x05) && (parameters[1] == 0x00));
63  }
std::vector< uint8_t > parameters
Definition: asn1_obj.h:462
bool Botan::AlgorithmIdentifier::parameters_are_null_or_empty ( ) const
inline

Definition at line 451 of file asn1_obj.h.

Referenced by Botan::operator==().

452  {
454  }
bool parameters_are_empty() const
Definition: asn1_obj.h:449
bool parameters_are_null() const
Definition: alg_id.cpp:60

Member Data Documentation

BOTAN_DEPRECATED_PUBLIC_MEMBER_VARIABLES Botan::AlgorithmIdentifier::__pad0__

Definition at line 461 of file asn1_obj.h.

std::vector<uint8_t> Botan::AlgorithmIdentifier::parameters

Definition at line 462 of file asn1_obj.h.

Referenced by AlgorithmIdentifier(), decode_from(), and parameters_are_null().


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