Fuzz introspector: tls_server
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
2708 3868 12 :

['std::__1::span ::span >&>(std::__1::vector >&)', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', 'Botan::AlgorithmIdentifier::parameters() const', 'std::__1::basic_string , std::__1::allocator > Botan::fmt (std::__1::basic_string_view >, Botan::OID const&)', 'Botan::pbes2_decrypt(std::__1::span , std::__1::basic_string_view >, std::__1::vector > const&)', 'Botan::OID::to_formatted_string() const', 'std::__1::function , std::__1::allocator > ()>::operator()() const', 'Botan::PKCS8_Exception::PKCS8_Exception(std::__1::basic_string_view >)', 'Botan::AlgorithmIdentifier::oid() const', 'bool std::__1::operator!= , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&, char const*)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::vector >::operator=(std::__1::vector >&&)']

2784 5077 Botan::PKCS8::(anonymousnamespace)::PKCS8_decode(Botan::DataSource&,std::__1::function ,std::__1::allocator >()>const&,Botan::AlgorithmIdentifier&,bool) call site: 00000 /src/botan/src/lib/pubkey/pkcs8.cpp:85
2690 2690 9 :

['Botan::EC_Group::BER_decode_EC_group(unsigned char const*, unsigned long, Botan::EC_Group_Source)', 'Botan::PEM_Code::decode_check_label(std::__1::basic_string_view >, std::__1::basic_string_view >)', 'std::__1::vector >::size() const', 'std::__1::vector >::data()', 'std::__1::basic_string_view >::size() const', 'bool std::__1::operator== , 1>(std::__1::basic_string_view >, std::__1::common_type > >::type)', 'std::__1::basic_string_view >::substr(unsigned long, unsigned long) const', 'std::__1::shared_ptr ::operator=(std::__1::shared_ptr &&)', 'std::__1::vector >::~vector()']

2696 2721 Botan::EC_Group::EC_Group(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:407
1732 1732 7 :

['std::__1::optional ::value() &', 'Botan::TLS::Session_with_Handle::~Session_with_Handle()', 'Botan::TLS::Session::~Session()', 'Botan::TLS::Session::Session(Botan::TLS::Session const&)', 'Botan::TLS::Session_Handle::Session_Handle(Botan::TLS::Session_Handle const&)', 'std::__1::optional ::value() const &', 'Botan::TLS::Server_Impl_12::session_resume(Botan::TLS::Server_Handshake_State&, Botan::TLS::Session_with_Handle const&)']

1732 1732 Botan::TLS::Server_Impl_12::process_client_hello_msg(Botan::TLS::Handshake_Stateconst*,Botan::TLS::Server_Handshake_State&,std::__1::vector >const&,bool) call site: 00000 /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:438
1670 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&)']

