Fuzz introspector: cert
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1443 3408 21 :

['Botan::BigInt::ct_cond_add(bool, Botan::BigInt const&)', 'Botan::operator>>(Botan::BigInt const&, unsigned long)', 'Botan::BigInt::BigInt(Botan::BigInt const&)', 'Botan::BigInt::set_sign(Botan::BigInt::Sign)', 'Botan::assertion_failure(char const*, char const*, char const*, char const*, int)', 'Botan::BigInt::bits() const', 'Botan::BigInt::operator+=(Botan::BigInt const&)', 'Botan::low_zero_bits(Botan::BigInt const&)', 'Botan::BigInt::is_negative() const', 'Botan::BigInt::get_bit(unsigned long) const', 'Botan::BigInt::zero()', 'Botan::BigInt::is_nonzero() const', 'Botan::BigInt::operator*=(Botan::BigInt const&)', 'Botan::operator*(Botan::BigInt const&, Botan::BigInt const&)', 'Botan::operator-(Botan::BigInt const&, Botan::BigInt const&)', 'Botan::operator==(Botan::BigInt const&, unsigned long)', 'Botan::BigInt::mask_bits(unsigned long)', 'Botan::BigInt::power_of_2(unsigned long)', 'Botan::(anonymous namespace)::inverse_mod_pow2(Botan::BigInt const&, unsigned long)', 'Botan::BigInt::BigInt(Botan::BigInt&&)', 'Botan::BigInt::ct_cond_assign(bool, Botan::BigInt const&)']

