Mercurial > dropbear
comparison Makefile.in @ 1756:d5680e12ac33
Move fuzzing code to fuzz/ subdirectory, improve Makefile.in
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Fri, 23 Oct 2020 23:10:20 +0800 |
parents | 7cb8bc5ce8b9 |
children | 2406a9987810 |
comparison
equal
deleted
inserted
replaced
1753:7c0fcd19e492 | 1756:d5680e12ac33 |
---|---|
60 CONVERTOBJS=dropbearconvert.o keyimport.o | 60 CONVERTOBJS=dropbearconvert.o keyimport.o |
61 | 61 |
62 SCPOBJS=scp.o progressmeter.o atomicio.o scpmisc.o compat.o | 62 SCPOBJS=scp.o progressmeter.o atomicio.o scpmisc.o compat.o |
63 | 63 |
64 ifeq (@DROPBEAR_FUZZ@, 1) | 64 ifeq (@DROPBEAR_FUZZ@, 1) |
65 allobjs = $(COMMONOBJS) fuzz-common.o fuzz-wrapfd.o $(CLISVROBJS) $(CLIOBJS) $(SVROBJS) @CRYPTLIB@ | 65 allobjs = $(COMMONOBJS) fuzz/fuzz-common.o fuzz/fuzz-wrapfd.o $(CLISVROBJS) $(CLIOBJS) $(SVROBJS) @CRYPTLIB@ |
66 allobjs:=$(subst svr-main.o, ,$(allobjs)) | 66 allobjs:=$(subst svr-main.o, ,$(allobjs)) |
67 allobjs:=$(subst cli-main.o, ,$(allobjs)) | 67 allobjs:=$(subst cli-main.o, ,$(allobjs)) |
68 | 68 |
69 dropbearobjs=$(allobjs) svr-main.o | 69 dropbearobjs=$(allobjs) svr-main.o |
70 dbclientobjs=$(allobjs) cli-main.o | 70 dbclientobjs=$(allobjs) cli-main.o |
71 dropbearkeyobjs=$(allobjs) $(KEYOBJS) | 71 dropbearkeyobjs=$(allobjs) $(KEYOBJS) |
72 dropbearconvertobjs=$(allobjs) $(CONVERTOBJS) | 72 dropbearconvertobjs=$(allobjs) $(CONVERTOBJS) |
73 # CXX only set when fuzzing | 73 # CXX only set when fuzzing |
74 CXX=@CXX@ | 74 CXX=@CXX@ |
75 FUZZ_CLEAN=fuzz-clean | |
75 else | 76 else |
76 dropbearobjs=$(COMMONOBJS) $(CLISVROBJS) $(SVROBJS) | 77 dropbearobjs=$(COMMONOBJS) $(CLISVROBJS) $(SVROBJS) |
77 dbclientobjs=$(COMMONOBJS) $(CLISVROBJS) $(CLIOBJS) | 78 dbclientobjs=$(COMMONOBJS) $(CLISVROBJS) $(CLIOBJS) |
78 dropbearkeyobjs=$(COMMONOBJS) $(KEYOBJS) | 79 dropbearkeyobjs=$(COMMONOBJS) $(KEYOBJS) |
79 dropbearconvertobjs=$(COMMONOBJS) $(CONVERTOBJS) | 80 dropbearconvertobjs=$(COMMONOBJS) $(CONVERTOBJS) |
244 $(MAKE) -C libtommath clean | 245 $(MAKE) -C libtommath clean |
245 | 246 |
246 sizes: dropbear | 247 sizes: dropbear |
247 objdump -t dropbear|grep ".text"|cut -d "." -f 2|sort -rn | 248 objdump -t dropbear|grep ".text"|cut -d "." -f 2|sort -rn |
248 | 249 |
249 clean: $(LIBTOM_CLEAN) thisclean | 250 clean: $(LIBTOM_CLEAN) $(FUZZ_CLEAN) thisclean |
250 | 251 |
251 thisclean: | 252 thisclean: |
252 -rm -f dropbear$(EXEEXT) dbclient$(EXEEXT) dropbearkey$(EXEEXT) \ | 253 -rm -f dropbear$(EXEEXT) dbclient$(EXEEXT) dropbearkey$(EXEEXT) \ |
253 dropbearconvert$(EXEEXT) scp$(EXEEXT) scp-progress$(EXEEXT) \ | 254 dropbearconvert$(EXEEXT) scp$(EXEEXT) scp-progress$(EXEEXT) \ |
254 dropbearmulti$(EXEEXT) *.o *.da *.bb *.bbg *.prof | 255 dropbearmulti$(EXEEXT) *.o *.da *.bb *.bbg *.prof |
269 # list of fuzz targets | 270 # list of fuzz targets |
270 FUZZ_TARGETS=fuzzer-preauth fuzzer-pubkey fuzzer-verify fuzzer-preauth_nomaths \ | 271 FUZZ_TARGETS=fuzzer-preauth fuzzer-pubkey fuzzer-verify fuzzer-preauth_nomaths \ |
271 fuzzer-kexdh fuzzer-kexecdh fuzzer-kexcurve25519 fuzzer-client fuzzer-client_nomaths | 272 fuzzer-kexdh fuzzer-kexecdh fuzzer-kexcurve25519 fuzzer-client fuzzer-client_nomaths |
272 | 273 |
273 FUZZER_OPTIONS = $(addsuffix .options, $(FUZZ_TARGETS)) | 274 FUZZER_OPTIONS = $(addsuffix .options, $(FUZZ_TARGETS)) |
275 FUZZ_OBJS = $(addprefix fuzz/,$(addsuffix .o,$(FUZZ_TARGETS))) | |
274 | 276 |
275 list-fuzz-targets: | 277 list-fuzz-targets: |
276 @echo $(FUZZ_TARGETS) | 278 @echo $(FUZZ_TARGETS) |
277 | 279 |
278 # fuzzers that don't use libfuzzer, just a standalone harness that feeds inputs | 280 # fuzzers that don't use libfuzzer, just a standalone harness that feeds inputs |
279 fuzzstandalone: FUZZLIB=fuzz-harness.o | 281 fuzzstandalone: FUZZLIB=fuzz/fuzz-harness.o |
280 fuzzstandalone: fuzz-harness.o fuzz-targets | 282 fuzzstandalone: fuzz/fuzz-harness.o fuzz-targets |
281 | 283 |
282 fuzz-harness.o: $(HEADERS) $(LIBTOM_DEPS) Makefile $(allobjs) fuzz-common.o | 284 # Build all the fuzzers. Usually like |
283 | 285 # make fuzz-targets FUZZLIB=-lFuzzer.a |
284 # build all the fuzzers. This will require fail to link unless built with | 286 # the library provides main(). Otherwise |
285 # make fuzz-targets FUZZLIB=-lFuzzer.a | 287 # make fuzzstandalone |
286 # or similar - the library provides main(). | 288 # provides a main in fuzz-harness.c |
287 fuzz-targets: $(FUZZ_TARGETS) $(FUZZER_OPTIONS) | 289 fuzz-targets: $(FUZZ_TARGETS) $(FUZZER_OPTIONS) |
288 | 290 |
289 fuzzer-preauth: fuzzer-preauth.o fuzz-harness.o | 291 $(FUZZ_TARGETS): $(FUZZ_OBJS) $(allobjs) $(LIBTOM_DEPS) |
290 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ | 292 $(CXX) $(CXXFLAGS) fuzz/[email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) -lcrypt |
291 | |
292 fuzzer-preauth_nomaths: fuzzer-preauth_nomaths.o fuzz-harness.o | |
293 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ | |
294 | |
295 fuzzer-pubkey: fuzzer-pubkey.o fuzz-harness.o | |
296 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ | |
297 | |
298 fuzzer-verify: fuzzer-verify.o fuzz-harness.o | |
299 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ | |
300 | |
301 fuzzer-kexdh: fuzzer-kexdh.o fuzz-harness.o | |
302 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ | |
303 | |
304 fuzzer-kexecdh: fuzzer-kexecdh.o fuzz-harness.o | |
305 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ | |
306 | |
307 fuzzer-kexcurve25519: fuzzer-kexcurve25519.o fuzz-harness.o | |
308 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ | |
309 | |
310 fuzzer-client: fuzzer-client.o fuzz-harness.o | |
311 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ | |
312 | |
313 fuzzer-client_nomaths: fuzzer-client_nomaths.o fuzz-harness.o | |
314 $(CXX) $(CXXFLAGS) [email protected] $(LDFLAGS) $(allobjs) -o $@$(EXEEXT) $(LIBTOM_LIBS) $(LIBS) $(FUZZLIB) @CRYPTLIB@ | |
315 | 293 |
316 fuzzer-%.options: Makefile | 294 fuzzer-%.options: Makefile |
317 echo "[libfuzzer]" > $@ | 295 echo "[libfuzzer]" > $@ |
318 echo "max_len = 50000" >> $@ | 296 echo "max_len = 50000" >> $@ |
319 | 297 |
327 echo > hostkeys.c | 305 echo > hostkeys.c |
328 /usr/bin/xxd -i -a keyr >> hostkeys.c | 306 /usr/bin/xxd -i -a keyr >> hostkeys.c |
329 /usr/bin/xxd -i -a keye >> hostkeys.c | 307 /usr/bin/xxd -i -a keye >> hostkeys.c |
330 /usr/bin/xxd -i -a keyd >> hostkeys.c | 308 /usr/bin/xxd -i -a keyd >> hostkeys.c |
331 /usr/bin/xxd -i -a keyed25519 >> hostkeys.c | 309 /usr/bin/xxd -i -a keyed25519 >> hostkeys.c |
310 | |
311 fuzz-clean: | |
312 -rm -f fuzz/*.o $(FUZZ_TARGETS) $(FUZZER_OPTIONS) |