blob: 0ca9b870b8bb2287cc9c717c92c56c1c4d230bdb [file] [log] [blame]
Philippe Antoine72333522018-05-03 16:40:24 +02001#include <stdint.h>
2#include "mbedtls/x509_csr.h"
3
Gilles Peskine1b6c09a2023-01-11 14:52:35 +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 Peskine1b6c09a2023-01-11 14:52:35 +010011 mbedtls_x509_csr_init(&csr);
Przemek Stekiel8fa17b62023-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 Peskine1b6c09a2023-01-11 14:52:35 +010018 ret = mbedtls_x509_csr_parse(&csr, Data, Size);
Philippe Antoine72333522018-05-03 16:40:24 +020019 if (ret == 0) {
Gilles Peskine1b6c09a2023-01-11 14:52:35 +010020 ret = mbedtls_x509_csr_info((char *) buf, sizeof(buf) - 1, " ", &csr);
Philippe Antoine72333522018-05-03 16:40:24 +020021 }
Przemek Stekield4d049b2023-04-19 13:47:43 +020022#if defined(MBEDTLS_USE_PSA_CRYPTO)
Przemek Stekiel8fa17b62023-04-19 11:47:01 +020023exit:
Przemek Stekiel8fa17b62023-04-19 11:47:01 +020024 mbedtls_psa_crypto_free();
Przemek Stekield4d049b2023-04-19 13:47:43 +020025#endif /* MBEDTLS_USE_PSA_CRYPTO */
Przemek Stekiel44f26942023-04-24 09:00:14 +020026 mbedtls_x509_csr_free(&csr);
Philippe Antoine72333522018-05-03 16:40:24 +020027#else
28 (void) Data;
29 (void) Size;
30#endif
31
32 return 0;
33}