1# $OpenBSD: Makefile,v 1.9 2023/08/30 17:40:08 kn Exp $ 2 3BIOCTL ?= /sbin/bioctl 4 5CHUNKFILE = disk.img 6CHUNKDEVFILE = chunk.txt 7VOLDEVFILE = vol.txt 8ROUNDSFILE = rounds.txt 9PASSFILE = passphrase.txt 10 11OLDPW = oldsecret 12NEWPW = securenew 13NROUNDS ?= 17 14 15REGRESS_SETUP_ONCE = create-chunk create-passfile 16 17create-chunk: 18 dd if=/dev/zero of=${CHUNKFILE} bs=512k count=0 seek=1 status=none 19 ${SUDO} vnconfig -- ${CHUNKFILE} 1>${CHUNKDEVFILE} 20 echo 'RAID *' | ${SUDO} disklabel -wAT- -- "$$(<${CHUNKDEVFILE})" 21 22create-passfile: 23 ${SUDO} install -o root -m u=rw,go= /dev/null ${PASSFILE} 24 printf '%s\n' '${OLDPW}' | ${SUDO} tee ${PASSFILE} 1>/dev/null 25 26 27SUCCESS_TESTS = scripted-create-volume \ 28 scripted-recreate-volume \ 29 reopen-volume-with-passfile \ 30 scripted-change-passphrase \ 31 verify-increased-rounds 32REGRESS_TARGETS = ${SUCCESS_TESTS} 33REGRESS_ROOT_TARGETS = ${SUCCESS_TESTS} 34 35scripted-create-volume: 36 printf '%s\n' '${OLDPW}' | \ 37 ${SUDO} ${BIOCTL} -s -cC -l"$$(<${CHUNKDEVFILE})a" -- softraid0 | \ 38 grep -o 'sd[0-9]*$$' -- 1>${VOLDEVFILE} 39 40scripted-recreate-volume: detach-volume 41 printf '%s\n' '${OLDPW}' | \ 42 ${SUDO} ${BIOCTL} -s -Cforce -r${NROUNDS} -cC -l"$$(<${CHUNKDEVFILE})a" -- softraid0 | \ 43 grep -o 'sd[0-9]*$$' -- 1>${VOLDEVFILE} 44 45reopen-volume-with-passfile: detach-volume 46 ${SUDO} ${BIOCTL} -p${PASSFILE} -cC -l"$$(<${CHUNKDEVFILE})a" -- softraid0 | \ 47 grep -o 'sd[0-9]*$$' -- 1>${VOLDEVFILE} 48 49scripted-change-passphrase: 50 printf '%s\n%s\n' '${OLDPW}' '${NEWPW}' | \ 51 ${SUDO} ${BIOCTL} -s -P -v -- "$$(<${VOLDEVFILE})" | \ 52 tee -- ${ROUNDSFILE} 53 54verify-increased-rounds: 55 awk -safe -vOLD=${NROUNDS} -- '\ 56 NR == 1 { old = $$7 }; \ 57 NR == 2 { new = $$7 }; \ 58 END { exit !(OLD == old && old <= new) }' ${ROUNDSFILE} 59 60 61FAILURE_TESTS = reuse-active-chunk \ 62 use-public-passfile \ 63 use-foreign-passfile \ 64 set-empty-passphrase 65REGRESS_EXPECTED_FAILURES += ${FAILURE_TESTS} 66REGRESS_TARGETS += ${FAILURE_TESTS} 67REGRESS_ROOT_TARGETS += ${FAILURE_TESTS} 68 69reuse-active-chunk: 70 ${SUDO} ${BIOCTL} -cC -l"$$(<${CHUNKDEVFILE})a" -- softraid0 71 72use-public-passfile: 73 ${SUDO} chmod a=rwx ${PASSFILE} 74 ${SUDO} ${BIOCTL} -p${PASSFILE} -P -- "$$(<${VOLDEVFILE})" 75 76use-foreign-passfile: 77 ${SUDO} chown build ${PASSFILE} 78 ${SUDO} ${BIOCTL} -p${PASSFILE} -P -- "$$(<${VOLDEVFILE})" 79 80set-empty-passphrase: 81 printf '\n' | ${SUDO} ${BIOCTL} -s -P -- "$$(<${VOLDEVFILE})" 82 83 84CLEANFILES = *.txt *.img 85REGRESS_CLEANUP = cleanup 86 87detach-volume: 88 ${SUDO} ${BIOCTL} -d -- "$$(<${VOLDEVFILE})" 2>/dev/null 89cleanup: detach-volume 90 ${SUDO} vnconfig -u -- "$$(<${CHUNKDEVFILE})" 2>/dev/null 91 92.include <bsd.regress.mk> 93