Commit | Line | Data |
---|---|---|
2ff79b43 MW |
1 | ### -*-makefile-*- |
2 | ||
3 | BASE = distorted.org.uk | |
4 | ZONE = dnserr.$(BASE) | |
5 | ||
6 | KEYGEN = dnssec-keygen -aRSASHA256 -b1024 -Kkey/ | |
7 | SIGNZONE = dnssec-signzone -S -Kkey/ -dds/ | |
8 | SIGVALID = -s20000101000000 -e20500101000000 | |
9 | SIGOLD = -s20000101000000 -e20010101000000 | |
10 | ||
11 | all: | |
12 | ||
13 | DUMMY = refused wrong-ds | |
14 | DUMMYZONES = $(addsuffix .zone,$(DUMMY)) | |
15 | TARGETS += $(DUMMYZONES) | |
16 | $(DUMMYZONES): %.zone: utils.m4 dummy.in | |
17 | m4 -P -DBASE=$(BASE) >$@.new utils.m4 dummy.in | |
18 | mv $@.new $@ | |
19 | ||
20 | TARGETS += dnserr.zone | |
21 | dnserr.zone: utils.m4 config.m4 dnserr.in | |
22 | m4 -P -DBASE=$(BASE) >$@.new utils.m4 dnserr.in | |
23 | mv $@.new $@ | |
24 | ||
25 | KEYSTAMP = $(patsubst %,key/%.stamp, \ | |
26 | $(ZONE) \ | |
27 | $(addsuffix .$(ZONE),$(DUMMY))) | |
28 | $(KEYSTAMP): key/%.stamp: | |
29 | mkdir -p key | |
30 | $(KEYGEN) -fKSK $* | |
31 | $(KEYGEN) $* | |
32 | touch $@ | |
33 | all: $(KEYSTAMP) | |
34 | realclean::; rm -rf key/ | |
35 | ||
36 | DUMMYSIG = $(addsuffix .zone.sig,$(DUMMY)) | |
37 | TARGETS += $(DUMMYSIG) | |
38 | $(DUMMYSIG): %.zone.sig: %.zone | |
39 | wrong-ds.zone.sig: wrong-ds.zone key/wrong-ds.$(ZONE).stamp | |
40 | mkdir -p ds/ | |
41 | $(SIGNZONE) $(SIGVALID) -owrong-ds.$(ZONE) -f$@ $< | |
42 | clean::; rm -rf ds/ | |
43 | ||
44 | TARGETS += dnserr.zone.signew | |
45 | dnserr.zone.signew: dnserr.zone key/$(ZONE).stamp | |
46 | $(SIGNZONE) $(SIGVALID) -o$(ZONE) -f$@.bind $< | |
47 | ldns-read-zone $@.bind >$@.new | |
48 | rm $@.bind | |
49 | mv $@.new $@ | |
50 | ||
51 | TARGETS += dnserr.zone.sigold | |
52 | dnserr.zone.sigold: dnserr.zone key/$(ZONE).stamp | |
53 | $(SIGNZONE) $(SIGOLD) -P -o$(ZONE) -f$@.bind $< | |
54 | ldns-read-zone $@.bind >$@.new | |
55 | rm $@.bind | |
56 | mv $@.new $@ | |
57 | ||
58 | TARGETS += dnserr.zone.sig | |
59 | OLDSIGMATCH = $$1 == "expired-rrsig.$(ZONE)." && \ | |
60 | $$4 == "RRSIG" && $$5 == "A" | |
61 | BADSIGMATCH = $$1 == "invalid-rrsig.$(ZONE)." && \ | |
62 | $$4 == "RRSIG" && $$5 == "A" | |
63 | CLEAN += t.oldsig | |
64 | dnserr.zone.sig: dnserr.zone.sigold dnserr.zone.signew | |
65 | awk '$(OLDSIGMATCH) { print; }' \ | |
66 | dnserr.zone.sigold >t.oldsig | |
67 | awk '$(OLDSIGMATCH) { system("cat t.oldsig"); next; } \ | |
68 | { gsub(/invalid-rrsigx/, "invalid-rrsig"); print; }' \ | |
69 | dnserr.zone.signew >$@.new | |
70 | mv $@.new $@ | |
71 | ||
72 | CLEAN += $(TARGETS) | |
73 | all: $(TARGETS) | |
74 | .PHONY: all | |
75 | ||
76 | clean::; rm -f $(CLEAN) | |
77 | realclean:: clean; rm -f $(REALCLEAN) | |
78 | .PHONY: clean realclean |