1*62c56f98SSadaf Ebrahimi #define MBEDTLS_ALLOW_PRIVATE_ACCESS 2*62c56f98SSadaf Ebrahimi 3*62c56f98SSadaf Ebrahimi #include <stdint.h> 4*62c56f98SSadaf Ebrahimi #include "mbedtls/x509_csr.h" 5*62c56f98SSadaf Ebrahimi LLVMFuzzerTestOneInput(const uint8_t * Data,size_t Size)6*62c56f98SSadaf Ebrahimiint LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) 7*62c56f98SSadaf Ebrahimi { 8*62c56f98SSadaf Ebrahimi #ifdef MBEDTLS_X509_CSR_PARSE_C 9*62c56f98SSadaf Ebrahimi int ret; 10*62c56f98SSadaf Ebrahimi mbedtls_x509_csr csr; 11*62c56f98SSadaf Ebrahimi unsigned char buf[4096]; 12*62c56f98SSadaf Ebrahimi 13*62c56f98SSadaf Ebrahimi mbedtls_x509_csr_init(&csr); 14*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_USE_PSA_CRYPTO) 15*62c56f98SSadaf Ebrahimi psa_status_t status = psa_crypto_init(); 16*62c56f98SSadaf Ebrahimi if (status != PSA_SUCCESS) { 17*62c56f98SSadaf Ebrahimi goto exit; 18*62c56f98SSadaf Ebrahimi } 19*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_USE_PSA_CRYPTO */ 20*62c56f98SSadaf Ebrahimi ret = mbedtls_x509_csr_parse(&csr, Data, Size); 21*62c56f98SSadaf Ebrahimi #if !defined(MBEDTLS_X509_REMOVE_INFO) 22*62c56f98SSadaf Ebrahimi if (ret == 0) { 23*62c56f98SSadaf Ebrahimi ret = mbedtls_x509_csr_info((char *) buf, sizeof(buf) - 1, " ", &csr); 24*62c56f98SSadaf Ebrahimi } 25*62c56f98SSadaf Ebrahimi #else 26*62c56f98SSadaf Ebrahimi ((void) ret); 27*62c56f98SSadaf Ebrahimi ((void) buf); 28*62c56f98SSadaf Ebrahimi #endif /* !MBEDTLS_X509_REMOVE_INFO */ 29*62c56f98SSadaf Ebrahimi 30*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_USE_PSA_CRYPTO) 31*62c56f98SSadaf Ebrahimi exit: 32*62c56f98SSadaf Ebrahimi mbedtls_psa_crypto_free(); 33*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_USE_PSA_CRYPTO */ 34*62c56f98SSadaf Ebrahimi mbedtls_x509_csr_free(&csr); 35*62c56f98SSadaf Ebrahimi #else 36*62c56f98SSadaf Ebrahimi (void) Data; 37*62c56f98SSadaf Ebrahimi (void) Size; 38*62c56f98SSadaf Ebrahimi #endif 39*62c56f98SSadaf Ebrahimi 40*62c56f98SSadaf Ebrahimi return 0; 41*62c56f98SSadaf Ebrahimi } 42