Fuzz introspector: fuzz_gcrypt_light
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
4 4 2 :

['mbedtls_internal_aes_decrypt', 'mbedtls_internal_aes_encrypt']

4 4 mbedtls_aes_crypt_ecb call site: 00093 /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:506
3 3 1 :

['xorbytes3e']

3 3 gcm_mask call site: 00074 /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:440
2 30 3 :

['__bswap_64', 'xorbytes', 'gcm_mult']

2 96 mbedtls_gcm_starts call site: 00100 /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:309
0 73 1 :

['mbedtls_gcm_update']

0 73 mbedtls_cipher_update call site: 00065 /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:245
0 0 None 4 43 mbedtls_gcm_finish call site: 00114 /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:556
0 0 None 4 4 gcm_mult call site: 00067 /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:237
0 0 None 0 205 mbedtls_gcm_update call site: 00067 /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:492
0 0 None 0 114 _gcry_cipher_crypt call site: 00091 /src/ndpi/src/lib/third_party/src/gcrypt_light.c:331
0 0 None 0 31 mbedtls_gcm_update_ad call site: 00107 /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:379
0 0 1 :

['free']

0 0 ndpi_free call site: 00035 /src/ndpi/src/lib/ndpi_memory.c:80
0 0 None 0 0 mbedtls_cipher_get_block_size call site: 00065 /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h:576
0 0 None 0 0 mbedtls_aes_setkey_enc call site: 00050 /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:208

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 fuzz_set_alloc_callbacks_and_seed [function] [call site] 00001
2 fuzz_set_alloc_callbacks [function] [call site] 00002
3 set_ndpi_malloc [function] [call site] 00003
3 malloc_wrapper [function] [call site] 00004
3 set_ndpi_free [function] [call site] 00006
3 free_wrapper [function] [call site] 00007
2 fuzz_set_alloc_seed [function] [call site] 00008
1 gcry_control [function] [call site] 00009
1 gcry_md_get_algo_dlen [function] [call site] 00010
1 gcry_md_open [function] [call site] 00011
2 ndpi_calloc [function] [call site] 00012
3 ndpi_malloc [function] [call site] 00013
1 gcry_md_reset [function] [call site] 00014
1 gcry_md_setkey [function] [call site] 00015
1 gcry_md_setkey [function] [call site] 00016
1 gcry_md_write [function] [call site] 00017
1 gcry_md_read [function] [call site] 00018
2 hmac_sha256 [function] [call site] 00019
3 sha256_init [function] [call site] 00020
3 sha256_update [function] [call site] 00021
4 sha256_write_byte_block [function] [call site] 00022
5 sha256_transform [function] [call site] 00023
3 sha256_update [function] [call site] 00024
3 sha256_final [function] [call site] 00025
4 sha256_write_byte_block [function] [call site] 00026
4 sha256_write_byte_block [function] [call site] 00027
4 sha256_init [function] [call site] 00028
3 sha256_init [function] [call site] 00029
3 sha256_update [function] [call site] 00030
3 sha256_update [function] [call site] 00031
3 sha256_final [function] [call site] 00032
1 gcry_md_get_algo [function] [call site] 00033
1 gcry_md_close [function] [call site] 00034
2 ndpi_free [function] [call site] 00035
1 gpg_strerror_r [function] [call site] 00036
2 gcry_errstr [function] [call site] 00037
2 strncpy [call site] 00038
1 ndpi_malloc [function] [call site] 00039
1 gcry_cipher_open [function] [call site] 00040
2 ndpi_calloc [function] [call site] 00041
2 mbedtls_aes_init [function] [call site] 00042
2 ndpi_calloc [function] [call site] 00043
2 mbedtls_gcm_init [function] [call site] 00044
1 gpg_strerror_r [function] [call site] 00045
1 gcry_cipher_setkey [function] [call site] 00046
2 check_valid_algo_mode [function] [call site] 00047
2 gcry_cipher_get_algo_keylen [function] [call site] 00048
2 mbedtls_aes_setkey_enc [function] [call site] 00049
3 aes_gen_tables [function] [call site] 00050
4 mbedtls_aesni_has_support [function] [call site] 00051
5 fopen [call site] 00052
5 getline [call site] 00053
5 strstr [call site] 00054
5 fclose [call site] 00055
3 mbedtls_aesni_setkey_enc [function] [call site] 00056
4 aesni_setkey_enc_128 [function] [call site] 00057
4 aesni_setkey_enc_192 [function] [call site] 00058
4 aesni_setkey_enc_256 [function] [call site] 00059
2 mbedtls_gcm_setkey [function] [call site] 00060
3 mbedtls_cipher_info_from_values [function] [call site] 00061
3 mbedtls_cipher_setkey [function] [call site] 00062
3 gcm_gen_table [function] [call site] 00063
4 mbedtls_cipher_update [function] [call site] 00064
5 mbedtls_cipher_get_block_size [function] [call site] 00065
5 mbedtls_gcm_update [function] [call site] 00066
6 gcm_mult [function] [call site] 00067
7 __bswap_64 [function] [call site] 00068
7 __bswap_64 [function] [call site] 00069
7 mbedtls_aesni_gcm_mult [function] [call site] 00070
7 __bswap_64 [function] [call site] 00071
7 __bswap_64 [function] [call site] 00072
6 gcm_mask [function] [call site] 00073
7 mbedtls_cipher_update [function] [call site] 00074
7 xorbytes3d [function] [call site] 00075
7 xorbytes3e [function] [call site] 00076
4 htonl [call site] 00083
4 htonl [call site] 00084
4 htonl [call site] 00085
4 htonl [call site] 00086
4 mbedtls_aesni_has_support [function] [call site] 00087
1 gcry_cipher_setkey [function] [call site] 00088
1 gcry_cipher_decrypt [function] [call site] 00089
2 _gcry_cipher_crypt [function] [call site] 00090
3 check_valid_algo_mode [function] [call site] 00091
3 ndpi_malloc [function] [call site] 00092
3 mbedtls_aes_crypt_ecb [function] [call site] 00093
4 mbedtls_aesni_crypt_ecb [function] [call site] 00094
4 mbedtls_internal_aes_encrypt [function] [call site] 00095
4 mbedtls_internal_aes_decrypt [function] [call site] 00096
3 ndpi_free [function] [call site] 00097
3 ndpi_free [function] [call site] 00098
3 mbedtls_gcm_crypt_and_tag [function] [call site] 00099
4 mbedtls_gcm_starts [function] [call site] 00100
5 __bswap_64 [function] [call site] 00101
5 mbedtls_cipher_update [function] [call site] 00106
4 mbedtls_gcm_update_ad [function] [call site] 00107
4 mbedtls_gcm_update [function] [call site] 00113
4 mbedtls_gcm_finish [function] [call site] 00114
3 ndpi_free [function] [call site] 00122
1 gpg_strerror_r [function] [call site] 00123
1 gcry_cipher_encrypt [function] [call site] 00124
2 _gcry_cipher_crypt [function] [call site] 00125
1 gcry_cipher_ctl [function] [call site] 00126
1 gcry_cipher_close [function] [call site] 00127
2 check_valid_algo_mode [function] [call site] 00128
2 mbedtls_aes_free [function] [call site] 00129
2 mbedtls_gcm_free [function] [call site] 00130
2 ndpi_free [function] [call site] 00131
1 gpg_strerror_r [function] [call site] 00132
1 gcry_cipher_open [function] [call site] 00133
1 gpg_strerror_r [function] [call site] 00134
1 gcry_cipher_setkey [function] [call site] 00135
1 gpg_strerror_r [function] [call site] 00136
1 gcry_cipher_reset [function] [call site] 00137
2 check_valid_algo_mode [function] [call site] 00138
2 mbedtls_cipher_reset [function] [call site] 00139
1 gcry_cipher_setiv [function] [call site] 00140
2 check_valid_algo_mode [function] [call site] 00141
1 gpg_strerror_r [function] [call site] 00142
1 gcry_cipher_setiv [function] [call site] 00143
1 gcry_cipher_authenticate [function] [call site] 00144
2 check_valid_algo_mode [function] [call site] 00145
1 gcry_cipher_encrypt [function] [call site] 00146
1 gpg_strerror_r [function] [call site] 00147
1 gcry_cipher_decrypt [function] [call site] 00148
1 gcry_cipher_close [function] [call site] 00149
1 gpg_strerror_r [function] [call site] 00150
1 ndpi_free [function] [call site] 00151