2041 4648 Botan::inverse_mod(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/mod_inv.cpp:189
629 631 10 :

['Botan::SHA1_F::(anonymous namespace)::F2(unsigned int, unsigned int&, unsigned int, unsigned int, unsigned int&, unsigned int)', 'void Botan::load_be (unsigned int*, unsigned char const*, unsigned long)', 'Botan::SHA1_F::(anonymous namespace)::F4(unsigned int, unsigned int&, unsigned int, unsigned int, unsigned int&, unsigned int)', 'unsigned int Botan::rotl<1ul, unsigned int>(unsigned int)', 'std::__1::vector >::operator[](unsigned long)', 'Botan::MDx_HashFunction::hash_block_size() const', 'Botan::SHA1_F::(anonymous namespace)::F1(unsigned int, unsigned int&, unsigned int, unsigned int, unsigned int&, unsigned int)', 'std::__1::vector >::data()', 'Botan::SHA1_F::(anonymous namespace)::F3(unsigned int, unsigned int&, unsigned int, unsigned int, unsigned int&, unsigned int)', 'std::__1::vector >::resize(unsigned long)']

629 631 Botan::SHA_1::compress_n(unsignedcharconst*,unsignedlong) call site: 00000 /src/botan/src/lib/hash/sha1/sha1.cpp:78
331 376 4 :

['Botan::BER_Decoder::~BER_Decoder()', 'Botan::BER_Decoder::decode(bool&)', 'Botan::BER_Decoder::BER_Decoder(Botan::BER_Object&&)', 'Botan::BER_Decoder::verify_end()']

335 380 Botan::BER_Decoder&Botan::BER_Decoder::decode_optional (bool&,Botan::ASN1_Type,Botan::ASN1_Class,boolconst&) call site: 00000 /src/botan/build/include/botan/ber_dec.h:317
299 314 3 :

['Botan::BigInt::~BigInt()', 'Botan::ct_modulo(Botan::BigInt const&, Botan::BigInt const&)', 'Botan::BigInt::operator=(Botan::BigInt&&)']

299 314 Botan::Modular_Reducer::reduce(Botan::BigInt&,Botan::BigIntconst&,std::__1::vector >&)const call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:79
299 307 2 :

['Botan::BigInt::~BigInt()', 'Botan::ct_modulo(Botan::BigInt const&, Botan::BigInt const&)']

299 576 Botan::inverse_mod(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/mod_inv.cpp:194
268 1787 51 :

['std::__1::vector >, std::__1::allocator > > >::~vector()', 'std::__1::remove_reference >&>::type&& std::__1::move >&>(std::__1::unique_ptr >&)', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'Botan::SCAN_Name::arg_as_integer(unsigned long, unsigned long) const', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::unique_ptr >::~unique_ptr()', 'bool std::__1::operator== , 1>(std::__1::basic_string_view >, std::__1::common_type > >::type)', 'std::__1::__unique_if ::__unique_single std::__1::make_unique >, unsigned long>(std::__1::unique_ptr >&&, unsigned long&&)', 'Botan::SCAN_Name::arg(unsigned long, std::__1::basic_string_view >) const', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'std::__1::__unique_if ::__unique_single std::__1::make_unique >, std::__1::unique_ptr > >(std::__1::unique_ptr >&&, std::__1::unique_ptr >&&)', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::__unique_if ::__unique_single std::__1::make_unique (unsigned long&&)', 'std::__1::__unique_if ::__unique_single std::__1::make_unique (unsigned long&&)', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'Botan::SCAN_Name::~SCAN_Name()', 'std::__1::unique_ptr >::unique_ptr (decltype(nullptr))', 'std::__1::__unique_if ::__unique_single std::__1::make_unique (unsigned long&&)', 'std::__1::__unique_if ::__unique_single std::__1::make_unique , std::__1::allocator > >(unsigned long&&, std::__1::basic_string , std::__1::allocator >&&)', 'Botan::HashFunction::create(std::__1::basic_string_view >, std::__1::basic_string_view >)', 'std::__1::__unique_if ::__unique_single std::__1::make_unique (unsigned long&&)', 'std::__1::__unique_if ::__unique_single std::__1::make_unique ()', 'bool std::__1::operator== , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&, char const*)', 'Botan::SCAN_Name::algo_name() const', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::vector >, std::__1::allocator > > >::push_back(std::__1::unique_ptr >&&)', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'Botan::SCAN_Name::SCAN_Name(std::__1::basic_string_view >)', 'std::__1::__unique_if ::__unique_single std::__1::make_unique (unsigned long&&)', 'Botan::SCAN_Name::arg_as_integer(unsigned long) const', 'std::__1::__unique_if ::__unique_single std::__1::make_unique >, std::__1::allocator > > >&>(std::__1::vector >, std::__1::allocator > > >&)', 'std::__1::vector >, std::__1::allocator > > >::vector()', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'Botan::SCAN_Name::arg_count() const', 'Botan::SCAN_Name::arg(unsigned long) const', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'std::__1::unique_ptr >::operator bool() const']

268 1787 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:197
211 211 1 :

['Botan::EC_Point::negate()']

227 246 Botan::EC_Point_Multi_Point_Precompute::multi_exp(Botan::BigIntconst&,Botan::BigIntconst&)const call site: 00000 /src/botan/src/lib/pubkey/ec_group/point_mul.cpp:377
175 182 2 :

['Botan::BigInt::operator--()', 'Botan::BigInt::flip_sign()']

175 194 Botan::ct_divide_word(Botan::BigIntconst&,unsignedlong,Botan::BigInt&,unsignedlong&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:105
103 103 1 :

['Botan::EC_Point::force_affine()']

103 103 Botan::EC_Point::force_all_affine(std::__1::vector >&,std::__1::vector >&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_point.cpp:389
68 157 13 :

['__cxa_free_exception', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', '__cxa_throw', 'Botan::OID::OID(std::__1::vector >&&)', 'std::__1::vector >::empty() const', 'Botan::(anonymous namespace)::parse_oid_str(std::__1::basic_string_view >)', 'std::__1::basic_string , std::__1::allocator > Botan::fmt > >(std::__1::basic_string_view >, std::__1::basic_string_view > const&)', 'std::__1::remove_reference >&>::type&& std::__1::move >&>(std::__1::vector >&)', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::vector >::~vector()', '__cxa_allocate_exception', 'Botan::Lookup_Error::Lookup_Error(std::__1::basic_string_view >)']

76 165 Botan::OID::from_string(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_oid.cpp:78
64 615 7 :

['bool std::__1::operator!= (std::__1::shared_ptr const&, decltype(nullptr))', 'Botan::assertion_failure(char const*, char const*, char const*, char const*, int)', 'std::__1::shared_ptr ::operator*() const', 'Botan::EC_Group_Data::set_oid(Botan::OID const&)', 'Botan::EC_Group_Data::params_match(Botan::EC_Group_Data const&) const', 'Botan::EC_Group::EC_group_info(Botan::OID const&)', 'std::__1::shared_ptr ::operator->() const']

72 623 Botan::EC_Group_Data_Map::lookup_or_create(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigIntconst&,Botan::OIDconst&,Botan::EC_Group_Source) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:259
16 69 3 :

['Botan::EC_Point::operator=(Botan::EC_Point&&)', 'Botan::EC_Point::~EC_Point()', 'Botan::EC_Point::EC_Point(Botan::CurveGFp const&)']

16 69 Botan::EC_Point::mult2i(unsignedlong,std::__1::vector >&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_point.cpp:241

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 fuzz(unsigned char const*, unsigned long) [function] [call site] 00001
2 Botan::DataSource_Memory::DataSource_Memory(unsigned char const*, unsigned long) [function] [call site] 00002
3 Botan::DataSource::DataSource() [function] [call site] 00003
2 Botan::X509_Certificate::X509_Certificate(Botan::DataSource&) [function] [call site] 00004
3 Botan::X509_Object::X509_Object() [function] [call site] 00005
4 Botan::ASN1_Object::ASN1_Object() [function] [call site] 00006
3 Botan::X509_Object::load_data(Botan::DataSource&) [function] [call site] 00007
4 Botan::ASN1::maybe_BER(Botan::DataSource&) [function] [call site] 00008
5 Botan::DataSource::peek_byte(unsigned char&) const [function] [call site] 00009
5 Botan::DataSource::read_byte(unsigned char&) [function] [call site] 00010
5 Botan::assertion_failure(char const*, char const*, char const*, char const*, int) [function] [call site] 00011
6 __cxa_allocate_exception [call site] 00012
6 Botan::Internal_Error::Internal_Error(std::__1::basic_string_view >) [function] [call site] 00013
7 Botan::Exception::Exception(char const*, std::__1::basic_string_view >) [function] [call site] 00014
8 std::exception::exception() [function] [call site] 00015
8 std::__1::basic_string , std::__1::allocator > Botan::fmt > >(std::__1::basic_string_view >, char const* const&, std::__1::basic_string_view > const&) [function] [call site] 00016
9 void Botan::fmt_detail::do_fmt > >(std::__1::basic_ostringstream , std::__1::allocator >&, std::__1::basic_string_view >, char const* const&, std::__1::basic_string_view > const&) [function] [call site] 00017
10 void Botan::fmt_detail::do_fmt >>(std::__1::basic_ostringstream , std::__1::allocator >&, std::__1::basic_string_view >, std::__1::basic_string_view > const&) [function] [call site] 00018
8 std::exception::~exception() [call site] 00019
5 __cxa_allocate_exception [call site] 00020
5 Botan::Stream_IO_Error::Stream_IO_Error(std::__1::basic_string_view >) [function] [call site] 00021
6 Botan::Exception::Exception(char const*, std::__1::basic_string_view >) [function] [call site] 00022
5 Botan::Exception::~Exception() [function] [call site] 00023
6 std::exception::~exception() [call site] 00024
4 Botan::PEM_Code::matches(Botan::DataSource&, std::__1::basic_string_view >, unsigned long) [function] [call site] 00025
5 std::__1::basic_string , std::__1::allocator > Botan::fmt > >(std::__1::basic_string_view >, std::__1::basic_string_view > const&) [function] [call site] 00026
4 Botan::BER_Decoder::BER_Decoder(Botan::DataSource&) [function] [call site] 00027
5 Botan::BER_Object::BER_Object() [function] [call site] 00028
4 Botan::BER_Decoder::~BER_Decoder() [function] [call site] 00029
5 Botan::BER_Object::~BER_Object() [function] [call site] 00030
4 Botan::PEM_Code::decode(Botan::DataSource&, std::__1::basic_string , std::__1::allocator >&) [function] [call site] 00031
5 Botan::DataSource::read_byte(unsigned char&) [function] [call site] 00032
5 __cxa_allocate_exception [call site] 00033
5 Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view >) [function] [call site] 00034
6 Botan::Exception::Exception(std::__1::basic_string_view >) [function] [call site] 00035
7 std::exception::exception() [function] [call site] 00036
7 std::exception::~exception() [call site] 00037
5 __cxa_throw [call site] 00038
5 __cxa_allocate_exception [call site] 00039
5 Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view >) [function] [call site] 00040
5 Botan::DataSource::read_byte(unsigned char&) [function] [call site] 00041
5 __cxa_allocate_exception [call site] 00042
5 Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view >) [function] [call site] 00043
5 __cxa_allocate_exception [call site] 00044
5 Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view >) [function] [call site] 00045
5 std::__1::basic_string , std::__1::allocator > Botan::fmt , std::__1::allocator > >(std::__1::basic_string_view >, std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00046
5 Botan::DataSource::read_byte(unsigned char&) [function] [call site] 00047
5 __cxa_allocate_exception [call site] 00048
5 Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view >) [function] [call site] 00049
5 __cxa_allocate_exception [call site] 00050
5 Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view >) [function] [call site] 00051
5 Botan::base64_decode(char const*, unsigned long, bool) [function] [call site] 00052
6 std::__1::vector > Botan::base_decode_to_vec >, Botan::(anonymous namespace)::Base64>(Botan::(anonymous namespace)::Base64&&, char const*, unsigned long, bool) [function] [call site] 00053
7 Botan::(anonymous namespace)::Base64::decode_max_output(unsigned long) [function] [call site] 00054
8 Botan::round_up(unsigned long, unsigned long) [function] [call site] 00055
9 Botan::throw_invalid_argument(char const*, char const*, char const*) [function] [call site] 00056
10 __cxa_allocate_exception [call site] 00057
10 std::__1::basic_string , std::__1::allocator > Botan::fmt (std::__1::basic_string_view >, char const* const&, char const* const&, char const* const&) [function] [call site] 00058
10 Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >) [function] [call site] 00059
11 Botan::Exception::Exception(std::__1::basic_string_view >) [function] [call site] 00060
7 unsigned long Botan::base_decode_full (Botan::(anonymous namespace)::Base64&, unsigned char*, char const*, unsigned long, bool) [function] [call site] 00061
8 unsigned long Botan::base_decode (Botan::(anonymous namespace)::Base64&, unsigned char*, char const*, unsigned long, unsigned long&, bool, bool) [function] [call site] 00062
9 Botan::(anonymous namespace)::Base64::decode_max_output(unsigned long) [function] [call site] 00063
9 void Botan::clear_mem (unsigned char*, unsigned long) [function] [call site] 00064
10 Botan::clear_bytes(void*, unsigned long) [function] [call site] 00065
9 Botan::(anonymous namespace)::Base64::lookup_binary_value(char) [function] [call site] 00066
10 Botan::CT::Mask ::is_within_range(unsigned char, unsigned char, unsigned char) [function] [call site] 00067
11 unsigned char Botan::expand_top_bit (unsigned char) [function] [call site] 00068
11 Botan::CT::Mask ::Mask(unsigned char) [function] [call site] 00069
10 Botan::CT::Mask ::is_within_range(unsigned char, unsigned char, unsigned char) [function] [call site] 00070
10 Botan::CT::Mask ::is_within_range(unsigned char, unsigned char, unsigned char) [function] [call site] 00071
10 Botan::CT::Mask ::is_equal(unsigned char, unsigned char) [function] [call site] 00072
11 Botan::CT::Mask ::is_zero(unsigned char) [function] [call site] 00073
12 unsigned char Botan::ct_is_zero (unsigned char) [function] [call site] 00074
13 unsigned char Botan::expand_top_bit (unsigned char) [function] [call site] 00075
12 Botan::CT::Mask ::Mask(unsigned char) [function] [call site] 00076
10 Botan::CT::Mask ::is_equal(unsigned char, unsigned char) [function] [call site] 00077
10 Botan::CT::Mask ::is_equal(unsigned char, unsigned char) [function] [call site] 00078
10 Botan::CT::Mask ::is_any_of(unsigned char, std::initializer_list ) [function] [call site] 00079
11 unsigned char Botan::expand_top_bit (unsigned char) [function] [call site] 00080
11 Botan::CT::Mask ::Mask(unsigned char) [function] [call site] 00081
10 Botan::CT::Mask ::select(unsigned char, unsigned char) const [function] [call site] 00082
11 Botan::CT::Mask ::value() const [function] [call site] 00083
11 unsigned char Botan::choose (unsigned char, unsigned char, unsigned char) [function] [call site] 00084
10 Botan::CT::Mask ::select(unsigned char, unsigned char) const [function] [call site] 00085
10 Botan::CT::Mask ::select(unsigned char, unsigned char) const [function] [call site] 00086
10 Botan::CT::Mask ::select(unsigned char, unsigned char) const [function] [call site] 00087
10 Botan::CT::Mask ::select(unsigned char, unsigned char) const [function] [call site] 00088
10 __clang_call_terminate [call site] 00089
11 __cxa_begin_catch [call site] 00090
9 Botan::(anonymous namespace)::Base64::check_bad_char(unsigned char, char, bool) [function] [call site] 00091
10 __cxa_allocate_exception [call site] 00092
10 Botan::format_char_for_display(char) [function] [call site] 00093
10 std::__1::basic_string , std::__1::allocator > Botan::fmt , std::__1::allocator > >(std::__1::basic_string_view >, std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00094
10 Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >) [function] [call site] 00095
9 Botan::(anonymous namespace)::Base64::decode(unsigned char*, unsigned char const*) [function] [call site] 00096
9 Botan::(anonymous namespace)::Base64::lookup_binary_value(char) [function] [call site] 00097
8 __cxa_allocate_exception [call site] 00098
8 Botan::(anonymous namespace)::Base64::name() [function] [call site] 00099
9 __clang_call_terminate [call site] 00100
8 Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >) [function] [call site] 00101
4 Botan::DataSource_Memory::DataSource_Memory(std::__1::vector >) [function] [call site] 00102
5 Botan::DataSource::DataSource() [function] [call site] 00103
4 __cxa_allocate_exception [call site] 00104
4 Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view >) [function] [call site] 00105
4 Botan::BER_Decoder::BER_Decoder(Botan::DataSource&) [function] [call site] 00106
4 Botan::BER_Decoder::~BER_Decoder() [function] [call site] 00107
4 Botan::DataSource_Memory::~DataSource_Memory() [function] [call site] 00108
5 Botan::DataSource::~DataSource() [function] [call site] 00109
4 __cxa_allocate_exception [call site] 00110
4 Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view >, std::exception const&) [function] [call site] 00111
5 Botan::Exception::Exception(std::__1::basic_string_view >, std::exception const&) [function] [call site] 00112
6 std::exception::exception() [function] [call site] 00113
6 std::__1::basic_string , std::__1::allocator > Botan::fmt >, char const*>(std::__1::basic_string_view >, std::__1::basic_string_view > const&, char const* const&) [function] [call site] 00114
6 std::exception::~exception() [call site] 00115
4 __cxa_end_catch [call site] 00116
2 Botan::X509_Certificate::~X509_Certificate() [function] [call site] 00117
3 Botan::X509_Object::~X509_Object() [function] [call site] 00118
4 Botan::AlgorithmIdentifier::~AlgorithmIdentifier() [function] [call site] 00119
5 Botan::OID::~OID() [function] [call site] 00120
6 Botan::ASN1_Object::~ASN1_Object() [function] [call site] 00121
2 Botan::DataSource_Memory::~DataSource_Memory() [function] [call site] 00122
2 __cxa_begin_catch [call site] 00123