From: Tim Rühsen Date: Tue, 15 Aug 2017 10:34:25 +0000 (+0200) Subject: fuzzer: Move regression corpora from tests/ to fuzz/ X-Git-Tag: gnutls_3_6_0~43 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fc4a8e62dc089cfa0330fbcc667b5bd0c8b713e5;p=thirdparty%2Fgnutls.git fuzzer: Move regression corpora from tests/ to fuzz/ See fuzz/README.md for the corresponding paths. Signed-off-by: Tim Rühsen --- diff --git a/tests/client-interesting/client-rsa-pss.raw b/fuzz/gnutls_client_fuzzer.in/client-rsa-pss.raw similarity index 100% rename from tests/client-interesting/client-rsa-pss.raw rename to fuzz/gnutls_client_fuzzer.in/client-rsa-pss.raw diff --git a/tests/client-interesting/client1.raw b/fuzz/gnutls_client_fuzzer.in/client1.raw similarity index 100% rename from tests/client-interesting/client1.raw rename to fuzz/gnutls_client_fuzzer.in/client1.raw diff --git a/tests/client-interesting/client2.raw b/fuzz/gnutls_client_fuzzer.in/client2.raw similarity index 100% rename from tests/client-interesting/client2.raw rename to fuzz/gnutls_client_fuzzer.in/client2.raw diff --git a/tests/client-interesting/client3.disabled b/fuzz/gnutls_client_fuzzer.in/client3.disabled similarity index 100% rename from tests/client-interesting/client3.disabled rename to fuzz/gnutls_client_fuzzer.in/client3.disabled diff --git a/tests/client-interesting/client3.raw b/fuzz/gnutls_client_fuzzer.in/client3.raw similarity index 100% rename from tests/client-interesting/client3.raw rename to fuzz/gnutls_client_fuzzer.in/client3.raw diff --git a/tests/ocsp-resp-interesting/1492.der b/fuzz/gnutls_ocsp_resp_parser_fuzzer.in/1492.der similarity index 100% rename from tests/ocsp-resp-interesting/1492.der rename to fuzz/gnutls_ocsp_resp_parser_fuzzer.in/1492.der diff --git a/tests/pkcs7-interesting/pkcs7-1.der b/fuzz/gnutls_pkcs7_parser_fuzzer.in/pkcs7-1.der similarity index 100% rename from tests/pkcs7-interesting/pkcs7-1.der rename to fuzz/gnutls_pkcs7_parser_fuzzer.in/pkcs7-1.der diff --git a/tests/pkcs7-interesting/pkcs7-1.der.err b/fuzz/gnutls_pkcs7_parser_fuzzer.in/pkcs7-1.der.err similarity index 100% rename from tests/pkcs7-interesting/pkcs7-1.der.err rename to fuzz/gnutls_pkcs7_parser_fuzzer.in/pkcs7-1.der.err diff --git a/tests/pkcs7-interesting/pkcs7-2.der b/fuzz/gnutls_pkcs7_parser_fuzzer.in/pkcs7-2.der similarity index 100% rename from tests/pkcs7-interesting/pkcs7-2.der rename to fuzz/gnutls_pkcs7_parser_fuzzer.in/pkcs7-2.der diff --git a/tests/pkcs7-interesting/pkcs7-2.der.err b/fuzz/gnutls_pkcs7_parser_fuzzer.in/pkcs7-2.der.err similarity index 100% rename from tests/pkcs7-interesting/pkcs7-2.der.err rename to fuzz/gnutls_pkcs7_parser_fuzzer.in/pkcs7-2.der.err diff --git a/tests/psk-server-interesting/psk-server1.raw b/fuzz/gnutls_psk_server_fuzzer.in/psk-server1.raw similarity index 100% rename from tests/psk-server-interesting/psk-server1.raw rename to fuzz/gnutls_psk_server_fuzzer.in/psk-server1.raw diff --git a/tests/server-interesting/server1.raw b/fuzz/gnutls_server_fuzzer.in/server-interesting/server1.raw similarity index 100% rename from tests/server-interesting/server1.raw rename to fuzz/gnutls_server_fuzzer.in/server-interesting/server1.raw diff --git a/tests/srp-server-interesting/srp-server1.raw b/fuzz/gnutls_srp_server_fuzzer.in/srp-server1.raw similarity index 100% rename from tests/srp-server-interesting/srp-server1.raw rename to fuzz/gnutls_srp_server_fuzzer.in/srp-server1.raw diff --git a/tests/Makefile.am b/tests/Makefile.am index e4e7097f16..3e52cc5f04 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -43,20 +43,16 @@ EXTRA_DIST = suppressions.valgrind eagain-common.h cert-common.h test-chains.h \ certs-interesting/cert3.der.err certs-interesting/cert4.der certs-interesting/cert5.der \ certs-interesting/cert6.der certs-interesting/cert7.der certs-interesting/cert8.der \ certs-interesting/cert9.der certs-interesting/cert5.der.err \ - certs-interesting/cert3.der.err certs-interesting/cert4.der pkcs7-interesting/pkcs7-1.der \ - pkcs7-interesting/pkcs7-1.der.err pkcs7-interesting/pkcs7-2.der pkcs7-interesting/pkcs7-2.der.err \ - client-interesting/client1.raw client-interesting/client2.raw client-interesting/client3.disabled \ - server-interesting/server1.raw scripts/common.sh scripts/starttls-common.sh \ - psk-server-interesting/psk-server1.raw \ - srp-server-interesting/srp-server1.raw \ - client-interesting/client3.raw rng-op.c x509sign-verify-common.h common-key-tests.h \ + certs-interesting/cert3.der.err certs-interesting/cert4.der \ + scripts/common.sh scripts/starttls-common.sh \ + rng-op.c x509sign-verify-common.h common-key-tests.h \ ocsp-tests/certs/ca.key ocsp-tests/certs/ca.pem ocsp-tests/certs/ocsp-server.key ocsp-tests/certs/ocsp-server.pem ocsp-tests/response1.der \ ocsp-tests/response2.der ocsp-tests/certs/ocsp_index.txt ocsp-tests/certs/ocsp_index.txt.attr \ ocsp-tests/certs/server_good.key ocsp-tests/certs/server_bad.key ocsp-tests/certs/server_good.template \ ocsp-tests/certs/server_bad.template ocsp-tests/certs/ocsp-staple-unrelated.der ocsp-tests/suppressions.valgrind \ data/listings-DTLS1.0 data/listings-SSL3.0 data/listings-TLS1.0 data/listings-TLS1.1 \ data/listings-SSL3.0-TLS1.1 p11-kit-trust-data/Example_Root_CA.p11-kit server-kx-neg-common.c \ - p11-kit-trust-data/Example_Root_CA.pem ocsp-resp-interesting/1492.der + p11-kit-trust-data/Example_Root_CA.pem AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) @@ -98,8 +94,7 @@ ctests = mini-record-2 simple gc set_pkcs12_cred cert certuniqueid tls-neg-ext-k tls10-server-kx-neg tls11-server-kx-neg tls12-server-kx-neg ssl30-server-kx-neg \ tls12-cipher-neg tls11-cipher-neg tls10-cipher-neg ssl30-cipher-neg \ crq_apis init_roundtrip pkcs12_s2k_pem dn2 mini-eagain tls-rehandshake-cert-3 \ - psk-server psk-client srp-server srp-client \ - nul-in-x509-names x509_altname pkcs12_encode mini-x509 ocsp-resp \ + nul-in-x509-names x509_altname pkcs12_encode mini-x509 \ tls-rehandshake-cert rng-fork mini-eagain-dtls resume-dtls \ x509cert x509cert-tl infoaccess mini-dtls-hello-verify sign-verify-ed25519-rfc8080 \ trustdb-tofu dtls-rehandshake-anon mini-alpn mini-dtls-large \ @@ -361,8 +356,5 @@ endif if WANT_TEST_SUITE -# These require the devel/fuzz directory which is not available on releases -ctests += client server - LOG_COMPILER = $(VALGRIND) endif diff --git a/tests/client.c b/tests/client.c deleted file mode 100644 index e284bebcb7..0000000000 --- a/tests/client.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (C) 2016 Red Hat, Inc. - * Copyright 2016 Alex Gaynor, Google Inc. - * - * Author: Nikos Mavrogiannopoulos, Alex Gaynor - * - * This file is part of GnuTLS. - * - * GnuTLS is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * GnuTLS is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GnuTLS; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include -#include - -#include "utils.h" - -#define true 1 - -/* This program will load certificates from CERT_DIR and try to print - * them. If CERT_DIR/certname.err is available, it should contain the - * error code that gnutls_x509_crt_import() should return. - */ - -#define CERT_DIR "client-interesting" - -int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); - -static int getnext(DIR **dirp, gnutls_datum_t *der) -{ - struct dirent *d; - char path[256]; - char cert_dir[256]; - const char *src; - int ret; - - src = getenv("srcdir"); - if (src == NULL) - src = "."; - - snprintf(cert_dir, sizeof(cert_dir), "%s/%s", src, CERT_DIR); - - if (*dirp == NULL) { - *dirp = opendir(cert_dir); - if (*dirp == NULL) - return -1; - } - - do { - d = readdir(*dirp); - if (d != NULL -#ifdef _DIRENT_HAVE_D_TYPE - && d->d_type == DT_REG -#endif - ) { - if (strstr(d->d_name, ".raw") == 0) - continue; - snprintf(path, sizeof(path), "%s/%s", cert_dir, d->d_name); - - success("Loading %s\n", path); - ret = gnutls_load_file(path, der); - if (ret < 0) { - return -1; - } - - return 0; - } - } while(d != NULL); - - closedir(*dirp); - return -1; /* finished */ -} - -#include "../devel/fuzz/gnutls_client_fuzzer.cc" - -void doit(void) -{ - int ret; - gnutls_datum_t raw; - DIR *dirp = NULL; - - ret = global_init(); - if (ret < 0) - fail("init %d\n", ret); - - while (getnext(&dirp, &raw)==0) { - LLVMFuzzerTestOneInput(raw.data, raw.size); - gnutls_free(raw.data); - raw.data = NULL; - raw.size = 0; - } - - gnutls_global_deinit(); -} diff --git a/tests/ocsp-resp.c b/tests/ocsp-resp.c deleted file mode 100644 index a5d3a06471..0000000000 --- a/tests/ocsp-resp.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (C) 2017 Red Hat, Inc. - * - * Author: Nikos Mavrogiannopoulos - * - * This file is part of GnuTLS. - * - * GnuTLS is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * GnuTLS is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include -#include - -#include "utils.h" - -/* This program will load certificates from CERT_DIR and try to print - * them. If CERT_DIR/certname.err is available, it should contain the - * error code that gnutls_x509_crt_import() should return. - */ - -#define CERT_DIR "ocsp-resp-interesting" - -int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); - -static int getnext(DIR **dirp, gnutls_datum_t *der) -{ - struct dirent *d; - char path[256]; - char cert_dir[256]; - const char *src; - int ret; - - src = getenv("srcdir"); - if (src == NULL) - src = "."; - - snprintf(cert_dir, sizeof(cert_dir), "%s/%s", src, CERT_DIR); - - if (*dirp == NULL) { - *dirp = opendir(cert_dir); - if (*dirp == NULL) - return -1; - } - - do { - d = readdir(*dirp); - if (d != NULL -#ifdef _DIRENT_HAVE_D_TYPE - && d->d_type == DT_REG -#endif - ) { - if (strstr(d->d_name, ".der") == 0) - continue; - snprintf(path, sizeof(path), "%s/%s", cert_dir, d->d_name); - - success("Loading %s\n", path); - ret = gnutls_load_file(path, der); - if (ret < 0) { - return -1; - } - - return 0; - } - } while(d != NULL); - - closedir(*dirp); - return -1; /* finished */ -} - -#include "../devel/fuzz/gnutls_ocsp_resp_parser_fuzzer.cc" - -void doit(void) -{ - int ret; - gnutls_datum_t raw; - DIR *dirp = NULL; - - ret = global_init(); - if (ret < 0) - fail("init %d\n", ret); - - while (getnext(&dirp, &raw)==0) { - LLVMFuzzerTestOneInput(raw.data, raw.size); - gnutls_free(raw.data); - raw.data = NULL; - raw.size = 0; - } - - gnutls_global_deinit(); -} diff --git a/tests/psk-client.c b/tests/psk-client.c deleted file mode 100644 index 3622f7207f..0000000000 --- a/tests/psk-client.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (C) 2016 Red Hat, Inc. - * Copyright 2016 Alex Gaynor, Google Inc. - * - * Author: Nikos Mavrogiannopoulos, Alex Gaynor - * - * This file is part of GnuTLS. - * - * GnuTLS is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * GnuTLS is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GnuTLS; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include -#include - -#include "utils.h" - -#define true 1 - -/* This program will load certificates from CERT_DIR and try to print - * them. If CERT_DIR/certname.err is available, it should contain the - * error code that gnutls_x509_crt_import() should return. - */ - -#define CERT_DIR "psk-client-interesting" - -int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); - -static int getnext(DIR **dirp, gnutls_datum_t *der) -{ - struct dirent *d; - char path[256]; - char cert_dir[256]; - const char *src; - int ret; - - src = getenv("srcdir"); - if (src == NULL) - src = "."; - - snprintf(cert_dir, sizeof(cert_dir), "%s/%s", src, CERT_DIR); - - if (*dirp == NULL) { - *dirp = opendir(cert_dir); - if (*dirp == NULL) - return -1; - } - - do { - d = readdir(*dirp); - if (d != NULL -#ifdef _DIRENT_HAVE_D_TYPE - && d->d_type == DT_REG -#endif - ) { - if (strstr(d->d_name, ".raw") == 0) - continue; - snprintf(path, sizeof(path), "%s/%s", cert_dir, d->d_name); - - success("Loading %s\n", path); - ret = gnutls_load_file(path, der); - if (ret < 0) { - return -1; - } - - return 0; - } - } while(d != NULL); - - closedir(*dirp); - return -1; /* finished */ -} - -#include "../devel/fuzz/gnutls_psk_client_fuzzer.cc" - -void doit(void) -{ - int ret; - gnutls_datum_t raw; - DIR *dirp = NULL; - - ret = global_init(); - if (ret < 0) - fail("init %d\n", ret); - - while (getnext(&dirp, &raw)==0) { - LLVMFuzzerTestOneInput(raw.data, raw.size); - gnutls_free(raw.data); - raw.data = NULL; - raw.size = 0; - } - - gnutls_global_deinit(); -} diff --git a/tests/psk-server.c b/tests/psk-server.c deleted file mode 100644 index 375a629c27..0000000000 --- a/tests/psk-server.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (C) 2016 Red Hat, Inc. - * Copyright 2016 Alex Gaynor, Google Inc. - * - * Author: Nikos Mavrogiannopoulos, Alex Gaynor - * - * This file is part of GnuTLS. - * - * GnuTLS is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * GnuTLS is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GnuTLS; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include -#include - -#include "utils.h" - -#define true 1 - -/* This program will load certificates from CERT_DIR and try to print - * them. If CERT_DIR/certname.err is available, it should contain the - * error code that gnutls_x509_crt_import() should return. - */ - -#define CERT_DIR "psk-server-interesting" - -int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); - -static int getnext(DIR **dirp, gnutls_datum_t *der) -{ - struct dirent *d; - char path[256]; - char cert_dir[256]; - const char *src; - int ret; - - src = getenv("srcdir"); - if (src == NULL) - src = "."; - - snprintf(cert_dir, sizeof(cert_dir), "%s/%s", src, CERT_DIR); - - if (*dirp == NULL) { - *dirp = opendir(cert_dir); - if (*dirp == NULL) - return -1; - } - - do { - d = readdir(*dirp); - if (d != NULL -#ifdef _DIRENT_HAVE_D_TYPE - && d->d_type == DT_REG -#endif - ) { - if (strstr(d->d_name, ".raw") == 0) - continue; - snprintf(path, sizeof(path), "%s/%s", cert_dir, d->d_name); - - success("Loading %s\n", path); - ret = gnutls_load_file(path, der); - if (ret < 0) { - return -1; - } - - return 0; - } - } while(d != NULL); - - closedir(*dirp); - return -1; /* finished */ -} - -#include "../devel/fuzz/gnutls_psk_server_fuzzer.cc" - -void doit(void) -{ - int ret; - gnutls_datum_t raw; - DIR *dirp = NULL; - - ret = global_init(); - if (ret < 0) - fail("init %d\n", ret); - - while (getnext(&dirp, &raw)==0) { - LLVMFuzzerTestOneInput(raw.data, raw.size); - gnutls_free(raw.data); - raw.data = NULL; - raw.size = 0; - } - - gnutls_global_deinit(); -} diff --git a/tests/server.c b/tests/server.c deleted file mode 100644 index 4067bb827e..0000000000 --- a/tests/server.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (C) 2016 Red Hat, Inc. - * Copyright 2016 Alex Gaynor, Google Inc. - * - * Author: Nikos Mavrogiannopoulos, Alex Gaynor - * - * This file is part of GnuTLS. - * - * GnuTLS is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * GnuTLS is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GnuTLS; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include -#include - -#include "utils.h" - -#define true 1 - -/* This program will load certificates from CERT_DIR and try to print - * them. If CERT_DIR/certname.err is available, it should contain the - * error code that gnutls_x509_crt_import() should return. - */ - -#define CERT_DIR "server-interesting" - -int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); - -static int getnext(DIR **dirp, gnutls_datum_t *der) -{ - struct dirent *d; - char path[256]; - char cert_dir[256]; - const char *src; - int ret; - - src = getenv("srcdir"); - if (src == NULL) - src = "."; - - snprintf(cert_dir, sizeof(cert_dir), "%s/%s", src, CERT_DIR); - - if (*dirp == NULL) { - *dirp = opendir(cert_dir); - if (*dirp == NULL) - return -1; - } - - do { - d = readdir(*dirp); - if (d != NULL -#ifdef _DIRENT_HAVE_D_TYPE - && d->d_type == DT_REG -#endif - ) { - if (strstr(d->d_name, ".raw") == 0) - continue; - snprintf(path, sizeof(path), "%s/%s", cert_dir, d->d_name); - - success("Loading %s\n", path); - ret = gnutls_load_file(path, der); - if (ret < 0) { - return -1; - } - - return 0; - } - } while(d != NULL); - - closedir(*dirp); - return -1; /* finished */ -} - -#include "../devel/fuzz/gnutls_server_fuzzer.cc" - -void doit(void) -{ - int ret; - gnutls_datum_t raw; - DIR *dirp = NULL; - - ret = global_init(); - if (ret < 0) - fail("init %d\n", ret); - - while (getnext(&dirp, &raw)==0) { - LLVMFuzzerTestOneInput(raw.data, raw.size); - gnutls_free(raw.data); - raw.data = NULL; - raw.size = 0; - } - - gnutls_global_deinit(); -} diff --git a/tests/srp-client.c b/tests/srp-client.c deleted file mode 100644 index d4a3f6ce2a..0000000000 --- a/tests/srp-client.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (C) 2016 Red Hat, Inc. - * Copyright 2016 Alex Gaynor, Google Inc. - * - * Author: Nikos Mavrogiannopoulos, Alex Gaynor - * - * This file is part of GnuTLS. - * - * GnuTLS is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * GnuTLS is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GnuTLS; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include -#include - -#include "utils.h" - -#define true 1 - -/* This program will load certificates from CERT_DIR and try to print - * them. If CERT_DIR/certname.err is available, it should contain the - * error code that gnutls_x509_crt_import() should return. - */ - -#define CERT_DIR "srp-client-interesting" - -int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); - -static int getnext(DIR **dirp, gnutls_datum_t *der) -{ - struct dirent *d; - char path[256]; - char cert_dir[256]; - const char *src; - int ret; - - src = getenv("srcdir"); - if (src == NULL) - src = "."; - - snprintf(cert_dir, sizeof(cert_dir), "%s/%s", src, CERT_DIR); - - if (*dirp == NULL) { - *dirp = opendir(cert_dir); - if (*dirp == NULL) - return -1; - } - - do { - d = readdir(*dirp); - if (d != NULL -#ifdef _DIRENT_HAVE_D_TYPE - && d->d_type == DT_REG -#endif - ) { - if (strstr(d->d_name, ".raw") == 0) - continue; - snprintf(path, sizeof(path), "%s/%s", cert_dir, d->d_name); - - success("Loading %s\n", path); - ret = gnutls_load_file(path, der); - if (ret < 0) { - return -1; - } - - return 0; - } - } while(d != NULL); - - closedir(*dirp); - return -1; /* finished */ -} - -#include "../devel/fuzz/gnutls_srp_client_fuzzer.cc" - -void doit(void) -{ - int ret; - gnutls_datum_t raw; - DIR *dirp = NULL; - - ret = global_init(); - if (ret < 0) - fail("init %d\n", ret); - - while (getnext(&dirp, &raw)==0) { - LLVMFuzzerTestOneInput(raw.data, raw.size); - gnutls_free(raw.data); - raw.data = NULL; - raw.size = 0; - } - - gnutls_global_deinit(); -} diff --git a/tests/srp-server.c b/tests/srp-server.c deleted file mode 100644 index 90dbce4574..0000000000 --- a/tests/srp-server.c +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (C) 2016 Red Hat, Inc. - * Copyright 2016 Alex Gaynor, Google Inc. - * - * Author: Nikos Mavrogiannopoulos, Alex Gaynor - * - * This file is part of GnuTLS. - * - * GnuTLS is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * GnuTLS is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GnuTLS; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include -#include - -#include "utils.h" - -#define true 1 - -/* This program will load certificates from CERT_DIR and try to print - * them. If CERT_DIR/certname.err is available, it should contain the - * error code that gnutls_x509_crt_import() should return. - */ - -#define CERT_DIR "srp-server-interesting" - -int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size); - -static int getnext(DIR **dirp, gnutls_datum_t *der) -{ - struct dirent *d; - char path[256]; - char cert_dir[256]; - const char *src; - int ret; - - src = getenv("srcdir"); - if (src == NULL) - src = "."; - - snprintf(cert_dir, sizeof(cert_dir), "%s/%s", src, CERT_DIR); - - if (*dirp == NULL) { - *dirp = opendir(cert_dir); - if (*dirp == NULL) - return -1; - } - - do { - d = readdir(*dirp); - if (d != NULL -#ifdef _DIRENT_HAVE_D_TYPE - && d->d_type == DT_REG -#endif - ) { - if (strstr(d->d_name, ".raw") == 0) - continue; - snprintf(path, sizeof(path), "%s/%s", cert_dir, d->d_name); - - success("Loading %s\n", path); - ret = gnutls_load_file(path, der); - if (ret < 0) { - return -1; - } - - return 0; - } - } while(d != NULL); - - closedir(*dirp); - return -1; /* finished */ -} - -#include "../devel/fuzz/gnutls_srp_server_fuzzer.cc" - -void doit(void) -{ - int ret; - gnutls_datum_t raw; - DIR *dirp = NULL; - - ret = global_init(); - if (ret < 0) - fail("init %d\n", ret); - - while (getnext(&dirp, &raw)==0) { - LLVMFuzzerTestOneInput(raw.data, raw.size); - gnutls_free(raw.data); - raw.data = NULL; - raw.size = 0; - } - - gnutls_global_deinit(); -}