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

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
mp_comba_sqr /src/botan/./src/fuzzer/fuzzers.h 61 150 5 10 172 96 fuzzers.h
mode_padding /src/botan/./src/fuzzer/fuzzers.h 140 435 6 8 310 184 fuzzers.h
uri /src/botan/./src/fuzzer/fuzzers.h 39 97 6 7 180 167 fuzzers.h
redc_p384 /src/botan/./src/fuzzer/fuzzers.h 485 350 13 34 1915 1202 fuzzers.h
bn_sqr /src/botan/./src/fuzzer/fuzzers.h 372 513 11 29 1344 798 fuzzers.h
divide /src/botan/./src/fuzzer/fuzzers.h 423 355 11 28 1650 969 fuzzers.h
redc_p192 /src/botan/./src/fuzzer/fuzzers.h 479 353 13 34 1905 1195 fuzzers.h
invert /src/botan/./src/fuzzer/fuzzers.h 497 454 11 31 2211 1399 fuzzers.h
mp_redc /src/botan/./src/fuzzer/fuzzers.h 106 94 10 14 398 212 fuzzers.h
mp_comba_mul /src/botan/./src/fuzzer/fuzzers.h 47 157 5 10 145 80 fuzzers.h
bn_cmp /src/botan/./src/fuzzer/fuzzers.h 209 456 11 19 812 451 fuzzers.h
redc_p256 /src/botan/./src/fuzzer/fuzzers.h 485 350 13 34 1915 1202 fuzzers.h
redc_p224 /src/botan/./src/fuzzer/fuzzers.h 485 350 13 34 1915 1202 fuzzers.h
pkcs1 /src/botan/./src/fuzzer/fuzzers.h 108 280 6 12 252 183 fuzzers.h
x509_dn /src/botan/./src/fuzzer/fuzzers.h 195 718 10 25 911 675 fuzzers.h
ecc_p384 /src/botan/./src/fuzzer/fuzzers.h 1101 3024 17 67 7321 4701 fuzzers.h
mem_pool /src/botan/./src/fuzzer/fuzzers.h 79 107 10 9 507 333 fuzzers.h
crl /src/botan/./src/fuzzer/fuzzers.h 148 6829 13 25 681 494 fuzzers.h
barrett /src/botan/./src/fuzzer/fuzzers.h 460 345 11 29 1827 1143 fuzzers.h
pow_mod /src/botan/./src/fuzzer/fuzzers.h 560 420 12 38 2222 1387 fuzzers.h
os2ecp /src/botan/./src/fuzzer/fuzzers.h 927 1722 17 58 6345 4081 fuzzers.h
ocsp /src/botan/./src/fuzzer/fuzzers.h 411 6749 14 38 1785 1307 fuzzers.h
x509_path /src/botan/./src/fuzzer/fuzzers.h 851 6676 20 76 6570 4291 fuzzers.h
oaep /src/botan/./src/fuzzer/fuzzers.h 110 340 7 9 348 234 fuzzers.h
gcd /src/botan/./src/fuzzer/fuzzers.h 396 504 11 28 1463 920 fuzzers.h
tls_client_hello /src/botan/./src/fuzzer/fuzzers.h 61 8341 10 10 168 142 fuzzers.h
asn1 /src/botan/./src/fuzzer/fuzzers.h 305 680 16 36 3281 2104 fuzzers.h
ecc_p256 /src/botan/./src/fuzzer/fuzzers.h 1101 3024 17 67 7321 4701 fuzzers.h
tls_13_handshake_layer /src/botan/./src/fuzzer/fuzzers.h 443 8155 10 44 2042 1436 fuzzers.h
cert /src/botan/./src/fuzzer/fuzzers.h 148 6781 13 25 683 497 fuzzers.h
ressol /src/botan/./src/fuzzer/fuzzers.h 742 2681 15 43 3477 2329 fuzzers.h
redc_p521 /src/botan/./src/fuzzer/fuzzers.h 478 353 13 34 1927 1201 fuzzers.h
pkcs8 /src/botan/./src/fuzzer/fuzzers.h 523 6747 18 56 5497 3294 fuzzers.h
tls_client /src/botan/./src/fuzzer/fuzzers.h 85 9495 7 13 319 248 fuzzers.h
ecc_p521 /src/botan/./src/fuzzer/fuzzers.h 1101 3024 17 67 7321 4701 fuzzers.h
ecc_bp256 /src/botan/./src/fuzzer/fuzzers.h 1101 3024 17 67 7321 4701 fuzzers.h
tls_server /src/botan/./src/fuzzer/fuzzers.h 63 9887 7 13 189 156 fuzzers.h

Fuzzer details

