Fuzz introspector: oaep
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
0 0 None 8 8 Botan::allocate_memory(unsignedlong,unsignedlong) call site: 00000 /src/botan/src/lib/utils/allocator.cpp:27

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 fuzz(unsigned char const*, unsigned long) [function] [call site] 00001
2 __cxa_guard_acquire [call site] 00002
2 Botan::oaep_find_delim(unsigned char&, unsigned char const*, unsigned long, std::__1::vector<unsigned char, Botan::secure_allocator<unsigned char> > const&) [function] [call site] 00003
3 void Botan::CT::poison<unsigned char>(unsigned char const*, unsigned long) [function] [call site] 00004
4 void Botan::ignore_params<unsigned char const*&, unsigned long&>(unsigned char const*&, unsigned long&) [function] [call site] 00005
5 void Botan::ignore_param<unsigned char const*&>(unsigned char const*&) [function] [call site] 00006
3 Botan::CT::Mask<unsigned char>::set() [function] [call site] 00007
3 Botan::CT::Mask<unsigned char>::cleared() [function] [call site] 00008
4 Botan::CT::Mask<unsigned char>::Mask(unsigned char) [function] [call site] 00009
3 Botan::CT::Mask<unsigned char>::operator|=(Botan::CT::Mask<unsigned char>) [function] [call site] 00010
4 Botan::CT::Mask<unsigned char>::value() const [function] [call site] 00011
3 Botan::CT::Mask<unsigned char> Botan::CT::is_not_equal<unsigned char>(unsigned char const*, unsigned char const*, unsigned long) [function] [call site] 00012
4 Botan::CT::Mask<unsigned char> Botan::CT::is_equal<unsigned char>(unsigned char const*, unsigned char const*, unsigned long) [function] [call site] 00013
5 Botan::CT::Mask<unsigned char>::is_zero(unsigned char) [function] [call site] 00014
6 unsigned char Botan::ct_is_zero<unsigned char>(unsigned char) [function] [call site] 00015
7 unsigned char Botan::expand_top_bit<unsigned char>(unsigned char) [function] [call site] 00016
6 Botan::CT::Mask<unsigned char>::Mask(unsigned char) [function] [call site] 00017
3 Botan::CT::Mask<unsigned char>::operator~() const [function] [call site] 00018
4 Botan::CT::Mask<unsigned char>::value() const [function] [call site] 00019
3 Botan::CT::copy_output(Botan::CT::Mask<unsigned char>, unsigned char const*, unsigned long, unsigned long) [function] [call site] 00020
4 void Botan::CT::poison<unsigned long>(unsigned long const*, unsigned long) [function] [call site] 00021
4 Botan::CT::Mask<unsigned long> Botan::CT::Mask<unsigned long>::expand<unsigned char>(Botan::CT::Mask<unsigned char>) [function] [call site] 00022
5 Botan::CT::Mask<unsigned char>::value() const [function] [call site] 00023
4 Botan::CT::Mask<unsigned long>::is_gt(unsigned long, unsigned long) [function] [call site] 00024
5 Botan::CT::Mask<unsigned long>::is_lt(unsigned long, unsigned long) [function] [call site] 00025
6 unsigned long Botan::expand_top_bit<unsigned long>(unsigned long) [function] [call site] 00026
6 Botan::CT::Mask<unsigned long>::Mask(unsigned long) [function] [call site] 00027
4 Botan::CT::Mask<unsigned long>::select(unsigned long, unsigned long) const [function] [call site] 00028
5 Botan::CT::Mask<unsigned long>::value() const [function] [call site] 00029
5 unsigned long Botan::choose<unsigned long>(unsigned long, unsigned long, unsigned long) [function] [call site] 00030
4 void Botan::CT::unpoison<unsigned char>(unsigned char const*, unsigned long) [function] [call site] 00031
5 void Botan::ignore_params<unsigned char const*&, unsigned long&>(unsigned char const*&, unsigned long&) [function] [call site] 00032
4 Botan::CT::Mask<unsigned long>::is_equal(unsigned long, unsigned long) [function] [call site] 00033
5 Botan::CT::Mask<unsigned long>::is_zero(unsigned long) [function] [call site] 00034
4 Botan::CT::Mask<unsigned long>::if_set_return(unsigned long) const [function] [call site] 00035
4 void Botan::CT::unpoison<unsigned long const>(unsigned long const&) [function] [call site] 00036
5 void Botan::ignore_params<unsigned long const&>(unsigned long const&) [function] [call site] 00037
3 void Botan::CT::unpoison<unsigned char>(unsigned char const*, unsigned long) [function] [call site] 00038
3 Botan::CT::Mask<unsigned char>::is_zero(unsigned char) [function] [call site] 00039
3 Botan::CT::Mask<unsigned char>::is_equal(unsigned char, unsigned char) [function] [call site] 00040
3 Botan::CT::operator&(Botan::CT::Mask<unsigned char>, Botan::CT::Mask<unsigned char>) [function] [call site] 00041
4 Botan::CT::Mask<unsigned char>::value() const [function] [call site] 00042
3 Botan::CT::operator|(Botan::CT::Mask<unsigned char>, Botan::CT::Mask<unsigned char>) [function] [call site] 00043
4 Botan::CT::Mask<unsigned char>::value() const [function] [call site] 00044
3 Botan::CT::Mask<unsigned char>::if_set_return(unsigned char) const [function] [call site] 00045
3 Botan::CT::Mask<unsigned char>::operator&=(Botan::CT::Mask<unsigned char>) [function] [call site] 00046
4 Botan::CT::Mask<unsigned char>::value() const [function] [call site] 00047
2 abort [call site] 00048
2 (anonymous namespace)::ref_oaep_unpad(unsigned char&, unsigned char const*, unsigned long, std::__1::vector<unsigned char, Botan::secure_allocator<unsigned char> > const&) [function] [call site] 00049
2 abort [call site] 00050
2 Botan::hex_encode(std::__1::span<unsigned char const, 18446744073709551615ul>, bool) [function] [call site] 00051
3 Botan::hex_encode(unsigned char const*, unsigned long, bool) [function] [call site] 00052
4 Botan::hex_encode(char*, unsigned char const*, unsigned long, bool) [function] [call site] 00053
5 Botan::(anonymous namespace)::hex_encode_nibble(unsigned char, bool) [function] [call site] 00054
6 Botan::CT::Mask<unsigned char>::is_lt(unsigned char, unsigned char) [function] [call site] 00055
6 Botan::CT::Mask<unsigned char>::select(unsigned char, unsigned char) const [function] [call site] 00056
5 Botan::(anonymous namespace)::hex_encode_nibble(unsigned char, bool) [function] [call site] 00057
2 abort [call site] 00058
2 Botan::hex_encode(std::__1::span<unsigned char const, 18446744073709551615ul>, bool) [function] [call site] 00059
2 abort [call site] 00060
2 (anonymous namespace)::all_zeros(std::__1::vector<unsigned char, Botan::secure_allocator<unsigned char> > const&) [function] [call site] 00061
2 abort [call site] 00062
2 (anonymous namespace)::all_zeros(std::__1::vector<unsigned char, Botan::secure_allocator<unsigned char> > const&) [function] [call site] 00063
2 abort [call site] 00064
2 Botan::hex_encode(std::__1::span<unsigned char const, 18446744073709551615ul>, bool) [function] [call site] 00065
2 abort [call site] 00066