7#ifndef BOTAN_ASN1_PRINT_H_
8#define BOTAN_ASN1_PRINT_H_
10#include <botan/asn1_obj.h>
33 m_print_context_specific(print_context_specific),
34 m_max_depth(max_depth)
37 void print_to_stream(std::ostream& out,
41 std::string print(
const uint8_t in[],
size_t len)
const;
43 template<
typename Alloc>
44 std::string
print(
const std::vector<uint8_t, Alloc>& vec)
const
46 return print(vec.data(), vec.size());
57 const std::string& value)
const = 0;
66 const std::vector<uint8_t>& vec)
const = 0;
69 void decode(std::ostream& output,
73 const bool m_print_context_specific;
74 const size_t m_max_depth;
94 size_t print_binary_limit = 2048,
95 bool print_context_specific =
true,
96 size_t initial_level = 0,
97 size_t value_column = 60,
98 size_t max_depth = 64) :
100 m_print_limit(print_limit),
101 m_print_binary_limit(print_binary_limit),
102 m_initial_level(initial_level),
103 m_value_column(value_column)
107 std::string format(
ASN1_Tag type_tag,
111 const std::string& value)
const override;
113 std::string format_bin(
ASN1_Tag type_tag,
115 const std::vector<uint8_t>& vec)
const override;
117 const size_t m_print_limit;
118 const size_t m_print_binary_limit;
119 const size_t m_initial_level;
120 const size_t m_value_column;
ASN1_Pretty_Printer(size_t print_limit=4096, size_t print_binary_limit=2048, bool print_context_specific=true, size_t initial_level=0, size_t value_column=60, size_t max_depth=64)
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)