xref: /aosp_15_r20/external/mbedtls/programs/fuzz/fuzz_x509csr.c (revision 62c56f9862f102b96d72393aff6076c951fb8148)
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 Ebrahimi int 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