1 EXTRA_DIST = README.md oss-fuzz-build.sh
4 LUKS2_plain_JSON.proto \
5 crypt2_load_fuzz.dict \
6 crypt2_load_ondisk_fuzz.dict \
7 crypt2_load_proto_plain_json_fuzz.dict \
8 unpoison-mutated-buffers-from-libfuzzer.patch
12 LUKS2_plain_JSON.pb.h \
13 LUKS2_plain_JSON.pb.cc
18 LIB_FUZZING_ENGINE := $(if $(LIB_FUZZING_ENGINE),$(LIB_FUZZING_ENGINE),"-fsanitize=fuzzer")
19 SANITIZER := $(if $(SANITIZER),,"-fsanitize=address")
21 DEPS_PATH := $(top_srcdir)/tests/fuzz/build/static_lib_deps
23 crypt2_load_fuzz_SOURCES = FuzzerInterface.h crypt2_load_fuzz.cc
24 crypt2_load_fuzz_LDADD = ../../libcryptsetup.la ../../libcrypto_backend.la -L$(DEPS_PATH)/lib
25 crypt2_load_fuzz_LDFLAGS = $(AM_LDFLAGS) $(LIB_FUZZING_ENGINE) $(SANITIZER)
26 crypt2_load_fuzz_CXXFLAGS = $(AM_CXXFLAGS) -I$(top_srcdir)/lib -I$(top_srcdir)/tests/fuzz
28 crypt2_load_ondisk_fuzz_SOURCES = FuzzerInterface.h crypt2_load_ondisk_fuzz.cc
29 crypt2_load_ondisk_fuzz_LDADD = ../../libcryptsetup.la -L$(DEPS_PATH)/lib
30 crypt2_load_ondisk_fuzz_LDFLAGS = $(AM_LDFLAGS) $(LIB_FUZZING_ENGINE) $(SANITIZER)
31 crypt2_load_ondisk_fuzz_CXXFLAGS = $(AM_CXXFLAGS) -I$(top_srcdir)/lib -I$(top_srcdir)/tests/fuzz
34 @ if test ! -d $(DEPS_PATH); then \
35 echo "You need to build static libraries first; use oss-fuzz-build.sh script."; \
38 test-environment: | test-environment-m $(DEPS_PATH)
40 LUKS2.pb.h: LUKS2.proto
41 $(DEPS_PATH)/bin/protoc LUKS2.proto --cpp_out=.
42 LUKS2.pb.cc: LUKS2.pb.h
44 LUKS2_plain_JSON.pb.h: LUKS2_plain_JSON.proto
45 $(DEPS_PATH)/bin/protoc LUKS2_plain_JSON.proto --cpp_out=.
46 LUKS2_plain_JSON.pb.cc: LUKS2_plain_JSON.pb.h
48 crypt2_load_proto_fuzz-crypt2_load_proto_fuzz.$(OBJEXT): LUKS2.pb.cc
49 crypt2_load_proto_plain_json_fuzz-crypt2_load_proto_plain_json_fuzz.$(OBJEXT): LUKS2_plain_JSON.pb.cc
51 nodist_crypt2_load_proto_fuzz_SOURCES = LUKS2.pb.h LUKS2.pb.cc
52 crypt2_load_proto_fuzz_SOURCES = FuzzerInterface.h \
53 crypt2_load_proto_fuzz.cc \
54 proto_to_luks2_converter.h \
55 proto_to_luks2_converter.cc
56 crypt2_load_proto_fuzz_LDADD = \
57 ../../libcryptsetup.la \
58 ../../libcrypto_backend.la \
59 -L$(DEPS_PATH)/lib -lprotobuf-mutator-libfuzzer -lprotobuf-mutator -lprotobuf
60 crypt2_load_proto_fuzz_LDFLAGS = $(AM_LDFLAGS) $(LIB_FUZZING_ENGINE) $(SANITIZER)
61 crypt2_load_proto_fuzz_CXXFLAGS = $(AM_CXXFLAGS) \
63 -I$(top_srcdir)/tests/fuzz \
64 -I$(DEPS_PATH)/include \
65 -I$(DEPS_PATH)/include/libprotobuf-mutator -I$(DEPS_PATH)/include/libprotobuf-mutator/src
67 nodist_crypt2_load_proto_plain_json_fuzz_SOURCES = LUKS2_plain_JSON.pb.h LUKS2_plain_JSON.pb.cc
68 crypt2_load_proto_plain_json_fuzz_SOURCES = FuzzerInterface.h \
69 crypt2_load_proto_plain_json_fuzz.cc \
70 json_proto_converter.h \
71 json_proto_converter.cc \
72 plain_json_proto_to_luks2_converter.h \
73 plain_json_proto_to_luks2_converter.cc
74 crypt2_load_proto_plain_json_fuzz_LDADD = \
75 ../../libcryptsetup.la \
76 ../../libcrypto_backend.la \
77 -L$(DEPS_PATH)/lib -lprotobuf-mutator-libfuzzer -lprotobuf-mutator -lprotobuf
78 crypt2_load_proto_plain_json_fuzz_LDFLAGS = $(AM_LDFLAGS) $(LIB_FUZZING_ENGINE) $(SANITIZER)
79 crypt2_load_proto_plain_json_fuzz_CXXFLAGS = $(AM_CXXFLAGS) \
81 -I$(top_srcdir)/tests/fuzz \
82 -I$(DEPS_PATH)/include \
83 -I$(DEPS_PATH)/include/libprotobuf-mutator -I$(DEPS_PATH)/include/libprotobuf-mutator/src
85 nodist_proto_to_luks2_SOURCES = LUKS2.pb.h LUKS2.pb.cc
86 proto_to_luks2_SOURCES = \
88 proto_to_luks2_converter.h \
89 proto_to_luks2_converter.cc
90 proto_to_luks2_LDADD = ../../libcryptsetup.la ../../libcrypto_backend.la -L$(DEPS_PATH)/lib -lprotobuf
91 proto_to_luks2_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer-no-link $(SANITIZER)
92 proto_to_luks2_CXXFLAGS = $(AM_CXXFLAGS) \
94 -I$(top_srcdir)/tests/fuzz \
95 -I$(DEPS_PATH)/include
97 nodist_plain_json_proto_to_luks2_SOURCES = LUKS2_plain_JSON.pb.h LUKS2_plain_JSON.pb.cc
98 plain_json_proto_to_luks2_SOURCES = \
99 plain_json_proto_to_luks2.cc \
100 plain_json_proto_to_luks2_converter.h \
101 plain_json_proto_to_luks2_converter.cc \
102 json_proto_converter.h \
103 json_proto_converter.cc
104 plain_json_proto_to_luks2_LDADD = ../../libcryptsetup.la ../../libcrypto_backend.la -L$(DEPS_PATH)/lib -lprotobuf
105 plain_json_proto_to_luks2_LDFLAGS = $(AM_LDFLAGS) -fsanitize=fuzzer-no-link $(SANITIZER)
106 plain_json_proto_to_luks2_CXXFLAGS = $(AM_CXXFLAGS) \
107 -I$(top_srcdir)/lib \
108 -I$(top_srcdir)/tests/fuzz \
109 -I$(DEPS_PATH)/include
111 if ENABLE_FUZZ_TARGETS
114 crypt2_load_ondisk_fuzz \
115 crypt2_load_proto_fuzz \
116 crypt2_load_proto_plain_json_fuzz \
118 plain_json_proto_to_luks2
120 fuzz-targets: test-environment $(noinst_PROGRAMS)