Botan 2.19.5 Crypto and TLS for C&

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

`#include <asn1_print.h>`

Inheritance diagram for Botan::ASN1_Formatter:

## Public Member Functions
| ASN1_Formatter (bool print_context_specific, size_t max_depth)
template<typename Alloc >
std::string | print (const std::vector< uint8_t, Alloc > &vec) const
std::string | print (const uint8_t in[], size_t len) const
void | print_to_stream (std::ostream &out, const uint8_t in[], size_t len) const
virtual | ~ASN1_Formatter ()

## Protected Member Functions
virtual std::string | format (ASN1_Tag type_tag, ASN1_Tag class_tag, size_t level, size_t length, const std::string &value) const =0
virtual std::string | format_bin (ASN1_Tag type_tag, ASN1_Tag class_tag, const std::vector< uint8_t > &vec) const =0

## Detailed Description

Format ASN.1 data and call a virtual to format

Definition at line 22 of file asn1_print.h.

## Constructor & Destructor Documentation

## ◆ ~ASN1_Formatter()

virtual Botan::ASN1_Formatter::~ASN1_Formatter | ( |  | ) |
| inline virtual

Definition at line 25 of file asn1_print.h.

25{}

## ◆ ASN1_Formatter()

Botan::ASN1_Formatter::ASN1_Formatter | ( | bool | print_context_specific,
|  | size_t | max_depth
| ) |  |
| inline

Parameters

  print_context_specific | if true, try to parse nested context specific data.
  max_depth | do not recurse more than this many times. If zero, recursion is unbounded.

Definition at line 32 of file asn1_print.h.

32 :
33 m_print_context_specific(print_context_specific),
34 m_max_depth(max_depth)
35 {}

## Member Function Documentation

## ◆ format()

virtual std::string Botan::ASN1_Formatter::format | ( | ASN1_Tag | type_tag,
|  | ASN1_Tag | class_tag,
|  | size_t | level,
|  | size_t | length,
|  | const std::string & | value
| ) |  | const
| protected pure virtual

This is called for each element

## ◆ format_bin()

virtual std::string Botan::ASN1_Formatter::format_bin | ( | ASN1_Tag | type_tag,
|  | ASN1_Tag | class_tag,
|  | const std::vector< uint8_t > & | vec
| ) |  | const
| protected pure virtual

This is called to format binary elements that we don't know how to convert to a string The result will be passed as value to format; the tags are included as a hint to aid decoding.

## ◆ print() [1/2]

template<typename Alloc >

std::string Botan::ASN1_Formatter::print | ( | const std::vector< uint8_t, Alloc > & | vec | ) | const
| inline

Definition at line 44 of file asn1_print.h.

45 {
46 return print(vec.data(), vec.size());
47 }
Botan::ASN1_Formatter::print
std::string print(const uint8_t in[], size_t len) const
Definition: asn1_print.cpp:57

## ◆ print() [2/2]

std::string Botan::ASN1_Formatter::print | ( | const uint8_t | in[],
|  | size_t | len
| ) |  | const

Definition at line 57 of file asn1_print.cpp.

58 {
59 std::ostringstream output;
60 print_to_stream(output, in, len);
61 return output.str();
62 }
Botan::ASN1_Formatter::print_to_stream
void print_to_stream(std::ostream &out, const uint8_t in[], size_t len) const
Definition: asn1_print.cpp:64

References print_to_stream().

## ◆ print_to_stream()

void Botan::ASN1_Formatter::print_to_stream | ( | std::ostream & | out,
|  | const uint8_t | in[],
|  | size_t | len
| ) |  | const

Definition at line 64 of file asn1_print.cpp.

67 {
68 BER_Decoder dec(in, len);
69 decode(output, dec, 0);
70 }

Referenced by print().

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

- src/lib/asn1/asn1_print.h
- src/lib/asn1/asn1_print.cpp