7#ifndef BOTAN_ASN1_PRINT_H_
8#define BOTAN_ASN1_PRINT_H_
10#include <botan/asn1_obj.h>
34 m_print_context_specific(print_context_specific),
35 m_max_depth(max_depth)
38 void print_to_stream(std::ostream& out,
42 std::string print(
const uint8_t in[],
size_t len)
const;
44 template<
typename Alloc>
45 std::string
print(
const std::vector<uint8_t, Alloc>& vec)
const
47 return print(vec.data(), vec.size());
58 std::string_view value)
const = 0;
67 const std::vector<uint8_t>& vec)
const = 0;
75 void decode(std::ostream& output,
79 const bool m_print_context_specific;
80 const size_t m_max_depth;
100 size_t print_binary_limit = 2048,
101 bool print_context_specific =
true,
102 size_t initial_level = 0,
103 size_t value_column = 60,
104 size_t max_depth = 64) :
106 m_print_limit(print_limit),
107 m_print_binary_limit(print_binary_limit),
108 m_initial_level(initial_level),
109 m_value_column(value_column)
117 std::string_view value)
const override;
119 std::string format_bin(
ASN1_Type type_tag,
121 const std::vector<uint8_t>& vec)
const override;
123 std::string format_bn(
const BigInt& bn)
const override;
125 const size_t m_print_limit;
126 const size_t m_print_binary_limit;
127 const size_t m_initial_level;
128 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)