diff --git a/tests/fuzzing/x509/Makefile b/tests/fuzzing/x509/Makefile new file mode 100644 index 000000000..d7f751a9d --- /dev/null +++ b/tests/fuzzing/x509/Makefile @@ -0,0 +1,20 @@ +all: x509 +include ../rules.include + +LIBS += $(SRC)/common/libcommon.a +LIBS += $(SRC)/crypto/libcrypto.a +LIBS += $(SRC)/tls/libtls.a +LIBS += $(SRC)/utils/libutils.a + +ELIBS += $(SRC)/crypto/libcrypto.a +ELIBS += $(SRC)/tls/libtls.a + +x509: x509.o $(OBJS) $(LIBS) + $(LDO) $(LDFLAGS) -o $@ $^ $(LIBS) $(ELIBS) + +clean: + $(MAKE) -C $(SRC) clean + $(MAKE) -C $(WPAS_SRC) clean + rm -f x509 *~ *.o *.d ../*~ ../*.o ../*.d + +-include $(OBJS:%.o=%.d) diff --git a/tests/fuzzing/x509/corpus/ca.der b/tests/fuzzing/x509/corpus/ca.der new file mode 100644 index 000000000..09d5fa051 Binary files /dev/null and b/tests/fuzzing/x509/corpus/ca.der differ diff --git a/tests/fuzzing/x509/x509.c b/tests/fuzzing/x509/x509.c new file mode 100644 index 000000000..2969fea3e --- /dev/null +++ b/tests/fuzzing/x509/x509.c @@ -0,0 +1,25 @@ +/* + * Testing tool for X.509v3 routines + * Copyright (c) 2006-2019, Jouni Malinen + * + * This software may be distributed under the terms of the BSD license. + * See README for more details. + */ + +#include "includes.h" + +#include "common.h" +#include "tls/x509v3.h" +#include "../fuzzer-common.h" + + +int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + struct x509_certificate *cert; + + wpa_fuzzer_set_debug_level(); + + cert = x509_certificate_parse(data, size); + x509_certificate_free(cert); + return 0; +}