tmakefile - hashcrush - Compute Argon2id hashes
(HTM) git clone git://git.z3bra.org/hashcrush.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
tmakefile (1134B)
---
1 include config.mk
2
3 NPROC != type nproc>/dev/null && nproc || sysctl -n hw.ncpu
4 SEQ != type seq>/dev/null && seq 0 $$((${NPROC} - 1)) || jot ${NPROC} 0
5 CPU != for n in ${SEQ}; do printf '.cpu%02d\n' $$n; done
6
7 .PHONY: $(CPU:%=%.rec)
8
9 all: ${OUTFILE}
10
11 ${OUTFILE}:
12 @printf 'HASHDUMP > %s\n' $(CPU:%=%.rec)
13 @trap 'cat $(CPU:%=%.rec) > $@' EXIT TERM INT; \
14 make -j${NPROC} $(CPU:%=%.rec) > $@
15 @printf 'cat %s > %s\n' "$(CPU:%=%.rec)" "$@"
16
17 $(CPU:%=%.rec): ${DICT} tools/hashgen
18 while :; do ./tools/diceware -c ${WORDCOUNT} -f ${DICT} || exit; done \
19 | head -n $$((${COUNT}/${NPROC})) \
20 | awk '(NR%2){print toupper(substr($$0,1,1))substr($$0,2);} !(NR%2){print toupper($$0);}' \
21 | ./tools/hashdump > $@
22
23 tools/hashgen:
24 make -C hashgen
25 mv hashgen/hashgen tools/hashgen
26
27 ${DICT}:
28 curl -sSfL "${WORDLIST}" | grep -E '^[1-6]{5}' | sed "s/ /\t/;s/['\"]/\\\\&/" > $@
29
30 dist:
31 make distclean
32 mkdir rainbow
33 rsync -a README config.mk makefile hashgen tools rainbow/
34 tar -cj -f rainbow.tbz rainbow
35 rm -rf rainbow
36
37 clean:
38 rm -f hashes.rec .cpu*.rec
39
40 distclean:
41 rm -f .cpu* ${OUTFILE} ${DICT} rainbow.tbz tools/hashgen