Fuzzer: mp_comba_sqr

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 20 1.23%
gold [1:9] 0 0.0%
yellow [10:29] 90 5.53%
greenyellow [30:49] 233 14.3%
lawngreen 50+ 1283 78.9%
All colors 1626 100

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
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_sqr(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:47

Runtime coverage analysis

Covered functions
23
Functions that are reachable but not covered
18
Reachable functions
61
Percentage of reachable functions covered
70.49%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/mp_comba_sqr.cpp 1
/src/botan/src/lib/math/mp/mp_karat.cpp 1
/src/botan/src/lib/utils/exceptn.cpp 2
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/build/include/public/botan/mem_ops.h 2
/src/botan/build/include/internal/botan/internal/mp_asmi.h 4
/src/botan/src/lib/math/mp/mp_comba.cpp 12
/src/botan/./src/fuzzer/mp_fuzzers.h 2

Fuzzer: mode_padding

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 85 100.%
All colors 85 100

Runtime coverage analysis

Covered functions
75
Functions that are reachable but not covered
1
Reachable functions
140
Percentage of reachable functions covered
99.29%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/mode_padding.cpp 6
/src/botan/build/include/internal/botan/internal/mode_pad.h 4
/src/botan/src/lib/modes/mode_pad/mode_pad.cpp 4
/src/botan/build/include/internal/botan/internal/ct_utils.h 31
/src/botan/build/include/public/botan/assert.h 3
/src/botan/build/include/internal/botan/internal/bit_ops.h 3
/src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp 1

Fuzzer: uri

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 5 7.93%
gold [1:9] 16 25.3%
yellow [10:29] 9 14.2%
greenyellow [30:49] 4 6.34%
lawngreen 50+ 29 46.0%
All colors 63 100

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 0 2 Botan::URI::fromIPv4(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/utils/socket/uri.cpp:91

Runtime coverage analysis

Covered functions
14
Functions that are reachable but not covered
14
Reachable functions
39
Percentage of reachable functions covered
64.1%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/uri.cpp 1
/src/botan/src/lib/utils/socket/uri.cpp 8
/src/botan/src/lib/utils/exceptn.cpp 2
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/build/include/internal/botan/internal/uri.h 2

Fuzzer: redc_p384

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1192 76.1%
gold [1:9] 101 6.45%
yellow [10:29] 0 0.0%
greenyellow [30:49] 10 0.63%
lawngreen 50+ 262 16.7%
All colors 1565 100

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
299 314 3 :

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

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
193 193 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_mul(unsigned long*, unsigned long const*, unsigned long const*, unsigned long, unsigned long*)']

193 226 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:310
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 25 Botan::Modular_Reducer::Modular_Reducer(Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:20
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::ct_reduce_below(Botan::BigIntconst&,std::__1::vector >&,unsignedlong) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:345
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_divide(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigInt&,Botan::BigInt&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:49
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:21
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::Modular_Reducer::reduce(Botan::BigInt&,Botan::BigIntconst&,std::__1::vector >&)const call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:73
4 4 1 :

['Botan::bigint_comba_mul4(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:298
4 4 1 :

['Botan::bigint_comba_mul8(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:302
4 4 1 :

['Botan::bigint_comba_mul9(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:304
4 4 1 :

['Botan::bigint_comba_mul16(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:306
4 4 1 :

['Botan::bigint_comba_mul24(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:308

Runtime coverage analysis

Covered functions
178
Functions that are reachable but not covered
153
Reachable functions
485
Percentage of reachable functions covered
68.45%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/redc_p384.cpp 1
/src/botan/src/lib/math/numbertheory/nistp_redc.cpp 4
/src/botan/src/lib/math/bigint/bigint.cpp 14
/src/botan/build/include/public/botan/bigint.h 51
/src/botan/build/include/public/botan/mem_ops.h 9
/src/botan/src/lib/math/bigint/big_code.cpp 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 5
/src/botan/src/lib/utils/exceptn.cpp 5
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/src/lib/codec/hex/hex.cpp 7
/src/botan/build/include/internal/botan/internal/ct_utils.h 28
/src/botan/build/include/internal/botan/internal/bit_ops.h 5
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/build/include/public/botan/exceptn.h 2
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/src/lib/math/bigint/big_ops2.cpp 5
/src/botan/build/include/public/botan/assert.h 3
/src/botan/build/include/internal/botan/internal/mp_core.h 17
/src/botan/build/include/internal/botan/internal/mp_asmi.h 13
/src/botan/src/lib/math/bigint/big_ops3.cpp 2
/src/botan/src/lib/math/mp/mp_karat.cpp 10
/src/botan/src/lib/math/mp/mp_comba.cpp 6
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 4
/src/botan/build/include/public/botan/reducer.h 1
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/build/include/public/botan/hex.h 1

Fuzzer: bn_sqr

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 117 6.25%
gold [1:9] 298 15.9%
yellow [10:29] 320 17.1%
greenyellow [30:49] 3 0.16%
lawngreen 50+ 1133 60.5%
All colors 1871 100

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
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:21
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_sqr(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:47
0 22 1 :

['Botan::bigint_add3_nc(unsigned long*, unsigned long const*, unsigned long, unsigned long const*, unsigned long)']

0 22 Botan::bigint_add3_nc(unsignedlong*,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/mp_core.h:229
0 10 1 :

['Botan::bigint_linmul3(unsigned long*, unsigned long const*, unsigned long, unsigned long)']

0 10 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:296
0 0 None 8 8 Botan::allocate_memory(unsignedlong,unsignedlong) call site: 00000 /src/botan/src/lib/utils/allocator.cpp:27
0 0 None 0 331 Botan::operator*(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/bigint/big_ops3.cpp:54
0 0 None 0 33 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:315
0 0 None 0 10 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:294
0 0 None 0 8 Botan::bigint_ct_is_eq(unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/mp_core.h:578

Runtime coverage analysis

Covered functions
132
Functions that are reachable but not covered
125
Reachable functions
372
Percentage of reachable functions covered
66.4%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/bn_sqr.cpp 1
/src/botan/build/include/public/botan/bigint.h 37
/src/botan/src/lib/math/bigint/bigint.cpp 10
/src/botan/build/include/public/botan/mem_ops.h 5
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 4
/src/botan/src/lib/utils/exceptn.cpp 5
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/src/lib/math/numbertheory/numthry.cpp 1
/src/botan/src/lib/math/bigint/big_ops2.cpp 2
/src/botan/build/include/internal/botan/internal/ct_utils.h 19
/src/botan/build/include/public/botan/assert.h 2
/src/botan/build/include/internal/botan/internal/bit_ops.h 4
/src/botan/src/lib/math/mp/mp_karat.cpp 20
/src/botan/build/include/internal/botan/internal/mp_core.h 10
/src/botan/build/include/internal/botan/internal/mp_asmi.h 12
/src/botan/src/lib/math/mp/mp_comba.cpp 12
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/src/lib/math/bigint/big_ops3.cpp 1
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/src/lib/math/bigint/big_code.cpp 2
/src/botan/src/lib/math/bigint/divide.cpp 1
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3

Fuzzer: divide

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 83 5.69%
gold [1:9] 24 1.64%
yellow [10:29] 1040 71.3%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 311 21.3%
All colors 1458 100

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
182 182 2 :

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

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

['Botan::bigint_sub_abs(unsigned long*, unsigned long const*, unsigned long, unsigned long const*, unsigned long)']

114 155 Botan::BigInt::add2(Botan::BigIntconst&,unsignedlongconst*,unsignedlong,Botan::BigInt::Sign) call site: 00000 /src/botan/src/lib/math/bigint/big_ops3.cpp:24
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', '__cxa_free_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::bigint_divop_vartime(unsignedlong,unsignedlong,unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/mp_core.h:666
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::reduce_below(Botan::BigIntconst&,std::__1::vector >&) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:313
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_divide(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigInt&,Botan::BigInt&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:49
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_divide_word(Botan::BigIntconst&,unsignedlong,Botan::BigInt&,unsignedlong&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:81
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::vartime_divide(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigInt&,Botan::BigInt&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:156
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:21
0 10 1 :

['Botan::bigint_linmul3(unsigned long*, unsigned long const*, unsigned long, unsigned long)']

0 10 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:296
0 0 None 8 8 Botan::allocate_memory(unsignedlong,unsignedlong) call site: 00000 /src/botan/src/lib/utils/allocator.cpp:27
0 0 None 0 84 Botan::BigInt::is_less_than(Botan::BigIntconst&)const call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:180
0 0 None 0 33 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:315

Runtime coverage analysis

Covered functions
178
Functions that are reachable but not covered
94
Reachable functions
423
Percentage of reachable functions covered
77.78%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/divide.cpp 1
/src/botan/build/include/public/botan/bigint.h 44
/src/botan/src/lib/math/bigint/bigint.cpp 16
/src/botan/build/include/public/botan/mem_ops.h 6
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 4
/src/botan/src/lib/utils/exceptn.cpp 5
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 21
/src/botan/build/include/public/botan/assert.h 2
/src/botan/build/include/internal/botan/internal/bit_ops.h 4
/src/botan/build/include/internal/botan/internal/mp_core.h 18
/src/botan/src/lib/math/bigint/divide.cpp 5
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/src/lib/math/bigint/big_ops2.cpp 4
/src/botan/src/lib/math/bigint/big_ops3.cpp 4
/src/botan/build/include/internal/botan/internal/mp_asmi.h 12
/src/botan/src/lib/math/mp/mp_karat.cpp 10
/src/botan/src/lib/math/mp/mp_comba.cpp 6
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/src/lib/math/bigint/big_code.cpp 2
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3

Fuzzer: redc_p192

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1211 78.1%
gold [1:9] 65 4.19%
yellow [10:29] 0 0.0%
greenyellow [30:49] 14 0.90%
lawngreen 50+ 259 16.7%
All colors 1549 100

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
299 314 3 :

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

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
193 193 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_mul(unsigned long*, unsigned long const*, unsigned long const*, unsigned long, unsigned long*)']

193 226 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:310
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 25 Botan::Modular_Reducer::Modular_Reducer(Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:20
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::ct_reduce_below(Botan::BigIntconst&,std::__1::vector >&,unsignedlong) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:345
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_divide(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigInt&,Botan::BigInt&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:49
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:21
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::Modular_Reducer::reduce(Botan::BigInt&,Botan::BigIntconst&,std::__1::vector >&)const call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:73
4 4 1 :

['Botan::bigint_comba_mul6(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:300
4 4 1 :

['Botan::bigint_comba_mul8(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:302
4 4 1 :

['Botan::bigint_comba_mul9(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:304
4 4 1 :

['Botan::bigint_comba_mul16(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:306
4 4 1 :

['Botan::bigint_comba_mul24(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:308

Runtime coverage analysis

Covered functions
173
Functions that are reachable but not covered
157
Reachable functions
479
Percentage of reachable functions covered
67.22%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/redc_p192.cpp 1
/src/botan/src/lib/math/numbertheory/nistp_redc.cpp 4
/src/botan/src/lib/math/bigint/bigint.cpp 14
/src/botan/build/include/public/botan/bigint.h 51
/src/botan/build/include/public/botan/mem_ops.h 9
/src/botan/src/lib/math/bigint/big_code.cpp 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 5
/src/botan/src/lib/utils/exceptn.cpp 5
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/src/lib/codec/hex/hex.cpp 7
/src/botan/build/include/internal/botan/internal/ct_utils.h 27
/src/botan/build/include/internal/botan/internal/bit_ops.h 5
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/build/include/public/botan/exceptn.h 2
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/src/lib/math/bigint/big_ops2.cpp 5
/src/botan/build/include/public/botan/assert.h 3
/src/botan/build/include/internal/botan/internal/mp_core.h 17
/src/botan/build/include/internal/botan/internal/mp_asmi.h 13
/src/botan/src/lib/math/bigint/big_ops3.cpp 2
/src/botan/src/lib/math/mp/mp_karat.cpp 10
/src/botan/src/lib/math/mp/mp_comba.cpp 6
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 4
/src/botan/build/include/public/botan/reducer.h 1
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/build/include/public/botan/hex.h 1

Fuzzer: invert

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 163 9.86%
gold [1:9] 1 0.06%
yellow [10:29] 124 7.50%
greenyellow [30:49] 641 38.8%
lawngreen 50+ 723 43.7%
All colors 1652 100

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
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::ct_cond_add(bool,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:425
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_modulo(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:118
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:21
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::inverse_mod(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/mod_inv.cpp:182
0 10 1 :

['Botan::bigint_linmul3(unsigned long*, unsigned long const*, unsigned long, unsigned long)']

0 10 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:296
0 6 1 :

['Botan::BigInt::Data::set_to_zero()']

0 6 Botan::BigInt::Data::mask_bits(unsignedlong) call site: 00000 /src/botan/build/include/public/botan/bigint.h:884
0 0 None 17 17 Botan::inverse_mod(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/mod_inv.cpp:179
0 0 None 8 8 Botan::allocate_memory(unsignedlong,unsignedlong) call site: 00000 /src/botan/src/lib/utils/allocator.cpp:27
0 0 None 0 185 Botan::operator>>(Botan::BigIntconst&,unsignedlong) call site: 00000 /src/botan/src/lib/math/bigint/big_ops3.cpp:193
0 0 None 0 84 Botan::BigInt::is_less_than(Botan::BigIntconst&)const call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:180
0 0 None 0 48 Botan::BigInt::cmp(Botan::BigIntconst&,bool)const call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:155
0 0 None 0 10 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:294

Runtime coverage analysis

Covered functions
207
Functions that are reachable but not covered
106
Reachable functions
497
Percentage of reachable functions covered
78.67%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/invert.cpp 2
/src/botan/build/include/public/botan/bigint.h 58
/src/botan/src/lib/math/bigint/bigint.cpp 22
/src/botan/build/include/public/botan/mem_ops.h 6
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 4
/src/botan/src/lib/utils/exceptn.cpp 5
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 29
/src/botan/build/include/public/botan/assert.h 3
/src/botan/build/include/internal/botan/internal/bit_ops.h 6
/src/botan/build/include/internal/botan/internal/mp_core.h 22
/src/botan/src/lib/math/numbertheory/mod_inv.cpp 3
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/build/include/internal/botan/internal/mp_asmi.h 12
/src/botan/src/lib/math/bigint/divide.cpp 2
/src/botan/src/lib/math/bigint/big_ops2.cpp 5
/src/botan/src/lib/math/bigint/big_ops3.cpp 3
/src/botan/src/lib/math/numbertheory/numthry.cpp 2
/src/botan/src/lib/math/mp/mp_karat.cpp 10
/src/botan/src/lib/math/mp/mp_comba.cpp 6
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/src/lib/math/bigint/big_code.cpp 2
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3
/src/botan/build/include/public/botan/numthry.h 1

Fuzzer: mp_redc

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 31 1.38%
gold [1:9] 2177 97.5%
yellow [10:29] 14 0.62%
greenyellow [30:49] 3 0.13%
lawngreen 50+ 6 0.26%
All colors 2231 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
17 67 void (anonymous namespace)::fuzz_mp_redc<4ul>(unsigned char const*, unsigned long) call site: 00067 fprintf
8 29 Botan::bigint_sub3(unsigned long*, unsigned long const*, unsigned long, unsigned long const*, unsigned long) call site: 00029 __cxa_allocate_exception
6 54 Botan::bigint_monty_redc_generic(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*) call site: 00054 __cxa_allocate_exception

Runtime coverage analysis

Covered functions
35
Functions that are reachable but not covered
40
Reachable functions
106
Percentage of reachable functions covered
62.26%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/mp_redc.cpp 7
/src/botan/src/lib/math/mp/mp_monty_n.cpp 6
/src/botan/build/include/internal/botan/internal/mp_asmi.h 4
/src/botan/build/include/internal/botan/internal/mp_core.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/src/lib/utils/exceptn.cpp 4
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/fmt.h 4
/src/botan/build/include/internal/botan/internal/ct_utils.h 7
/src/botan/build/include/internal/botan/internal/bit_ops.h 3
/src/botan/build/include/public/botan/mem_ops.h 2
/src/botan/src/lib/math/mp/mp_monty.cpp 1
/src/botan/./src/fuzzer/mp_fuzzers.h 2

Fuzzer: mp_comba_mul

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 20 1.87%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 122 11.4%
lawngreen 50+ 926 86.7%
All colors 1068 100

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
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:21

Runtime coverage analysis

Covered functions
16
Functions that are reachable but not covered
18
Reachable functions
47
Percentage of reachable functions covered
61.7%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/mp_comba_mul.cpp 1
/src/botan/src/lib/math/mp/mp_karat.cpp 1
/src/botan/src/lib/utils/exceptn.cpp 2
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/build/include/public/botan/mem_ops.h 2
/src/botan/build/include/internal/botan/internal/mp_asmi.h 3
/src/botan/src/lib/math/mp/mp_comba.cpp 6
/src/botan/./src/fuzzer/mp_fuzzers.h 2

Fuzzer: bn_cmp

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 16 9.58%
gold [1:9] 6 3.59%
yellow [10:29] 1 0.59%
greenyellow [30:49] 3 1.79%
lawngreen 50+ 141 84.4%
All colors 167 100

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

Runtime coverage analysis

Covered functions
93
Functions that are reachable but not covered
42
Reachable functions
209
Percentage of reachable functions covered
79.9%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/bn_cmp.cpp 1
/src/botan/build/include/public/botan/bigint.h 29
/src/botan/src/lib/math/bigint/bigint.cpp 6
/src/botan/build/include/public/botan/mem_ops.h 5
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 4
/src/botan/src/lib/utils/exceptn.cpp 4
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/src/lib/math/bigint/big_ops3.cpp 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 13
/src/botan/build/include/public/botan/assert.h 2
/src/botan/build/include/internal/botan/internal/bit_ops.h 3
/src/botan/build/include/internal/botan/internal/mp_core.h 6
/src/botan/build/include/internal/botan/internal/mp_asmi.h 4

Fuzzer: redc_p256

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1211 77.8%
gold [1:9] 85 5.46%
yellow [10:29] 0 0.0%
greenyellow [30:49] 1 0.06%
lawngreen 50+ 259 16.6%
All colors 1556 100

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
299 314 3 :

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

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
193 193 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_mul(unsigned long*, unsigned long const*, unsigned long const*, unsigned long, unsigned long*)']

193 226 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:310
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 25 Botan::Modular_Reducer::Modular_Reducer(Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:20
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::ct_reduce_below(Botan::BigIntconst&,std::__1::vector >&,unsignedlong) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:345
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_divide(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigInt&,Botan::BigInt&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:49
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:21
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::Modular_Reducer::reduce(Botan::BigInt&,Botan::BigIntconst&,std::__1::vector >&)const call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:73
4 4 1 :

['Botan::bigint_comba_mul6(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:300
4 4 1 :

['Botan::bigint_comba_mul8(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:302
4 4 1 :

['Botan::bigint_comba_mul9(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:304
4 4 1 :

['Botan::bigint_comba_mul16(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:306
4 4 1 :

['Botan::bigint_comba_mul24(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:308

Runtime coverage analysis

Covered functions
176
Functions that are reachable but not covered
157
Reachable functions
485
Percentage of reachable functions covered
67.63%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/redc_p256.cpp 1
/src/botan/src/lib/math/numbertheory/nistp_redc.cpp 4
/src/botan/src/lib/math/bigint/bigint.cpp 14
/src/botan/build/include/public/botan/bigint.h 51
/src/botan/build/include/public/botan/mem_ops.h 9
/src/botan/src/lib/math/bigint/big_code.cpp 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 5
/src/botan/src/lib/utils/exceptn.cpp 5
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/src/lib/codec/hex/hex.cpp 7
/src/botan/build/include/internal/botan/internal/ct_utils.h 28
/src/botan/build/include/internal/botan/internal/bit_ops.h 5
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/build/include/public/botan/exceptn.h 2
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/src/lib/math/bigint/big_ops2.cpp 5
/src/botan/build/include/public/botan/assert.h 3
/src/botan/build/include/internal/botan/internal/mp_core.h 17
/src/botan/build/include/internal/botan/internal/mp_asmi.h 13
/src/botan/src/lib/math/bigint/big_ops3.cpp 2
/src/botan/src/lib/math/mp/mp_karat.cpp 10
/src/botan/src/lib/math/mp/mp_comba.cpp 6
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 4
/src/botan/build/include/public/botan/reducer.h 1
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/build/include/public/botan/hex.h 1

Fuzzer: redc_p224

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1211 77.9%
gold [1:9] 82 5.28%
yellow [10:29] 0 0.0%
greenyellow [30:49] 3 0.19%
lawngreen 50+ 257 16.5%
All colors 1553 100

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
299 314 3 :

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

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
193 193 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_mul(unsigned long*, unsigned long const*, unsigned long const*, unsigned long, unsigned long*)']

193 226 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:310
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 25 Botan::Modular_Reducer::Modular_Reducer(Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:20
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::ct_reduce_below(Botan::BigIntconst&,std::__1::vector >&,unsignedlong) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:345
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_divide(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigInt&,Botan::BigInt&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:49
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:21
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::Modular_Reducer::reduce(Botan::BigInt&,Botan::BigIntconst&,std::__1::vector >&)const call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:73
4 4 1 :

['Botan::bigint_comba_mul6(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:300
4 4 1 :

['Botan::bigint_comba_mul8(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:302
4 4 1 :

['Botan::bigint_comba_mul9(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:304
4 4 1 :

['Botan::bigint_comba_mul16(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:306
4 4 1 :

['Botan::bigint_comba_mul24(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:308

Runtime coverage analysis

Covered functions
176
Functions that are reachable but not covered
157
Reachable functions
485
Percentage of reachable functions covered
67.63%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/redc_p224.cpp 1
/src/botan/src/lib/math/numbertheory/nistp_redc.cpp 4
/src/botan/src/lib/math/bigint/bigint.cpp 14
/src/botan/build/include/public/botan/bigint.h 51
/src/botan/build/include/public/botan/mem_ops.h 9
/src/botan/src/lib/math/bigint/big_code.cpp 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 5
/src/botan/src/lib/utils/exceptn.cpp 5
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/src/lib/codec/hex/hex.cpp 7
/src/botan/build/include/internal/botan/internal/ct_utils.h 27
/src/botan/build/include/internal/botan/internal/bit_ops.h 5
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/build/include/public/botan/exceptn.h 2
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/src/lib/math/bigint/big_ops2.cpp 5
/src/botan/build/include/public/botan/assert.h 3
/src/botan/build/include/internal/botan/internal/mp_core.h 17
/src/botan/build/include/internal/botan/internal/mp_asmi.h 13
/src/botan/src/lib/math/bigint/big_ops3.cpp 2
/src/botan/src/lib/math/mp/mp_karat.cpp 10
/src/botan/src/lib/math/mp/mp_comba.cpp 6
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 4
/src/botan/build/include/public/botan/reducer.h 1
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/build/include/public/botan/hex.h 1

Fuzzer: pkcs1

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 14 19.7%
gold [1:9] 3 4.22%
yellow [10:29] 6 8.45%
greenyellow [30:49] 3 4.22%
lawngreen 50+ 45 63.3%
All colors 71 100

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

Runtime coverage analysis

Covered functions
54
Functions that are reachable but not covered
26
Reachable functions
108
Percentage of reachable functions covered
75.93%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/pkcs1.cpp 2
/src/botan/src/lib/pk_pad/eme_pkcs1/eme_pkcs.cpp 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 20
/src/botan/build/include/public/botan/assert.h 3
/src/botan/build/include/internal/botan/internal/bit_ops.h 4
/src/botan/src/lib/utils/ct_utils.cpp 1
/src/botan/src/lib/utils/exceptn.cpp 2
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3

Fuzzer: x509_dn

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 39 21.0%
gold [1:9] 3 1.62%
yellow [10:29] 15 8.10%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 128 69.1%
All colors 185 100

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
11 11 1 :

['Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)']

17 17 Botan::BER_Decoder::end_cons() call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:296
0 0 None 16 320 Botan::BER_Decoder::get_next_object() call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:255
0 0 None 8 8 Botan::allocate_memory(unsignedlong,unsignedlong) call site: 00000 /src/botan/src/lib/utils/allocator.cpp:27
0 0 4 :

['std::__1::basic_string_view >::size() const', 'std::__1::basic_string_view >::operator[](unsigned long) const', 'std::__1::basic_ostream >& std::__1::operator<< >(std::__1::basic_ostream >&, char)', 'std::__1::basic_string_view >::at(unsigned long) const']

0 9 voidBotan::fmt_detail::do_fmt >,unsignedint>(std::__1::basic_ostringstream ,std::__1::allocator >&,std::__1::basic_string_view >,std::__1::basic_string_view >const&,unsignedintconst&) call site: 00000 /src/botan/build/include/internal/botan/internal/fmt.h:29
0 0 None 0 0 Botan::ASN1_String::ASN1_String(std::__1::basic_string_view >,Botan::ASN1_Type) call site: 00000 /src/botan/src/lib/asn1/asn1_str.cpp:65
0 0 None 0 0 Botan::(anonymousnamespace)::choose_encoding(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_str.cpp:40

Runtime coverage analysis

Covered functions
131
Functions that are reachable but not covered
58
Reachable functions
195
Percentage of reachable functions covered
70.26%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/x509_dn.cpp 1
/src/botan/build/include/public/botan/pkix_types.h 2
/src/botan/build/include/public/botan/asn1_obj.h 16
/src/botan/src/lib/asn1/ber_dec.cpp 11
/src/botan/src/lib/x509/x509_dn.cpp 8
/src/botan/build/include/public/botan/ber_dec.h 3
/src/botan/src/lib/utils/data_src.cpp 2
/src/botan/src/lib/asn1/asn1_obj.cpp 6
/src/botan/build/include/internal/botan/internal/fmt.h 5
/src/botan/src/lib/utils/exceptn.cpp 4
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 2
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/build/include/public/botan/data_src.h 3
/src/botan/build/include/internal/botan/internal/loadstor.h 1
/src/botan/build/include/internal/botan/internal/safeint.h 2
/src/botan/src/lib/asn1/asn1_str.cpp 2
/src/botan/build/include/internal/botan/internal/ct_utils.h 10
/src/botan/build/include/public/botan/assert.h 2
/src/botan/build/include/internal/botan/internal/bit_ops.h 1
/src/botan/build/include/internal/botan/internal/stl_util.h 1
/usr/include/ctype.h 2
/src/botan/src/lib/asn1/asn1_oid.cpp 1
/src/botan/src/lib/utils/assert.cpp 1

Fuzzer: ecc_p384

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3009 70.7%
gold [1:9] 301 7.07%
yellow [10:29] 2 0.04%
greenyellow [30:49] 65 1.52%
lawngreen 50+ 879 20.6%
All colors 4256 100

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
2729 2729 10 :

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

2749 2760 Botan::EC_Group::EC_Group(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:421
425 464 8 :

['std::__1::shared_ptr ::shared_ptr (std::__1::shared_ptr &&)', 'std::__1::shared_ptr ::~shared_ptr()', 'Botan::operator==(Botan::BigInt const&, Botan::BigInt const&)', 'std::__1::shared_ptr std::__1::make_shared (Botan::BigInt const&, Botan::BigInt const&, Botan::BigInt const&)', 'Botan::prime_p521()', 'std::__1::shared_ptr std::__1::make_shared (Botan::BigInt const&, Botan::BigInt const&)', 'std::__1::shared_ptr ::~shared_ptr()', 'std::__1::shared_ptr ::shared_ptr (std::__1::shared_ptr &&)']

425 464 Botan::CurveGFp::choose_repr(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/curve_gfp.cpp:574
318 372 22 :

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

322 437 Botan::StreamCipher::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/stream/stream_cipher.cpp:87
299 314 3 :

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

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
290 6376 18 :

['Botan::operator-(Botan::BigInt const&, unsigned long)', 'Botan::Modular_Reducer::square(Botan::BigInt const&) const', 'Botan::assertion_failure(char const*, char const*, char const*, char const*, int)', 'Botan::BigInt::from_word(unsigned long)', 'Botan::low_zero_bits(Botan::BigInt const&)', 'Botan::operator<<(Botan::BigInt const&, unsigned long)', 'Botan::operator!=(Botan::BigInt const&, unsigned long)', 'Botan::BigInt::operator-=(unsigned long)', 'Botan::BigInt::operator=(Botan::BigInt const&)', 'Botan::BigInt::from_s32(int)', 'Botan::BigInt::operator=(Botan::BigInt&&)', 'Botan::BigInt::operator>>=(unsigned long)', 'Botan::operator>(Botan::BigInt const&, unsigned long)', 'Botan::operator==(Botan::BigInt const&, unsigned long)', 'Botan::Modular_Reducer::multiply(Botan::BigInt const&, Botan::BigInt const&) const', 'Botan::BigInt::BigInt(Botan::BigInt&&)', 'Botan::BigInt::power_of_2(unsigned long)', 'Botan::jacobi(Botan::BigInt const&, Botan::BigInt const&)']

302 8579 Botan::sqrt_modulo_prime(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/numthry.cpp:46
267 1894 90 :

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

267 1894 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:133
224 2014 4 :

['Botan::OID::OID(std::initializer_list )', 'Botan::OID::~OID()', 'Botan::OID::operator==(Botan::OID const&) const', 'std::__1::shared_ptr ::shared_ptr()']

224 13039 Botan::EC_Group::EC_group_info(Botan::OIDconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:29
211 211 1 :

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

227 242 Botan::operator*(Botan::BigIntconst&,Botan::EC_Pointconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_point.cpp:378
193 193 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_mul(unsigned long*, unsigned long const*, unsigned long const*, unsigned long, unsigned long*)']

193 226 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:310
183 183 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_sqr(unsigned long*, unsigned long const*, unsigned long, unsigned long*)']

183 216 Botan::bigint_sqr(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:345
175 182 2 :

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

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

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

165 165 Botan::OID::from_string(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_oid.cpp:80

Runtime coverage analysis

Covered functions
632
Functions that are reachable but not covered
383
Reachable functions
1101
Percentage of reachable functions covered
65.21%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 3
/src/botan/./src/fuzzer/ecc_p384.cpp 1
/src/botan/src/lib/pubkey/ec_group/ec_group.cpp 11
/src/botan/src/lib/asn1/asn1_oid.cpp 3
/src/botan/src/lib/utils/exceptn.cpp 6
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 3
/src/botan/src/lib/asn1/oid_map.cpp 2
/src/botan/src/lib/asn1/oid_maps.cpp 2
/src/botan/build/include/public/botan/asn1_obj.h 17
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 9
/src/botan/build/include/internal/botan/internal/oid_map.h 1
/src/botan/src/lib/utils/parsing.cpp 1
/src/botan/build/include/public/botan/allocator.h 1
/src/botan/src/lib/utils/allocator.cpp 1
/src/botan/src/lib/pubkey/pem/pem.cpp 3
/src/botan/src/lib/utils/data_src.cpp 3
/src/botan/build/include/public/botan/data_src.h 4
/src/botan/build/include/public/botan/mem_ops.h 8
/src/botan/src/lib/codec/base64/base64.cpp 6
/src/botan/build/include/internal/botan/internal/codec_base.h 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 32
/src/botan/build/include/internal/botan/internal/bit_ops.h 7
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/src/lib/asn1/ber_dec.cpp 17
/src/botan/src/lib/asn1/asn1_obj.cpp 7
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/build/include/internal/botan/internal/loadstor.h 4
/src/botan/build/include/internal/botan/internal/safeint.h 2
/src/botan/build/include/public/botan/ber_dec.h 11
/src/botan/build/include/public/botan/bigint.h 68
/src/botan/src/lib/math/bigint/bigint.cpp 24
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/build/include/public/botan/assert.h 3
/src/botan/src/lib/math/numbertheory/primality.cpp 3
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/mp_core.h 25
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 6
/src/botan/src/lib/math/bigint/big_ops2.cpp 11
/src/botan/build/include/internal/botan/internal/mp_asmi.h 15
/src/botan/src/lib/math/bigint/big_ops3.cpp 8
/src/botan/src/lib/math/numbertheory/numthry.cpp 4
/src/botan/src/lib/math/numbertheory/monty_exp.cpp 6
/src/botan/build/include/internal/botan/internal/monty.h 7
/src/botan/src/lib/math/numbertheory/monty.cpp 10
/src/botan/src/lib/math/mp/mp_karat.cpp 20
/src/botan/src/lib/math/mp/mp_comba.cpp 12
/src/botan/src/lib/math/mp/mp_monty_n.cpp 6
/src/botan/src/lib/math/mp/mp_monty.cpp 1
/src/botan/build/include/public/botan/reducer.h 3
/src/botan/src/lib/pubkey/ec_group/ec_point.cpp 15
/src/botan/build/include/internal/botan/internal/monty_exp.h 1
/src/botan/./src/fuzzer/ecc_helper.h 3
/src/botan/build/include/public/botan/ec_point.h 19
/src/botan/build/include/public/botan/curve_gfp.h 26
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/src/lib/math/bigint/big_code.cpp 2
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3
/src/botan/src/lib/pubkey/ec_group/point_mul.cpp 3
/src/botan/src/lib/math/bigint/big_rand.cpp 2
/src/botan/build/include/public/botan/rng.h 4
/src/botan/build/include/internal/botan/internal/point_mul.h 1

Fuzzer: mem_pool

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 14 28.0%
gold [1:9] 3 6.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 33 66.0%
All colors 50 100

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 0 0 Botan::Memory_Pool::deallocate(void*,unsignedlong) call site: 00000 /src/botan/src/lib/utils/mem_pool/mem_pool.cpp:365

Runtime coverage analysis

Covered functions
28
Functions that are reachable but not covered
29
Reachable functions
79
Percentage of reachable functions covered
63.29%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/mem_pool.cpp 5
/src/botan/src/lib/utils/mem_pool/mem_pool.cpp 17
/src/botan/build/include/public/botan/mem_ops.h 1
/src/botan/src/lib/utils/assert.cpp 1
/src/botan/src/lib/utils/exceptn.cpp 2
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/fmt.h 3
/src/botan/build/include/internal/botan/internal/bit_ops.h 1

Fuzzer: crl

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 17 13.6%
gold [1:9] 4 3.2%
yellow [10:29] 13 10.4%
greenyellow [30:49] 6 4.8%
lawngreen 50+ 85 68.0%
All colors 125 100

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
331 376 4 :

['Botan::BER_Decoder::decode(bool&)', 'Botan::BER_Decoder::BER_Decoder(Botan::BER_Object&&)', 'Botan::BER_Decoder::~BER_Decoder()', '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/public/botan/ber_dec.h:321
79 157 13 :

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

87 165 Botan::OID::from_string(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_oid.cpp:80
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::BER_Decoder::push_back(Botan::BER_Objectconst&) call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:273
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::BER_Decoder::push_back(Botan::BER_Object&&) call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:280
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', '__cxa_free_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)']

17 17 Botan::Cert_Extension::CRL_Number::get_crl_number()const call site: 00000 /src/botan/src/lib/x509/x509_ext.cpp:687
11 11 1 :

['Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)']

17 17 Botan::BER_Decoder::end_cons() call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:296
8 581 4 :

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

12 585 Botan::BER_Decoder&Botan::BER_Decoder::decode_optional (unsignedlong&,Botan::ASN1_Type,Botan::ASN1_Class,unsignedlongconst&) call site: 00000 /src/botan/build/include/public/botan/ber_dec.h:321
8 300 4 :

['Botan::BER_Decoder& Botan::BER_Decoder::decode >(std::__1::vector >&, Botan::ASN1_Type)', 'Botan::BER_Decoder::BER_Decoder(Botan::BER_Object&&)', 'Botan::BER_Decoder::~BER_Decoder()', 'Botan::BER_Decoder::verify_end()']

12 304 Botan::BER_Decoder&Botan::BER_Decoder::decode_optional_string >(std::__1::vector >&,Botan::ASN1_Type,unsignedint,Botan::ASN1_Class) call site: 00000 /src/botan/build/include/public/botan/ber_dec.h:281
6 17 7 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

6 17 Botan::to_u32bit(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/utils/parsing.cpp:46
0 11 1 :

['Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

6 17 Botan::OID::from_string(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_oid.cpp:75
0 4 1 :

['Botan::OID::OID()']

0 4 Botan::OID_Map::str2oid(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/oid_map.cpp:72
0 0 None 16 320 Botan::BER_Decoder::get_next_object() call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:255

Runtime coverage analysis

Covered functions
408
Functions that are reachable but not covered
26
Reachable functions
148
Percentage of reachable functions covered
82.43%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/crl.cpp 1
/src/botan/build/include/public/botan/data_src.h 5
/src/botan/src/lib/x509/x509_crl.cpp 1
/src/botan/build/include/public/botan/x509_obj.h 2
/src/botan/build/include/public/botan/asn1_obj.h 6
/src/botan/src/lib/x509/x509_obj.cpp 1
/src/botan/src/lib/asn1/asn1_obj.cpp 1
/src/botan/src/lib/utils/data_src.cpp 2
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/src/lib/utils/exceptn.cpp 8
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/fmt.h 7
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/src/lib/pubkey/pem/pem.cpp 2
/src/botan/src/lib/asn1/ber_dec.cpp 1
/src/botan/build/include/public/botan/ber_dec.h 1
/src/botan/src/lib/codec/base64/base64.cpp 6
/src/botan/build/include/internal/botan/internal/codec_base.h 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/build/include/public/botan/mem_ops.h 2
/src/botan/build/include/internal/botan/internal/ct_utils.h 7
/src/botan/build/include/internal/botan/internal/bit_ops.h 3
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/build/include/public/botan/x509_crl.h 1

Fuzzer: barrett

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 93 23.5%
gold [1:9] 0 0.0%
yellow [10:29] 1 0.25%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 301 76.2%
All colors 395 100

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
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 25 Botan::Modular_Reducer::Modular_Reducer(Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:20
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', '__cxa_free_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::bigint_modop_vartime(unsignedlong,unsignedlong,unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/mp_core.h:698
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', '__cxa_free_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::bigint_divop_vartime(unsignedlong,unsignedlong,unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/mp_core.h:666
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::operator%(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/bigint/big_ops3.cpp:126
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::operator%(Botan::BigIntconst&,unsignedlong) call site: 00000 /src/botan/src/lib/math/bigint/big_ops3.cpp:146
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::reduce_below(Botan::BigIntconst&,std::__1::vector >&) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:313
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::ct_reduce_below(Botan::BigIntconst&,std::__1::vector >&,unsignedlong) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:345
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_divide(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigInt&,Botan::BigInt&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:49
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_modulo(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:118
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::vartime_divide(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigInt&,Botan::BigInt&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:156
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:21
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::Modular_Reducer::reduce(Botan::BigInt&,Botan::BigIntconst&,std::__1::vector >&)const call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:73

Runtime coverage analysis

Covered functions
200
Functions that are reachable but not covered
84
Reachable functions
460
Percentage of reachable functions covered
81.74%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/barrett.cpp 1
/src/botan/build/include/public/botan/bigint.h 49
/src/botan/src/lib/math/bigint/bigint.cpp 14
/src/botan/build/include/public/botan/mem_ops.h 6
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 4
/src/botan/src/lib/utils/exceptn.cpp 5
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 18
/src/botan/build/include/public/botan/assert.h 2
/src/botan/build/include/internal/botan/internal/bit_ops.h 5
/src/botan/src/lib/math/bigint/big_ops3.cpp 5
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/build/include/internal/botan/internal/mp_core.h 16
/src/botan/src/lib/math/bigint/divide.cpp 6
/src/botan/src/lib/math/bigint/big_ops2.cpp 4
/src/botan/build/include/internal/botan/internal/mp_asmi.h 9
/src/botan/src/lib/math/numbertheory/reducer.cpp 2
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/src/lib/math/bigint/big_code.cpp 2
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3
/src/botan/build/include/public/botan/reducer.h 1

Fuzzer: pow_mod

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 111 3.55%
gold [1:9] 14 0.44%
yellow [10:29] 6 0.19%
greenyellow [30:49] 1 0.03%
lawngreen 50+ 2989 95.7%
All colors 3121 100

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
38 38 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Internal_Error::Internal_Error(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

38 38 Botan::Montgomery_Int::fix_size() call site: 00000 /src/botan/src/lib/math/numbertheory/monty.cpp:295
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 33 Botan::Montgomery_Params::Montgomery_Params(Botan::BigIntconst&,Botan::Modular_Reducerconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/monty.cpp:45
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 25 Botan::Modular_Reducer::Modular_Reducer(Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:20
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::get_substring(unsignedlong,unsignedlong)const call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:223
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::ct_reduce_below(Botan::BigIntconst&,std::__1::vector >&,unsignedlong) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:345
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_divide(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigInt&,Botan::BigInt&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:49
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_modulo(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:118
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:21
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_sqr(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:47
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', '__cxa_free_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::monty_inverse(unsignedlong) call site: 00000 /src/botan/src/lib/math/numbertheory/monty.cpp:17
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::Montgomery_Exponentation_State::Montgomery_Exponentation_State(std::__1::shared_ptr const&,Botan::BigIntconst&,unsignedlong,bool) call site: 00000 /src/botan/src/lib/math/numbertheory/monty_exp.cpp:43
0 74 1 :

['Botan::bigint_sub2(unsigned long*, unsigned long, unsigned long const*, unsigned long)']

0 130 Botan::BigInt::add(unsignedlongconst*,unsignedlong,Botan::BigInt::Sign) call site: 00000 /src/botan/src/lib/math/bigint/big_ops2.cpp:26

Runtime coverage analysis

Covered functions
251
Functions that are reachable but not covered
98
Reachable functions
560
Percentage of reachable functions covered
82.5%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/pow_mod.cpp 2
/src/botan/build/include/public/botan/bigint.h 56
/src/botan/src/lib/math/bigint/bigint.cpp 17
/src/botan/build/include/public/botan/mem_ops.h 6
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 4
/src/botan/src/lib/utils/exceptn.cpp 4
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 24
/src/botan/build/include/public/botan/assert.h 2
/src/botan/build/include/internal/botan/internal/bit_ops.h 4
/src/botan/build/include/internal/botan/internal/mp_core.h 16
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 4
/src/botan/build/include/public/botan/exceptn.h 2
/src/botan/src/lib/math/bigint/big_ops3.cpp 2
/src/botan/build/include/internal/botan/internal/mp_asmi.h 14
/src/botan/src/lib/math/bigint/big_ops2.cpp 6
/src/botan/build/include/public/botan/reducer.h 3
/src/botan/src/lib/math/mp/mp_karat.cpp 20
/src/botan/src/lib/math/mp/mp_comba.cpp 12
/src/botan/src/lib/math/numbertheory/numthry.cpp 2
/src/botan/build/include/internal/botan/internal/monty_exp.h 1
/src/botan/src/lib/math/numbertheory/monty_exp.cpp 4
/src/botan/build/include/internal/botan/internal/monty.h 6
/src/botan/src/lib/math/numbertheory/monty.cpp 8
/src/botan/src/lib/math/mp/mp_monty_n.cpp 6
/src/botan/src/lib/math/mp/mp_monty.cpp 1
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/src/lib/math/bigint/big_code.cpp 2
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3

Fuzzer: os2ecp

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1819 45.9%
gold [1:9] 300 7.58%
yellow [10:29] 5 0.12%
greenyellow [30:49] 15 0.37%
lawngreen 50+ 1818 45.9%
All colors 3957 100

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
2729 2729 10 :

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

2749 2760 Botan::EC_Group::EC_Group(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:421
1796 3412 21 :

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

2394 4652 Botan::inverse_mod(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/mod_inv.cpp:189
299 314 3 :

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

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
175 182 2 :

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

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

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

165 165 Botan::OID::from_string(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_oid.cpp:80
106 106 1 :

['Botan::bigint_monty_redc_16(unsigned long*, unsigned long const*, unsigned long, unsigned long*)']

106 106 Botan::bigint_monty_redc(unsignedlong*,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/mp_core.h:768
106 106 1 :

['Botan::bigint_monty_redc_24(unsigned long*, unsigned long const*, unsigned long, unsigned long*)']

106 106 Botan::bigint_monty_redc(unsignedlong*,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/mp_core.h:770
106 106 1 :

['Botan::bigint_monty_redc_32(unsigned long*, unsigned long const*, unsigned long, unsigned long*)']

106 106 Botan::bigint_monty_redc(unsignedlong*,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/mp_core.h:772
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
56 504 4 :

['Botan::OID::OID(std::initializer_list )', 'Botan::OID::~OID()', 'Botan::OID::operator==(Botan::OID const&) const', 'std::__1::shared_ptr ::shared_ptr()']

56 3591 Botan::EC_Group::EC_group_info(Botan::OIDconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:245
38 38 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Encoding_Error::Encoding_Error(std::__1::basic_string_view >)']

38 38 Botan::BigInt::encode_words(unsignedlong*,unsignedlong)const call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:190

Runtime coverage analysis

Covered functions
475
Functions that are reachable but not covered
301
Reachable functions
927
Percentage of reachable functions covered
67.53%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/os2ecp.cpp 2
/src/botan/src/lib/pubkey/ec_group/ec_group.cpp 6
/src/botan/src/lib/asn1/asn1_oid.cpp 3
/src/botan/src/lib/utils/exceptn.cpp 3
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 3
/src/botan/src/lib/asn1/oid_map.cpp 2
/src/botan/src/lib/asn1/oid_maps.cpp 2
/src/botan/build/include/public/botan/asn1_obj.h 17
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 8
/src/botan/build/include/internal/botan/internal/oid_map.h 1
/src/botan/src/lib/utils/parsing.cpp 1
/src/botan/build/include/public/botan/allocator.h 1
/src/botan/src/lib/utils/allocator.cpp 1
/src/botan/src/lib/pubkey/pem/pem.cpp 3
/src/botan/src/lib/utils/data_src.cpp 3
/src/botan/build/include/public/botan/data_src.h 4
/src/botan/build/include/public/botan/mem_ops.h 8
/src/botan/src/lib/codec/base64/base64.cpp 6
/src/botan/build/include/internal/botan/internal/codec_base.h 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 30
/src/botan/build/include/internal/botan/internal/bit_ops.h 7
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/src/lib/asn1/ber_dec.cpp 17
/src/botan/src/lib/asn1/asn1_obj.cpp 7
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/build/include/internal/botan/internal/loadstor.h 4
/src/botan/build/include/internal/botan/internal/safeint.h 2
/src/botan/build/include/public/botan/ber_dec.h 11
/src/botan/build/include/public/botan/bigint.h 65
/src/botan/src/lib/math/bigint/bigint.cpp 20
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/build/include/public/botan/assert.h 2
/src/botan/src/lib/math/numbertheory/primality.cpp 3
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/mp_core.h 21
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 6
/src/botan/src/lib/math/bigint/big_ops2.cpp 8
/src/botan/build/include/internal/botan/internal/mp_asmi.h 15
/src/botan/src/lib/math/bigint/big_ops3.cpp 8
/src/botan/src/lib/math/numbertheory/numthry.cpp 4
/src/botan/src/lib/math/numbertheory/monty_exp.cpp 6
/src/botan/build/include/internal/botan/internal/monty.h 7
/src/botan/src/lib/math/numbertheory/monty.cpp 10
/src/botan/src/lib/math/mp/mp_karat.cpp 20
/src/botan/src/lib/math/mp/mp_comba.cpp 12
/src/botan/src/lib/math/mp/mp_monty_n.cpp 6
/src/botan/src/lib/math/mp/mp_monty.cpp 1
/src/botan/build/include/public/botan/reducer.h 3
/src/botan/src/lib/pubkey/ec_group/ec_point.cpp 7
/src/botan/build/include/internal/botan/internal/monty_exp.h 1
/src/botan/build/include/public/botan/curve_gfp.h 14
/src/botan/build/include/public/botan/ec_point.h 3

Fuzzer: ocsp

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 44 10.7%
gold [1:9] 9 2.20%
yellow [10:29] 15 3.67%
greenyellow [30:49] 7 1.71%
lawngreen 50+ 333 81.6%
All colors 408 100

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
686 748 12 :

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

686 748 Botan::SHA_1::compress_n(std::__1::vector >&,std::__1::span ,unsignedlong) call site: 00000 /src/botan/src/lib/hash/sha1/sha1.cpp:79
572 1894 72 :

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

572 1894 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:165
331 376 4 :

['Botan::BER_Decoder::decode(bool&)', 'Botan::BER_Decoder::BER_Decoder(Botan::BER_Object&&)', 'Botan::BER_Decoder::~BER_Decoder()', '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/public/botan/ber_dec.h:321
299 314 3 :

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

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
68 157 13 :

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

76 165 Botan::OID::from_string(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_oid.cpp:80
62 69 2 :

['Botan::assertion_failure(char const*, char const*, char const*, char const*, int)', 'unsigned long Botan::high_bit (unsigned int)']

62 69 Botan::(anonymousnamespace)::encode_tag(std::__1::vector >&,Botan::ASN1_Type,Botan::ASN1_Class) call site: 00000 /src/botan/src/lib/asn1/der_enc.cpp:32
61 61 4 :

['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_if ::__unique_single std::__1::make_unique >, bool const&, unsigned long const&>(std::__1::unique_ptr >&&, bool const&, unsigned long const&)', 'std::__1::unique_ptr >::~unique_ptr()']

85 1251 Botan::EMSA::create(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/pk_pad/emsa.cpp:85
38 38 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Internal_Error::Internal_Error(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

38 38 Botan::Montgomery_Int::fix_size() call site: 00000 /src/botan/src/lib/math/numbertheory/monty.cpp:295
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::BER_Decoder::push_back(Botan::BER_Objectconst&) call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:273
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::BER_Decoder::push_back(Botan::BER_Object&&) call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:280
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::DER_Encoder::end_cons() call site: 00000 /src/botan/src/lib/asn1/der_enc.cpp:172
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::Modular_Reducer::reduce(Botan::BigInt&,Botan::BigIntconst&,std::__1::vector >&)const call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:73

Runtime coverage analysis

Covered functions
981
Functions that are reachable but not covered
54
Reachable functions
411
Percentage of reachable functions covered
86.86%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/ocsp.cpp 1
/src/botan/src/lib/x509/ocsp.cpp 2
/src/botan/build/include/public/botan/asn1_obj.h 20
/src/botan/build/include/public/botan/pkix_types.h 6
/src/botan/src/lib/asn1/ber_dec.cpp 19
/src/botan/build/include/public/botan/ber_dec.h 14
/src/botan/src/lib/utils/data_src.cpp 3
/src/botan/src/lib/asn1/asn1_obj.cpp 8
/src/botan/build/include/internal/botan/internal/fmt.h 9
/src/botan/src/lib/utils/exceptn.cpp 8
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 2
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/build/include/public/botan/data_src.h 5
/src/botan/build/include/internal/botan/internal/loadstor.h 4
/src/botan/build/include/internal/botan/internal/safeint.h 2
/src/botan/build/include/public/botan/bigint.h 20
/src/botan/build/include/public/botan/mem_ops.h 6
/src/botan/src/lib/math/bigint/bigint.cpp 6
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 9
/src/botan/build/include/public/botan/assert.h 2
/src/botan/build/include/internal/botan/internal/bit_ops.h 6
/src/botan/src/lib/asn1/asn1_oid.cpp 2
/src/botan/src/lib/utils/parsing.cpp 1
/src/botan/src/lib/x509/x509cert.cpp 1
/src/botan/build/include/public/botan/x509_obj.h 2
/src/botan/src/lib/x509/x509_obj.cpp 1
/src/botan/src/lib/pubkey/pem/pem.cpp 2
/src/botan/src/lib/codec/base64/base64.cpp 6
/src/botan/build/include/internal/botan/internal/codec_base.h 3
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/build/include/public/botan/x509cert.h 1
/src/botan/build/include/public/botan/ocsp.h 4

Fuzzer: x509_path

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 322 29.0%
gold [1:9] 300 27.1%
yellow [10:29] 20 1.80%
greenyellow [30:49] 10 0.90%
lawngreen 50+ 455 41.1%
All colors 1107 100

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
1672 3412 21 :

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

2270 4652 Botan::inverse_mod(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/mod_inv.cpp:189
686 748 12 :

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

686 748 Botan::SHA_1::compress_n(std::__1::vector >&,std::__1::span ,unsignedlong) call site: 00000 /src/botan/src/lib/hash/sha1/sha1.cpp:79
331 376 4 :

['Botan::BER_Decoder::decode(bool&)', 'Botan::BER_Decoder::BER_Decoder(Botan::BER_Object&&)', 'Botan::BER_Decoder::~BER_Decoder()', '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/public/botan/ber_dec.h:321
299 314 3 :

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

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
262 1894 54 :

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

262 1894 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:201
228 6376 18 :

['Botan::operator-(Botan::BigInt const&, unsigned long)', 'Botan::Modular_Reducer::square(Botan::BigInt const&) const', 'Botan::assertion_failure(char const*, char const*, char const*, char const*, int)', 'Botan::BigInt::from_word(unsigned long)', 'Botan::low_zero_bits(Botan::BigInt const&)', 'Botan::operator<<(Botan::BigInt const&, unsigned long)', 'Botan::operator!=(Botan::BigInt const&, unsigned long)', 'Botan::BigInt::operator-=(unsigned long)', 'Botan::BigInt::operator=(Botan::BigInt const&)', 'Botan::BigInt::from_s32(int)', 'Botan::BigInt::operator=(Botan::BigInt&&)', 'Botan::BigInt::operator>>=(unsigned long)', 'Botan::operator>(Botan::BigInt const&, unsigned long)', 'Botan::operator==(Botan::BigInt const&, unsigned long)', 'Botan::Modular_Reducer::multiply(Botan::BigInt const&, Botan::BigInt const&) const', 'Botan::BigInt::BigInt(Botan::BigInt&&)', 'Botan::BigInt::power_of_2(unsigned long)', 'Botan::jacobi(Botan::BigInt const&, Botan::BigInt const&)']

240 8579 Botan::sqrt_modulo_prime(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/numthry.cpp:46
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:379
175 182 2 :

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

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_throw', '__cxa_allocate_exception', 'std::__1::vector >::~vector()', 'Botan::(anonymous namespace)::parse_oid_str(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::vector >::empty() const', '__cxa_free_exception', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', 'std::__1::remove_reference >&>::type&& std::__1::move >&>(std::__1::vector >&)', 'Botan::Lookup_Error::Lookup_Error(std::__1::basic_string_view >)', 'Botan::OID::OID(std::__1::vector >&&)', 'std::__1::basic_string , std::__1::allocator > Botan::fmt > >(std::__1::basic_string_view >, std::__1::basic_string_view > const&)']

76 165 Botan::OID::from_string(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_oid.cpp:80
29 36 2 :

['Botan::BigInt::operator=(Botan::BigInt&&)', 'Botan::BigInt::one()']

45 948 Botan::(anonymousnamespace)::GOST_3410_Verification_Operation::verify(unsignedcharconst*,unsignedlong,unsignedcharconst*,unsignedlong) call site: 00000 /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:253

Runtime coverage analysis

Covered functions
1522
Functions that are reachable but not covered
237
Reachable functions
851
Percentage of reachable functions covered
72.15%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/x509_path.cpp 1
/src/botan/build/include/public/botan/data_src.h 6
/src/botan/src/lib/x509/x509cert.cpp 37
/src/botan/build/include/public/botan/x509_obj.h 6
/src/botan/build/include/public/botan/asn1_obj.h 27
/src/botan/src/lib/x509/x509_obj.cpp 4
/src/botan/src/lib/asn1/asn1_obj.cpp 10
/src/botan/src/lib/utils/data_src.cpp 3
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/src/lib/utils/exceptn.cpp 11
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/fmt.h 11
/src/botan/build/include/public/botan/exceptn.h 3
/src/botan/src/lib/pubkey/pem/pem.cpp 3
/src/botan/src/lib/asn1/ber_dec.cpp 10
/src/botan/build/include/public/botan/ber_dec.h 3
/src/botan/src/lib/codec/base64/base64.cpp 6
/src/botan/build/include/internal/botan/internal/codec_base.h 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/build/include/public/botan/mem_ops.h 8
/src/botan/build/include/internal/botan/internal/ct_utils.h 11
/src/botan/build/include/internal/botan/internal/bit_ops.h 5
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/src/lib/x509/certstor.cpp 4
/src/botan/build/include/public/botan/certstor.h 4
/src/botan/src/lib/asn1/alg_id.cpp 2
/src/botan/src/lib/x509/x509path.cpp 15
/src/botan/build/include/public/botan/x509cert.h 2
/src/botan/src/lib/asn1/der_enc.cpp 3
/src/botan/build/include/public/botan/der_enc.h 3
/src/botan/build/include/public/botan/pk_keys.h 1
/src/botan/src/lib/pubkey/pk_keys.cpp 1
/src/botan/src/lib/hash/hash.cpp 2
/src/botan/src/lib/utils/scan_name.cpp 5
/src/botan/build/include/internal/botan/internal/scan_name.h 4
/src/botan/src/lib/utils/parsing.cpp 4
/src/botan/build/include/public/botan/buf_comp.h 5
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3
/usr/local/bin/../include/c++/v1/optional 7
/src/botan/build/include/public/botan/pkix_types.h 6
/src/botan/src/lib/x509/x509_dn.cpp 10
/src/botan/build/include/internal/botan/internal/stl_util.h 3
/usr/include/ctype.h 3
/src/botan/build/include/public/botan/x509path.h 12
/src/botan/src/lib/asn1/asn1_time.cpp 6
/src/botan/src/lib/utils/calendar.cpp 4
/src/botan/build/include/internal/botan/internal/calendar.h 7
/src/botan/src/lib/asn1/asn1_oid.cpp 7
/src/botan/src/lib/asn1/oid_map.cpp 2
/src/botan/src/lib/asn1/oid_maps.cpp 2
/src/botan/build/include/internal/botan/internal/oid_map.h 1
/src/botan/src/lib/x509/asn1_alt_name.cpp 2
/src/botan/build/include/public/botan/pkix_enums.h 3
/src/botan/src/lib/x509/x509_dn_ub.cpp 1
/src/botan/build/include/public/botan/x509_key.h 1
/src/botan/src/lib/pubkey/x509_key.cpp 1
/src/botan/build/include/public/botan/secmem.h 3
/src/botan/build/include/internal/botan/internal/loadstor.h 6
/src/botan/build/include/internal/botan/internal/safeint.h 2
/src/botan/src/lib/pubkey/pk_algs.cpp 1
/src/botan/src/lib/pubkey/pubkey.cpp 9
/src/botan/build/include/public/botan/pubkey.h 1
/src/botan/build/include/public/botan/bigint.h 21
/src/botan/src/lib/math/bigint/bigint.cpp 7
/src/botan/build/include/public/botan/concepts.h 4
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/src/lib/math/bigint/big_code.cpp 1
/src/botan/build/include/public/botan/assert.h 2
/src/botan/src/lib/x509/x509_ext.cpp 1
/src/botan/src/lib/x509/x509_crl.cpp 9
/src/botan/src/lib/x509/crl_ent.cpp 3
/src/botan/build/include/public/botan/ocsp.h 7
/src/botan/src/lib/x509/ocsp.cpp 3
/src/botan/src/lib/x509/ocsp_types.cpp 1

Fuzzer: oaep

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 12 17.9%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 55 82.0%
All colors 67 100

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

Runtime coverage analysis

Covered functions
58
Functions that are reachable but not covered
19
Reachable functions
110
Percentage of reachable functions covered
82.73%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/oaep.cpp 3
/src/botan/src/lib/pk_pad/eme_oaep/oaep.cpp 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 29
/src/botan/build/include/public/botan/assert.h 3
/src/botan/build/include/internal/botan/internal/bit_ops.h 4
/src/botan/src/lib/utils/ct_utils.cpp 1
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3

Fuzzer: gcd

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 101 23.9%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 1 0.23%
lawngreen 50+ 319 75.7%
All colors 421 100

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
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', '__cxa_free_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::bigint_modop_vartime(unsignedlong,unsignedlong,unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/mp_core.h:698
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', '__cxa_free_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::bigint_divop_vartime(unsignedlong,unsignedlong,unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/mp_core.h:666
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::operator%(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/bigint/big_ops3.cpp:126
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::operator%(Botan::BigIntconst&,unsignedlong) call site: 00000 /src/botan/src/lib/math/bigint/big_ops3.cpp:146
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::reduce_below(Botan::BigIntconst&,std::__1::vector >&) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:313
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::vartime_divide(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigInt&,Botan::BigInt&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:156
0 8 1 :

['Botan::BigInt::grow_to(unsigned long) const']

0 97 Botan::BigInt::ct_cond_assign(bool,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:491
0 0 None 17 17 Botan::operator%(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/bigint/big_ops3.cpp:123
0 0 None 8 8 Botan::allocate_memory(unsignedlong,unsignedlong) call site: 00000 /src/botan/src/lib/utils/allocator.cpp:27
0 0 None 0 84 Botan::BigInt::is_less_than(Botan::BigIntconst&)const call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:180
0 0 None 0 8 Botan::bigint_ct_is_eq(unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/mp_core.h:578

Runtime coverage analysis

Covered functions
162
Functions that are reachable but not covered
97
Reachable functions
396
Percentage of reachable functions covered
75.51%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/gcd.cpp 2
/src/botan/build/include/public/botan/bigint.h 51
/src/botan/src/lib/math/bigint/bigint.cpp 17
/src/botan/build/include/public/botan/mem_ops.h 6
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 4
/src/botan/src/lib/utils/exceptn.cpp 5
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 19
/src/botan/build/include/public/botan/assert.h 2
/src/botan/build/include/internal/botan/internal/bit_ops.h 6
/src/botan/build/include/internal/botan/internal/mp_core.h 16
/src/botan/src/lib/math/bigint/big_ops3.cpp 5
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/src/lib/math/bigint/divide.cpp 4
/src/botan/src/lib/math/bigint/big_ops2.cpp 3
/src/botan/build/include/internal/botan/internal/mp_asmi.h 9
/src/botan/src/lib/math/numbertheory/numthry.cpp 1
/src/botan/build/include/public/botan/numthry.h 1
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/src/lib/math/bigint/big_code.cpp 2
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3

Fuzzer: tls_client_hello

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 6 16.6%
gold [1:9] 3 8.33%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 27 75.0%
All colors 36 100

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
910 1894 90 :

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

910 1894 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:133
82 169 12 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::__unique_if ::__unique_single std::__1::make_unique (Botan::TLS::Certificate_Status&&)', 'Botan::TLS::Certificate_Status::~Certificate_Status()', 'Botan::TLS::(anonymous namespace)::RFC6066_Empty_Certificate_Status_Request::RFC6066_Empty_Certificate_Status_Request(unsigned short)', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'Botan::TLS::TLS_Exception::TLS_Exception(Botan::TLS::AlertType, std::__1::basic_string_view >)', 'std::__1::vector > Botan::TLS::TLS_Data_Reader::get_fixed (unsigned long)', 'std::__1::vector >::~vector()', 'std::__1::__unique_if ::__unique_single std::__1::make_unique (Botan::TLS::(anonymous namespace)::RFC6066_Empty_Certificate_Status_Request&&)', '__cxa_free_exception', 'Botan::TLS::Certificate_Status::Certificate_Status(std::__1::vector > const&, Botan::TLS::Connection_Side)']

82 171 Botan::TLS::Certificate_Status_Request::Certificate_Status_Request(Botan::TLS::TLS_Data_Reader&,unsignedshort,Botan::TLS::Handshake_Type,Botan::TLS::Connection_Side) call site: 00000 /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:108
70 70 1 :

['Botan::TLS::TLS_Data_Reader::get_uint24_t()']

70 70 Botan::TLS::TLS_Data_Reader::get_length_field(unsignedlong) call site: 00000 /src/botan/build/include/internal/botan/internal/tls_reader.h:137
17 17 9 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::unique_ptr >::operator->() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', '__cxa_free_exception', 'std::__1::to_string(int)', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator >&&)', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::TLS::Extensions::add(std::__1::unique_ptr >) call site: 00000 /src/botan/src/lib/tls/tls_extensions.cpp:111
6 6 3 :

['std::__1::__unique_if ::__unique_single std::__1::make_unique (Botan::TLS::(anonymous namespace)::Server_PSK&&)', 'Botan::TLS::(anonymous namespace)::Server_PSK::Server_PSK(unsigned short)', 'Botan::TLS::(anonymous namespace)::Server_PSK::~Server_PSK()']

12 95 Botan::TLS::PSK::PSK(Botan::TLS::TLS_Data_Reader&,unsignedshort,Botan::TLS::Handshake_Type) call site: 00000 /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:142
4 4 1 :

['Botan::SHA_256::compress_digest_x86(std::__1::vector >&, std::__1::span , unsigned long)']

4 4 Botan::SHA_256::compress_digest(std::__1::vector >&,std::__1::span ,unsignedlong) call site: 00000 /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:51
0 1870 11 :

['Botan::BufferSlicer::take(unsigned long)', 'unsigned int Botan::sigma<17ul, 19ul, 10ul, unsigned int>(unsigned int)', 'std::__1::vector >::operator[](unsigned long)', 'unsigned int Botan::majority (unsigned int, unsigned int, unsigned int)', 'std::__1::span ::data() const', 'unsigned int Botan::sigma<7ul, 18ul, 3ul, unsigned int>(unsigned int)', 'unsigned int Botan::load_be (unsigned char const*, unsigned long)', 'unsigned int Botan::rho<6ul, 11ul, 25ul, unsigned int>(unsigned int)', 'unsigned int Botan::rho<2ul, 13ul, 22ul, unsigned int>(unsigned int)', 'Botan::BufferSlicer::BufferSlicer(std::__1::span )', 'unsigned int Botan::choose (unsigned int, unsigned int, unsigned int)']

0 1870 Botan::SHA_256::compress_digest(std::__1::vector >&,std::__1::span ,unsignedlong) call site: 00000 /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:57
0 70 1 :

['Botan::TLS::TLS_Data_Reader::get_uint16_t()']

6 91 Botan::TLS::Supported_Versions::Supported_Versions(Botan::TLS::TLS_Data_Reader&,unsignedshort,Botan::TLS::Connection_Side) call site: 00000 /src/botan/src/lib/tls/tls_extensions.cpp:751
0 70 2 :

['std::__1::optional ::optional (unsigned int&&)', 'Botan::TLS::TLS_Data_Reader::get_uint32_t()']

6 89 Botan::TLS::EarlyDataIndication::EarlyDataIndication(Botan::TLS::TLS_Data_Reader&,unsignedshort,Botan::TLS::Handshake_Type) call site: 00000 /src/botan/src/lib/tls/tls_extensions.cpp:946
0 68 2 :

['Botan::TLS::TLS_Data_Reader::get_byte()', 'std::__1::vector >::push_back(Botan::TLS::Certificate_Type&&)']

6 87 Botan::TLS::Certificate_Type_Base::Certificate_Type_Base(Botan::TLS::TLS_Data_Reader&,unsignedshort,Botan::TLS::Connection_Side) call site: 00000 /src/botan/src/lib/tls/tls_extensions.cpp:428
0 11 1 :

['Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)']

6 17 Botan::BER_Decoder::end_cons() call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:296
0 0 None 16 320 Botan::BER_Decoder::get_next_object() call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:255

Runtime coverage analysis

Covered functions
379
Functions that are reachable but not covered
18
Reachable functions
61
Percentage of reachable functions covered
70.49%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/tls_client_hello.cpp 1
/src/botan/src/lib/tls/msg_client_hello.cpp 7
/src/botan/build/include/public/botan/tls_handshake_msg.h 2
/src/botan/src/lib/utils/assert.cpp 1
/src/botan/src/lib/utils/exceptn.cpp 3
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/fmt.h 3
/src/botan/build/include/public/botan/tls_extensions.h 5
/src/botan/build/include/public/botan/tls_exceptn.h 1

Fuzzer: asn1

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 33 6.45%
gold [1:9] 279 54.5%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 199 38.9%
All colors 511 100

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
6 17 7 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

6 17 Botan::to_u32bit(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/utils/parsing.cpp:46
4 4 3 :

['std::__1::vector >& Botan::operator+= , std::__1::allocator >(std::__1::vector >&, std::__1::vector > const&)', 'std::__1::vector >& Botan::operator+= , unsigned long>(std::__1::vector >&, std::__1::pair const&)', 'std::__1::pair ::type, std::__1::__unwrap_ref_decay ::type> std::__1::make_pair (unsigned char const*&, unsigned long&)']

4 4 Botan::DER_Encoder::add_object(Botan::ASN1_Type,Botan::ASN1_Class,unsignedcharconst*,unsignedlong) call site: 00000 /src/botan/src/lib/asn1/der_enc.cpp:229
0 0 None 62 69 Botan::(anonymousnamespace)::encode_tag(std::__1::vector >&,Botan::ASN1_Type,Botan::ASN1_Class) call site: 00000 /src/botan/src/lib/asn1/der_enc.cpp:28
0 0 None 16 320 Botan::BER_Decoder::get_next_object() call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:255
0 0 None 16 61 Botan::OID::decode_from(Botan::BER_Decoder&) call site: 00000 /src/botan/src/lib/asn1/asn1_oid.cpp:193
0 0 None 8 8 Botan::allocate_memory(unsignedlong,unsignedlong) call site: 00000 /src/botan/src/lib/utils/allocator.cpp:27
0 0 None 6 120 Botan::BER_Object::assert_is_a(Botan::ASN1_Type,Botan::ASN1_Class,std::__1::basic_string_view >)const call site: 00000 /src/botan/src/lib/asn1/asn1_obj.cpp:38
0 0 None 6 78 Botan::BER_Object::assert_is_a(Botan::ASN1_Type,Botan::ASN1_Class,std::__1::basic_string_view >)const call site: 00000 /src/botan/src/lib/asn1/asn1_obj.cpp:35
0 0 1 :

['std::__1::to_string(unsigned int)']

6 50 Botan::BER_Object::assert_is_a(Botan::ASN1_Type,Botan::ASN1_Class,std::__1::basic_string_view >)const call site: 00000 /src/botan/src/lib/asn1/asn1_obj.cpp:49
0 0 None 4 170 Botan::ASN1_String::decode_from(Botan::BER_Decoder&) call site: 00000 /src/botan/src/lib/asn1/asn1_str.cpp:91
0 0 None 4 4 Botan::DER_Encoder::add_object(Botan::ASN1_Type,Botan::ASN1_Class,unsignedcharconst*,unsignedlong) call site: 00000 /src/botan/src/lib/asn1/der_enc.cpp:227
0 0 4 :

['std::__1::basic_string_view >::size() const', 'std::__1::basic_string_view >::operator[](unsigned long) const', 'std::__1::basic_ostream >& std::__1::operator<< >(std::__1::basic_ostream >&, char)', 'std::__1::basic_string_view >::at(unsigned long) const']

0 16 voidBotan::fmt_detail::do_fmt (std::__1::basic_ostringstream ,std::__1::allocator >&,std::__1::basic_string_view >,charconst*const&,charconst*const&,charconst*const&) call site: 00000 /src/botan/build/include/internal/botan/internal/fmt.h:29

Runtime coverage analysis

Covered functions
196
Functions that are reachable but not covered
57
Reachable functions
305
Percentage of reachable functions covered
81.31%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/asn1.cpp 2
/src/botan/build/include/public/botan/asn1_print.h 1
/src/botan/src/lib/asn1/asn1_print.cpp 4
/src/botan/src/lib/asn1/ber_dec.cpp 10
/src/botan/build/include/public/botan/asn1_obj.h 21
/src/botan/src/lib/utils/data_src.cpp 2
/src/botan/src/lib/asn1/asn1_obj.cpp 7
/src/botan/build/include/internal/botan/internal/fmt.h 7
/src/botan/src/lib/utils/exceptn.cpp 3
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 2
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/build/include/public/botan/data_src.h 3
/src/botan/build/include/internal/botan/internal/loadstor.h 3
/src/botan/build/include/internal/botan/internal/safeint.h 2
/src/botan/src/lib/asn1/der_enc.cpp 1
/src/botan/build/include/public/botan/der_enc.h 1
/src/botan/build/include/public/botan/ber_dec.h 4
/usr/include/ctype.h 1
/src/botan/build/include/public/botan/mem_ops.h 6
/src/botan/src/lib/asn1/asn1_oid.cpp 3
/src/botan/src/lib/asn1/oid_map.cpp 2
/src/botan/src/lib/asn1/oid_maps.cpp 2
/src/botan/src/lib/utils/assert.cpp 1
/src/botan/build/include/internal/botan/internal/oid_map.h 1
/src/botan/build/include/public/botan/bigint.h 15
/src/botan/src/lib/math/bigint/bigint.cpp 2
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/src/lib/asn1/asn1_str.cpp 5
/src/botan/build/include/internal/botan/internal/ct_utils.h 10
/src/botan/build/include/public/botan/assert.h 2
/src/botan/build/include/internal/botan/internal/bit_ops.h 1
/src/botan/src/lib/asn1/asn1_time.cpp 2

Fuzzer: ecc_p256

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3038 71.3%
gold [1:9] 301 7.07%
yellow [10:29] 108 2.53%
greenyellow [30:49] 2 0.04%
lawngreen 50+ 807 18.9%
All colors 4256 100

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
2729 2729 10 :

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

2749 2760 Botan::EC_Group::EC_Group(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:421
850 928 12 :

['std::__1::shared_ptr ::shared_ptr (std::__1::shared_ptr &&)', 'std::__1::shared_ptr ::~shared_ptr()', 'std::__1::shared_ptr ::~shared_ptr()', 'Botan::prime_p384()', 'std::__1::shared_ptr ::~shared_ptr()', 'std::__1::shared_ptr std::__1::make_shared (Botan::BigInt const&, Botan::BigInt const&)', 'Botan::operator==(Botan::BigInt const&, Botan::BigInt const&)', 'std::__1::shared_ptr std::__1::make_shared (Botan::BigInt const&, Botan::BigInt const&, Botan::BigInt const&)', 'Botan::prime_p521()', 'std::__1::shared_ptr std::__1::make_shared (Botan::BigInt const&, Botan::BigInt const&)', 'std::__1::shared_ptr ::shared_ptr (std::__1::shared_ptr &&)', 'std::__1::shared_ptr ::shared_ptr (std::__1::shared_ptr &&)']

850 928 Botan::CurveGFp::choose_repr(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/curve_gfp.cpp:571
318 372 22 :

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

322 437 Botan::StreamCipher::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/stream/stream_cipher.cpp:87
299 314 3 :

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

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
290 6376 18 :

['Botan::operator-(Botan::BigInt const&, unsigned long)', 'Botan::Modular_Reducer::square(Botan::BigInt const&) const', 'Botan::assertion_failure(char const*, char const*, char const*, char const*, int)', 'Botan::BigInt::from_word(unsigned long)', 'Botan::low_zero_bits(Botan::BigInt const&)', 'Botan::operator<<(Botan::BigInt const&, unsigned long)', 'Botan::operator!=(Botan::BigInt const&, unsigned long)', 'Botan::BigInt::operator-=(unsigned long)', 'Botan::BigInt::operator=(Botan::BigInt const&)', 'Botan::BigInt::from_s32(int)', 'Botan::BigInt::operator=(Botan::BigInt&&)', 'Botan::BigInt::operator>>=(unsigned long)', 'Botan::operator>(Botan::BigInt const&, unsigned long)', 'Botan::operator==(Botan::BigInt const&, unsigned long)', 'Botan::Modular_Reducer::multiply(Botan::BigInt const&, Botan::BigInt const&) const', 'Botan::BigInt::BigInt(Botan::BigInt&&)', 'Botan::BigInt::power_of_2(unsigned long)', 'Botan::jacobi(Botan::BigInt const&, Botan::BigInt const&)']

302 8579 Botan::sqrt_modulo_prime(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/numthry.cpp:46
267 1894 90 :

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

267 1894 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:133
232 2086 4 :

['Botan::OID::OID(std::initializer_list )', 'Botan::OID::~OID()', 'Botan::OID::operator==(Botan::OID const&) const', 'std::__1::shared_ptr ::shared_ptr()']

232 13552 Botan::EC_Group::EC_group_info(Botan::OIDconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:17
211 211 1 :

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

227 242 Botan::operator*(Botan::BigIntconst&,Botan::EC_Pointconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_point.cpp:378
193 193 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_mul(unsigned long*, unsigned long const*, unsigned long const*, unsigned long, unsigned long*)']

193 226 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:310
175 182 2 :

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

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

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

165 165 Botan::OID::from_string(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_oid.cpp:80
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

Runtime coverage analysis

Covered functions
624
Functions that are reachable but not covered
397
Reachable functions
1101
Percentage of reachable functions covered
63.94%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 3
/src/botan/./src/fuzzer/ecc_p256.cpp 1
/src/botan/src/lib/pubkey/ec_group/ec_group.cpp 11
/src/botan/src/lib/asn1/asn1_oid.cpp 3
/src/botan/src/lib/utils/exceptn.cpp 6
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 3
/src/botan/src/lib/asn1/oid_map.cpp 2
/src/botan/src/lib/asn1/oid_maps.cpp 2
/src/botan/build/include/public/botan/asn1_obj.h 17
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 9
/src/botan/build/include/internal/botan/internal/oid_map.h 1
/src/botan/src/lib/utils/parsing.cpp 1
/src/botan/build/include/public/botan/allocator.h 1
/src/botan/src/lib/utils/allocator.cpp 1
/src/botan/src/lib/pubkey/pem/pem.cpp 3
/src/botan/src/lib/utils/data_src.cpp 3
/src/botan/build/include/public/botan/data_src.h 4
/src/botan/build/include/public/botan/mem_ops.h 8
/src/botan/src/lib/codec/base64/base64.cpp 6
/src/botan/build/include/internal/botan/internal/codec_base.h 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 32
/src/botan/build/include/internal/botan/internal/bit_ops.h 7
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/src/lib/asn1/ber_dec.cpp 17
/src/botan/src/lib/asn1/asn1_obj.cpp 7
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/build/include/internal/botan/internal/loadstor.h 4
/src/botan/build/include/internal/botan/internal/safeint.h 2
/src/botan/build/include/public/botan/ber_dec.h 11
/src/botan/build/include/public/botan/bigint.h 68
/src/botan/src/lib/math/bigint/bigint.cpp 24
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/build/include/public/botan/assert.h 3
/src/botan/src/lib/math/numbertheory/primality.cpp 3
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/mp_core.h 25
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 6
/src/botan/src/lib/math/bigint/big_ops2.cpp 11
/src/botan/build/include/internal/botan/internal/mp_asmi.h 15
/src/botan/src/lib/math/bigint/big_ops3.cpp 8
/src/botan/src/lib/math/numbertheory/numthry.cpp 4
/src/botan/src/lib/math/numbertheory/monty_exp.cpp 6
/src/botan/build/include/internal/botan/internal/monty.h 7
/src/botan/src/lib/math/numbertheory/monty.cpp 10
/src/botan/src/lib/math/mp/mp_karat.cpp 20
/src/botan/src/lib/math/mp/mp_comba.cpp 12
/src/botan/src/lib/math/mp/mp_monty_n.cpp 6
/src/botan/src/lib/math/mp/mp_monty.cpp 1
/src/botan/build/include/public/botan/reducer.h 3
/src/botan/src/lib/pubkey/ec_group/ec_point.cpp 15
/src/botan/build/include/internal/botan/internal/monty_exp.h 1
/src/botan/./src/fuzzer/ecc_helper.h 3
/src/botan/build/include/public/botan/ec_point.h 19
/src/botan/build/include/public/botan/curve_gfp.h 26
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/src/lib/math/bigint/big_code.cpp 2
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3
/src/botan/src/lib/pubkey/ec_group/point_mul.cpp 3
/src/botan/src/lib/math/bigint/big_rand.cpp 2
/src/botan/build/include/public/botan/rng.h 4
/src/botan/build/include/internal/botan/internal/point_mul.h 1

Fuzzer: tls_13_handshake_layer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 148 29.5%
gold [1:9] 27 5.38%
yellow [10:29] 21 4.19%
greenyellow [30:49] 7 1.39%
lawngreen 50+ 298 59.4%
All colors 501 100

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
910 1894 90 :

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

910 1894 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:133
686 748 12 :

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

686 748 Botan::SHA_1::compress_n(std::__1::vector >&,std::__1::span ,unsignedlong) call site: 00000 /src/botan/src/lib/hash/sha1/sha1.cpp:79
230 230 2 :

['std::__1::variant ::variant (Botan::TLS::Hello_Retry_Request&&)', 'Botan::TLS::Hello_Retry_Request::Hello_Retry_Request(std::__1::unique_ptr >)']

230 232 Botan::TLS::Server_Hello_13::parse(std::__1::vector >const&) call site: 00000 /src/botan/src/lib/tls/msg_server_hello.cpp:527
91 91 2 :

['Botan::TLS::(anonymous namespace)::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest(Botan::TLS::TLS_Data_Reader&, unsigned short)', 'std::__1::__unique_if ::__unique_single std::__1::make_unique (Botan::TLS::(anonymous namespace)::Key_Share_HelloRetryRequest&&)']

91 93 Botan::TLS::Key_Share::Key_Share(Botan::TLS::TLS_Data_Reader&,unsignedshort,Botan::TLS::Handshake_Type) call site: 00000 /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:414
64 64 2 :

['Botan::Extensions::Extensions_Info::obj() const', 'std::__1::__map_const_iterator , std::__1::__tree_node , void*>*, long> >::operator->() const']

64 64 Botan::Extensions::get_extension_object(Botan::OIDconst&)const call site: 00000 /src/botan/src/lib/x509/x509_ext.cpp:192
62 69 2 :

['Botan::assertion_failure(char const*, char const*, char const*, char const*, int)', 'unsigned long Botan::high_bit (unsigned int)']

62 69 Botan::(anonymousnamespace)::encode_tag(std::__1::vector >&,Botan::ASN1_Type,Botan::ASN1_Class) call site: 00000 /src/botan/src/lib/asn1/der_enc.cpp:32
50 126 6 :

['Botan::TLS::Certificate_Status::~Certificate_Status()', 'std::__1::unique_ptr >::operator=(std::__1::unique_ptr >&&)', 'std::__1::__unique_if ::__unique_single std::__1::make_unique (Botan::TLS::Certificate_Status&&)', 'std::__1::vector > Botan::TLS::TLS_Data_Reader::get_fixed (unsigned long)', 'std::__1::vector >::~vector()', 'Botan::TLS::Certificate_Status::Certificate_Status(std::__1::vector > const&, Botan::TLS::Connection_Side)']

50 128 Botan::TLS::Certificate_Status_Request::Certificate_Status_Request(Botan::TLS::TLS_Data_Reader&,unsignedshort,Botan::TLS::Handshake_Type,Botan::TLS::Connection_Side) call site: 00000 /src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp:138
8 300 4 :

['Botan::BER_Decoder& Botan::BER_Decoder::decode >(std::__1::vector >&, Botan::ASN1_Type)', 'Botan::BER_Decoder::BER_Decoder(Botan::BER_Object&&)', 'Botan::BER_Decoder::~BER_Decoder()', 'Botan::BER_Decoder::verify_end()']

12 304 Botan::BER_Decoder&Botan::BER_Decoder::decode_optional_string >(std::__1::vector >&,Botan::ASN1_Type,unsignedint,Botan::ASN1_Class) call site: 00000 /src/botan/build/include/public/botan/ber_dec.h:281
7 9 2 :

['unsigned char Botan::get_byte_var (unsigned long, unsigned long)', 'unsigned long Botan::significant_bytes (unsigned long)']

7 9 Botan::(anonymousnamespace)::encode_length(std::__1::vector >&,unsignedlong) call site: 00000 /src/botan/src/lib/asn1/der_enc.cpp:52
6 89 10 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, std::__1::basic_string , std::__1::allocator >&&)', 'Botan::TLS::TLS_Exception::TLS_Exception(Botan::TLS::AlertType, std::__1::basic_string_view >)', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', '__cxa_free_exception', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator >&&)', 'Botan::TLS::Protocol_Version::to_string() const']

6 89 Botan::TLS::Protocol_Version::operator>(Botan::TLS::Protocol_Versionconst&)const call site: 00000 /src/botan/src/lib/tls/tls_version.cpp:51
6 31 7 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(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&)']

6 31 Botan::split_on(std::__1::basic_string_view >,char) call site: 00000 /src/botan/src/lib/utils/parsing.cpp:129
6 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

6 17 Botan::BER_Decoder::push_back(Botan::BER_Object&&) call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:280

Runtime coverage analysis

Covered functions
767
Functions that are reachable but not covered
121
Reachable functions
443
Percentage of reachable functions covered
72.69%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/tls_13_handshake_layer.cpp 2
/src/botan/build/include/internal/botan/internal/tls_handshake_layer_13.h 2
/src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp 6
/src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp 5
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 6
/src/botan/build/include/public/botan/exceptn.h 2
/src/botan/src/lib/utils/exceptn.cpp 7
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/src/lib/hash/hash.cpp 2
/src/botan/src/lib/utils/scan_name.cpp 5
/src/botan/build/include/internal/botan/internal/scan_name.h 4
/src/botan/src/lib/utils/parsing.cpp 1
/src/botan/build/include/internal/botan/internal/tls_reader.h 18
/src/botan/build/include/internal/botan/internal/loadstor.h 4
/src/botan/build/include/public/botan/tls_exceptn.h 1
/src/botan/build/include/public/botan/buf_comp.h 3
/src/botan/build/include/public/botan/concepts.h 1
/src/botan/src/lib/tls/msg_client_hello.cpp 13
/src/botan/build/include/public/botan/tls_extensions.h 21
/src/botan/build/include/public/botan/tls_version.h 5
/src/botan/src/lib/tls/tls_extensions.cpp 6
/src/botan/src/lib/tls/tls_version.cpp 4
/src/botan/build/include/public/botan/tls_handshake_msg.h 2
/src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp 1
/src/botan/build/include/internal/botan/internal/stl_util.h 4
/src/botan/src/lib/tls/msg_server_hello.cpp 18
/src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp 1
/src/botan/build/include/public/botan/tls_messages.h 10
/src/botan/src/lib/tls/tls13/msg_certificate_13.cpp 3
/usr/local/bin/../include/c++/v1/optional 2
/src/botan/src/lib/x509/x509cert.cpp 2
/src/botan/src/lib/tls/tls_policy.cpp 1
/src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp 1
/src/botan/src/lib/tls/msg_cert_verify.cpp 2
/src/botan/src/lib/tls/tls_signature_scheme.cpp 8
/src/botan/build/include/public/botan/tls_signature_scheme.h 1
/src/botan/src/lib/tls/msg_finished.cpp 1
/src/botan/build/include/public/botan/assert.h 2
/src/botan/src/lib/tls/msg_session_ticket.cpp 1
/src/botan/build/include/public/botan/strong_type.h 8
/src/botan/src/lib/tls/tls13/msg_key_update.cpp 1
/src/botan/build/include/internal/botan/internal/tls_transcript_hash_13.h 1

Fuzzer: cert

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 14 11.2%
gold [1:9] 9 7.19%
yellow [10:29] 6 4.8%
greenyellow [30:49] 6 4.8%
lawngreen 50+ 90 72.0%
All colors 125 100

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
1445 3412 21 :

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

2043 4652 Botan::inverse_mod(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/mod_inv.cpp:189
686 748 12 :

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

686 748 Botan::SHA_1::compress_n(std::__1::vector >&,std::__1::span ,unsignedlong) call site: 00000 /src/botan/src/lib/hash/sha1/sha1.cpp:79
331 376 4 :

['Botan::BER_Decoder::decode(bool&)', 'Botan::BER_Decoder::BER_Decoder(Botan::BER_Object&&)', 'Botan::BER_Decoder::~BER_Decoder()', '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/public/botan/ber_dec.h:321
299 314 3 :

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

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
262 1894 54 :

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

262 1894 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:204
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:379
175 182 2 :

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

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_throw', '__cxa_allocate_exception', 'std::__1::vector >::~vector()', 'Botan::(anonymous namespace)::parse_oid_str(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::vector >::empty() const', '__cxa_free_exception', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', 'std::__1::remove_reference >&>::type&& std::__1::move >&>(std::__1::vector >&)', 'Botan::Lookup_Error::Lookup_Error(std::__1::basic_string_view >)', 'Botan::OID::OID(std::__1::vector >&&)', 'std::__1::basic_string , std::__1::allocator > Botan::fmt > >(std::__1::basic_string_view >, std::__1::basic_string_view > const&)']

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

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

72 640 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

Runtime coverage analysis

Covered functions
1401
Functions that are reachable but not covered
22
Reachable functions
148
Percentage of reachable functions covered
85.14%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/cert.cpp 1
/src/botan/build/include/public/botan/data_src.h 5
/src/botan/src/lib/x509/x509cert.cpp 1
/src/botan/build/include/public/botan/x509_obj.h 2
/src/botan/build/include/public/botan/asn1_obj.h 6
/src/botan/src/lib/x509/x509_obj.cpp 1
/src/botan/src/lib/asn1/asn1_obj.cpp 1
/src/botan/src/lib/utils/data_src.cpp 2
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/src/lib/utils/exceptn.cpp 8
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/fmt.h 7
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/src/lib/pubkey/pem/pem.cpp 2
/src/botan/src/lib/asn1/ber_dec.cpp 1
/src/botan/build/include/public/botan/ber_dec.h 1
/src/botan/src/lib/codec/base64/base64.cpp 6
/src/botan/build/include/internal/botan/internal/codec_base.h 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/build/include/public/botan/mem_ops.h 2
/src/botan/build/include/internal/botan/internal/ct_utils.h 7
/src/botan/build/include/internal/botan/internal/bit_ops.h 3
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/build/include/public/botan/x509cert.h 1

Fuzzer: ressol

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2827 81.0%
gold [1:9] 49 1.40%
yellow [10:29] 12 0.34%
greenyellow [30:49] 35 1.00%
lawngreen 50+ 567 16.2%
All colors 3490 100

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
318 372 22 :

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

322 437 Botan::StreamCipher::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/stream/stream_cipher.cpp:87
299 314 3 :

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

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
267 1894 90 :

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

267 1894 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:133
193 193 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_mul(unsigned long*, unsigned long const*, unsigned long const*, unsigned long, unsigned long*)']

193 226 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:310
183 183 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_sqr(unsigned long*, unsigned long const*, unsigned long, unsigned long*)']

183 216 Botan::bigint_sqr(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:345
175 182 2 :

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

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

['__cxa_throw', '__cxa_allocate_exception', 'Botan::BigInt::from_word(unsigned long)', 'Botan::operator!=(Botan::BigInt const&, unsigned long)', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'unsigned int Botan::load_le (unsigned char const*, unsigned long)', 'unsigned long Botan::high_bit (unsigned short)', 'Botan::Not_Implemented::Not_Implemented(std::__1::basic_string_view >)', '__cxa_free_exception', 'Botan::RandomNumberGenerator::next_byte()', 'Botan::RandomNumberGenerator::randomize(unsigned char*, unsigned long)']

133 187 Botan::random_prime(Botan::RandomNumberGenerator&,unsignedlong,Botan::BigIntconst&,unsignedlong,unsignedlong,unsignedlong) call site: 00000 /src/botan/src/lib/math/numbertheory/make_prm.cpp:117
93 93 1 :

['Botan::ChaCha::chacha_avx512_x16(unsigned char*, unsigned int*, unsigned long)']

520 923 Botan::ChaCha::chacha(unsignedchar*,unsignedlong,unsignedint*,unsignedlong) call site: 00000 /src/botan/src/lib/stream/chacha/chacha.cpp:115
38 38 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Internal_Error::Internal_Error(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

38 38 Botan::Montgomery_Int::fix_size() call site: 00000 /src/botan/src/lib/math/numbertheory/monty.cpp:295
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::Modular_Reducer::reduce(Botan::BigInt&,Botan::BigIntconst&,std::__1::vector >&)const call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:73
17 17 6 :

['std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&, char const*)', '__cxa_allocate_exception', '__cxa_throw', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', '__cxa_free_exception', 'Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view >)']

17 17 Botan::SCAN_Name::SCAN_Name(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/utils/scan_name.cpp:101
6 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

6 33 Botan::Montgomery_Params::Montgomery_Params(Botan::BigIntconst&,Botan::Modular_Reducerconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/monty.cpp:45

Runtime coverage analysis

Covered functions
488
Functions that are reachable but not covered
179
Reachable functions
742
Percentage of reachable functions covered
75.88%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 3
/src/botan/./src/fuzzer/ressol.cpp 1
/src/botan/src/lib/math/bigint/bigint.cpp 25
/src/botan/build/include/public/botan/bigint.h 71
/src/botan/src/lib/math/numbertheory/make_prm.cpp 5
/src/botan/src/lib/utils/exceptn.cpp 6
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 29
/src/botan/build/include/public/botan/assert.h 2
/src/botan/build/include/internal/botan/internal/bit_ops.h 8
/src/botan/build/include/public/botan/exceptn.h 2
/src/botan/build/include/internal/botan/internal/mp_core.h 22
/src/botan/build/include/internal/botan/internal/fmt.h 4
/src/botan/build/include/public/botan/rng.h 6
/src/botan/build/include/internal/botan/internal/loadstor.h 4
/src/botan/build/include/public/botan/concepts.h 4
/src/botan/build/include/public/botan/mem_ops.h 7
/src/botan/src/lib/math/numbertheory/primality.cpp 4
/src/botan/src/lib/math/bigint/big_rand.cpp 2
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/src/lib/math/bigint/big_ops3.cpp 9
/src/botan/src/lib/math/bigint/big_ops2.cpp 8
/src/botan/build/include/internal/botan/internal/mp_asmi.h 15
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 6
/src/botan/src/lib/math/numbertheory/numthry.cpp 6
/src/botan/src/lib/math/numbertheory/monty_exp.cpp 6
/src/botan/build/include/internal/botan/internal/monty.h 7
/src/botan/src/lib/math/numbertheory/monty.cpp 10
/src/botan/src/lib/math/mp/mp_karat.cpp 20
/src/botan/src/lib/math/mp/mp_comba.cpp 12
/src/botan/src/lib/math/mp/mp_monty_n.cpp 6
/src/botan/src/lib/math/mp/mp_monty.cpp 1
/src/botan/build/include/public/botan/reducer.h 3
/src/botan/build/include/public/botan/numthry.h 1
/src/botan/build/include/internal/botan/internal/monty_exp.h 1
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/src/lib/math/bigint/big_code.cpp 2
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3

Fuzzer: redc_p521

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1139 73.8%
gold [1:9] 67 4.34%
yellow [10:29] 87 5.64%
greenyellow [30:49] 7 0.45%
lawngreen 50+ 242 15.6%
All colors 1542 100

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
299 314 3 :

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

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
193 193 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_mul(unsigned long*, unsigned long const*, unsigned long const*, unsigned long, unsigned long*)']

193 226 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:310
74 74 1 :

['Botan::bigint_sub2(unsigned long*, unsigned long, unsigned long const*, unsigned long)']

74 130 Botan::BigInt::add(unsignedlongconst*,unsignedlong,Botan::BigInt::Sign) call site: 00000 /src/botan/src/lib/math/bigint/big_ops2.cpp:26
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 25 Botan::Modular_Reducer::Modular_Reducer(Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:20
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::BigInt::ct_reduce_below(Botan::BigIntconst&,std::__1::vector >&,unsignedlong) call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:345
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::ct_divide(Botan::BigIntconst&,Botan::BigIntconst&,Botan::BigInt&,Botan::BigInt&) call site: 00000 /src/botan/src/lib/math/bigint/divide.cpp:49
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

17 17 Botan::basecase_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlongconst*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:21
17 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception']

17 17 Botan::Modular_Reducer::reduce(Botan::BigInt&,Botan::BigIntconst&,std::__1::vector >&)const call site: 00000 /src/botan/src/lib/math/numbertheory/reducer.cpp:73
4 4 1 :

['Botan::bigint_comba_mul4(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:298
4 4 1 :

['Botan::bigint_comba_mul6(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:300
4 4 1 :

['Botan::bigint_comba_mul8(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:302
4 4 1 :

['Botan::bigint_comba_mul16(unsigned long*, unsigned long const*, unsigned long const*)']

4 4 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:306

Runtime coverage analysis

Covered functions
180
Functions that are reachable but not covered
142
Reachable functions
478
Percentage of reachable functions covered
70.29%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/redc_p521.cpp 1
/src/botan/src/lib/math/numbertheory/nistp_redc.cpp 2
/src/botan/src/lib/math/bigint/bigint.cpp 14
/src/botan/build/include/public/botan/bigint.h 51
/src/botan/build/include/public/botan/mem_ops.h 9
/src/botan/src/lib/math/bigint/big_code.cpp 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 5
/src/botan/src/lib/utils/exceptn.cpp 5
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/loadstor.h 2
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/src/lib/codec/hex/hex.cpp 7
/src/botan/build/include/internal/botan/internal/ct_utils.h 29
/src/botan/build/include/internal/botan/internal/bit_ops.h 5
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/build/include/public/botan/exceptn.h 2
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/src/lib/math/bigint/big_ops2.cpp 5
/src/botan/build/include/public/botan/assert.h 2
/src/botan/build/include/internal/botan/internal/mp_core.h 19
/src/botan/build/include/internal/botan/internal/mp_asmi.h 13
/src/botan/src/lib/math/bigint/big_ops3.cpp 2
/src/botan/src/lib/math/mp/mp_karat.cpp 10
/src/botan/src/lib/math/mp/mp_comba.cpp 6
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 4
/src/botan/build/include/public/botan/reducer.h 1
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/build/include/public/botan/hex.h 1

Fuzzer: pkcs8

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 297 33.9%
gold [1:9] 297 33.9%
yellow [10:29] 31 3.54%
greenyellow [30:49] 10 1.14%
lawngreen 50+ 240 27.4%
All colors 875 100

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
2824 4160 12 :

['Botan::PKCS8_Exception::PKCS8_Exception(std::__1::basic_string_view >)', 'std::__1::vector >::operator=(std::__1::vector >&&)', 'std::__1::function , std::__1::allocator > ()>::operator()() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::span ::span >&>(std::__1::vector >&)', 'bool std::__1::operator!= , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&, char 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::AlgorithmIdentifier::parameters() const', 'Botan::OID::to_formatted_string() const', 'Botan::AlgorithmIdentifier::oid() const', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const']

2868 5388 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
1445 3412 21 :

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

2043 4652 Botan::inverse_mod(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/mod_inv.cpp:189
299 314 3 :

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

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
211 211 1 :

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

227 242 Botan::operator*(Botan::BigIntconst&,Botan::EC_Pointconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_point.cpp:378
175 182 2 :

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

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
38 38 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Encoding_Error::Encoding_Error(std::__1::basic_string_view >)']

38 38 Botan::BigInt::encode_words(unsignedlong*,unsignedlong)const call site: 00000 /src/botan/src/lib/math/bigint/bigint.cpp:190
26 26 1 :

['Botan::EC_Group::inverse_mod_order(Botan::BigInt const&) const']

50 982 Botan::EC_PrivateKey::EC_PrivateKey(Botan::AlgorithmIdentifierconst&,std::__1::span ,bool) call site: 00000 /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:147
8 300 4 :

['Botan::BER_Decoder& Botan::BER_Decoder::decode >(std::__1::vector >&, Botan::ASN1_Type)', 'Botan::BER_Decoder::BER_Decoder(Botan::BER_Object&&)', 'Botan::BER_Decoder::~BER_Decoder()', 'Botan::BER_Decoder::verify_end()']

12 304 Botan::BER_Decoder&Botan::BER_Decoder::decode_optional_string >(std::__1::vector >&,Botan::ASN1_Type,unsignedint,Botan::ASN1_Class) call site: 00000 /src/botan/build/include/public/botan/ber_dec.h:281
6 31 7 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(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&)']

6 31 Botan::split_on(std::__1::basic_string_view >,char) call site: 00000 /src/botan/src/lib/utils/parsing.cpp:129
6 17 5 :

['__cxa_throw', '__cxa_allocate_exception', 'std::__1::basic_string_view >::basic_string_view(char const*)', '__cxa_free_exception', 'Botan::Invalid_Argument::Invalid_Argument(std::__1::basic_string_view >)']

6 523 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:251

Runtime coverage analysis

Covered functions
887
Functions that are reachable but not covered
150
Reachable functions
523
Percentage of reachable functions covered
71.32%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 1
/src/botan/./src/fuzzer/pkcs8.cpp 1
/src/botan/build/include/public/botan/data_src.h 5
/src/botan/src/lib/pubkey/pkcs8.cpp 4
/src/botan/build/include/public/botan/asn1_obj.h 19
/src/botan/src/lib/asn1/asn1_obj.cpp 8
/src/botan/src/lib/utils/data_src.cpp 3
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/src/lib/utils/exceptn.cpp 13
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/fmt.h 11
/src/botan/build/include/public/botan/exceptn.h 3
/src/botan/src/lib/pubkey/pem/pem.cpp 2
/src/botan/src/lib/asn1/ber_dec.cpp 18
/src/botan/build/include/public/botan/ber_dec.h 8
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/build/include/internal/botan/internal/loadstor.h 4
/src/botan/build/include/internal/botan/internal/safeint.h 2
/src/botan/src/lib/codec/base64/base64.cpp 6
/src/botan/build/include/internal/botan/internal/codec_base.h 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/build/include/public/botan/mem_ops.h 6
/src/botan/build/include/internal/botan/internal/ct_utils.h 9
/src/botan/build/include/internal/botan/internal/bit_ops.h 5
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/build/include/public/botan/pkcs8.h 1
/src/botan/src/lib/asn1/asn1_oid.cpp 6
/src/botan/src/lib/asn1/oid_map.cpp 2
/src/botan/src/lib/asn1/oid_maps.cpp 2
/src/botan/build/include/internal/botan/internal/oid_map.h 1
/src/botan/src/lib/pubkey/pbes2/pbes2.cpp 3
/src/botan/src/lib/utils/parsing.cpp 3
/src/botan/src/lib/modes/cipher_mode.cpp 1
/src/botan/src/lib/stream/stream_cipher.cpp 1
/src/botan/src/lib/utils/scan_name.cpp 6
/src/botan/build/include/internal/botan/internal/scan_name.h 4
/src/botan/src/lib/block/block_cipher.cpp 1
/src/botan/src/lib/hash/hash.cpp 1
/src/botan/build/include/public/botan/assert.h 4
/src/botan/src/lib/modes/aead/aead.cpp 1
/src/botan/src/lib/modes/mode_pad/mode_pad.cpp 1
/src/botan/build/include/public/botan/sym_algo.h 3
/src/botan/build/include/public/botan/bigint.h 20
/src/botan/src/lib/math/bigint/bigint.cpp 6
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/src/lib/asn1/alg_id.cpp 1
/src/botan/src/lib/pbkdf/pwdhash.cpp 2
/src/botan/src/lib/mac/mac.cpp 1
/src/botan/build/include/public/botan/pwdhash.h 1
/src/botan/src/lib/base/sym_algo.cpp 1
/src/botan/build/include/public/botan/cipher_mode.h 2
/src/botan/src/lib/pubkey/pk_algs.cpp 1
/src/botan/src/lib/pubkey/ec_group/ec_group.cpp 3
/src/botan/build/include/public/botan/allocator.h 1
/src/botan/src/lib/utils/allocator.cpp 1

Fuzzer: tls_client

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 19 41.3%
gold [1:9] 0 0.0%
yellow [10:29] 6 13.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 21 45.6%
All colors 46 100

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
3553 3573 45 :

['Botan::TLS::Handshake_State::client_certs() const', 'std::__1::vector >::~vector()', 'Botan::TLS::Certificate_Verify_12::Certificate_Verify_12(Botan::TLS::Handshake_IO&, Botan::TLS::Handshake_State&, Botan::TLS::Policy const&, Botan::RandomNumberGenerator&, Botan::Private_Key const*)', 'Botan::TLS::Handshake_State::client_verify(Botan::TLS::Certificate_Verify_12*)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'Botan::TLS::Handshake_State::client_certs(Botan::TLS::Certificate_12*)', '__cxa_end_catch', 'Botan::TLS::Certificate_12::cert_chain() const', 'Botan::TLS::Certificate_Status::response() const', 'std::__1::shared_ptr ::~shared_ptr()', 'Botan::TLS::Handshake_State::client_kex(Botan::TLS::Client_Key_Exchange*)', '__clang_call_terminate', 'std::__1::shared_ptr ::get() const', 'Botan::TLS::Handshake_State::server_hello_done(Botan::TLS::Server_Hello_Done*)', 'std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'Botan::TLS::Handshake_State::compute_session_keys()', 'Botan::TLS::Server_Hello_12::supports_certificate_status_message() const', 'Botan::TLS::Server_Hello_Done::Server_Hello_Done(std::__1::vector > const&)', 'std::__1::vector >::operator[](unsigned long) const', 'std::__1::__optional_destruct_base ::~__optional_destruct_base()', 'Botan::TLS::Server_Information::hostname() const', 'Botan::TLS::Client_Key_Exchange::Client_Key_Exchange(Botan::TLS::Handshake_IO&, Botan::TLS::Handshake_State&, Botan::TLS::Policy const&, Botan::Credentials_Manager&, Botan::Public_Key const*, std::__1::basic_string_view >, Botan::RandomNumberGenerator&)', 'Botan::TLS::Channel_Impl_12::policy() const', '__cxa_rethrow', 'std::__1::shared_ptr ::operator*() const', 'std::__1::vector , std::__1::allocator > >::~vector()', 'std::__1::vector >::~vector()', 'Botan::TLS::(anonymous namespace)::Client_Handshake_State_12::maybe_server_public_key() const', 'Botan::TLS::Handshake_State::server_certs() const', 'std::__1::vector >::vector()', 'std::__1::shared_ptr ::operator->() const', 'Botan::TLS::Handshake_State::received_handshake_msg(Botan::TLS::Handshake_Type) const', 'Botan::TLS::Handshake_State::server_cert_status() const', 'Botan::TLS::Certificate_Request_12::acceptable_cert_types() const', 'std::__1::vector , std::__1::allocator > >::vector()', 'std::__1::shared_ptr ::operator bool() const', 'Botan::TLS::Channel_Impl_12::rng()', 'Botan::TLS::Handshake_State::cert_req() const', 'Botan::TLS::Certificate_12::empty() const', '__cxa_begin_catch', 'Botan::TLS::Certificate_Request_12::acceptable_CAs() const', 'Botan::TLS::Server_Hello_12::supports_session_ticket() const', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const', 'std::__1::optional & std::__1::vector , std::__1::allocator > >::emplace_back >(std::__1::optional &&)', 'Botan::TLS::Certificate_12::Certificate_12(Botan::TLS::Handshake_IO&, Botan::TLS::Handshake_Hash&, std::__1::vector > const&)']

4877 5064 Botan::TLS::Client_Impl_12::process_handshake_msg(Botan::TLS::Handshake_Stateconst*,Botan::TLS::Handshake_State&,Botan::TLS::Handshake_Type,std::__1::vector >const&,bool) call site: 00000 /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:559
2923 2999 49 :

['Botan::TLS::Handshake_State::client_hello() const', 'Botan::TLS::Handshake_State::new_session_ticket() const', 'Botan::TLS::Session_Handle::is_ticket() const', 'Botan::TLS::Server_Hello::ciphersuite() const', 'Botan::detail::Strong_Adapter > >::empty() const', 'Botan::TLS::Finished_12::Finished(std::__1::vector > const&)', 'Botan::TLS::Handshake_State::client_finished() const', 'Botan::TLS::Channel_Impl_12::callbacks() const', 'std::__1::chrono::duration >::max()', 'Botan::TLS::Client_Impl_12::process_handshake_msg(Botan::TLS::Handshake_State const*, Botan::TLS::Handshake_State&, Botan::TLS::Handshake_Type, std::__1::vector > const&, bool)::$_0::operator()() const', 'operator delete(void*)', 'Botan::TLS::(anonymous namespace)::Client_Handshake_State_12::is_a_resumption() const', 'Botan::TLS::Channel_Impl_12::session_manager()', 'Botan::TLS::Handshake_State::handshake_io()', 'Botan::TLS::TLS_Exception::TLS_Exception(Botan::TLS::AlertType, std::__1::basic_string_view >)', 'Botan::TLS::Handshake_State::hash()', 'Botan::TLS::Session_Handle::Session_Handle(Botan::Strong >, Botan::TLS::Session_Ticket_>)', 'Botan::TLS::Channel_Impl_12::activate_session()', 'std::__1::optional ::value() const &', 'Botan::TLS::Session_Handle::~Session_Handle()', 'Botan::TLS::Handshake_State::session_keys() const', 'Botan::TLS::Session_Keys::master_secret() const', 'Botan::TLS::Handshake_Hash::update(std::__1::vector > const&)', 'std::__1::vector >::~vector()', 'Botan::TLS::Finished_12::Finished_12(Botan::TLS::Handshake_IO&, Botan::TLS::Handshake_State&, Botan::TLS::Connection_Side)', 'Botan::TLS::Finished_12::verify(Botan::TLS::Handshake_State const&, Botan::TLS::Connection_Side) const', 'Botan::detail::Strong_Base > >::~Strong_Base()', 'Botan::TLS::Server_Hello::legacy_version() const', 'Botan::TLS::Client_Impl_12::process_handshake_msg(Botan::TLS::Handshake_State const*, Botan::TLS::Handshake_State&, Botan::TLS::Handshake_Type, std::__1::vector > const&, bool)::$_1::operator()() const', 'Botan::TLS::Handshake_State::server_hello() const', 'std::__1::__optional_storage_base ::has_value() const', 'Botan::TLS::Server_Hello_12::srtp_profile() const', 'Botan::TLS::Client_Hello_12::session_ticket() const', 'Botan::TLS::Change_Cipher_Spec::Change_Cipher_Spec()', 'Botan::TLS::Channel_Impl_12::change_cipher_spec_writer(Botan::TLS::Connection_Side)', 'Botan::TLS::Handshake_State::server_finished(Botan::TLS::Finished_12*)', 'std::__1::vector >::~vector()', 'Botan::TLS::Session::Session(std::__1::vector > const&, Botan::TLS::Protocol_Version, unsigned short, Botan::TLS::Connection_Side, bool, bool, std::__1::vector > const&, Botan::TLS::Server_Information const&, unsigned short, std::__1::chrono::time_point > >, std::__1::chrono::duration >)', 'Botan::TLS::Server_Hello_12::supports_encrypt_then_mac() const', 'Botan::TLS::Handshake_State::server_finished() const', 'Botan::TLS::Server_Hello_12::supports_extended_master_secret() const', 'std::__1::__optional_destruct_base ::~__optional_destruct_base()', 'std::__1::optional ::operator->() const', 'Botan::TLS::Handshake_Message::~Handshake_Message()', 'Botan::TLS::Session::~Session()', 'operator new(unsigned long)', 'Botan::TLS::Handshake_State::client_finished(Botan::TLS::Finished_12*)', 'Botan::TLS::New_Session_Ticket_12::ticket_lifetime_hint() const', 'Botan::TLS::Session_Summary::~Session_Summary()']

2935 3011 Botan::TLS::Client_Impl_12::process_handshake_msg(Botan::TLS::Handshake_Stateconst*,Botan::TLS::Handshake_State&,Botan::TLS::Handshake_Type,std::__1::vector >const&,bool) call site: 00000 /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:633
2773 2773 17 :

['bool std::__1::operator== >(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::unique_ptr >::operator->() const', 'Botan::operator!=(Botan::X509_Certificate const&, Botan::X509_Certificate const&)', 'Botan::TLS::Certificate_12::Certificate_12(std::__1::vector > const&, Botan::TLS::Policy const&)', 'Botan::TLS::(anonymous namespace)::key_usage_matches_ciphersuite(Botan::Key_Constraints, Botan::TLS::Ciphersuite const&)', 'Botan::X509_Certificate::subject_public_key() const', 'std::__1::vector >::at(unsigned long) const', 'std::__1::vector >::empty() const', 'std::__1::remove_reference >&>::type&& std::__1::move >&>(std::__1::unique_ptr >&)', 'std::__1::unique_ptr >::unique_ptr(std::__1::unique_ptr >&&)', 'Botan::X509_Certificate::X509_Certificate(Botan::X509_Certificate const&)', 'Botan::TLS::(anonymous namespace)::Client_Handshake_State_12::record_server_public_key(std::__1::unique_ptr >)', 'std::__1::unique_ptr >::~unique_ptr()', 'Botan::X509_Certificate::constraints() const', 'Botan::TLS::Ciphersuite::sig_algo() const', 'Botan::TLS::Handshake_State::server_certs(Botan::TLS::Certificate_12*)', 'Botan::X509_Certificate::~X509_Certificate()']

2954 3185 Botan::TLS::Client_Impl_12::process_handshake_msg(Botan::TLS::Handshake_Stateconst*,Botan::TLS::Handshake_State&,Botan::TLS::Handshake_Type,std::__1::vector >const&,bool) call site: 00000 /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:470
1249 1259 11 :

['Botan::TLS::Protocol_Version::is_datagram_protocol() const', 'Botan::TLS::(anonymous namespace)::Client_Handshake_State_12::record_resumption_info(std::__1::optional )', 'std::__1::optional ::operator->()', 'Botan::TLS::Session_Base::version() const', 'std::__1::optional ::value() &', 'Botan::TLS::Session_Base::ciphersuite() const', 'std::__1::optional ::optional (Botan::TLS::Session&&)', 'Botan::TLS::Protocol_Version::operator==(Botan::TLS::Protocol_Version const&) const', 'std::__1::remove_reference ::type&& std::__1::move (Botan::TLS::Session&)', 'std::__1::__optional_destruct_base ::~__optional_destruct_base()', 'Botan::TLS::Client_Hello_12::Client_Hello_12(Botan::TLS::Handshake_IO&, Botan::TLS::Handshake_Hash&, Botan::TLS::Policy const&, Botan::TLS::Callbacks&, Botan::RandomNumberGenerator&, std::__1::vector > const&, Botan::TLS::Session_with_Handle const&, std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > > const&)']

1253 2055 Botan::TLS::Client_Impl_12::send_client_hello(Botan::TLS::Handshake_State&,bool,Botan::TLS::Protocol_Version,std::__1::optional ,std::__1::vector ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>const&) call site: 00000 /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:185
824 886 6 :

['Botan::TLS::(anonymous namespace)::Client_Handshake_State_12::is_a_resumption() const', 'Botan::assertion_failure(char const*, char const*, char const*, char const*, int)', 'Botan::TLS::(anonymous namespace)::Client_Handshake_State_12::resumed_session_supports_extended_master_secret() const', 'Botan::TLS::Handshake_State::compute_session_keys(std::__1::vector > const&)', 'Botan::TLS::(anonymous namespace)::Client_Handshake_State_12::resume_master_secret() const', 'Botan::TLS::Server_Hello_12::supports_session_ticket() const']

870 1033 Botan::TLS::Client_Impl_12::process_handshake_msg(Botan::TLS::Handshake_Stateconst*,Botan::TLS::Handshake_State&,Botan::TLS::Handshake_Type,std::__1::vector >const&,bool) call site: 00000 /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:383
760 814 2 :

['Botan::TLS::Channel_Impl_12::change_cipher_spec_reader(Botan::TLS::Connection_Side)', 'Botan::TLS::Handshake_State::set_expected_next(Botan::TLS::Handshake_Type)']

760 814 Botan::TLS::Client_Impl_12::process_handshake_msg(Botan::TLS::Handshake_Stateconst*,Botan::TLS::Handshake_State&,Botan::TLS::Handshake_Type,std::__1::vector >const&,bool) call site: 00000 /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:629
668 674 11 :

['Botan::TLS::Handshake_State::version() const', 'Botan::TLS::Handshake_State::server_kex(Botan::TLS::Server_Key_Exchange*)', 'Botan::TLS::Server_Key_Exchange::verify(Botan::Public_Key const&, Botan::TLS::Handshake_State const&, Botan::TLS::Policy const&) const', 'Botan::TLS::Handshake_State::ciphersuite() const', 'Botan::TLS::Ciphersuite::auth_method() const', 'Botan::TLS::Ciphersuite::signature_used() const', 'Botan::TLS::Handshake_State::server_kex() const', 'Botan::TLS::(anonymous namespace)::Client_Handshake_State_12::server_public_key() const', 'Botan::TLS::Ciphersuite::psk_ciphersuite() const', 'Botan::TLS::Server_Key_Exchange::Server_Key_Exchange(std::__1::vector > const&, Botan::TLS::Kex_Algo, Botan::TLS::Auth_Method, Botan::TLS::Protocol_Version)', 'Botan::TLS::Ciphersuite::kex_method() const']

674 801 Botan::TLS::Client_Impl_12::process_handshake_msg(Botan::TLS::Handshake_Stateconst*,Botan::TLS::Handshake_State&,Botan::TLS::Handshake_Type,std::__1::vector >const&,bool) call site: 00000 /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:540
373 373 1 :

['Botan::TLS::(anonymous namespace)::read_dtls_record(std::__1::vector >&, unsigned char const*, unsigned long, unsigned long&, std::__1::vector >&, Botan::TLS::Connection_Sequence_Numbers*, std::__1::function (unsigned short)> const&, bool)']

373 373 Botan::TLS::read_record(bool,std::__1::vector >&,unsignedcharconst*,unsignedlong,unsignedlong&,std::__1::vector >&,Botan::TLS::Connection_Sequence_Numbers*,std::__1::function (unsignedshort)>const&,bool) call site: 00000 /src/botan/src/lib/tls/tls12/tls_record.cpp:497
327 389 7 :

['Botan::TLS::(anonymous namespace)::decrypt_record(std::__1::vector >&, unsigned char*, unsigned long, unsigned long, Botan::TLS::Protocol_Version, Botan::TLS::Record_Type, Botan::TLS::Connection_Cipher_State&)', 'Botan::assertion_failure(char const*, char const*, char const*, char const*, int)', 'std::__1::shared_ptr ::operator bool() const', 'std::__1::vector >::operator[](unsigned long)', 'std::__1::shared_ptr ::~shared_ptr()', 'std::__1::shared_ptr ::operator*() const', 'std::__1::function (unsigned short)>::operator()(unsigned short) const']

327 391 Botan::TLS::(anonymousnamespace)::read_tls_record(std::__1::vector >&,unsignedcharconst*,unsignedlong,unsignedlong&,std::__1::vector >&,Botan::TLS::Connection_Sequence_Numbers*,std::__1::function (unsignedshort)>const&) call site: 00000 /src/botan/src/lib/tls/tls12/tls_record.cpp:381
267 1894 87 :

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

267 1894 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:139
188 188 2 :

['Botan::TLS::Certificate_Request_12::Certificate_Request_12(std::__1::vector > const&)', 'Botan::TLS::Handshake_State::cert_req(Botan::TLS::Certificate_Request_12*)']

188 242 Botan::TLS::Client_Impl_12::process_handshake_msg(Botan::TLS::Handshake_Stateconst*,Botan::TLS::Handshake_State&,Botan::TLS::Handshake_Type,std::__1::vector >const&,bool) call site: 00000 /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:556
181 181 3 :

['Botan::TLS::(anonymous namespace)::Key_Share_ClientHello::Key_Share_ClientHello(Botan::TLS::TLS_Data_Reader&, unsigned short)', 'Botan::TLS::(anonymous namespace)::Key_Share_ClientHello::~Key_Share_ClientHello()', 'std::__1::__unique_if ::__unique_single std::__1::make_unique (Botan::TLS::(anonymous namespace)::Key_Share_ClientHello&&)']

181 183 Botan::TLS::Key_Share::Key_Share(Botan::TLS::TLS_Data_Reader&,unsignedshort,Botan::TLS::Handshake_Type) call site: 00000 /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:412

Runtime coverage analysis

Covered functions
741
Functions that are reachable but not covered
43
Reachable functions
85
Percentage of reachable functions covered
49.41%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 2
/src/botan/./src/fuzzer/tls_client.cpp 1
/src/botan/build/include/public/botan/tls_version.h 3
/src/botan/build/include/public/botan/tls_server_info.h 3
/src/botan/src/lib/tls/tls_client.cpp 3
/src/botan/build/include/public/botan/tls_channel.h 3
/src/botan/src/lib/utils/assert.cpp 3
/src/botan/build/include/internal/botan/internal/fmt.h 4
/src/botan/src/lib/utils/exceptn.cpp 4
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/internal/botan/internal/tls_channel_impl.h 4
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/src/lib/tls/tls_version.cpp 1

Fuzzer: ecc_p521

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2697 63.3%
gold [1:9] 559 13.1%
yellow [10:29] 0 0.0%
greenyellow [30:49] 2 0.04%
lawngreen 50+ 998 23.4%
All colors 4256 100

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
2729 2729 10 :

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

2749 2760 Botan::EC_Group::EC_Group(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:421
318 372 22 :

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

322 437 Botan::StreamCipher::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/stream/stream_cipher.cpp:87
299 314 3 :

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

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
290 6376 18 :

['Botan::operator-(Botan::BigInt const&, unsigned long)', 'Botan::Modular_Reducer::square(Botan::BigInt const&) const', 'Botan::assertion_failure(char const*, char const*, char const*, char const*, int)', 'Botan::BigInt::from_word(unsigned long)', 'Botan::low_zero_bits(Botan::BigInt const&)', 'Botan::operator<<(Botan::BigInt const&, unsigned long)', 'Botan::operator!=(Botan::BigInt const&, unsigned long)', 'Botan::BigInt::operator-=(unsigned long)', 'Botan::BigInt::operator=(Botan::BigInt const&)', 'Botan::BigInt::from_s32(int)', 'Botan::BigInt::operator=(Botan::BigInt&&)', 'Botan::BigInt::operator>>=(unsigned long)', 'Botan::operator>(Botan::BigInt const&, unsigned long)', 'Botan::operator==(Botan::BigInt const&, unsigned long)', 'Botan::Modular_Reducer::multiply(Botan::BigInt const&, Botan::BigInt const&) const', 'Botan::BigInt::BigInt(Botan::BigInt&&)', 'Botan::BigInt::power_of_2(unsigned long)', 'Botan::jacobi(Botan::BigInt const&, Botan::BigInt const&)']

302 8579 Botan::sqrt_modulo_prime(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/numthry.cpp:46
267 1894 90 :

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

267 1894 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:133
216 1942 4 :

['Botan::OID::OID(std::initializer_list )', 'Botan::OID::~OID()', 'Botan::OID::operator==(Botan::OID const&) const', 'std::__1::shared_ptr ::shared_ptr()']

216 12526 Botan::EC_Group::EC_group_info(Botan::OIDconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:41
211 211 1 :

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

227 242 Botan::operator*(Botan::BigIntconst&,Botan::EC_Pointconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_point.cpp:378
193 193 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_mul(unsigned long*, unsigned long const*, unsigned long const*, unsigned long, unsigned long*)']

193 226 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:310
175 182 2 :

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

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

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

165 165 Botan::OID::from_string(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_oid.cpp:80
121 121 1 :

['void Botan::bigint_mod_sub_n<4ul>(unsigned long*, unsigned long const*, unsigned long const*, unsigned long*)']

121 135 Botan::BigInt::mod_sub(Botan::BigIntconst&,Botan::BigIntconst&,std::__1::vector >&) call site: 00000 /src/botan/src/lib/math/bigint/big_ops2.cpp:108
121 121 1 :

['void Botan::bigint_mod_sub_n<6ul>(unsigned long*, unsigned long const*, unsigned long const*, unsigned long*)']

121 135 Botan::BigInt::mod_sub(Botan::BigIntconst&,Botan::BigIntconst&,std::__1::vector >&) call site: 00000 /src/botan/src/lib/math/bigint/big_ops2.cpp:110

Runtime coverage analysis

Covered functions
627
Functions that are reachable but not covered
385
Reachable functions
1101
Percentage of reachable functions covered
65.03%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 3
/src/botan/./src/fuzzer/ecc_p521.cpp 1
/src/botan/src/lib/pubkey/ec_group/ec_group.cpp 11
/src/botan/src/lib/asn1/asn1_oid.cpp 3
/src/botan/src/lib/utils/exceptn.cpp 6
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 3
/src/botan/src/lib/asn1/oid_map.cpp 2
/src/botan/src/lib/asn1/oid_maps.cpp 2
/src/botan/build/include/public/botan/asn1_obj.h 17
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 9
/src/botan/build/include/internal/botan/internal/oid_map.h 1
/src/botan/src/lib/utils/parsing.cpp 1
/src/botan/build/include/public/botan/allocator.h 1
/src/botan/src/lib/utils/allocator.cpp 1
/src/botan/src/lib/pubkey/pem/pem.cpp 3
/src/botan/src/lib/utils/data_src.cpp 3
/src/botan/build/include/public/botan/data_src.h 4
/src/botan/build/include/public/botan/mem_ops.h 8
/src/botan/src/lib/codec/base64/base64.cpp 6
/src/botan/build/include/internal/botan/internal/codec_base.h 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 32
/src/botan/build/include/internal/botan/internal/bit_ops.h 7
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/src/lib/asn1/ber_dec.cpp 17
/src/botan/src/lib/asn1/asn1_obj.cpp 7
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/build/include/internal/botan/internal/loadstor.h 4
/src/botan/build/include/internal/botan/internal/safeint.h 2
/src/botan/build/include/public/botan/ber_dec.h 11
/src/botan/build/include/public/botan/bigint.h 68
/src/botan/src/lib/math/bigint/bigint.cpp 24
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/build/include/public/botan/assert.h 3
/src/botan/src/lib/math/numbertheory/primality.cpp 3
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/mp_core.h 25
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 6
/src/botan/src/lib/math/bigint/big_ops2.cpp 11
/src/botan/build/include/internal/botan/internal/mp_asmi.h 15
/src/botan/src/lib/math/bigint/big_ops3.cpp 8
/src/botan/src/lib/math/numbertheory/numthry.cpp 4
/src/botan/src/lib/math/numbertheory/monty_exp.cpp 6
/src/botan/build/include/internal/botan/internal/monty.h 7
/src/botan/src/lib/math/numbertheory/monty.cpp 10
/src/botan/src/lib/math/mp/mp_karat.cpp 20
/src/botan/src/lib/math/mp/mp_comba.cpp 12
/src/botan/src/lib/math/mp/mp_monty_n.cpp 6
/src/botan/src/lib/math/mp/mp_monty.cpp 1
/src/botan/build/include/public/botan/reducer.h 3
/src/botan/src/lib/pubkey/ec_group/ec_point.cpp 15
/src/botan/build/include/internal/botan/internal/monty_exp.h 1
/src/botan/./src/fuzzer/ecc_helper.h 3
/src/botan/build/include/public/botan/ec_point.h 19
/src/botan/build/include/public/botan/curve_gfp.h 26
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/src/lib/math/bigint/big_code.cpp 2
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3
/src/botan/src/lib/pubkey/ec_group/point_mul.cpp 3
/src/botan/src/lib/math/bigint/big_rand.cpp 2
/src/botan/build/include/public/botan/rng.h 4
/src/botan/build/include/internal/botan/internal/point_mul.h 1

Fuzzer: ecc_bp256

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3044 71.5%
gold [1:9] 301 7.07%
yellow [10:29] 3 0.07%
greenyellow [30:49] 65 1.52%
lawngreen 50+ 843 19.8%
All colors 4256 100

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
2729 2729 10 :

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

2749 2760 Botan::EC_Group::EC_Group(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:421
1796 3412 21 :

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

2394 4652 Botan::inverse_mod(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/mod_inv.cpp:189
318 372 22 :

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

322 437 Botan::StreamCipher::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/stream/stream_cipher.cpp:87
299 314 3 :

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

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
290 6376 18 :

['Botan::operator-(Botan::BigInt const&, unsigned long)', 'Botan::Modular_Reducer::square(Botan::BigInt const&) const', 'Botan::assertion_failure(char const*, char const*, char const*, char const*, int)', 'Botan::BigInt::from_word(unsigned long)', 'Botan::low_zero_bits(Botan::BigInt const&)', 'Botan::operator<<(Botan::BigInt const&, unsigned long)', 'Botan::operator!=(Botan::BigInt const&, unsigned long)', 'Botan::BigInt::operator-=(unsigned long)', 'Botan::BigInt::operator=(Botan::BigInt const&)', 'Botan::BigInt::from_s32(int)', 'Botan::BigInt::operator=(Botan::BigInt&&)', 'Botan::BigInt::operator>>=(unsigned long)', 'Botan::operator>(Botan::BigInt const&, unsigned long)', 'Botan::operator==(Botan::BigInt const&, unsigned long)', 'Botan::Modular_Reducer::multiply(Botan::BigInt const&, Botan::BigInt const&) const', 'Botan::BigInt::BigInt(Botan::BigInt&&)', 'Botan::BigInt::power_of_2(unsigned long)', 'Botan::jacobi(Botan::BigInt const&, Botan::BigInt const&)']

302 8579 Botan::sqrt_modulo_prime(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/numthry.cpp:46
267 1894 90 :

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

267 1894 Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/hash/hash.cpp:133
211 211 1 :

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

227 242 Botan::operator*(Botan::BigIntconst&,Botan::EC_Pointconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_point.cpp:378
193 193 2 :

['Botan::(anonymous namespace)::karatsuba_size(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)', 'Botan::(anonymous namespace)::karatsuba_mul(unsigned long*, unsigned long const*, unsigned long const*, unsigned long, unsigned long*)']

193 226 Botan::bigint_mul(unsignedlong*,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlongconst*,unsignedlong,unsignedlong,unsignedlong*,unsignedlong) call site: 00000 /src/botan/src/lib/math/mp/mp_karat.cpp:310
184 1654 4 :

['Botan::OID::OID(std::initializer_list )', 'Botan::OID::~OID()', 'Botan::OID::operator==(Botan::OID const&) const', 'std::__1::shared_ptr ::shared_ptr()']

184 10474 Botan::EC_Group::EC_group_info(Botan::OIDconst&) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_named.cpp:89
175 182 2 :

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

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

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

165 165 Botan::OID::from_string(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_oid.cpp:80

Runtime coverage analysis

Covered functions
627
Functions that are reachable but not covered
399
Reachable functions
1101
Percentage of reachable functions covered
63.76%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 3
/src/botan/./src/fuzzer/ecc_bp256.cpp 1
/src/botan/src/lib/pubkey/ec_group/ec_group.cpp 11
/src/botan/src/lib/asn1/asn1_oid.cpp 3
/src/botan/src/lib/utils/exceptn.cpp 6
/usr/local/bin/../include/c++/v1/exception 1
/src/botan/build/include/public/botan/exceptn.h 3
/src/botan/src/lib/asn1/oid_map.cpp 2
/src/botan/src/lib/asn1/oid_maps.cpp 2
/src/botan/build/include/public/botan/asn1_obj.h 17
/src/botan/src/lib/utils/assert.cpp 2
/src/botan/build/include/internal/botan/internal/fmt.h 9
/src/botan/build/include/internal/botan/internal/oid_map.h 1
/src/botan/src/lib/utils/parsing.cpp 1
/src/botan/build/include/public/botan/allocator.h 1
/src/botan/src/lib/utils/allocator.cpp 1
/src/botan/src/lib/pubkey/pem/pem.cpp 3
/src/botan/src/lib/utils/data_src.cpp 3
/src/botan/build/include/public/botan/data_src.h 4
/src/botan/build/include/public/botan/mem_ops.h 8
/src/botan/src/lib/codec/base64/base64.cpp 6
/src/botan/build/include/internal/botan/internal/codec_base.h 3
/src/botan/build/include/internal/botan/internal/rounding.h 1
/src/botan/build/include/internal/botan/internal/ct_utils.h 32
/src/botan/build/include/internal/botan/internal/bit_ops.h 7
/src/botan/src/lib/utils/charset.cpp 1
/src/botan/src/lib/asn1/ber_dec.cpp 17
/src/botan/src/lib/asn1/asn1_obj.cpp 7
/src/botan/build/include/public/botan/secmem.h 1
/src/botan/build/include/internal/botan/internal/loadstor.h 4
/src/botan/build/include/internal/botan/internal/safeint.h 2
/src/botan/build/include/public/botan/ber_dec.h 11
/src/botan/build/include/public/botan/bigint.h 68
/src/botan/src/lib/math/bigint/bigint.cpp 24
/src/botan/build/include/public/botan/concepts.h 3
/src/botan/build/include/internal/botan/internal/bswap.h 1
/src/botan/build/include/public/botan/assert.h 3
/src/botan/src/lib/math/numbertheory/primality.cpp 3
/src/botan/src/lib/math/numbertheory/reducer.cpp 4
/src/botan/build/include/internal/botan/internal/mp_core.h 25
/src/botan/build/include/internal/botan/internal/divide.h 1
/src/botan/src/lib/math/bigint/divide.cpp 6
/src/botan/src/lib/math/bigint/big_ops2.cpp 11
/src/botan/build/include/internal/botan/internal/mp_asmi.h 15
/src/botan/src/lib/math/bigint/big_ops3.cpp 8
/src/botan/src/lib/math/numbertheory/numthry.cpp 4
/src/botan/src/lib/math/numbertheory/monty_exp.cpp 6
/src/botan/build/include/internal/botan/internal/monty.h 7
/src/botan/src/lib/math/numbertheory/monty.cpp 10
/src/botan/src/lib/math/mp/mp_karat.cpp 20
/src/botan/src/lib/math/mp/mp_comba.cpp 12
/src/botan/src/lib/math/mp/mp_monty_n.cpp 6
/src/botan/src/lib/math/mp/mp_monty.cpp 1
/src/botan/build/include/public/botan/reducer.h 3
/src/botan/src/lib/pubkey/ec_group/ec_point.cpp 15
/src/botan/build/include/internal/botan/internal/monty_exp.h 1
/src/botan/./src/fuzzer/ecc_helper.h 3
/src/botan/build/include/public/botan/ec_point.h 19
/src/botan/build/include/public/botan/curve_gfp.h 26
/src/botan/src/lib/math/bigint/big_io.cpp 1
/src/botan/src/lib/math/bigint/big_code.cpp 2
/src/botan/build/include/public/botan/hex.h 1
/src/botan/src/lib/codec/hex/hex.cpp 3
/src/botan/src/lib/pubkey/ec_group/point_mul.cpp 3
/src/botan/src/lib/math/bigint/big_rand.cpp 2
/src/botan/build/include/public/botan/rng.h 4
/src/botan/build/include/internal/botan/internal/point_mul.h 1

Fuzzer: tls_server

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 4 12.9%
gold [1:9] 5 16.1%
yellow [10:29] 1 3.22%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 21 67.7%
All colors 31 100

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
2880 4160 12 :

['Botan::PKCS8_Exception::PKCS8_Exception(std::__1::basic_string_view >)', 'std::__1::vector >::operator=(std::__1::vector >&&)', 'std::__1::function , std::__1::allocator > ()>::operator()() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::span ::span >&>(std::__1::vector >&)', 'bool std::__1::operator!= , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&, char 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::AlgorithmIdentifier::parameters() const', 'Botan::OID::to_formatted_string() const', 'Botan::AlgorithmIdentifier::oid() const', 'std::__1::basic_string , std::__1::allocator >::operator std::__1::basic_string_view >() const']

2956 5388 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
2729 2729 10 :

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

2735 2760 Botan::EC_Group::EC_Group(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:421
1762 1762 7 :

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

1762 1762 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:457
1672 3412 21 :

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

2270 4652 Botan::inverse_mod(Botan::BigIntconst&,Botan::BigIntconst&) call site: 00000 /src/botan/src/lib/math/numbertheory/mod_inv.cpp:189
1268 2456 36 :

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

1272 2838 Botan::KDF::create(std::__1::basic_string_view >,std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/kdf/kdf.cpp:126
670 748 12 :

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

670 748 Botan::SHA_1::compress_n(std::__1::vector >&,std::__1::span ,unsignedlong) call site: 00000 /src/botan/src/lib/hash/sha1/sha1.cpp:79
481 640 5 :

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

481 640 Botan::AES_128::key_schedule(std::__1::span ) call site: 00000 /src/botan/src/lib/block/aes/aes.cpp:850
481 640 5 :

['Botan::AES_256::vperm_key_schedule(unsigned char const*, unsigned long)', 'Botan::CPUID::is_little_endian()', '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()']

481 640 Botan::AES_256::key_schedule(std::__1::span ) call site: 00000 /src/botan/src/lib/block/aes/aes.cpp:976
459 777 11 :

['Botan::BigInt::~BigInt()', 'Botan::operator-(Botan::BigInt const&, unsigned long)', 'Botan::DH_PublicKey::~DH_PublicKey()', 'Botan::DH_PublicKey::DH_PublicKey(Botan::DL_Group const&, Botan::BigInt const&)', 'Botan::operator>=(Botan::BigInt const&, Botan::BigInt const&)', 'Botan::DL_Group::~DL_Group()', 'Botan::operator<=(Botan::BigInt const&, unsigned long)', 'Botan::DL_Group::get_p() const', 'auto Botan::TLS::Callbacks::tls_ephemeral_key_agreement(std::__1::variant const&, Botan::PK_Key_Agreement_Key const&, std::__1::vector > const&, Botan::RandomNumberGenerator&, Botan::TLS::Policy const&)::$_2::operator() (Botan::PK_Key_Agreement_Key const&, Botan::DH_PublicKey const&) const', 'Botan::(anonymous namespace)::get_dl_group(std::__1::variant const&)', 'Botan::BigInt Botan::BigInt::decode >(std::__1::vector > const&)']

465 794 Botan::TLS::Callbacks::tls_ephemeral_key_agreement(std::__1::variant const&,Botan::PK_Key_Agreement_Keyconst&,std::__1::vector >const&,Botan::RandomNumberGenerator&,Botan::TLS::Policyconst&) call site: 00000 /src/botan/src/lib/tls/tls_callbacks.cpp:295
397 397 3 :

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

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

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

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

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

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

Runtime coverage analysis

Covered functions
2295
Functions that are reachable but not covered
21
Reachable functions
63
Percentage of reachable functions covered
66.67%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/botan/./src/fuzzer/fuzzers.h 2
/src/botan/./src/fuzzer/tls_server.cpp 1
/src/botan/build/include/public/botan/tls_server_info.h 2
/src/botan/src/lib/tls/tls_server.cpp 2
/src/botan/build/include/public/botan/tls_channel.h 3
/src/botan/src/lib/tls/tls_version.cpp 2
/src/botan/build/include/public/botan/tls_version.h 3
/src/botan/build/include/internal/botan/internal/tls_channel_impl.h 2
/src/botan/src/lib/utils/assert.cpp 1
/src/botan/build/include/internal/botan/internal/fmt.h 3
/src/botan/build/include/public/botan/exceptn.h 1
/src/botan/src/lib/utils/exceptn.cpp 1
/usr/local/bin/../include/c++/v1/exception 1

Fuzz engine guidance

This sections provides heuristics that can be used as input to a fuzz engine when running a given fuzz target. The current focus is on providing input that is usable by libFuzzer.

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['fuzz(unsigned char const*, unsigned long)', 'fuzz(unsigned char const*, unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::URI::fromIPv4(std::__1::basic_string_view >)', 'Botan::URI::fromIPv6(std::__1::basic_string_view >)', 'Botan::URI::fromIPv6(std::__1::basic_string_view >)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'fuzz(unsigned char const*, unsigned long)', 'Botan::CT::Mask::select_n(unsigned long*, unsigned long const*, unsigned long const*, unsigned long) const', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::Modular_Reducer::reduce(Botan::BigInt const&) const', 'Botan::basecase_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long const*, unsigned long)', 'Botan::(anonymous namespace)::hex_char_to_bin(char)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::BigInt::word_at(unsigned long) const', 'fuzz(unsigned char const*, unsigned long)', 'Botan::round_up(unsigned long, unsigned long)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::BigInt::Data::mutable_data()', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'void Botan::typecast_copy&>(unsigned long&, std::__1::span&)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::ct_divide_word(Botan::BigInt const&, unsigned long, Botan::BigInt&, unsigned long&)', 'fuzz(unsigned char const*, unsigned long)', 'Botan::round_up(unsigned long, unsigned long)', 'Botan::vartime_divide(Botan::BigInt const&, Botan::BigInt const&, Botan::BigInt&, Botan::BigInt&)', 'Botan::BigInt::add(unsigned long const*, unsigned long, Botan::BigInt::Sign)', 'Botan::ct_divide_word(Botan::BigInt const&, unsigned long, Botan::BigInt&, unsigned long&)', 'Botan::BigInt::is_zero() const', 'Botan::BigInt::reduce_below(Botan::BigInt const&, std::__1::vector >&)', 'Botan::vartime_divide(Botan::BigInt const&, Botan::BigInt const&, Botan::BigInt&, Botan::BigInt&)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'fuzz(unsigned char const*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::CT::Mask::select_n(unsigned long*, unsigned long const*, unsigned long const*, unsigned long) const', 'Botan::Modular_Reducer::reduce(Botan::BigInt const&) const', 'Botan::basecase_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long const*, unsigned long)', 'Botan::(anonymous namespace)::hex_char_to_bin(char)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::BigInt::reverse_sign() const', 'Botan::BigInt::is_equal(Botan::BigInt const&) const', 'Botan::round_up(unsigned long, unsigned long)', 'Botan::(anonymous namespace)::inverse_mod_odd_modulus(Botan::BigInt const&, Botan::BigInt const&)', 'Botan::BigInt::is_zero() const', 'Botan::inverse_mod(Botan::BigInt const&, Botan::BigInt const&)', 'Botan::ct_modulo(Botan::BigInt const&, Botan::BigInt const&)', 'Botan::BigInt::ct_cond_add(bool, Botan::BigInt const&)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::BigInt::is_less_than(Botan::BigInt const&) const']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['void (anonymous namespace)::fuzz_mp_redc<4ul>(unsigned char const*, unsigned long)', 'Botan::bigint_sub3(unsigned long*, unsigned long const*, unsigned long, unsigned long const*, unsigned long)', 'Botan::bigint_monty_redc_generic(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['fuzz(unsigned char const*, unsigned long)', 'fuzz(unsigned char const*, unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::round_up(unsigned long, unsigned long)', 'Botan::bigint_sub3(unsigned long*, unsigned long const*, unsigned long, unsigned long const*, unsigned long)', 'void Botan::typecast_copy&>(unsigned long&, std::__1::span&)', 'Botan::BigInt::add2(Botan::BigInt const&, unsigned long const*, unsigned long, Botan::BigInt::Sign)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'fuzz(unsigned char const*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::CT::Mask::select_n(unsigned long*, unsigned long const*, unsigned long const*, unsigned long) const', 'Botan::Modular_Reducer::reduce(Botan::BigInt const&) const', 'Botan::basecase_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long const*, unsigned long)', 'Botan::(anonymous namespace)::hex_char_to_bin(char)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'fuzz(unsigned char const*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::CT::Mask::select_n(unsigned long*, unsigned long const*, unsigned long const*, unsigned long) const', 'Botan::Modular_Reducer::reduce(Botan::BigInt const&) const', 'Botan::basecase_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long const*, unsigned long)', 'Botan::(anonymous namespace)::hex_char_to_bin(char)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['fuzz(unsigned char const*, unsigned long)', 'Botan::CT::Mask::operator|=(Botan::CT::Mask)', 'fuzz(unsigned char const*, unsigned long)', '(anonymous namespace)::simple_pkcs1_unpad(unsigned char const*, unsigned long)', '(anonymous namespace)::simple_pkcs1_unpad(unsigned char const*, unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['void Botan::ignore_params(unsigned char&)', 'Botan::operator<(Botan::OID const&, Botan::OID const&)', 'Botan::(anonymous namespace)::find_eoc(Botan::DataSource*, unsigned long)', 'Botan::(anonymous namespace)::decode_length(Botan::DataSource*, unsigned long&, unsigned long)', 'Botan::X509_DN::decode_from(Botan::BER_Decoder&)', 'Botan::BER_Decoder::get_next_object()', 'Botan::(anonymous namespace)::decode_tag(Botan::DataSource*, Botan::ASN1_Type&, Botan::ASN1_Class&)', 'Botan::(anonymous namespace)::decode_tag(Botan::DataSource*, Botan::ASN1_Type&, Botan::ASN1_Class&)', 'Botan::(anonymous namespace)::find_eoc(Botan::DataSource*, unsigned long)', 'Botan::X509_DN::decode_from(Botan::BER_Decoder&)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::bigint_monty_redc_6(unsigned long*, unsigned long const*, unsigned long, unsigned long*)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::CT::Mask::select(unsigned char, unsigned char) const', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::BigInt::~BigInt()', 'Botan::BigInt::power_of_2(unsigned long)', 'Botan::BigInt::decode(unsigned char const*, unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::(anonymous namespace)::BitMap::find_free(unsigned long*)', '(anonymous namespace)::compute_expected_alignment(unsigned long)', 'Botan::Memory_Pool::allocate(unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::ASN1::maybe_BER(Botan::DataSource&)', 'Botan::Exception::Exception(char const*, std::__1::basic_string_view >)', 'Botan::X509_Object::~X509_Object()', 'Botan::X509_Object::load_data(Botan::DataSource&)', 'Botan::Exception::Exception(std::__1::basic_string_view >)', 'Botan::(anonymous namespace)::Base64::lookup_binary_value(char)', 'Botan::X509_Object::load_data(Botan::DataSource&)', 'fuzz(unsigned char const*, unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::BigInt::add2(Botan::BigInt const&, unsigned long const*, unsigned long, Botan::BigInt::Sign)', 'Botan::round_up(unsigned long, unsigned long)', 'Botan::vartime_divide(Botan::BigInt const&, Botan::BigInt const&, Botan::BigInt&, Botan::BigInt&)', 'Botan::operator%(Botan::BigInt const&, Botan::BigInt const&)', 'Botan::BigInt::is_negative() const', 'Botan::operator%(Botan::BigInt const&, Botan::BigInt const&)', 'Botan::operator%(Botan::BigInt const&, unsigned long)', 'Botan::vartime_divide(Botan::BigInt const&, Botan::BigInt const&, Botan::BigInt&, Botan::BigInt&)', 'Botan::BigInt::reduce_below(Botan::BigInt const&, std::__1::vector >&)', 'Botan::vartime_divide(Botan::BigInt const&, Botan::BigInt const&, Botan::BigInt&, Botan::BigInt&)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::CT::Mask::unpoisoned_value() const', 'Botan::(anonymous namespace)::sign_fixup(Botan::BigInt const&, Botan::BigInt const&, Botan::BigInt&, Botan::BigInt&)', 'Botan::round_up(unsigned long, unsigned long)', 'Botan::Montgomery_Exponentation_State::exponentiation(Botan::BigInt const&, unsigned long) const', 'Botan::BigInt::is_zero() const', 'Botan::bigint_sub3(unsigned long*, unsigned long const*, unsigned long, unsigned long const*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::ct_modulo(Botan::BigInt const&, Botan::BigInt const&)', 'Botan::BigInt::ct_reduce_below(Botan::BigInt const&, std::__1::vector >&, unsigned long)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::bigint_monty_redc_8(unsigned long*, unsigned long const*, unsigned long, unsigned long*)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::CT::Mask::select(unsigned char, unsigned char) const', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::BigInt::~BigInt()', 'Botan::BigInt::decode(unsigned char const*, unsigned long)', 'Botan::BigInt::BigInt()', 'Botan::Modular_Reducer::reduce(Botan::BigInt const&) const', 'Botan::OID::from_string(std::__1::basic_string_view >)', 'Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view >)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::(anonymous namespace)::find_eoc(Botan::DataSource*, unsigned long)', 'Botan::(anonymous namespace)::decode_length(Botan::DataSource*, unsigned long&, unsigned long)', 'Botan::(anonymous namespace)::parse_oid_str(std::__1::basic_string_view >)', 'Botan::OCSP::Response::Response(unsigned char const*, unsigned long)', 'Botan::ASN1::maybe_BER(Botan::DataSource&)', 'Botan::BER_Decoder::get_next_object()', 'Botan::to_u32bit(std::__1::basic_string_view >)', 'Botan::BER_Decoder& Botan::BER_Decoder::decode >(std::__1::vector >&, Botan::ASN1_Type)', 'Botan::BER_Decoder::push_back(Botan::BER_Object const&)', 'Botan::BER_Decoder::push_back(Botan::BER_Object&&)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::PKIX::check_crl(std::__1::vector > const&, std::__1::vector, std::__1::allocator > > const&, std::__1::chrono::time_point > >)', 'Botan::SCAN_Name::arg(unsigned long) const', 'Botan::Lookup_Error::Lookup_Error(std::__1::basic_string_view >)', 'Botan::X509_Certificate::constraints() const', 'Botan::to_u32bit(std::__1::basic_string_view >)', 'Botan::HashFunction::create_or_throw(std::__1::basic_string_view >, std::__1::basic_string_view >)', 'Botan::PKIX::check_chain(std::__1::vector > const&, std::__1::chrono::time_point > >, std::__1::basic_string_view >, Botan::Usage_Type, Botan::Path_Validation_Restrictions const&)', 'Botan::(anonymous namespace)::parse_oid_str(std::__1::basic_string_view >)', 'Botan::x509_path_validate(std::__1::vector > const&, Botan::Path_Validation_Restrictions const&, std::__1::vector > const&, std::__1::basic_string_view >, Botan::Usage_Type, std::__1::chrono::time_point > >, std::__1::chrono::duration >, std::__1::vector, std::__1::allocator > > const&)', 'Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory(Botan::X509_Certificate const&)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['fuzz(unsigned char const*, unsigned long)', 'fuzz(unsigned char const*, unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::gcd(Botan::BigInt const&, Botan::BigInt const&)', 'Botan::BigInt::abs() const', 'Botan::round_up(unsigned long, unsigned long)', 'Botan::vartime_divide(Botan::BigInt const&, Botan::BigInt const&, Botan::BigInt&, Botan::BigInt&)', 'Botan::BigInt::is_zero() 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::vartime_divide(Botan::BigInt const&, Botan::BigInt const&, Botan::BigInt&, Botan::BigInt&)', 'Botan::BigInt::reduce_below(Botan::BigInt const&, std::__1::vector >&)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::TLS::Client_Hello::Client_Hello(std::__1::unique_ptr >)', '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&)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['void Botan::ignore_params(unsigned char&)', 'Botan::(anonymous namespace)::find_eoc(Botan::DataSource*, unsigned long)', 'Botan::(anonymous namespace)::decode_length(Botan::DataSource*, unsigned long&, unsigned long)', 'Botan::ASN1_Time::readable_string() const', 'Botan::BER_Decoder::get_next_object()', 'Botan::(anonymous namespace)::decode_tag(Botan::DataSource*, Botan::ASN1_Type&, Botan::ASN1_Class&)', 'Botan::(anonymous namespace)::decode_tag(Botan::DataSource*, Botan::ASN1_Type&, Botan::ASN1_Class&)', 'Botan::(anonymous namespace)::find_eoc(Botan::DataSource*, unsigned long)', 'Botan::ASN1_Formatter::decode(std::__1::basic_ostream >&, Botan::BER_Decoder&, unsigned long) const', 'Botan::(anonymous namespace)::all_printable_chars(unsigned char const*, unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::bigint_monty_redc_4(unsigned long*, unsigned long const*, unsigned long, unsigned long*)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::CT::Mask::select(unsigned char, unsigned char) const', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::BigInt::~BigInt()', 'Botan::BigInt::power_of_2(unsigned long)', 'Botan::BigInt::decode(unsigned char const*, unsigned long)', 'Botan::EC_Group::EC_Group(std::__1::basic_string_view >)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::to_u32bit(std::__1::basic_string_view >)', 'Botan::TLS::TLS_Data_Reader::get_tls_length_value(unsigned long)', 'std::__1::optional > Botan::TLS::(anonymous namespace)::parse_message >(Botan::TLS::TLS_Data_Reader&, Botan::TLS::Policy const&, Botan::TLS::Connection_Side, Botan::TLS::Certificate_Type)', 'Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view >)', 'Botan::TLS::Certificate_13::Certificate_13(std::__1::vector > const&, Botan::TLS::Policy const&, Botan::TLS::Connection_Side, Botan::TLS::Certificate_Type)', 'Botan::TLS::Server_Hello_13::parse(std::__1::vector > const&)', 'Botan::TLS::Extensions::contains_other_than(std::__1::set, std::__1::allocator > const&, bool) const', 'Botan::TLS::Certificate_13::Certificate_13(std::__1::vector > const&, Botan::TLS::Policy const&, Botan::TLS::Connection_Side, Botan::TLS::Certificate_Type)', 'Botan::HashFunction::create_or_throw(std::__1::basic_string_view >, std::__1::basic_string_view >)', 'Botan::TLS::(anonymous namespace)::find_client_hello_truncation_mark(std::__1::span)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::Exception::Exception(char const*, std::__1::basic_string_view >)', 'Botan::ASN1::maybe_BER(Botan::DataSource&)', 'Botan::X509_Object::~X509_Object()', 'Botan::X509_Object::load_data(Botan::DataSource&)', 'Botan::Exception::Exception(std::__1::basic_string_view >)', 'Botan::(anonymous namespace)::Base64::lookup_binary_value(char)', 'Botan::X509_Object::load_data(Botan::DataSource&)', 'fuzz(unsigned char const*, unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::bigint_monty_redc_4(unsigned long*, unsigned long const*, unsigned long, unsigned long*)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::CT::Mask::operator~() const', 'fuzz(unsigned char const*, unsigned long)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'fuzz(unsigned char const*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::Modular_Reducer::reduce(Botan::BigInt const&) const', 'Botan::bigint_add3_nc(unsigned long*, unsigned long const*, unsigned long, unsigned long const*, unsigned long)', 'Botan::basecase_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long const*, unsigned long)', 'Botan::(anonymous namespace)::sign_fixup(Botan::BigInt const&, Botan::BigInt const&, Botan::BigInt&, Botan::BigInt&)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::BER_Decoder::decode(std::__1::vector >&, Botan::ASN1_Type, Botan::ASN1_Type, Botan::ASN1_Class)', 'Botan::BER_Decoder::end_cons()', 'Botan::operator<<(std::__1::basic_ostream >&, Botan::OID const&)', 'Botan::(anonymous namespace)::parse_oid_str(std::__1::basic_string_view >)', 'Botan::BER_Decoder::push_back(Botan::BER_Object&&)', 'Botan::Exception::Exception(char const*, std::__1::basic_string_view >)', 'Botan::(anonymous namespace)::find_eoc(Botan::DataSource*, unsigned long)', 'Botan::BigInt::byte_at(unsigned long) const', 'Botan::(anonymous namespace)::decode_length(Botan::DataSource*, unsigned long&, unsigned long)', 'Botan::BER_Decoder::verify_end(std::__1::basic_string_view >)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::TLS::Client::Client(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&, Botan::TLS::Server_Information, Botan::TLS::Protocol_Version, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > > const&, unsigned long)', 'Botan::TLS::Client::Client(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&, Botan::TLS::Server_Information, Botan::TLS::Protocol_Version, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > > const&, unsigned long)', 'fuzz(unsigned char const*, unsigned long)', 'Botan::Exception::Exception(char const*, std::__1::basic_string_view >)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::CT::Mask Botan::CT::conditional_assign_mem(unsigned long, unsigned long*, unsigned long const*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::CT::Mask::select(unsigned char, unsigned char) const', 'Botan::BigInt::~BigInt()', 'Botan::BigInt::power_of_2(unsigned long)', 'Botan::BigInt::decode(unsigned char const*, unsigned long)', 'Botan::EC_Group::EC_Group(std::__1::basic_string_view >)', '(anonymous namespace)::check_ecc_math(Botan::EC_Group const&, unsigned char const*, unsigned long)', 'Botan::Modular_Reducer::reduce(Botan::BigInt const&) const']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::bigint_monty_redc_4(unsigned long*, unsigned long const*, unsigned long, unsigned long*)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::bigint_sqr(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::CT::Mask::select(unsigned char, unsigned char) const', 'Botan::bigint_mul(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long const*, unsigned long, unsigned long, unsigned long*, unsigned long)', 'Botan::BigInt::~BigInt()', 'Botan::BigInt::power_of_2(unsigned long)', 'Botan::BigInt::decode(unsigned char const*, unsigned long)', 'Botan::EC_Group::EC_Group(std::__1::basic_string_view >)']

/src/botan/./src/fuzzer/fuzzers.h

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['Botan::TLS::Protocol_Version::is_pre_tls_13() const', 'fuzz(unsigned char const*, unsigned long)']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
void(anonymousnamespace)::fuzz_mp_redc<4ul>(unsignedcharconst*,unsignedlong) 42 23 54.76% ['mp_redc']
Botan::HashFunction::create(std::__1::basic_string_view >,std::__1::basic_string_view >) 148 63 42.56% ['x509_path', 'tls_13_handshake_layer', 'pkcs8']
Botan::SHA_256::compress_digest(std::__1::vector >&,std::__1::span ,unsignedlong) 106 8 7.547% []
Botan::MessageAuthenticationCode::create(std::__1::basic_string_view >,std::__1::basic_string_view >) 79 16 20.25% ['pkcs8']
Botan::ChaCha::chacha(unsignedchar*,unsignedlong,unsignedint*,unsignedlong) 79 21 26.58% []
Botan::ChaCha::set_iv_bytes(unsignedcharconst*,unsignedlong) 39 11 28.20% []
Botan::StreamCipher::create(std::__1::basic_string_view >,std::__1::basic_string_view >) 67 21 31.34% ['pkcs8']
Botan::SHA_1::compress_n(std::__1::vector >&,std::__1::span ,unsignedlong) 114 9 7.894% []
Botan::SHA_512::compress_digest(std::__1::vector >&,std::__1::span ,unsignedlong) 117 5 4.273% []
Botan::EMSA::create(std::__1::basic_string_view >) 87 42 48.27% []
Botan::pkcs_hash_id(std::__1::basic_string_view >) 45 24 53.33% []
Botan::ASN1_Time::cmp(Botan::ASN1_Timeconst&)const 43 21 48.83% ['x509_path']
Botan::PKIX::check_crl(std::__1::vector >const&,std::__1::vector ,std::__1::allocator >>const&,std::__1::chrono::time_point >>) 46 13 28.26% ['x509_path']
Botan::PKIX::merge_revocation_status(std::__1::vector ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>&,std::__1::vector ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>const&,std::__1::vector ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>const&,Botan::Path_Validation_Restrictionsconst&) 33 12 36.36% ['x509_path']
Botan::EC_Group::EC_group_identity_from_order(Botan::BigIntconst&) 85 33 38.82% []
Botan::random_prime(Botan::RandomNumberGenerator&,unsignedlong,Botan::BigIntconst&,unsignedlong,unsignedlong,unsignedlong) 76 34 44.73% ['ressol']
Botan::BlockCipher::create(std::__1::basic_string_view >,std::__1::basic_string_view >) 129 51 39.53% ['pkcs8']
Botan::TLS::Client_Impl_12::send_client_hello(Botan::TLS::Handshake_State&,bool,Botan::TLS::Protocol_Version,std::__1::optional ,std::__1::vector ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>const&) 45 24 53.33% []
Botan::TLS::Client_Impl_12::process_handshake_msg(Botan::TLS::Handshake_Stateconst*,Botan::TLS::Handshake_State&,Botan::TLS::Handshake_Type,std::__1::vector >const&,bool) 330 68 20.60% []
Botan::TripleDES::encrypt_n(unsignedcharconst*,unsignedchar*,unsignedlong)const 33 17 51.51% []
Botan::KDF::create(std::__1::basic_string_view >,std::__1::basic_string_view >) 104 22 21.15% []
Botan::CTR_BE::add_counter(unsignedlong) 42 12 28.57% []
Botan::TLS::Server_Key_Exchange::Server_Key_Exchange(Botan::TLS::Handshake_IO&,Botan::TLS::Handshake_State&,Botan::TLS::Policyconst&,Botan::Credentials_Manager&,Botan::RandomNumberGenerator&,Botan::Private_Keyconst*) 71 35 49.29% []
Botan::TLS::Group_Params::to_string()const 78 16 20.51% []
Botan::GHASH::ghash_multiply(std::__1::vector >&,std::__1::span ,unsignedlong) 35 6 17.14% []

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
[] []
/src/botan/build/include/public/botan/base64.h [] []
/src/botan/build/include/internal/botan/internal/point_mul.h ['ecc_p384', 'ecc_p256', 'ecc_p521', 'ecc_bp256'] []
/src/botan/build/include/public/botan/xmss_parameters.h [] []
/src/botan/src/lib/pubkey/curve25519/curve25519.cpp [] []
/src/botan/src/lib/pubkey/ed25519/ge.cpp [] []
/src/botan/src/lib/rng/hmac_drbg/hmac_drbg.cpp [] []
/src/botan/build/include/internal/botan/internal/uri.h ['uri'] ['uri']
/src/botan/src/lib/pubkey/ec_group/point_mul.cpp ['ecc_p384', 'ecc_p256', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'ecc_p256', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp [] []
/src/botan/src/lib/block/aes/aes_vperm/aes_vperm.cpp [] []
/src/botan/./src/fuzzer/tls_client.cpp ['tls_client'] []
/src/botan/build/include/public/botan/chacha_rng.h [] []
/src/botan/build/include/internal/botan/internal/cbc.h [] []
/src/botan/build/include/internal/botan/internal/kmac.h [] []
/src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/build/include/public/botan/pk_keys.h ['x509_path'] ['x509_path']
/src/botan/build/include/internal/botan/internal/rounding.h ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp [] []
/src/botan/src/lib/tls/msg_server_hello.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/hash/blake2/blake2b.cpp [] []
/src/botan/src/lib/pubkey/mce/mceliece_key.cpp [] []
/src/botan/src/lib/block/twofish/twofish.cpp [] []
/src/botan/build/include/public/botan/mac.h [] []
/src/botan/src/lib/tls/tls_suite_info.cpp [] []
/src/botan/build/include/public/botan/rng.h ['ecc_p384', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp [] []
/src/botan/build/include/public/botan/tls_policy.h [] []
/src/botan/src/lib/utils/allocator.cpp ['ecc_p384', 'os2ecp', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'os2ecp', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/tls/tls13/msg_key_update.cpp ['tls_13_handshake_layer'] []
/src/botan/build/include/public/botan/frodo_mode.h [] []
/src/botan/src/lib/pk_pad/emsa_raw/emsa_raw.cpp [] []
/src/botan/src/lib/pk_pad/emsa_pssr/pssr.cpp [] []
/src/botan/src/lib/utils/mem_pool/mem_pool.cpp ['mem_pool'] ['mem_pool']
/src/botan/build/include/public/botan/sp_parameters.h [] []
/src/botan/src/lib/modes/aead/ocb/ocb.cpp [] []
/src/botan/build/include/public/botan/pwdhash.h ['pkcs8'] []
/src/botan/build/include/public/botan/sym_algo.h ['pkcs8'] []
/src/botan/build/include/internal/botan/internal/sha2_64.h [] []
/src/botan/build/include/public/botan/credentials_manager.h [] []
/src/botan/build/include/internal/botan/internal/kdf1.h [] []
/src/botan/src/lib/permutations/keccak_perm/keccak_helpers.cpp [] []
/src/botan/build/include/internal/botan/internal/tls_handshake_transitions.h [] []
/src/botan/build/include/public/botan/aead.h [] []
/src/botan/src/lib/utils/ghash/ghash.cpp [] []
/src/botan/src/lib/pubkey/sm2/sm2_enc.cpp [] []
/src/botan/build/include/internal/botan/internal/ed25519_internal.h [] []
/src/botan/src/lib/x509/x509path.cpp ['x509_path'] ['x509_path']
/src/botan/build/include/public/botan/hash.h [] []
/usr/local/bin/../include/c++/v1/stdexcept [] []
/src/botan/build/include/public/botan/elgamal.h [] []
/src/botan/src/lib/modes/aead/aead.cpp ['pkcs8'] []
/src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/block/lion/lion.cpp [] []
/src/botan/src/lib/hash/streebog/streebog.cpp [] []
/src/botan/build/include/public/botan/xmss.h [] []
/src/botan/src/lib/modes/cfb/cfb.cpp [] []
/src/botan/src/lib/tls/tls12/tls_handshake_state.cpp [] []
/src/botan/src/lib/kdf/kdf1_iso18033/kdf1_iso18033.cpp [] []
/src/botan/build/include/internal/botan/internal/gost_28147.h [] []
/src/botan/src/lib/asn1/alg_id.cpp ['x509_path', 'pkcs8'] ['x509_path', 'pkcs8']
/src/botan/src/lib/tls/tls_signature_scheme.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp [] []
/src/botan/build/include/internal/botan/internal/dilithium_aes.h [] []
/src/botan/./src/fuzzer/ocsp.cpp ['ocsp'] []
/src/botan/build/include/public/botan/ec_point.h ['ecc_p384', 'os2ecp', 'ecc_p256', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'os2ecp', 'ecc_p256', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/mac/gmac/gmac.cpp [] []
/src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp [] []
/src/botan/src/lib/math/bigint/big_io.cpp ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] []
/src/botan/src/lib/codec/hex/hex.cpp ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'redc_p256', 'redc_p224', 'pkcs1', 'ecc_p384', 'barrett', 'pow_mod', 'x509_path', 'oaep', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'ecc_p384', 'x509_path', 'ecc_p256', 'redc_p521', 'ecc_p521', 'ecc_bp256']
/src/botan/./src/fuzzer/barrett.cpp ['barrett'] []
/src/botan/build/include/public/botan/bigint.h ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp [] []
/src/botan/src/lib/tls/tls12/msg_cert_status.cpp [] []
/src/botan/src/lib/tls/tls12/msg_server_kex.cpp [] []
/src/botan/src/lib/modes/cbc/cbc.cpp [] []
/src/botan/src/lib/block/shacal2/shacal2_simd/shacal2_simd.cpp [] []
/src/botan/build/include/public/botan/tls_callbacks.h [] []
/src/botan/./src/fuzzer/x509_path.cpp ['x509_path'] []
/src/botan/build/include/internal/botan/internal/monty.h ['ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/pk_pad/hash_id/hash_id.cpp [] []
/src/botan/build/include/internal/botan/internal/cast128.h [] []
/src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp ['mode_padding'] ['mode_padding']
/src/botan/src/lib/base/buf_comp.cpp [] []
/src/botan/./src/fuzzer/oaep.cpp ['oaep'] []
/src/botan/src/lib/block/idea/idea_sse2/idea_sse2.cpp [] []
/src/botan/src/lib/block/serpent/serpent_simd/serpent_simd.cpp [] []
/src/botan/src/lib/pubkey/ec_group/ec_point.cpp ['ecc_p384', 'os2ecp', 'ecc_p256', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'os2ecp', 'ecc_p256', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/gost_3411.h [] []
/src/botan/build/include/internal/botan/internal/cmac.h [] []
/src/botan/src/lib/math/bigint/divide.cpp ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'divide', 'redc_p192', 'invert', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/public/botan/xof.h [] []
/src/botan/build/include/internal/botan/internal/lion.h [] []
/src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp [] []
/src/botan/build/include/internal/botan/internal/keypair.h [] []
/src/botan/src/lib/math/numbertheory/numthry.cpp ['bn_sqr', 'invert', 'ecc_p384', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256'] ['bn_sqr', 'invert', 'ecc_p384', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/calendar.h ['x509_path'] ['x509_path']
/src/botan/src/lib/mac/siphash/siphash.cpp [] []
/src/botan/src/lib/pubkey/pbes2/pbes2.cpp ['pkcs8'] []
/src/botan/build/include/public/botan/allocator.h ['ecc_p384', 'os2ecp', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'os2ecp', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/xof/shake_xof/shake_xof.cpp [] []
/src/botan/src/lib/xof/cshake_xof/cshake_xof.cpp [] []
/src/botan/build/include/internal/botan/internal/ed25519_fe.h [] []
/src/botan/build/include/internal/botan/internal/xmss_verification_operation.h [] []
/src/botan/build/include/public/botan/gost_3410.h [] []
/src/botan/src/lib/utils/cpuid/cpuid.cpp [] []
/src/botan/build/include/internal/botan/internal/sha3.h [] []
/src/botan/build/include/public/botan/ecc_key.h [] []
/src/botan/build/include/public/botan/exceptn.h ['mp_comba_sqr', 'uri', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_comba_mul', 'redc_p256', 'redc_p224', 'pkcs1', 'x509_dn', 'ecc_p384', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'tls_client', 'ecc_p521', 'ecc_bp256', 'tls_server'] ['crl', 'pow_mod', 'ocsp', 'x509_path', 'tls_13_handshake_layer', 'cert', 'pkcs8', 'tls_server']
/usr/local/lib/clang/15.0.0/include/cpuid.h [] []
/src/botan/./src/fuzzer/gcd.cpp ['gcd'] []
/usr/local/bin/../include/c++/v1/variant [] []
/src/botan/build/include/internal/botan/internal/sp_hash.h [] []
/src/botan/src/lib/tls/tls_policy.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/mac/poly1305/poly1305.cpp [] []
/src/botan/src/lib/asn1/asn1_str.cpp ['x509_dn', 'asn1'] ['x509_dn', 'asn1']
/src/botan/build/include/public/botan/pgp_s2k.h [] []
/src/botan/src/lib/math/mp/mp_comba.cpp ['mp_comba_sqr', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_comba_mul', 'redc_p256', 'redc_p224', 'ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['mp_comba_sqr', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_comba_mul', 'redc_p256', 'redc_p224', 'ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/math/bigint/big_rand.cpp ['ecc_p384', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp [] []
/src/botan/./src/fuzzer/asn1.cpp ['asn1'] []
/src/botan/build/include/internal/botan/internal/tls_channel_impl_13.h [] []
/src/botan/build/include/internal/botan/internal/serpent.h [] []
/src/botan/build/include/public/botan/pem.h [] []
/src/botan/build/include/internal/botan/internal/code_based_util.h [] []
/src/botan/build/include/internal/botan/internal/frodo_constants.h [] []
/src/botan/build/include/internal/botan/internal/codec_base.h ['ecc_p384', 'crl', 'os2ecp', 'ocsp', 'x509_path', 'ecc_p256', 'cert', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['crl', 'ocsp', 'x509_path', 'cert', 'pkcs8']
/src/botan/src/lib/hash/sha2_32/sha2_32_bmi2/sha2_32_bmi2.cpp [] []
/src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp [] []
/src/botan/build/include/internal/botan/internal/sp_hash_shake.h [] []
/src/botan/build/include/public/botan/ec_group.h [] []
/src/botan/src/lib/mac/mac.cpp ['pkcs8'] []
/src/botan/build/include/internal/botan/internal/threefish_512.h [] []
/src/botan/build/include/public/botan/reducer.h ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/utils/poly_dbl/poly_dbl.cpp [] []
/usr/local/bin/../include/c++/v1/istream [] []
/src/botan/./src/fuzzer/cert.cpp ['cert'] []
/src/botan/src/lib/kdf/sp800_108/sp800_108.cpp [] []
/src/botan/build/include/internal/botan/internal/cshake_xof.h [] []
/src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp [] []
/src/botan/src/lib/block/camellia/camellia.cpp [] []
/src/botan/src/lib/utils/filesystem.cpp [] []
/src/botan/src/lib/pk_pad/mgf1/mgf1.cpp [] []
/src/botan/src/lib/pubkey/keypair/keypair.cpp [] []
/src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_xmss.cpp [] []
/src/botan/build/include/internal/botan/internal/blake2bmac.h [] []
/src/botan/build/include/internal/botan/internal/frodo_shake_generator.h [] []
/src/botan/build/include/public/botan/x509_key.h ['x509_path'] ['x509_path']
/src/botan/src/lib/kdf/hkdf/hkdf.cpp [] []
/src/botan/build/include/internal/botan/internal/mp_core.h ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/hash/par_hash/par_hash.cpp [] []
/src/botan/build/include/internal/botan/internal/hmac.h [] []
/src/botan/build/include/internal/botan/internal/stream_mode.h [] []
/src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_treehash.cpp [] []
/src/botan/src/lib/hash/shake/shake.cpp [] []
/src/botan/src/lib/pubkey/elgamal/elgamal.cpp [] []
/src/botan/src/lib/mac/kmac/kmac.cpp [] []
/src/botan/build/include/internal/botan/internal/idea.h [] []
/src/botan/build/include/internal/botan/internal/gf2m_small_m.h [] []
/src/botan/build/include/internal/botan/internal/bit_ops.h ['mode_padding', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'bn_cmp', 'redc_p256', 'redc_p224', 'pkcs1', 'x509_dn', 'ecc_p384', 'mem_pool', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'oaep', 'gcd', 'asn1', 'ecc_p256', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['mode_padding', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'bn_cmp', 'redc_p256', 'redc_p224', 'pkcs1', 'ecc_p384', 'mem_pool', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'oaep', 'gcd', 'asn1', 'ecc_p256', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp [] []
/src/botan/src/lib/hash/hash.cpp ['x509_path', 'tls_13_handshake_layer', 'pkcs8'] ['x509_path', 'tls_13_handshake_layer']
/src/botan/build/include/public/botan/pbkdf2.h [] []
/src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp [] []
/src/botan/build/include/internal/botan/internal/os_utils.h [] []
/src/botan/build/include/internal/botan/internal/simd_avx2.h [] []
/src/botan/build/include/internal/botan/internal/timer.h [] []
/src/botan/src/lib/block/shacal2/shacal2_x86/shacal2_x86.cpp [] []
/src/botan/build/include/internal/botan/internal/pk_ops_impl.h [] []
/src/botan/src/lib/x509/x509cert.cpp ['ocsp', 'x509_path', 'tls_13_handshake_layer', 'cert'] ['ocsp', 'x509_path', 'tls_13_handshake_layer', 'cert']
/src/botan/build/include/internal/botan/internal/xmss_tools.h [] []
/src/botan/build/include/public/botan/tls_external_psk.h [] []
/src/botan/src/lib/block/shacal2/shacal2.cpp [] []
/src/botan/src/lib/hash/checksum/crc32/crc32.cpp [] []
/src/botan/build/include/public/botan/hmac_drbg.h [] []
/src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp [] []
/src/botan/build/include/public/botan/numthry.h ['invert', 'gcd', 'ressol'] ['gcd']
/src/botan/build/include/internal/botan/internal/tls_server_impl_13.h [] []
/src/botan/src/lib/tls/tls_server.cpp ['tls_server'] ['tls_server']
/usr/local/bin/../include/c++/v1/iosfwd [] []
/src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp [] []
/src/botan/build/include/internal/botan/internal/kuznyechik.h [] []
/src/botan/src/lib/kdf/kdf.cpp [] []
/src/botan/./src/fuzzer/mp_comba_mul.cpp ['mp_comba_mul'] []
/src/botan/src/lib/pbkdf/argon2/argon2.cpp [] []
/src/botan/src/lib/pubkey/pk_keys.cpp ['x509_path'] ['x509_path']
/src/botan/src/lib/entropy/rdseed/rdseed.cpp [] []
/src/botan/build/include/internal/botan/internal/tls_client_impl_13.h [] []
/src/botan/src/lib/utils/timer.cpp [] []
/src/botan/src/lib/hash/skein/skein_512.cpp [] []
/src/botan/build/include/internal/botan/internal/xmss_address.h [] []
/src/botan/src/lib/tls/tls_version.cpp ['tls_13_handshake_layer', 'tls_client', 'tls_server'] ['tls_13_handshake_layer', 'tls_client', 'tls_server']
/src/botan/src/lib/pubkey/pem/pem.cpp ['ecc_p384', 'crl', 'os2ecp', 'ocsp', 'x509_path', 'ecc_p256', 'cert', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['crl', 'ocsp', 'x509_path', 'cert', 'pkcs8']
/src/botan/build/include/internal/botan/internal/iso9796.h [] []
/src/botan/src/lib/asn1/asn1_time.cpp ['x509_path', 'asn1'] ['x509_path', 'asn1']
/src/botan/build/include/internal/botan/internal/blinding.h [] []
/src/botan/src/lib/tls/tls12/tls_record.cpp [] []
/src/botan/build/include/public/botan/x509_crl.h ['crl'] ['crl']
/src/botan/src/lib/kdf/kdf1/kdf1.cpp [] []
/src/botan/src/lib/pubkey/pubkey.cpp ['x509_path'] ['x509_path']
/src/botan/build/include/internal/botan/internal/tls_cbc.h [] []
/src/botan/src/lib/xof/xof.cpp [] []
/src/botan/./src/fuzzer/ecc_p256.cpp ['ecc_p256'] []
/src/botan/src/lib/hash/checksum/adler32/adler32.cpp [] []
/src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp [] []
/src/botan/src/lib/utils/os_utils.cpp [] []
/src/botan/src/lib/tls/tls_client.cpp ['tls_client'] ['tls_client']
/src/botan/build/include/internal/botan/internal/tls_channel_impl.h ['tls_client', 'tls_server'] ['tls_client', 'tls_server']
/src/botan/build/include/public/botan/processor_rng.h [] []
/src/botan/src/lib/utils/socket/socket.cpp [] []
/src/botan/./src/fuzzer/ecc_p384.cpp ['ecc_p384'] []
/src/botan/src/lib/math/bigint/big_ops3.cpp ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp [] []
/src/botan/src/lib/pubkey/workfactor.cpp [] []
/src/botan/./src/fuzzer/redc_p192.cpp ['redc_p192'] []
/src/botan/src/lib/math/numbertheory/reducer.cpp ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256']
/src/botan/./src/fuzzer/invert.cpp ['invert'] []
/src/botan/build/include/internal/botan/internal/crc24.h [] []
/src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/build/include/public/botan/tls_session_manager_noop.h [] []
/src/botan/build/include/internal/botan/internal/ccm.h [] []
/src/botan/build/include/public/botan/hex.h ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'redc_p256', 'redc_p224', 'pkcs1', 'ecc_p384', 'barrett', 'pow_mod', 'x509_path', 'oaep', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['x509_path']
/src/botan/src/lib/tls/tls12/msg_client_kex.cpp [] []
/src/botan/build/include/internal/botan/internal/xts.h [] []
/src/botan/src/lib/tls/tls13_pqc/kex_to_kem_adapter.cpp [] []
/src/botan/build/include/internal/botan/internal/socket.h [] []
/src/botan/./src/fuzzer/bn_cmp.cpp ['bn_cmp'] []
/src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp [] []
/src/botan/build/include/internal/botan/internal/sm4.h [] []
/src/botan/src/lib/tls/tls_session_manager.cpp [] []
/src/botan/build/include/internal/botan/internal/cfb.h [] []
/src/botan/src/lib/tls/tls13/tls_psk_identity_13.cpp [] []
/src/botan/build/include/internal/botan/internal/thread_pool.h [] []
/src/botan/src/lib/tls/tls_extensions.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/build/include/internal/botan/internal/chacha20poly1305.h [] []
/src/botan/build/include/public/botan/ed25519.h [] []
/src/botan/build/include/internal/botan/internal/http_util.h [] []
/src/botan/build/include/internal/botan/internal/tls_record.h [] []
/src/botan/build/include/public/botan/ecgdsa.h [] []
/src/botan/src/lib/modes/aead/eax/eax.cpp [] []
/src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp [] []
/src/botan/src/lib/modes/aead/gcm/gcm.cpp [] []
/src/botan/src/lib/pk_pad/emsa_pkcs1/emsa_pkcs1.cpp [] []
/src/botan/src/lib/rng/processor_rng/processor_rng.cpp [] []
/src/botan/build/include/internal/botan/internal/alignment_buffer.h [] []
/src/botan/build/include/internal/botan/internal/md5.h [] []
/src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp [] []
/src/botan/src/lib/block/noekeon/noekeon_simd/noekeon_simd.cpp [] []
/src/botan/src/lib/pubkey/sm2/sm2.cpp [] []
/src/botan/src/lib/math/numbertheory/mod_inv.cpp ['invert'] ['invert']
/src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp [] []
/src/botan/src/lib/math/mp/mp_monty.cpp ['mp_redc', 'ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256'] ['mp_redc', 'pow_mod', 'os2ecp', 'ecc_p521']
/src/botan/src/lib/hash/sha2_64/sha2_64.cpp [] []
/src/botan/src/lib/hash/sha1/sha1_sse2/sha1_sse2.cpp [] []
/src/botan/build/include/internal/botan/internal/sp_hash_sha2.h [] []
/src/botan/src/lib/pk_pad/eme_oaep/oaep.cpp ['oaep'] ['oaep']
/src/botan/src/lib/tls/msg_finished.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/usr/local/bin/../include/c++/v1/math.h [] []
/src/botan/src/lib/rng/chacha_rng/chacha_rng.cpp [] []
/src/botan/build/include/internal/botan/internal/hkdf.h [] []
/src/botan/src/lib/pubkey/xmss/xmss_hash.cpp [] []
/src/botan/build/include/internal/botan/internal/poly1305.h [] []
/src/botan/build/include/public/botan/symkey.h [] []
/src/botan/build/include/internal/botan/internal/sp800_108.h [] []
/src/botan/src/lib/hash/blake2s/blake2s.cpp [] []
/src/botan/build/include/internal/botan/internal/tls_handshake_state.h [] []
/src/botan/src/lib/block/kuznyechik/kuznyechik.cpp [] []
/src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp [] []
/src/botan/build/include/public/botan/frodokem.h [] []
/src/botan/./src/fuzzer/ressol.cpp ['ressol'] []
/src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp [] []
/src/botan/./src/fuzzer/mp_redc.cpp ['mp_redc'] []
/src/botan/build/include/public/botan/bcrypt_pbkdf.h [] []
/src/botan/build/include/public/botan/mceliece.h [] []
/src/botan/build/include/internal/botan/internal/ocb.h [] []
/src/botan/build/include/internal/botan/internal/bswap.h ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/mode_pad.h ['mode_padding'] ['mode_padding']
/src/botan/src/lib/block/gost_28147/gost_28147.cpp [] []
/src/botan/src/lib/asn1/asn1_print.cpp ['asn1'] ['asn1']
/src/botan/build/include/public/botan/concepts.h ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/mdx_hash.h [] []
/src/botan/src/lib/x509/cert_status.cpp [] []
/src/botan/src/lib/modes/cipher_mode.cpp ['pkcs8'] []
/src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp [] []
/src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp [] []
/usr/include/ctype.h ['x509_dn', 'x509_path', 'asn1'] []
/src/botan/build/include/public/botan/kdf.h [] []
/src/botan/build/include/internal/botan/internal/divide.h ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/donna128.h [] []
/src/botan/build/include/internal/botan/internal/x919_mac.h [] []
/src/botan/build/include/internal/botan/internal/xmss_hash.h [] []
/src/botan/src/lib/pubkey/dh/dh.cpp [] []
/src/botan/./src/fuzzer/tls_server.cpp ['tls_server'] []
/src/botan/build/include/public/botan/pkix_types.h ['x509_dn', 'ocsp', 'x509_path'] ['x509_dn', 'ocsp', 'x509_path']
/src/botan/build/include/internal/botan/internal/xmss_wots.h [] []
/src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp [] []
/src/botan/src/lib/pubkey/xmss/xmss_signature.cpp [] []
/src/botan/build/include/internal/botan/internal/safeint.h ['x509_dn', 'ecc_p384', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['x509_dn', 'ecc_p384', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/streebog.h [] []
/src/botan/build/include/internal/botan/internal/stl_util.h ['x509_dn', 'x509_path', 'tls_13_handshake_layer'] ['x509_dn', 'x509_path', 'tls_13_handshake_layer']
/src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp [] []
/src/botan/build/include/internal/botan/internal/chacha.h [] []
/src/botan/build/include/internal/botan/internal/keccak_helpers.h [] []
/src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp [] []
/src/botan/src/lib/x509/ocsp_types.cpp ['x509_path'] []
/src/botan/src/lib/stream/salsa20/salsa20.cpp [] []
/src/botan/build/include/internal/botan/internal/fmt.h ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'bn_cmp', 'redc_p256', 'redc_p224', 'x509_dn', 'ecc_p384', 'mem_pool', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'tls_client_hello', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'tls_client', 'ecc_p521', 'ecc_bp256', 'tls_server'] ['x509_dn', 'crl', 'ocsp', 'x509_path', 'tls_client_hello', 'asn1', 'tls_13_handshake_layer', 'cert', 'ressol', 'pkcs8', 'tls_client', 'tls_server']
/src/botan/build/include/internal/botan/internal/atomic.h [] []
/src/botan/src/lib/tls/tls_alert.cpp [] []
/src/botan/build/include/internal/botan/internal/eax.h [] []
/src/botan/build/include/internal/botan/internal/tls_reader.h ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/block/des/des.cpp [] []
/src/botan/src/lib/math/mp/mp_monty_n.cpp ['mp_redc', 'ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256'] ['mp_redc', 'ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_bp256']
/src/botan/build/include/public/botan/entropy_src.h [] []
/src/botan/./src/fuzzer/redc_p256.cpp ['redc_p256'] []
/src/botan/build/include/internal/botan/internal/frodo_aes_generator.h [] []
/src/botan/src/lib/base/symkey.cpp [] []
/src/botan/build/include/internal/botan/internal/prefetch.h [] []
/src/botan/src/lib/utils/exceptn.cpp ['mp_comba_sqr', 'uri', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'mp_comba_mul', 'bn_cmp', 'redc_p256', 'redc_p224', 'pkcs1', 'x509_dn', 'ecc_p384', 'mem_pool', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'tls_client_hello', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'tls_client', 'ecc_p521', 'ecc_bp256', 'tls_server'] ['uri', 'pkcs1', 'x509_dn', 'ecc_p384', 'crl', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'tls_client_hello', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'cert', 'ressol', 'pkcs8', 'tls_client', 'ecc_p521', 'ecc_bp256', 'tls_server']
/src/botan/src/lib/base/sym_algo.cpp ['pkcs8'] []
/src/botan/src/lib/x509/asn1_alt_name.cpp ['x509_path'] ['x509_path']
/src/botan/build/include/internal/botan/internal/tls_handshake_hash.h [] []
/src/botan/src/lib/mac/cmac/cmac.cpp [] []
/src/botan/./src/fuzzer/mem_pool.cpp ['mem_pool'] []
/src/botan/build/include/public/botan/x509_obj.h ['crl', 'ocsp', 'x509_path', 'cert'] ['crl', 'ocsp', 'x509_path', 'cert']
/src/botan/src/lib/tls/tls13/msg_certificate_13.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/stream/chacha/chacha_avx2/chacha_avx2.cpp [] []
/src/botan/build/include/public/botan/asn1_obj.h ['x509_dn', 'ecc_p384', 'crl', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'cert', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['x509_dn', 'ecc_p384', 'crl', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'cert', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/tls/msg_client_hello.cpp ['tls_client_hello', 'tls_13_handshake_layer'] ['tls_client_hello', 'tls_13_handshake_layer']
/src/botan/build/include/internal/botan/internal/shake.h [] []
/src/botan/build/include/internal/botan/internal/blowfish.h [] []
/src/botan/src/lib/modes/mode_pad/mode_pad.cpp ['mode_padding', 'pkcs8'] ['mode_padding']
/src/botan/build/include/internal/botan/internal/salsa20.h [] []
/src/botan/src/lib/pubkey/rfc6979/rfc6979.cpp [] []
/src/botan/src/lib/x509/certstor.cpp ['x509_path'] ['x509_path']
/src/botan/src/lib/rng/rng.cpp [] []
/src/botan/build/include/internal/botan/internal/ctr.h [] []
/src/botan/build/include/internal/botan/internal/dl_scheme.h [] []
/src/botan/./src/fuzzer/fuzzers.h ['mp_comba_sqr', 'mode_padding', 'uri', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'mp_comba_mul', 'bn_cmp', 'redc_p256', 'redc_p224', 'pkcs1', 'x509_dn', 'ecc_p384', 'mem_pool', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'oaep', 'gcd', 'tls_client_hello', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'tls_client', 'ecc_p521', 'ecc_bp256', 'tls_server'] []
/src/botan/./src/fuzzer/ecc_helper.h ['ecc_p384', 'ecc_p256', 'ecc_p521', 'ecc_bp256'] []
/src/botan/build/include/internal/botan/internal/kyber_modern.h [] []
/src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp [] []
/src/botan/src/lib/tls/tls_ciphersuite.cpp [] []
/src/botan/build/include/public/botan/der_enc.h ['x509_path', 'asn1'] ['x509_path']
/src/botan/src/lib/pk_pad/eme_raw/eme_raw.cpp [] []
/src/botan/build/include/public/botan/secmem.h ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'x509_dn', 'ecc_p384', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'x509_dn', 'ecc_p384', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/shake_cipher.h [] []
/src/botan/build/include/internal/botan/internal/tls_handshake_io.h [] []
/src/botan/build/include/internal/botan/internal/sha2_32.h [] []
/src/botan/src/lib/math/bigint/big_code.cpp ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'x509_path', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'ecc_p384', 'x509_path', 'ecc_p256', 'redc_p521', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/utils/scan_name.cpp ['x509_path', 'tls_13_handshake_layer', 'pkcs8'] ['x509_path']
/src/botan/src/lib/math/numbertheory/nistp_redc.cpp ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'redc_p521'] ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'redc_p521']
/src/botan/build/include/internal/botan/internal/emsa_raw.h [] []
/src/botan/build/include/public/botan/kyber.h [] []
/src/botan/build/include/public/botan/rsa.h [] []
/src/botan/build/include/internal/botan/internal/tls_handshake_layer_13.h ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/tls/tls_handshake_transitions.cpp [] []
/src/botan/src/lib/mac/hmac/hmac.cpp [] []
/src/botan/build/include/internal/botan/internal/shake_xof.h [] []
/src/botan/src/lib/pubkey/ecdh/ecdh.cpp [] []
/src/botan/src/lib/pubkey/dsa/dsa.cpp [] []
/src/botan/build/include/public/botan/tls_channel.h ['tls_client', 'tls_server'] ['tls_client', 'tls_server']
/src/botan/src/lib/block/noekeon/noekeon.cpp [] []
/src/botan/src/lib/modes/aead/siv/siv.cpp [] []
/src/botan/build/include/internal/botan/internal/emsa.h [] []
/src/botan/build/include/public/botan/pkcs8.h ['pkcs8'] ['pkcs8']
/src/botan/build/include/public/botan/tls_alert.h [] []
/src/botan/build/include/internal/botan/internal/blake2b.h [] []
/src/botan/src/lib/block/seed/seed.cpp [] []
/src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp [] []
/src/botan/src/lib/modes/aead/ccm/ccm.cpp [] []
/src/botan/build/include/internal/botan/internal/kdf1_iso18033.h [] []
/src/botan/src/lib/block/shacal2/shacal2_avx2/shacal2_avx2.cpp [] []
/src/botan/build/include/internal/botan/internal/xmss_signature.h [] []
/src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp [] []
/src/botan/build/include/internal/botan/internal/prf_x942.h [] []
/src/botan/src/lib/pubkey/x509_key.cpp ['x509_path'] ['x509_path']
/src/botan/build/include/public/botan/dilithium.h [] []
/src/botan/build/include/internal/botan/internal/sm3.h [] []
/src/botan/src/lib/pk_pad/emsa.cpp [] []
/src/botan/src/lib/math/bigint/big_ops2.cpp ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/oid_map.h ['ecc_p384', 'os2ecp', 'x509_path', 'asn1', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256'] []
/src/botan/src/lib/hash/sha1/sha1.cpp [] []
/src/botan/build/include/public/botan/tls_signature_scheme.h ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/tls/tls12/tls_handshake_hash.cpp [] []
/src/botan/build/include/internal/botan/internal/rdseed.h [] []
/src/botan/src/lib/block/aes/aes_ni/aes_ni.cpp [] []
/src/botan/src/lib/pk_pad/emsa_x931/emsa_x931.cpp [] []
/src/botan/src/lib/pubkey/dl_group/dl_group.cpp [] []
/src/botan/build/include/internal/botan/internal/kyber_symmetric_primitives.h [] []
/src/botan/src/lib/tls/tls_algos.cpp [] []
/src/botan/src/lib/block/block_cipher.cpp ['pkcs8'] []
/src/botan/./src/fuzzer/redc_p384.cpp ['redc_p384'] []
/src/botan/build/include/public/botan/ecdh.h [] []
/src/botan/build/include/public/botan/dl_group.h [] []
/src/botan/src/lib/pubkey/ec_group/ec_named.cpp [] []
/src/botan/build/include/internal/botan/internal/hybrid_public_key.h [] []
/src/botan/src/lib/block/threefish_512/threefish_512.cpp [] []
/src/botan/src/lib/utils/charset.cpp ['redc_p384', 'redc_p192', 'redc_p256', 'redc_p224', 'ecc_p384', 'crl', 'os2ecp', 'ocsp', 'x509_path', 'ecc_p256', 'cert', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['crl', 'ocsp', 'x509_path', 'cert', 'pkcs8']
/src/botan/src/lib/tls/tls12/msg_certificate_12.cpp [] []
/src/botan/build/include/internal/botan/internal/dilithium_polynomials.h [] []
/src/botan/src/lib/block/serpent/serpent_avx512/serpent_avx512.cpp [] []
/src/botan/src/lib/tls/tls13/tls_cipher_state.cpp [] []
/src/botan/src/lib/utils/http_util/http_util.cpp [] []
/src/botan/build/include/public/botan/x509path.h ['x509_path'] ['x509_path']
/src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp [] []
/src/botan/src/lib/rng/stateful_rng/stateful_rng.cpp [] []
/src/botan/src/lib/hash/sm3/sm3.cpp [] []
/src/botan/build/include/internal/botan/internal/ofb.h [] []
/src/botan/src/lib/tls/tls13/tls_record_layer_13.cpp [] []
/src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp [] []
/src/botan/src/lib/math/bigint/bigint.cpp ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/tls_server_impl_12.h [] []
/src/botan/src/lib/asn1/ber_dec.cpp ['x509_dn', 'ecc_p384', 'crl', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'cert', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['x509_dn', 'crl', 'ocsp', 'x509_path', 'asn1', 'cert', 'pkcs8']
/src/botan/build/include/public/botan/tls_handshake_msg.h ['tls_client_hello', 'tls_13_handshake_layer'] ['tls_client_hello', 'tls_13_handshake_layer']
/src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp [] []
/src/botan/src/lib/tls/tls12/tls_session_key.cpp [] []
/src/botan/build/include/internal/botan/internal/pssr.h [] []
/src/botan/build/include/public/botan/dh.h [] []
/src/botan/src/lib/stream/chacha/chacha.cpp [] []
/src/botan/build/include/internal/botan/internal/loadstor.h ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'x509_dn', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'x509_dn', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/hash/checksum/crc24/crc24.cpp [] []
/src/botan/build/include/public/botan/stateful_rng.h [] []
/src/botan/build/include/public/botan/tls_extensions.h ['tls_client_hello', 'tls_13_handshake_layer'] ['tls_client_hello', 'tls_13_handshake_layer']
/src/botan/src/lib/stream/rc4/rc4.cpp [] []
/src/botan/build/include/internal/botan/internal/skein_512.h [] []
/src/botan/build/include/public/botan/tls_version.h ['tls_13_handshake_layer', 'tls_client', 'tls_server'] ['tls_13_handshake_layer', 'tls_client', 'tls_server']
/src/botan/src/lib/pubkey/ed25519/ed25519.cpp [] []
/src/botan/src/lib/hash/comb4p/comb4p.cpp [] []
/src/botan/src/lib/block/sm4/sm4.cpp [] []
/src/botan/build/include/internal/botan/internal/poly_dbl.h [] []
/src/botan/build/include/internal/botan/internal/cascade.h [] []
/src/botan/src/lib/math/numbertheory/monty.cpp ['ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/simd_avx512.h [] []
/src/botan/build/include/internal/botan/internal/tls_client_impl_12.h [] []
/src/botan/build/include/internal/botan/internal/ct_utils.h ['mode_padding', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'bn_cmp', 'redc_p256', 'redc_p224', 'pkcs1', 'x509_dn', 'ecc_p384', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'oaep', 'gcd', 'asn1', 'ecc_p256', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['mode_padding', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'bn_cmp', 'redc_p256', 'redc_p224', 'pkcs1', 'x509_dn', 'ecc_p384', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'oaep', 'gcd', 'asn1', 'ecc_p256', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/tls/tls_session_manager_noop.cpp [] []
/src/botan/src/lib/pubkey/mce/mce_workfactor.cpp [] []
/src/botan/build/include/public/botan/pubkey.h ['x509_path'] ['x509_path']
/src/botan/build/include/public/botan/pk_ops.h [] []
/src/botan/build/include/internal/botan/internal/sp800_56c.h [] []
/src/botan/build/include/internal/botan/internal/keccak.h [] []
/src/botan/build/include/internal/botan/internal/rmd160.h [] []
/src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp [] []
/src/botan/build/include/internal/botan/internal/xmss_signature_operation.h [] []
/src/botan/src/lib/hash/sha3/sha3.cpp [] []
/src/botan/build/include/internal/botan/internal/eme.h [] []
/src/botan/src/lib/pk_pad/raw_hash/raw_hash.cpp [] []
/src/botan/build/include/internal/botan/internal/trunc_hash.h [] []
/src/botan/src/lib/block/aes/aes.cpp [] []
/src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp [] []
/src/botan/build/include/public/botan/stream_cipher.h [] []
/src/botan/build/include/internal/botan/internal/polyn_gf2m.h [] []
/src/botan/src/lib/xof/aes_crystals_xof/aes_crystals_xof.cpp [] []
/src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp [] []
/src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp [] []
/src/botan/src/lib/kdf/kdf2/kdf2.cpp [] []
/src/botan/build/include/public/botan/ecdsa.h [] []
/src/botan/build/include/public/botan/sm2.h [] []
/src/botan/src/lib/asn1/asn1_obj.cpp ['x509_dn', 'ecc_p384', 'crl', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'cert', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['x509_dn', 'crl', 'ocsp', 'x509_path', 'asn1', 'cert', 'pkcs8']
/src/botan/src/lib/mac/x919_mac/x919_mac.cpp [] []
/src/botan/build/include/internal/botan/internal/cpuid.h [] []
/src/botan/src/lib/x509/x509_dn.cpp ['x509_dn', 'x509_path'] ['x509_dn', 'x509_path']
/src/botan/src/lib/codec/base64/base64.cpp ['ecc_p384', 'crl', 'os2ecp', 'ocsp', 'x509_path', 'ecc_p256', 'cert', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['crl', 'ocsp', 'x509_path', 'cert', 'pkcs8']
/src/botan/./src/fuzzer/x509_dn.cpp ['x509_dn'] []
/src/botan/build/include/public/botan/rfc4880.h [] []
/src/botan/src/lib/rng/system_rng/system_rng.cpp [] []
/src/botan/./src/fuzzer/os2ecp.cpp ['os2ecp'] []
/src/botan/src/lib/tls/tls12/msg_hello_verify.cpp [] []
/src/botan/build/include/internal/botan/internal/md4.h [] []
/src/botan/src/lib/x509/x509_ext.cpp ['x509_path'] ['x509_path']
/src/botan/build/include/internal/botan/internal/siphash.h [] []
/src/botan/src/lib/block/blowfish/blowfish.cpp [] []
/src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/block/idea/idea.cpp [] []
/src/botan/src/lib/stream/stream_cipher.cpp ['pkcs8'] []
/src/botan/src/lib/pk_pad/iso9796/iso9796.cpp [] []
/src/botan/src/lib/stream/shake_cipher/shake_cipher.cpp [] []
/src/botan/./src/fuzzer/crl.cpp ['crl'] []
/src/botan/./src/fuzzer/tls_13_handshake_layer.cpp ['tls_13_handshake_layer'] []
/src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp [] []
/src/botan/build/include/internal/botan/internal/tls_transcript_hash_13.h ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/kdf/sp800_56a/sp800_56a.cpp [] []
/src/botan/src/lib/pubkey/mce/mceliece.cpp [] []
/src/botan/build/include/internal/botan/internal/simd_32.h [] []
/usr/local/bin/../include/c++/v1/optional ['x509_path', 'tls_13_handshake_layer'] []
/src/botan/build/include/internal/botan/internal/sp800_56a.h [] []
/src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp [] []
/src/botan/build/include/public/botan/tls_psk_identity_13.h [] []
/src/botan/src/lib/tls/tls_session.cpp [] []
/src/botan/build/include/internal/botan/internal/tls_channel_impl_12.h [] []
/src/botan/src/lib/tls/tls12/tls_handshake_io.cpp [] []
/src/botan/build/include/internal/botan/internal/adler32.h [] []
/src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/hash/whirlpool/whirlpool.cpp [] []
/src/botan/build/include/internal/botan/internal/tls_record_layer_13.h [] []
/src/botan/build/include/internal/botan/internal/rc4.h [] []
/src/botan/src/lib/utils/ghash/ghash_cpu/ghash_cpu.cpp [] []
/src/botan/src/lib/pubkey/pk_algs.cpp ['x509_path', 'pkcs8'] ['x509_path', 'pkcs8']
/src/botan/src/lib/math/numbertheory/make_prm.cpp ['ressol'] ['ressol']
/src/botan/./src/fuzzer/pkcs8.cpp ['pkcs8'] []
/src/botan/build/include/internal/botan/internal/twofish.h [] []
/src/botan/build/include/internal/botan/internal/tls_handshake_state_13.h [] []
/src/botan/build/include/public/botan/certstor.h ['x509_path'] ['x509_path']
/src/botan/src/lib/tls/tls_extensions_cert_status_req.cpp [] []
/src/botan/build/include/internal/botan/internal/par_hash.h [] []
/src/botan/build/include/public/botan/sphincsplus.h [] []
/src/botan/./src/fuzzer/redc_p521.cpp ['redc_p521'] []
/src/botan/src/lib/x509/x509_obj.cpp ['crl', 'ocsp', 'x509_path', 'cert'] ['crl', 'ocsp', 'x509_path', 'cert']
/src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp [] []
/src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp [] []
/src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp [] []
/src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp [] []
/src/botan/build/include/internal/botan/internal/emsa_pkcs1.h [] []
/src/botan/src/lib/block/serpent/serpent_avx2/serpent_avx2.cpp [] []
/src/botan/src/lib/hash/rmd160/rmd160.cpp [] []
/src/botan/src/lib/utils/thread_utils/thread_pool.cpp [] []
/src/botan/src/lib/pubkey/mce/goppa_code.cpp [] []
/src/botan/src/lib/pbkdf/pgp_s2k/rfc4880.cpp [] []
/src/botan/src/lib/x509/x509_dn_ub.cpp ['x509_path'] ['x509_path']
/src/botan/build/include/public/botan/pbkdf.h [] []
/src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp [] []
/src/botan/build/include/public/botan/tls_session_manager.h [] []
/src/botan/src/lib/math/numbertheory/monty_exp.cpp ['ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/public/botan/eckcdsa.h [] []
/src/botan/src/lib/x509/ocsp.cpp ['ocsp', 'x509_path'] ['ocsp']
/src/botan/src/lib/pubkey/pkcs8.cpp ['pkcs8'] ['pkcs8']
/src/botan/src/lib/block/serpent/serpent.cpp [] []
/src/botan/src/lib/stream/chacha/chacha_simd32/chacha_simd32.cpp [] []
/src/botan/build/include/internal/botan/internal/kex_to_kem_adapter.h [] []
/src/botan/src/lib/x509/x509_crl.cpp ['crl', 'x509_path'] ['crl']
/src/botan/build/include/public/botan/curve_gfp.h ['ecc_p384', 'os2ecp', 'ecc_p256', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'os2ecp', 'ecc_p256', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/rotate.h [] []
/src/botan/src/lib/utils/calendar.cpp ['x509_path'] ['x509_path']
/src/botan/src/lib/kdf/prf_tls/prf_tls.cpp [] []
/src/botan/build/include/internal/botan/internal/kyber_90s.h [] []
/src/botan/src/lib/entropy/entropy_srcs.cpp [] []
/src/botan/src/lib/tls/msg_cert_verify.cpp ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/pk_pad/eme_pkcs1/eme_pkcs.cpp ['pkcs1'] ['pkcs1']
/src/botan/src/lib/block/cascade/cascade.cpp [] []
/src/botan/./src/fuzzer/pow_mod.cpp ['pow_mod'] []
/src/botan/build/include/public/botan/mem_ops.h ['mp_comba_sqr', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'mp_comba_mul', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'mem_pool', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['mp_comba_sqr', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'mp_comba_mul', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'mem_pool', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'asn1', 'ecc_p256', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/public/botan/pkix_enums.h ['x509_path'] ['x509_path']
/src/botan/src/lib/pk_pad/eme.cpp [] []
/src/botan/src/lib/tls/credentials_manager.cpp [] []
/src/botan/build/include/internal/botan/internal/des.h [] []
/src/botan/./src/fuzzer/mp_fuzzers.h ['mp_comba_sqr', 'mp_redc', 'mp_comba_mul'] []
/src/botan/build/include/public/botan/assert.h ['mode_padding', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'pkcs1', 'x509_dn', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'oaep', 'gcd', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['mode_padding', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'bn_cmp', 'redc_p256', 'redc_p224', 'pkcs1', 'x509_dn', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'oaep', 'gcd', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'ressol', 'redc_p521', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/build/include/internal/botan/internal/tls_seq_numbers.h [] []
/src/botan/build/include/public/botan/x509_ext.h [] []
/src/botan/build/include/internal/botan/internal/aes.h [] []
/src/botan/build/include/internal/botan/internal/aria.h [] []
/src/botan/build/include/internal/botan/internal/keccak_perm_round.h [] []
/src/botan/build/include/public/botan/tls_messages.h ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/build/include/internal/botan/internal/sha1.h [] []
/src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp [] []
/src/botan/build/include/internal/botan/internal/pss_params.h [] []
/src/botan/build/include/internal/botan/internal/gcm.h [] []
/src/botan/src/lib/hash/md4/md4.cpp [] []
/src/botan/src/lib/math/numbertheory/dsa_gen.cpp [] []
/src/botan/build/include/internal/botan/internal/shacal2.h [] []
/src/botan/build/include/internal/botan/internal/raw_hash.h [] []
/src/botan/src/lib/asn1/asn1_oid.cpp ['x509_dn', 'ecc_p384', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['x509_dn', 'ecc_p384', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/asn1/der_enc.cpp ['x509_path', 'asn1'] ['x509_path', 'asn1']
/src/botan/src/lib/tls/msg_cert_req.cpp [] []
/src/botan/src/lib/hash/sha2_32/sha2_32.cpp [] []
/src/botan/build/include/internal/botan/internal/noekeon.h [] []
/src/botan/src/lib/hash/sha2_64/sha2_64_bmi2/sha2_64_bmi2.cpp [] []
/src/botan/build/include/public/botan/x509cert.h ['ocsp', 'x509_path', 'cert'] ['ocsp', 'x509_path']
/src/botan/src/lib/pubkey/xmss/xmss_parameters.cpp [] []
/src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp [] []
/src/botan/src/lib/pbkdf/pwdhash.cpp ['pkcs8'] []
/src/botan/build/include/internal/botan/internal/prf_tls.h [] []
/src/botan/src/lib/asn1/pss_params.cpp [] []
/src/botan/src/lib/pubkey/curve25519/donna.cpp [] []
/src/botan/build/include/internal/botan/internal/camellia.h [] []
/src/botan/src/lib/modes/xts/xts.cpp [] []
/src/botan/src/lib/pubkey/ec_h2c/ec_h2c.cpp [] []
/src/botan/src/lib/pubkey/dl_group/dl_named.cpp [] []
/src/botan/src/lib/utils/parsing.cpp ['ecc_p384', 'os2ecp', 'ocsp', 'x509_path', 'ecc_p256', 'tls_13_handshake_layer', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'ocsp', 'x509_path', 'ecc_p256', 'tls_13_handshake_layer', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp [] []
/src/botan/build/include/internal/botan/internal/monty_exp.h ['ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/x509/crl_ent.cpp ['x509_path'] []
/src/botan/./src/fuzzer/redc_p224.cpp ['redc_p224'] []
/src/botan/src/lib/asn1/oid_maps.cpp ['ecc_p384', 'os2ecp', 'x509_path', 'asn1', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'os2ecp', 'x509_path', 'asn1', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/tls/tls_callbacks.cpp [] []
/src/botan/build/include/internal/botan/internal/xmss_index_registry.h [] []
/src/botan/build/include/internal/botan/internal/siv.h [] []
/src/botan/src/lib/pubkey/xmss/xmss_wots_parameters.cpp [] []
/src/botan/build/include/internal/botan/internal/tls_cipher_state.h [] []
/src/botan/src/lib/hash/keccak/keccak.cpp [] []
/src/botan/src/lib/utils/socket/uri.cpp ['uri'] ['uri']
/src/botan/build/include/public/botan/ber_dec.h ['x509_dn', 'ecc_p384', 'crl', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'cert', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['x509_dn', 'crl', 'ocsp', 'x509_path', 'asn1', 'cert', 'pkcs8']
/src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp [] []
/src/botan/build/include/internal/botan/internal/eme_raw.h [] []
/src/botan/build/include/internal/botan/internal/blake2s.h [] []
/src/botan/src/lib/stream/chacha/chacha_avx512/chacha_avx512.cpp [] []
/src/botan/build/include/public/botan/system_rng.h [] []
/src/botan/src/lib/block/cast128/cast128.cpp [] []
/src/botan/build/include/internal/botan/internal/serpent_fn.h [] []
/src/botan/build/include/public/botan/argon2.h [] []
/src/botan/src/lib/stream/ctr/ctr.cpp [] []
/src/botan/build/include/public/botan/curve25519.h [] []
/src/botan/src/lib/utils/ghash/ghash_vperm/ghash_vperm.cpp [] []
/src/botan/build/include/public/botan/strong_type.h ['tls_13_handshake_layer'] ['tls_13_handshake_layer']
/src/botan/src/lib/x509/name_constraint.cpp [] []
/src/botan/build/include/internal/botan/internal/scan_name.h ['x509_path', 'tls_13_handshake_layer', 'pkcs8'] ['x509_path']
/src/botan/build/include/internal/botan/internal/tls_session_key.h [] []
/src/botan/build/include/internal/botan/internal/kdf2.h [] []
/src/botan/build/include/internal/botan/internal/oaep.h [] []
/src/botan/build/include/internal/botan/internal/aes_crystals_xof.h [] []
/src/botan/build/include/public/botan/block_cipher.h [] []
/src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp [] []
/src/botan/src/lib/hash/md5/md5.cpp [] []
/src/botan/build/include/internal/botan/internal/comb4p.h [] []
/src/botan/build/include/public/botan/buf_comp.h ['x509_path', 'tls_13_handshake_layer'] ['x509_path', 'tls_13_handshake_layer']
/src/botan/./src/fuzzer/bn_sqr.cpp ['bn_sqr'] []
/src/botan/src/lib/utils/data_src.cpp ['x509_dn', 'ecc_p384', 'crl', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'cert', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['x509_dn', 'crl', 'ocsp', 'x509_path', 'asn1', 'cert', 'pkcs8']
/src/botan/build/include/internal/botan/internal/dilithium_symmetric_primitives.h [] []
/src/botan/build/include/internal/botan/internal/whirlpool.h [] []
/src/botan/build/include/internal/botan/internal/mp_asmi.h ['mp_comba_sqr', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'mp_comba_mul', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['mp_comba_sqr', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'mp_comba_mul', 'bn_cmp', 'redc_p256', 'redc_p224', 'ecc_p384', 'barrett', 'pow_mod', 'os2ecp', 'gcd', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/stream/ofb/ofb.cpp [] []
/src/botan/build/include/public/botan/tls_session.h [] []
/src/botan/src/lib/math/mp/mp_karat.cpp ['mp_comba_sqr', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_comba_mul', 'redc_p256', 'redc_p224', 'ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256'] ['mp_comba_sqr', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_comba_mul', 'redc_p256', 'redc_p224', 'ecc_p384', 'pow_mod', 'os2ecp', 'ecc_p256', 'ressol', 'redc_p521', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/pubkey/blinding.cpp [] []
/src/botan/src/lib/pubkey/ec_group/curve_gfp.cpp [] []
/src/botan/./src/fuzzer/mp_comba_sqr.cpp ['mp_comba_sqr'] []
/src/botan/src/lib/math/numbertheory/primality.cpp ['ecc_p384', 'os2ecp', 'ecc_p256', 'ressol', 'ecc_p521', 'ecc_bp256'] ['ressol']
/src/botan/src/lib/block/aria/aria.cpp [] []
/src/botan/./src/fuzzer/ecc_bp256.cpp ['ecc_bp256'] []
/src/botan/src/lib/pubkey/rsa/rsa.cpp [] []
/src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp [] []
/src/botan/src/lib/pubkey/xmss/xmss_wots.cpp [] []
/src/botan/build/include/internal/botan/internal/frodo_matrix.h [] []
/src/botan/src/lib/utils/cpuid/cpuid_x86.cpp [] []
/src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp [] []
/src/botan/build/include/public/botan/asn1_print.h ['asn1'] ['asn1']
/src/botan/build/include/public/botan/tls_algos.h [] []
/src/botan/build/include/internal/botan/internal/sp_address.h [] []
/src/botan/src/lib/pbkdf/scrypt/scrypt.cpp [] []
/src/botan/src/lib/kdf/sp800_56c/sp800_56c.cpp [] []
/src/botan/build/include/internal/botan/internal/seed.h [] []
/src/botan/src/lib/utils/prefetch.cpp [] []
/src/botan/src/lib/asn1/oid_map.cpp ['ecc_p384', 'os2ecp', 'x509_path', 'asn1', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'os2ecp', 'x509_path', 'asn1', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/usr/include/x86_64-linux-gnu/sys/stat.h [] []
/src/botan/build/include/public/botan/tls_ciphersuite.h [] []
/src/botan/src/lib/pubkey/ec_group/ec_group.cpp ['ecc_p384', 'os2ecp', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['ecc_p384', 'os2ecp', 'ecc_p256', 'pkcs8', 'ecc_p521', 'ecc_bp256']
/src/botan/src/lib/hash/gost_3411/gost_3411.cpp [] []
/src/botan/build/include/public/botan/scrypt.h [] []
/src/botan/build/include/internal/botan/internal/keccak_perm.h [] []
/src/botan/build/include/public/botan/ocsp.h ['ocsp', 'x509_path'] ['ocsp']
/src/botan/src/lib/pubkey/pk_ops.cpp [] []
/src/botan/build/include/internal/botan/internal/eme_pkcs.h [] []
/src/botan/./src/fuzzer/pkcs1.cpp ['pkcs1'] []
/src/botan/build/include/internal/botan/internal/emsa_x931.h [] []
/src/botan/./src/fuzzer/ecc_p521.cpp ['ecc_p521'] []
/usr/local/bin/../include/c++/v1/exception ['mp_comba_sqr', 'uri', 'redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'mp_comba_mul', 'bn_cmp', 'redc_p256', 'redc_p224', 'pkcs1', 'x509_dn', 'ecc_p384', 'mem_pool', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'tls_client_hello', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'tls_client', 'ecc_p521', 'ecc_bp256', 'tls_server'] []
/src/botan/build/include/internal/botan/internal/dilithium_modern.h [] []
/src/botan/build/include/internal/botan/internal/crc32.h [] []
/src/botan/src/lib/kdf/prf_x942/prf_x942.cpp [] []
/src/botan/build/include/public/botan/cipher_mode.h ['pkcs8'] []
/src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp [] []
/src/botan/build/include/public/botan/tls_exceptn.h ['tls_client_hello', 'tls_13_handshake_layer'] ['tls_client_hello', 'tls_13_handshake_layer']
/src/botan/src/lib/tls/msg_session_ticket.cpp ['tls_13_handshake_layer'] []
/src/botan/./src/fuzzer/divide.cpp ['divide'] []
/src/botan/src/lib/utils/ct_utils.cpp ['pkcs1', 'oaep'] ['pkcs1', 'oaep']
/src/botan/build/include/internal/botan/internal/ghash.h [] []
/src/botan/./src/fuzzer/mode_padding.cpp ['mode_padding'] []
/src/botan/./src/fuzzer/tls_client_hello.cpp ['tls_client_hello'] []
/src/botan/src/lib/mac/blake2mac/blake2bmac.cpp [] []
/src/botan/build/include/public/botan/data_src.h ['x509_dn', 'ecc_p384', 'crl', 'os2ecp', 'ocsp', 'x509_path', 'asn1', 'ecc_p256', 'cert', 'pkcs8', 'ecc_p521', 'ecc_bp256'] ['x509_dn', 'crl', 'ocsp', 'x509_path', 'asn1', 'cert', 'pkcs8']
/src/botan/src/lib/utils/assert.cpp ['redc_p384', 'bn_sqr', 'divide', 'redc_p192', 'invert', 'mp_redc', 'bn_cmp', 'redc_p256', 'redc_p224', 'x509_dn', 'ecc_p384', 'mem_pool', 'crl', 'barrett', 'pow_mod', 'os2ecp', 'ocsp', 'x509_path', 'gcd', 'tls_client_hello', 'asn1', 'ecc_p256', 'tls_13_handshake_layer', 'cert', 'ressol', 'redc_p521', 'pkcs8', 'tls_client', 'ecc_p521', 'ecc_bp256', 'tls_server'] ['crl', 'ocsp', 'x509_path', 'tls_client_hello', 'asn1', 'tls_13_handshake_layer', 'cert', 'ressol', 'pkcs8', 'tls_client', 'tls_server']
/src/botan/build/include/public/botan/dsa.h [] []
/src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp [] []
/src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp [] []
/src/botan/build/include/public/botan/tls_server_info.h ['tls_client', 'tls_server'] ['tls_client', 'tls_server']
/src/botan/./src/fuzzer/uri.cpp ['uri'] []

Directories in report

Directory
/src/botan/src/lib/utils/ghash/
/src/botan/src/lib/pubkey/rfc6979/
/src/botan/src/lib/block/serpent/serpent_avx512/
/src/botan/./src/fuzzer/
/src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/
/src/botan/src/lib/pubkey/dl_algo/
/src/botan/src/lib/utils/
/src/botan/src/lib/hash/skein/
/src/botan/src/lib/pubkey/eckcdsa/
/src/botan/src/lib/modes/aead/eax/
/src/botan/src/lib/pk_pad/hash_id/
/src/botan/src/lib/block/twofish/
/src/botan/src/lib/modes/mode_pad/
/src/botan/src/lib/block/seed/
/src/botan/src/lib/block/shacal2/
/src/botan/src/lib/pk_pad/eme_pkcs1/
/src/botan/src/lib/pubkey/gost_3410/
/src/botan/src/lib/block/des/
/src/botan/src/lib/block/noekeon/
/src/botan/src/lib/kdf/sp800_108/
/src/botan/src/lib/pubkey/sm2/
/src/botan/src/lib/xof/
/src/botan/src/lib/hash/md4/
/src/botan/src/lib/hash/checksum/crc32/
/src/botan/src/lib/permutations/keccak_perm/
/src/botan/src/lib/tls/tls12/tls_cbc/
/src/botan/src/lib/base/
/src/botan/src/lib/rng/stateful_rng/
/src/botan/src/lib/stream/
/src/botan/src/lib/pubkey/ec_group/
/src/botan/src/lib/pbkdf/
/src/botan/src/lib/pubkey/mce/
/src/botan/src/lib/codec/base64/
/src/botan/src/lib/modes/xts/
/src/botan/src/lib/kdf/hkdf/
/src/botan/src/lib/utils/ghash/ghash_vperm/
/src/botan/src/lib/pk_pad/eme_oaep/
/usr/include/
/src/botan/src/lib/hash/sha3/
/src/botan/src/lib/pk_pad/mgf1/
/src/botan/src/lib/pubkey/kyber/kyber_common/
/src/botan/src/lib/block/aes/
/src/botan/src/lib/block/blowfish/
/src/botan/src/lib/pubkey/ecdh/
/src/botan/src/lib/hash/blake2s/
/src/botan/src/lib/stream/chacha/chacha_avx512/
/src/botan/src/lib/hash/sm3/
/src/botan/src/lib/pubkey/ec_h2c/
/src/botan/src/lib/pubkey/ecc_key/
/src/botan/src/lib/pubkey/curve25519/
/src/botan/src/lib/kdf/kdf1_iso18033/
/src/botan/src/lib/mac/hmac/
/src/botan/src/lib/pbkdf/argon2/argon2_avx2/
/src/botan/src/lib/stream/shake_cipher/
/src/botan/src/lib/modes/aead/gcm/
/src/botan/src/lib/pk_pad/iso9796/
/src/botan/src/lib/pubkey/elgamal/
/src/botan/src/lib/block/shacal2/shacal2_simd/
/src/botan/src/lib/block/
/src/botan/src/lib/pbkdf/argon2/
/src/botan/src/lib/block/serpent/serpent_avx2/
/src/botan/src/lib/block/idea/
/src/botan/src/lib/hash/sha1/
/src/botan/src/lib/pbkdf/argon2/argon2_ssse3/
/src/botan/src/lib/mac/siphash/
/src/botan/src/lib/codec/hex/
/src/botan/src/lib/mac/poly1305/
/src/botan/src/lib/hash/rmd160/
/src/botan/src/lib/pubkey/dsa/
/src/botan/src/lib/mac/
/src/botan/src/lib/pubkey/ecgdsa/
/src/botan/src/lib/pubkey/rsa/
/src/botan/src/lib/pk_pad/raw_hash/
/src/botan/src/lib/modes/aead/chacha20poly1305/
/src/botan/src/lib/hash/comb4p/
/src/botan/src/lib/stream/ctr/
/src/botan/src/lib/pbkdf/scrypt/
/src/botan/src/lib/pubkey/
/src/botan/src/lib/rng/
/src/botan/src/lib/pubkey/frodokem/frodokem_common/
/usr/local/lib/clang/15.0.0/include/
/src/botan/src/lib/pubkey/dilithium/dilithium_common/
/src/botan/src/lib/pubkey/pbes2/
/src/botan/src/lib/math/mp/
/src/botan/src/lib/pubkey/xmss/
/src/botan/src/lib/entropy/
/src/botan/src/lib/kdf/kdf1/
/src/botan/src/lib/hash/md5/
/src/botan/src/lib/hash/checksum/crc24/
/src/botan/src/lib/modes/cbc/
/src/botan/src/lib/utils/thread_utils/
/src/botan/src/lib/asn1/
/src/botan/src/lib/utils/socket/
/src/botan/src/lib/entropy/rdseed/
/src/botan/src/lib/block/sm4/
/src/botan/src/lib/rng/chacha_rng/
/src/botan/src/lib/hash/checksum/adler32/
/src/botan/src/lib/modes/aead/
/src/botan/src/lib/block/idea/idea_sse2/
/src/botan/src/lib/math/numbertheory/
/src/botan/src/lib/tls/tls12/
/src/botan/src/lib/block/serpent/serpent_simd/
/src/botan/src/lib/pk_pad/emsa_pssr/
/src/botan/src/lib/hash/sha2_64/sha2_64_bmi2/
/usr/include/x86_64-linux-gnu/sys/
/src/botan/src/lib/modes/aead/ccm/
/src/botan/src/lib/block/gost_28147/
/src/botan/src/lib/block/cascade/
/src/botan/src/lib/xof/aes_crystals_xof/
/src/botan/src/lib/pubkey/pem/
/src/botan/src/lib/rng/processor_rng/
/src/botan/src/lib/hash/sha2_32/sha2_32_x86/
/src/botan/src/lib/mac/x919_mac/
/src/botan/src/lib/mac/kmac/
/src/botan/src/lib/pk_pad/emsa_x931/
/src/botan/src/lib/utils/mem_pool/
/src/botan/src/lib/hash/shake/
/src/botan/src/lib/pbkdf/pbkdf2/
/src/botan/src/lib/pk_pad/emsa_raw/
/src/botan/src/lib/block/noekeon/noekeon_simd/
/src/botan/src/lib/tls/
/src/botan/src/lib/block/aes/aes_vperm/
/src/botan/src/lib/hash/keccak/
/src/botan/src/lib/utils/poly_dbl/
/src/botan/src/lib/block/shacal2/shacal2_x86/
/src/botan/src/lib/x509/
/src/botan/src/lib/utils/cpuid/
/src/botan/src/lib/block/threefish_512/
/src/botan/src/lib/utils/ghash/ghash_cpu/
/src/botan/src/lib/mac/cmac/
/src/botan/src/lib/tls/tls13_pqc/
/src/botan/build/include/internal/botan/internal/
/src/botan/src/lib/kdf/kdf2/
/src/botan/src/lib/kdf/
/src/botan/src/lib/rng/hmac_drbg/
/src/botan/src/lib/stream/chacha/
/src/botan/src/lib/pubkey/keypair/
/src/botan/src/lib/block/camellia/
/src/botan/src/lib/kdf/prf_tls/
/src/botan/src/lib/block/cast128/
/src/botan/src/lib/stream/salsa20/
/src/botan/src/lib/xof/shake_xof/
/src/botan/src/lib/hash/streebog/
/src/botan/src/lib/kdf/sp800_56a/
/src/botan/src/lib/hash/sha2_32/
/src/botan/src/lib/modes/aead/ocb/
/src/botan/src/lib/pk_pad/eme_raw/
/src/botan/src/lib/hash/
/src/botan/src/lib/hash/sha1/sha1_sse2/
/src/botan/src/lib/pbkdf/pgp_s2k/
/src/botan/src/lib/tls/tls13/
/src/botan/src/lib/hash/par_hash/
/src/botan/src/lib/mac/gmac/
/src/botan/src/lib/rng/system_rng/
/src/botan/src/lib/kdf/prf_x942/
/src/botan/src/lib/stream/rc4/
/src/botan/src/lib/hash/whirlpool/
/src/botan/src/lib/hash/sha1/sha1_x86/
/src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/
/src/botan/src/lib/math/bigint/
/src/botan/src/lib/pbkdf/bcrypt_pbkdf/
/src/botan/src/lib/stream/chacha/chacha_simd32/
/src/botan/src/lib/kdf/sp800_56c/
/src/botan/src/lib/modes/cfb/
/src/botan/src/lib/pubkey/ed25519/
/src/botan/src/lib/mac/blake2mac/
/src/botan/src/lib/xof/cshake_xof/
/src/botan/src/lib/pubkey/dl_group/
/src/botan/src/lib/block/kuznyechik/
/src/botan/src/lib/pk_pad/
/src/botan/src/lib/hash/sha2_32/sha2_32_bmi2/
/src/botan/src/lib/block/aes/aes_ni/
/src/botan/src/lib/utils/http_util/
/usr/local/bin/../include/c++/v1/
/src/botan/src/lib/block/aria/
/src/botan/src/lib/block/shacal2/shacal2_avx2/
/src/botan/src/lib/block/serpent/
/src/botan/src/lib/hash/trunc_hash/
/src/botan/src/lib/block/lion/
/src/botan/src/lib/stream/chacha/chacha_avx2/
/src/botan/src/lib/hash/gost_3411/
/src/botan/src/lib/hash/sha2_64/
/src/botan/src/lib/pk_pad/emsa_pkcs1/
/src/botan/src/lib/modes/
/src/botan/src/lib/pubkey/dh/
/src/botan/build/include/public/botan/
/src/botan/src/lib/stream/ofb/
/src/botan/src/lib/pubkey/ecdsa/
/src/botan/src/lib/modes/aead/siv/
/src/botan/src/lib/hash/blake2/

Metadata section

This sections shows the raw data that is used to produce this report. This is mainly used for further processing and developer debugging.

Fuzzer Calltree file Program data file Coverage file
mp_comba_sqr fuzzerLogFile-0-d0fhMYwpoz.data fuzzerLogFile-0-d0fhMYwpoz.data.yaml mp_comba_sqr.covreport
mode_padding fuzzerLogFile-0-EkATpN6Nyw.data fuzzerLogFile-0-EkATpN6Nyw.data.yaml mode_padding.covreport
uri fuzzerLogFile-0-gtzSv0RwVs.data fuzzerLogFile-0-gtzSv0RwVs.data.yaml uri.covreport
redc_p384 fuzzerLogFile-0-4MI9F5GPTG.data fuzzerLogFile-0-4MI9F5GPTG.data.yaml redc_p384.covreport
bn_sqr fuzzerLogFile-0-Da54qlVL56.data fuzzerLogFile-0-Da54qlVL56.data.yaml bn_sqr.covreport
divide fuzzerLogFile-0-wr3I4TV7Oi.data fuzzerLogFile-0-wr3I4TV7Oi.data.yaml divide.covreport
redc_p192 fuzzerLogFile-0-ir3jR97sdN.data fuzzerLogFile-0-ir3jR97sdN.data.yaml redc_p192.covreport
invert fuzzerLogFile-0-kQBDnDKESE.data fuzzerLogFile-0-kQBDnDKESE.data.yaml invert.covreport
mp_redc fuzzerLogFile-0-wDmdymwAY2.data fuzzerLogFile-0-wDmdymwAY2.data.yaml mp_redc.covreport
mp_comba_mul fuzzerLogFile-0-VqjMsUymcJ.data fuzzerLogFile-0-VqjMsUymcJ.data.yaml mp_comba_mul.covreport
bn_cmp fuzzerLogFile-0-lThv8CtaEf.data fuzzerLogFile-0-lThv8CtaEf.data.yaml bn_cmp.covreport
redc_p256 fuzzerLogFile-0-YJfTIJSP9o.data fuzzerLogFile-0-YJfTIJSP9o.data.yaml redc_p256.covreport
redc_p224 fuzzerLogFile-0-B58QE54CgB.data fuzzerLogFile-0-B58QE54CgB.data.yaml redc_p224.covreport
pkcs1 fuzzerLogFile-0-QLiccWr0AC.data fuzzerLogFile-0-QLiccWr0AC.data.yaml pkcs1.covreport
x509_dn fuzzerLogFile-0-aY5V4zd6LB.data fuzzerLogFile-0-aY5V4zd6LB.data.yaml x509_dn.covreport
ecc_p384 fuzzerLogFile-0-5VgiK1RGAi.data fuzzerLogFile-0-5VgiK1RGAi.data.yaml ecc_p384.covreport
mem_pool fuzzerLogFile-0-UdO6PvDHgn.data fuzzerLogFile-0-UdO6PvDHgn.data.yaml mem_pool.covreport
crl fuzzerLogFile-0-LgXQtPiuw1.data fuzzerLogFile-0-LgXQtPiuw1.data.yaml crl.covreport
barrett fuzzerLogFile-0-54NSJlBDin.data fuzzerLogFile-0-54NSJlBDin.data.yaml barrett.covreport
pow_mod fuzzerLogFile-0-LjQBX641FZ.data fuzzerLogFile-0-LjQBX641FZ.data.yaml pow_mod.covreport
os2ecp fuzzerLogFile-0-zx2mF2ouvn.data fuzzerLogFile-0-zx2mF2ouvn.data.yaml os2ecp.covreport
ocsp fuzzerLogFile-0-BJT7sJjxnm.data fuzzerLogFile-0-BJT7sJjxnm.data.yaml ocsp.covreport
x509_path fuzzerLogFile-0-zndPIXrJ9n.data fuzzerLogFile-0-zndPIXrJ9n.data.yaml x509_path.covreport
oaep fuzzerLogFile-0-Dt8fXaWQ2n.data fuzzerLogFile-0-Dt8fXaWQ2n.data.yaml oaep.covreport
gcd fuzzerLogFile-0-aYYIJfODtc.data fuzzerLogFile-0-aYYIJfODtc.data.yaml gcd.covreport
tls_client_hello fuzzerLogFile-0-yOZ9fBrX6F.data fuzzerLogFile-0-yOZ9fBrX6F.data.yaml tls_client_hello.covreport
asn1 fuzzerLogFile-0-yysjFNce8o.data fuzzerLogFile-0-yysjFNce8o.data.yaml asn1.covreport
ecc_p256 fuzzerLogFile-0-9qOrfhPobb.data fuzzerLogFile-0-9qOrfhPobb.data.yaml ecc_p256.covreport
tls_13_handshake_layer fuzzerLogFile-0-Seb1HjCO16.data fuzzerLogFile-0-Seb1HjCO16.data.yaml tls_13_handshake_layer.covreport
cert fuzzerLogFile-0-PRi3hSam9d.data fuzzerLogFile-0-PRi3hSam9d.data.yaml cert.covreport
ressol fuzzerLogFile-0-z7Oeiu6fob.data fuzzerLogFile-0-z7Oeiu6fob.data.yaml ressol.covreport
redc_p521 fuzzerLogFile-0-Z28BXVgBAW.data fuzzerLogFile-0-Z28BXVgBAW.data.yaml redc_p521.covreport
pkcs8 fuzzerLogFile-0-qjmDcPIIIm.data fuzzerLogFile-0-qjmDcPIIIm.data.yaml pkcs8.covreport
tls_client fuzzerLogFile-0-aDtOsAKloL.data fuzzerLogFile-0-aDtOsAKloL.data.yaml tls_client.covreport
ecc_p521 fuzzerLogFile-0-0zC7Vj78q5.data fuzzerLogFile-0-0zC7Vj78q5.data.yaml ecc_p521.covreport
ecc_bp256 fuzzerLogFile-0-Sun6qNt09n.data fuzzerLogFile-0-Sun6qNt09n.data.yaml ecc_bp256.covreport
tls_server fuzzerLogFile-0-ZBpmGtXdRm.data fuzzerLogFile-0-ZBpmGtXdRm.data.yaml tls_server.covreport