1 #include <stdint.h> 2 #include "mbedtls/x509_crt.h" 3 LLVMFuzzerTestOneInput(const uint8_t * Data,size_t Size)4int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) 5 { 6 #ifdef MBEDTLS_X509_CRT_PARSE_C 7 int ret; 8 mbedtls_x509_crt crt; 9 unsigned char buf[4096]; 10 11 mbedtls_x509_crt_init(&crt); 12 #if defined(MBEDTLS_USE_PSA_CRYPTO) 13 psa_status_t status = psa_crypto_init(); 14 if (status != PSA_SUCCESS) { 15 goto exit; 16 } 17 #endif /* MBEDTLS_USE_PSA_CRYPTO */ 18 ret = mbedtls_x509_crt_parse(&crt, Data, Size); 19 if (ret == 0) { 20 ret = mbedtls_x509_crt_info((char *) buf, sizeof(buf) - 1, " ", &crt); 21 } 22 #if defined(MBEDTLS_USE_PSA_CRYPTO) 23 exit: 24 mbedtls_psa_crypto_free(); 25 #endif /* MBEDTLS_USE_PSA_CRYPTO */ 26 mbedtls_x509_crt_free(&crt); 27 #else 28 (void) Data; 29 (void) Size; 30 #endif 31 32 return 0; 33 } 34