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

#include <alg_id.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
 

Public Attributes

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

Detailed Description

Algorithm Identifier

Definition at line 21 of file alg_id.h.

Member Enumeration Documentation

Enumerator
USE_NULL_PARAM 
USE_EMPTY_PARAM 

Definition at line 24 of file alg_id.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: alg_id.h:46
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: alg_id.h:46
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: alg_id.h:46
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 108 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().

109  {
110  codec.start_cons(SEQUENCE)
111  .decode(oid)
112  .raw_bytes(parameters)
113  .end_cons();
114  }
std::vector< uint8_t > parameters
Definition: alg_id.h:46
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 97 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().

98  {
99  codec.start_cons(SEQUENCE)
100  .encode(get_oid())
101  .raw_bytes(get_parameters())
102  .end_cons();
103  }
const OID & get_oid() const
Definition: alg_id.h:37
const std::vector< uint8_t > & get_parameters() const
Definition: alg_id.h:38
const OID& Botan::AlgorithmIdentifier::get_oid ( ) const
inline
const std::vector<uint8_t>& Botan::AlgorithmIdentifier::get_parameters ( ) const
inline

Member Data Documentation

BOTAN_DEPRECATED_PUBLIC_MEMBER_VARIABLES Botan::AlgorithmIdentifier::__pad0__

Definition at line 45 of file alg_id.h.

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

Definition at line 46 of file alg_id.h.

Referenced by AlgorithmIdentifier(), and decode_from().


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