Fuzz introspector: fuzz_gcrypt_gcm
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
2 2 1 :

['mbedtls_internal_aes_decrypt']

2 2 mbedtls_aes_crypt_ecb call site: 00000 /src/ndpi/src/lib/third_party/src/gcrypt/aes.c:511
0 73 1 :

['mbedtls_gcm_update']

0 73 mbedtls_cipher_update call site: 00009 /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:245
0 0 None 4 43 mbedtls_gcm_finish call site: 00052 /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:556
0 0 None 0 205 mbedtls_gcm_update call site: 00011 /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:492
0 0 None 0 31 mbedtls_gcm_update_ad call site: 00045 /src/ndpi/src/lib/third_party/src/gcrypt/gcm.c:379
0 0 None 0 0 mbedtls_cipher_get_block_size call site: 00009 /src/ndpi/src/lib/third_party/include/gcrypt/cipher.h:576
0 0 None 0 0 mbedtls_cipher_setkey call site: 00006 /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:111
0 0 None 0 0 mbedtls_cipher_setkey call site: 00006 /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:127
0 0 None 0 0 mbedtls_cipher_update call site: 00008 /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:234
0 0 None 0 0 mbedtls_cipher_update call site: 00009 /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:240
0 0 None 0 0 mbedtls_cipher_update call site: 00009 /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:247
0 0 None 0 0 mbedtls_cipher_update call site: 00009 /src/ndpi/src/lib/third_party/src/gcrypt/cipher.c:252

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __assert_fail [call site] 00001
1 mbedtls_gcm_init [function] [call site] 00002
1 mbedtls_gcm_init [function] [call site] 00003
1 mbedtls_gcm_setkey [function] [call site] 00004
2 mbedtls_cipher_info_from_values [function] [call site] 00005
2 mbedtls_cipher_setkey [function] [call site] 00006
2 gcm_gen_table [function] [call site] 00007
3 mbedtls_cipher_update [function] [call site] 00008
4 mbedtls_cipher_get_block_size [function] [call site] 00009
4 mbedtls_gcm_update [function] [call site] 00010
5 gcm_mult [function] [call site] 00011
6 __bswap_64 [function] [call site] 00012
6 __bswap_64 [function] [call site] 00013
6 mbedtls_aesni_gcm_mult [function] [call site] 00014
6 __bswap_64 [function] [call site] 00015
6 __bswap_64 [function] [call site] 00016
5 gcm_mask [function] [call site] 00017
6 mbedtls_cipher_update [function] [call site] 00018
6 xorbytes3d [function] [call site] 00019
6 xorbytes3e [function] [call site] 00020
3 htonl [call site] 00027
3 htonl [call site] 00028
3 htonl [call site] 00029
3 htonl [call site] 00030
3 mbedtls_aesni_has_support [function] [call site] 00031
4 fopen [call site] 00032
4 getline [call site] 00033
4 strstr [call site] 00034
4 fclose [call site] 00035
1 mbedtls_gcm_setkey [function] [call site] 00036
1 mbedtls_gcm_crypt_and_tag [function] [call site] 00037
2 mbedtls_gcm_starts [function] [call site] 00038
3 __bswap_64 [function] [call site] 00039
3 mbedtls_cipher_update [function] [call site] 00044
2 mbedtls_gcm_update_ad [function] [call site] 00045
2 mbedtls_gcm_update [function] [call site] 00051
2 mbedtls_gcm_finish [function] [call site] 00052
1 mbedtls_gcm_auth_decrypt [function] [call site] 00060
2 mbedtls_gcm_crypt_and_tag [function] [call site] 00061
1 memcmp [call site] 00062
1 __assert_fail [call site] 00063
1 mbedtls_gcm_free [function] [call site] 00064
1 mbedtls_gcm_free [function] [call site] 00065