|
- .PHONY: all test shavs shamont shakat clean
- SHELL := /bin/bash
- PYTHON ?= python
-
- all:
- @echo "Not making test because that takes for fricken ever"
- @false
-
-
- define def_monte
- SHAMONT += test-sha3vs-$(1)-Monte
- test-sha3vs-$(1)-Monte: kat/$(1)Monte.rsp Strobe/Test/Sha3vs.py Strobe/Keccak.py
- $(PYTHON) -B -m Strobe.Test.Sha3vs \
- --test=Monte \
- --hash=$(1) \
- --seed=$(shell perl -ne 'print $$1 if /(?:Seed|Msg) = ([a-f0-9]+)/i' kat/$(1)Monte.rsp) \
- --min-len=$(shell perl -ne 'print $$1 if /.Minimum Output Length .bits. = ([0-9]+)/i' kat/$(1)Monte.rsp) \
- --max-len=$(shell perl -ne 'print $$1 if /.Maximum Output Length .bits. = ([0-9]+)/i' kat/$(1)Monte.rsp) \
- | diff -u --strip-trailing-cr <(egrep -v '^\#' $$<) -
- endef
-
- define def_kat
- SHAKAT += test-sha3vs-$(1)-$(2)
- test-sha3vs-$(1)-$(2): kat/$(1)$(2).rsp Strobe/Test/Sha3vs.py Strobe/Keccak.py
- $(PYTHON) -B -m Strobe.Test.Sha3vs \
- --test=Kat \
- --hash=$(1) \
- --file=$$< \
- | diff -u --strip-trailing-cr <(egrep -v '^\#' $$<) -
- endef
- define def_common
- $(eval $(call def_monte,$(1)))
- $(eval $(call def_kat,$(1),ShortMsg))
- $(eval $(call def_kat,$(1),LongMsg))
- endef
- ifneq ("$(wildcard kat)","")
- $(eval $(call def_common,SHA3_224))
- $(eval $(call def_common,SHA3_256))
- $(eval $(call def_common,SHA3_384))
- $(eval $(call def_common,SHA3_512))
- $(eval $(call def_common,SHAKE128))
- $(eval $(call def_common,SHAKE256))
- $(eval $(call def_kat,SHAKE128,VariableOut))
- $(eval $(call def_kat,SHAKE256,VariableOut))
- endif
-
- KAT1 = 'http://csrc.nist.gov/groups/STM/cavp/documents/sha3/sha-3bytetestvectors.zip'
- KAT2 = 'http://csrc.nist.gov/groups/STM/cavp/documents/sha3/shakebytetestvectors.zip'
- fetchkat:
- mkdir -p kat
- (cd kat && wget $(KAT1) && unzip `basename $(KAT1)`)
- (cd kat && wget $(KAT2) && unzip `basename $(KAT2)`)
-
-
- shamont: $(SHAMONT)
- shakat: $(SHAKAT)
- shavs: shakat shamont
- @echo "All known-answer tests passed"
-
- test-python:
- python -m unittest Strobe.Test.copy
-
- test: shavs
-
- clean:
- find . -name '*.pyc' -delete
|