blob: 7946e57eda03d28dc6b5cd2f6de2fcb9748e54ca [file] [log] [blame]
Philippe Antoine72333522018-05-03 16:40:24 +02001#include <stdint.h>
2#include "mbedtls/x509_csr.h"
3
Gilles Peskine449bd832023-01-11 14:50:10 +01004int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
5{
Philippe Antoine72333522018-05-03 16:40:24 +02006#ifdef MBEDTLS_X509_CSR_PARSE_C
7 int ret;
8 mbedtls_x509_csr csr;
9 unsigned char buf[4096];
10
Gilles Peskine449bd832023-01-11 14:50:10 +010011 mbedtls_x509_csr_init(&csr);
Przemek Stekiel774f9de2023-04-19 11:47:01 +020012#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 */
Gilles Peskine449bd832023-01-11 14:50:10 +010018 ret = mbedtls_x509_csr_parse(&csr, Data, Size);
Hanno Becker54ac1852020-10-09 09:45:29 +010019#if !defined(MBEDTLS_X509_REMOVE_INFO)
Philippe Antoine72333522018-05-03 16:40:24 +020020 if (ret == 0) {
Gilles Peskine449bd832023-01-11 14:50:10 +010021 ret = mbedtls_x509_csr_info((char *) buf, sizeof(buf) - 1, " ", &csr);
Philippe Antoine72333522018-05-03 16:40:24 +020022 }
Hanno Becker54ac1852020-10-09 09:45:29 +010023#else
24 ((void) ret);
Hanno Beckereb2efb02020-10-16 06:54:39 +010025 ((void) buf);
Hanno Becker54ac1852020-10-09 09:45:29 +010026#endif /* !MBEDTLS_X509_REMOVE_INFO */
Przemek Stekiel758aef62023-04-19 13:47:43 +020027
28#if defined(MBEDTLS_USE_PSA_CRYPTO)
Przemek Stekiel774f9de2023-04-19 11:47:01 +020029exit:
Przemek Stekiel774f9de2023-04-19 11:47:01 +020030 mbedtls_psa_crypto_free();
Przemek Stekiel758aef62023-04-19 13:47:43 +020031#endif /* MBEDTLS_USE_PSA_CRYPTO */
Przemek Stekiel53463962023-04-24 09:00:14 +020032 mbedtls_x509_csr_free(&csr);
Philippe Antoine72333522018-05-03 16:40:24 +020033#else
34 (void) Data;
35 (void) Size;
36#endif
37
38 return 0;
39}