Index: build/argon2/Makefile ================================================================== --- build/argon2/Makefile +++ build/argon2/Makefile @@ -2,16 +2,18 @@ all: out/argon2.c out/argon2.h src-patched/argon2.c src-patched/argon2.h src-patched/blake2b.c src-patched/blamka-round-ref.h src-patched/core.c src-patched/core.h src-patched/encoding.c src-patched/encoding.h src-patched/ref.c: src-patched Makefile -src-patched: src/argon2.c src/argon2.h src/blake2b.c src/blamka-round-ref.h src/core.c src/core.h src/encoding.c src/encoding.h src/ref.c patches/argon2-20181109-tclamalgamation.diff patches/argon2-20181109-noencoding.diff Makefile - rm -rf src-patched src-patched.new +src-patched: src/argon2.c src/argon2.h src/blake2b.c src/blamka-round-ref.h src/core.c src/core.h src/encoding.c src/encoding.h src/ref.c patches/argon2-20181109-tclamalgamation.diff patches/argon2-20181109-noencoding.diff patches/argon2-20181109-monocypherblock.diff Makefile + rm -rf src-patched.new mkdir src-patched.new cp $^ src-patched.new/ cd src-patched.new && patch --batch --posix -p1 < ../patches/argon2-20181109-tclamalgamation.diff cd src-patched.new && patch --batch --posix -p1 < ../patches/argon2-20181109-noencoding.diff + cd src-patched.new && patch --batch --posix -p1 < ../patches/argon2-20181109-monocypherblock.diff + rm -rf src-patched mv src-patched.new src-patched out/argon2.c: src-patched/argon2.c src-patched/ref.c src-patched/core.c src-patched/blake2b.c src-patched/encoding.c monocypher-blake2b.h Makefile mkdir -p out echo '#define ARGON2_NO_THREADS 1' > out/argon2.c.new.1 @@ -35,13 +37,11 @@ echo '#ifdef ARGON2_INTERNAL_ONLY' >> out/argon2.h.new.1 cat src-patched/blamka-round-ref.h src-patched/core.h src-patched/encoding.h >> out/argon2.h.new.1 echo '#endif' >> out/argon2.h.new.1 sed -r '/^extern int FLAG/ d;/#include "/ d;/( |\*)argon(2_ctx|2_verify|2_hash|2_type2|2_error_message|2_encodedlen|2i_|2d_|2id_)/ b;/:/ b;/^(static|extern|enum|typedef) / b;s@^[a-z]@static &@' out/argon2.h.new.1 > out/argon2.h.new.2 rm -f out/argon2.h.new.1 - sed '/^typedef struct .* block;$$/ {i \'$$'\n''#ifndef TCL_NANO_AMALGAMATION'$$'\n''s@ v\[@ a[@;p;i \'$$'\n''#endif'$$'\n''d}' out/argon2.h.new.2 > out/argon2.h.new.1 - rm -f out/argon2.h.new.2 - mv out/argon2.h.new.1 out/argon2.h + mv out/argon2.h.new.2 out/argon2.h install: out/argon2.c out/argon2.h mkdir -p '$(PREFIX)' cp out/argon2.c out/argon2.h '$(PREFIX)' ADDED build/argon2/patches/argon2-20181109-monocypherblock.diff Index: build/argon2/patches/argon2-20181109-monocypherblock.diff ================================================================== --- /dev/null +++ build/argon2/patches/argon2-20181109-monocypherblock.diff @@ -0,0 +1,13 @@ +--- a/core.h ++++ b/core.h +@@ -49,7 +49,9 @@ + * Memory blocks can be copied, XORed. Internal words can be accessed by [] (no + * bounds checking). + */ +-typedef struct block_ { uint64_t v[ARGON2_QWORDS_IN_BLOCK]; } block; ++#ifndef TCL_NANO_AMALGAMATION ++typedef struct block_ { uint64_t a[ARGON2_QWORDS_IN_BLOCK]; } block; ++#endif + + /*****************Functions that work with the block******************/ +