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

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
17 17 1 :

['read_entropy_from_device']

17 17 get_os_entropy call site: 00011 /src/krb5/src/lib/crypto/krb/prng.c:115
7 7 1 :

['krb5int_c_mandatory_cksumtype']

9 22 krb5_k_make_checksum call site: 00025 /src/krb5/src/lib/crypto/krb/make_checksum.c:43
7 7 1 :

['krb5int_c_mandatory_cksumtype']

7 53 krb5_k_verify_checksum call site: 00042 /src/krb5/src/lib/crypto/krb/verify_checksum.c:47
2 2 1 :

['explicit_bzero']

2 2 krb5_k_decrypt call site: 00079 /src/krb5/src/lib/crypto/krb/decrypt.c:79
2 2 1 :

['explicit_bzero']

2 2 krb5_k_encrypt call site: 00069 /src/krb5/src/lib/crypto/krb/encrypt.c:73
2 2 1 :

['explicit_bzero']

2 2 krb5_c_random_to_key call site: 00000 /src/krb5/src/lib/crypto/krb/random_to_key.c:58
0 183 5 :

['keyblock_crypt', 'enc_key', 'k5_bcmp', 'krb5int_hmac_keyblock', 'usage_key']

0 205 krb5int_arcfour_decrypt call site: 00000 /src/krb5/src/lib/crypto/krb/enc_rc4.c:280
0 0 None 17 17 get_os_entropy call site: 00011 /src/krb5/src/lib/crypto/krb/prng.c:110
0 0 None 2 2 mit_des_is_weak_key call site: 00000 /src/krb5/src/lib/crypto/builtin/des/weak_key.c:83
0 0 None 2 2 cbc_enc call site: 00000 /src/krb5/src/lib/crypto/builtin/enc_provider/camellia.c:91
0 0 None 2 2 cbc_dec call site: 00000 /src/krb5/src/lib/crypto/builtin/enc_provider/camellia.c:108
0 0 None 0 608 krb5int_aes_decrypt call site: 00000 /src/krb5/src/lib/crypto/builtin/enc_provider/aes.c:327

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 make_data [function] [call site] 00001
1 fuzz_setup [function] [call site] 00002
2 krb5_c_make_random_key [function] [call site] 00003
3 find_enctype [function] [call site] 00004
3 k5alloc [function] [call site] 00005
4 k5calloc [function] [call site] 00006
5 calloc [call site] 00007
3 krb5_c_random_make_octets [function] [call site] 00009
4 get_os_entropy [function] [call site] 00010
5 getentropy [call site] 00011
5 read_entropy_from_device [function] [call site] 00012
6 open [call site] 00013
6 fcntl [call site] 00014
6 fstat [call site] 00015
6 read [call site] 00016
6 close [call site] 00017
3 zapfree [function] [call site] 00018
4 explicit_bzero [call site] 00019
2 fuzz_checksum [function] [call site] 00021
3 krb5_c_make_checksum [function] [call site] 00022
4 krb5_k_create_key [function] [call site] 00023
5 krb5int_c_copy_keyblock_contents [function] [call site] 00024
4 krb5_k_make_checksum [function] [call site] 00025
5 krb5int_c_mandatory_cksumtype [function] [call site] 00026
6 find_enctype [function] [call site] 00027
5 find_cksumtype [function] [call site] 00028
5 verify_key [function] [call site] 00029
6 find_enctype [function] [call site] 00030
5 alloc_data [function] [call site] 00031
6 calloc [call site] 00032
5 realloc [call site] 00033
4 krb5_k_free_key [function] [call site] 00035
5 krb5_k_free_key [function] [call site] 00036
6 krb5int_c_free_keyblock_contents [function] [call site] 00037
6 find_enctype [function] [call site] 00039
3 krb5_c_verify_checksum [function] [call site] 00040
4 krb5_k_create_key [function] [call site] 00041
4 krb5_k_verify_checksum [function] [call site] 00042
5 krb5int_c_mandatory_cksumtype [function] [call site] 00043
5 find_cksumtype [function] [call site] 00044
5 verify_key [function] [call site] 00045
5 make_data [function] [call site] 00046
5 krb5_k_make_checksum [function] [call site] 00047
4 krb5_k_free_key [function] [call site] 00049
3 abort [call site] 00050
3 krb5_free_checksum_contents [function] [call site] 00051
2 fuzz_crypt [function] [call site] 00052
3 empty_data [function] [call site] 00053
4 make_data [function] [call site] 00054
3 krb5_c_encrypt_length [function] [call site] 00055
4 find_enctype [function] [call site] 00056
4 krb5int_c_padding_length [function] [call site] 00057
3 alloc_data [function] [call site] 00058
3 alloc_data [function] [call site] 00059
3 krb5_free_data_contents [function] [call site] 00060
3 krb5_c_encrypt [function] [call site] 00061
4 krb5_k_create_key [function] [call site] 00062
4 krb5_k_encrypt [function] [call site] 00063
5 find_enctype [function] [call site] 00064
5 krb5int_c_padding_length [function] [call site] 00065
5 make_data [function] [call site] 00066
5 make_data [function] [call site] 00067
5 make_data [function] [call site] 00068
5 make_data [function] [call site] 00069
5 explicit_bzero [call site] 00070
4 krb5_k_free_key [function] [call site] 00071
3 krb5_c_decrypt [function] [call site] 00072
4 krb5_k_create_key [function] [call site] 00073
4 krb5_k_decrypt [function] [call site] 00074
5 make_data [function] [call site] 00076
5 empty_data [function] [call site] 00077
6 make_data [function] [call site] 00078
5 make_data [function] [call site] 00079
5 explicit_bzero [call site] 00080
4 krb5_k_free_key [function] [call site] 00082
3 memcmp [call site] 00083
3 abort [call site] 00084
3 krb5_free_data_contents [function] [call site] 00085
3 krb5_free_data_contents [function] [call site] 00086
2 fuzz_prf [function] [call site] 00087
3 krb5_c_prf_length [function] [call site] 00088
4 __assert_fail [call site] 00089
3 alloc_data [function] [call site] 00090
3 krb5_c_prf [function] [call site] 00091
4 krb5_k_create_key [function] [call site] 00092
4 krb5_k_prf [function] [call site] 00093
5 __assert_fail [call site] 00094
5 __assert_fail [call site] 00095
5 find_enctype [function] [call site] 00096
4 krb5_k_free_key [function] [call site] 00097
3 krb5_free_data_contents [function] [call site] 00098
2 krb5_free_keyblock_contents [function] [call site] 00099
3 krb5int_c_free_keyblock_contents [function] [call site] 00100
1 fuzz_setup [function] [call site] 00101
1 fuzz_setup [function] [call site] 00102
1 fuzz_setup [function] [call site] 00103
1 fuzz_setup [function] [call site] 00104
1 fuzz_setup [function] [call site] 00105
1 fuzz_setup [function] [call site] 00106
1 fuzz_setup [function] [call site] 00107
1 fuzz_setup [function] [call site] 00108
1 fuzz_setup [function] [call site] 00109
1 fuzz_setup [function] [call site] 00110
1 fuzz_setup [function] [call site] 00111