2268 4648 Botan::inverse_mod(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/mod_inv.cpp:189
1208 2337 36 :

['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 > Botan::(anonymous namespace)::kdf_create_mac_or_hash (std::__1::basic_string_view >)', 'bool std::__1::operator== , 1>(std::__1::basic_string_view >, std::__1::common_type > >::type)', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::__unique_if ::__unique_single std::__1::make_unique , std::__1::allocator > >(std::__1::basic_string , std::__1::allocator >&&)', 'std::__1::remove_reference >&>::type&& std::__1::move >&>(std::__1::unique_ptr >&)', 'std::__1::unique_ptr >::~unique_ptr()', 'void Botan::ignore_params (Botan::SCAN_Name const&)', 'Botan::MessageAuthenticationCode::create(std::__1::basic_string_view >, std::__1::basic_string_view >)', 'Botan::SCAN_Name::arg_count() const', '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::basic_string , std::__1::allocator > Botan::fmt , std::__1::allocator > >(std::__1::basic_string_view >, std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::unique_ptr >::~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 > Botan::(anonymous namespace)::kdf_create_mac_or_hash (std::__1::basic_string_view >)', 'Botan::HashFunction::create(std::__1::basic_string_view >, std::__1::basic_string_view >)', 'std::__1::__unique_if ::__unique_single std::__1::make_unique > >(std::__1::unique_ptr >&&)', '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::__unique_if ::__unique_single std::__1::make_unique > >(std::__1::unique_ptr >&&)', 'std::__1::basic_string_view >::empty() const', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'void Botan::ignore_params >&>(std::__1::basic_string_view >&)', 'std::__1::unique_ptr >::unique_ptr (decltype(nullptr))', 'std::__1::unique_ptr > Botan::(anonymous namespace)::kdf_create_mac_or_hash (std::__1::basic_string_view >)', 'std::__1::unique_ptr >::operator bool() const', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::unique_ptr >::operator bool() const', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::unique_ptr >::operator bool() const']

1212 2737 Botan::KDF::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/kdf/kdf.cpp:126
613 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)']

613 631 Botan::SHA_1::compress_n(unsignedcharconst*,unsignedlong) call site: 00000 /src/botan/src/lib/hash/sha1/sha1.cpp:78
447 606 5 :

['Botan::AES_128::vperm_key_schedule(unsigned char const*, unsigned long)', 'Botan::CPUID::has_hw_aes()', 'Botan::(anonymous namespace)::aes_key_schedule(unsigned char const*, unsigned long, std::__1::vector >&, std::__1::vector >&, bool)', 'Botan::CPUID::has_vperm()', 'Botan::CPUID::is_little_endian()']

447 606 Botan::AES_128::key_schedule(unsignedcharconst*,unsignedlong) call site: 00000 /src/botan/src/lib/block/aes/aes.cpp:832
447 606 5 :

['Botan::CPUID::has_hw_aes()', 'Botan::AES_256::vperm_key_schedule(unsigned char const*, unsigned long)', 'Botan::(anonymous namespace)::aes_key_schedule(unsigned char const*, unsigned long, std::__1::vector >&, std::__1::vector >&, bool)', 'Botan::CPUID::has_vperm()', 'Botan::CPUID::is_little_endian()']

447 606 Botan::AES_256::key_schedule(unsignedcharconst*,unsignedlong) call site: 00000 /src/botan/src/lib/block/aes/aes.cpp:958
342 342 3 :

['Botan::(anonymous namespace)::aes_decrypt_n(unsigned char const*, unsigned char*, unsigned long, std::__1::vector > const&)', 'Botan::AES_128::vperm_decrypt_n(unsigned char const*, unsigned char*, unsigned long) const', 'Botan::CPUID::has_vperm()']

342 342 Botan::AES_128::decrypt_n(unsignedcharconst*,unsignedchar*,unsignedlong)const call site: 00000 /src/botan/src/lib/block/aes/aes.cpp:816
342 342 3 :

['Botan::AES_256::vperm_decrypt_n(unsigned char const*, unsigned char*, unsigned long) const', 'Botan::(anonymous namespace)::aes_decrypt_n(unsigned char const*, unsigned char*, unsigned long, std::__1::vector > const&)', 'Botan::CPUID::has_vperm()']

342 342 Botan::AES_256::decrypt_n(unsignedcharconst*,unsignedchar*,unsignedlong)const call site: 00000 /src/botan/src/lib/block/aes/aes.cpp:942
337 337 3 :

['Botan::CPUID::has_vperm()', 'Botan::(anonymous namespace)::aes_encrypt_n(unsigned char const*, unsigned char*, unsigned long, std::__1::vector > const&)', 'Botan::AES_128::vperm_encrypt_n(unsigned char const*, unsigned char*, unsigned long) const']

337 337 Botan::AES_128::encrypt_n(unsignedcharconst*,unsignedchar*,unsignedlong)const call site: 00000 /src/botan/src/lib/block/aes/aes.cpp:798
337 337 3 :

['Botan::CPUID::has_vperm()', 'Botan::(anonymous namespace)::aes_encrypt_n(unsigned char const*, unsigned char*, unsigned long, std::__1::vector > const&)', 'Botan::AES_256::vperm_encrypt_n(unsigned char const*, unsigned char*, unsigned long) const']

337 337 Botan::AES_256::encrypt_n(unsignedcharconst*,unsignedchar*,unsignedlong)const call site: 00000 /src/botan/src/lib/block/aes/aes.cpp:924

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 fuzz(unsigned char const*, unsigned long) [function] [call site] 00001
2 Botan::TLS::Server_Information::Server_Information(std::__1::basic_string_view >, unsigned short) [function] [call site] 00002
2 fuzzer_rng_as_shared() [function] [call site] 00003
3 __cxa_guard_acquire [call site] 00004
2 Botan::TLS::Server::Server(std::__1::shared_ptr const&, std::__1::shared_ptr const&, std::__1::shared_ptr const&, std::__1::shared_ptr const&, std::__1::shared_ptr const&, bool, unsigned long) [function] [call site] 00005
3 Botan::TLS::Channel::Channel() [function] [call site] 00006
3 Botan::TLS::Protocol_Version::is_pre_tls_13() const [function] [call site] 00007
4 Botan::TLS::Protocol_Version::is_datagram_protocol() const [function] [call site] 00008
5 Botan::TLS::Protocol_Version::major_version() const [function] [call site] 00009
4 Botan::TLS::Protocol_Version::Protocol_Version(Botan::TLS::Version_Code) [function] [call site] 00010
5 Botan::TLS::Protocol_Version::Protocol_Version(unsigned short) [function] [call site] 00011
4 Botan::TLS::Protocol_Version::is_datagram_protocol() const [function] [call site] 00012
4 Botan::TLS::Protocol_Version::Protocol_Version(Botan::TLS::Version_Code) [function] [call site] 00013
3 Botan::TLS::Channel_Impl::expects_downgrade() const [function] [call site] 00014
3 Botan::TLS::Channel_Impl::set_io_buffer_size(unsigned long) [function] [call site] 00015
4 Botan::throw_invalid_state(char const*, char const*, char const*) [function] [call site] 00016
5 __cxa_allocate_exception [call site] 00017
5 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] 00018
6 void Botan::fmt_detail::do_fmt (std::__1::basic_ostringstream , std::__1::allocator >&, std::__1::basic_string_view >, char const* const&, char const* const&, char const* const&) [function] [call site] 00019
7 void Botan::fmt_detail::do_fmt (std::__1::basic_ostringstream , std::__1::allocator >&, std::__1::basic_string_view >, char const* const&, char const* const&) [function] [call site] 00020
5 Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >) [function] [call site] 00021
6 Botan::Exception::Exception(std::__1::basic_string_view >) [function] [call site] 00022
7 std::exception::exception() [function] [call site] 00023
7 std::exception::~exception() [call site] 00024
3 Botan::TLS::Channel::~Channel() [function] [call site] 00025
2 Botan::TLS::Channel::received_data(unsigned char const*, unsigned long) [function] [call site] 00026
2 __cxa_begin_catch [call site] 00027
2 Botan::TLS::Server::~Server() [function] [call site] 00028
3 Botan::TLS::Channel::~Channel() [function] [call site] 00029
2 Botan::TLS::Server_Information::~Server_Information() [function] [call site] 00030