blob: 7c9855792e4602a1d4eb2c6483409d5f4eca1ced [file] [log] [blame]
Mateusz Starzyk6c2e9b62021-05-19 17:54:54 +02001#define MBEDTLS_ALLOW_PRIVATE_ACCESS
2
Philippe Antoine72333522018-05-03 16:40:24 +02003#include <stdint.h>
4#include "mbedtls/x509_csr.h"
5
Gilles Peskine449bd832023-01-11 14:50:10 +01006int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
7{
Philippe Antoine72333522018-05-03 16:40:24 +02008#ifdef MBEDTLS_X509_CSR_PARSE_C
9 int ret;
10 mbedtls_x509_csr csr;
11 unsigned char buf[4096];
12
Gilles Peskine449bd832023-01-11 14:50:10 +010013 mbedtls_x509_csr_init(&csr);
Przemek Stekiel774f9de2023-04-19 11:47:01 +020014#if defined(MBEDTLS_USE_PSA_CRYPTO)
15 psa_status_t status = psa_crypto_init();
16 if (status != PSA_SUCCESS) {
17 goto exit;
18 }
19#endif /* MBEDTLS_USE_PSA_CRYPTO */
Gilles Peskine449bd832023-01-11 14:50:10 +010020 ret = mbedtls_x509_csr_parse(&csr, Data, Size);
Hanno Becker54ac1852020-10-09 09:45:29 +010021#if !defined(MBEDTLS_X509_REMOVE_INFO)
Philippe Antoine72333522018-05-03 16:40:24 +020022 if (ret == 0) {
Gilles Peskine449bd832023-01-11 14:50:10 +010023 ret = mbedtls_x509_csr_info((char *) buf, sizeof(buf) - 1, " ", &csr);
Philippe Antoine72333522018-05-03 16:40:24 +020024 }
Hanno Becker54ac1852020-10-09 09:45:29 +010025#else
26 ((void) ret);
Hanno Beckereb2efb02020-10-16 06:54:39 +010027 ((void) buf);
Hanno Becker54ac1852020-10-09 09:45:29 +010028#endif /* !MBEDTLS_X509_REMOVE_INFO */
Przemek Stekiel774f9de2023-04-19 11:47:01 +020029exit:
Gilles Peskine449bd832023-01-11 14:50:10 +010030 mbedtls_x509_csr_free(&csr);
Przemek Stekiel774f9de2023-04-19 11:47:01 +020031 mbedtls_psa_crypto_free();
Philippe Antoine72333522018-05-03 16:40:24 +020032#else
33 (void) Data;
34 (void) Size;
35#endif
36
37 return 0;
38}