#! /bin/sh
# Parses the source code
-frama-c frama-c/*.c -cpp-extra-args="-DED25519_SHA512" -save parsed.sav
+frama-c formal-analysis/*.c -save parsed.sav
# Analyses the source code
frama-c -load parsed.sav -val-builtins-auto -val -save value.sav -no-val-show-progress -memexec-all
all: vectors properties sodium donna
clean:
- rm -rf bin frama-c
+ rm -rf bin formal-analysis
rm -f src/*.gch src/rename_*
rm -f vectors properties sodium donna speed
sed 's/monocypher.h/rename_monocypher.h/' <$@1 >$@2
sed 's/sha512.h/rename_sha512.h/' <$@2 >$@
-frama-c: $(GEN_HEADERS) \
+formal-analysis: $(GEN_HEADERS) \
src/monocypher.c src/monocypher.h \
src/sha512.c src/sha512.h \
tests/vectors.c
- @echo copy sources to frama-c directory for analysis
- @mkdir -p frama-c
- @cp $^ frama-c
+ @echo "copy sources to formal-analysis directory for analysis (frama-c or TIS)"
+ @mkdir -p formal-analysis
+ @cp $^ formal-analysis
+ @echo "add #define ED25519_SHA512 on top of monocypher.c (for ed25519)"
+ @echo "#define ED25519_SHA512" > formal-analysis/tmp
+ @cat formal-analysis/tmp src/monocypher.c > formal-analysis/monocypher.c