@@ -9,7 +9,7 @@ MAP=tctst
99PASSWORD=" aaaaaaaaaaaa"
1010PASSWORD_HIDDEN=" bbbbbbbbbbbb"
1111PASSWORD_72C=" aaaaaaaaaaaabbbbbbbbbbbbccccccccccccddddddddddddeeeeeeeeeeeeffffffffffff"
12- PIM=1234
12+ PASSWORD_PIM= " cccccccccccccccccccc "
1313LOOP_SYS=" "
1414PART_IMG=tctst-part-img
1515
@@ -77,11 +77,40 @@ test_kdf() # hash img_hash
7777 fi
7878}
7979
80- get_HASH_CIPHER () # filename
80+ test_pbkdf () # pbkdf img_hash
81+ {
82+ $CRYPTOCHECK pbkdf $1
83+ if [ $? -ne 0 ] ; then
84+ echo " $1 [N/A]"
85+ IMGS=$( ls $TST_DIR /[tv]c* | grep " $2 " )
86+ [ -n " $IMGS " ] && rm $IMGS
87+ else
88+ echo " $1 [OK]"
89+ fi
90+ }
91+
92+ get_PARAMS () # filename
8193{
8294 # speed up the test by limiting options for hash and (first) cipher
8395 HASH=$( echo $file | cut -d' -' -f3)
8496 CIPHER=$( echo $file | cut -d' -' -f5)
97+
98+ if [[ $file =~ vcpim.* ]] ; then
99+ PIM=$( echo $file | sed -r s/.* vcpim_1_\( [[:digit:]]+\) .* /\\ 1/)
100+ PIM_OPT=" --veracrypt-pim $PIM "
101+ PWD=$PASSWORD_PIM
102+ else
103+ PIM=" "
104+ PIM_OPT=" "
105+ PWD=$PASSWORD
106+ fi
107+
108+ SYS_OPT=" "
109+ if [[ $file =~ sys_.* ]] ; then
110+ SYS_OPT=" --tcrypt-system"
111+ else
112+ SYS_OPT=" "
113+ fi
85114}
86115
87116test_required ()
@@ -97,6 +126,8 @@ test_required()
97126 test_kdf whirlpool whirlpool
98127 test_kdf stribog512 stribog
99128
129+ test_pbkdf argon2id argon2id
130+
100131 echo " REQUIRED CIPHERS TEST"
101132 test_one aes cbc 256 cbc-aes
102133 test_one aes lrw 384 lrw-aes
@@ -155,45 +186,39 @@ test_required
155186echo " HEADER CHECK"
156187for file in $( ls $TST_DIR /[tv]c_* $TST_DIR /vcpim_* $TST_DIR /sys_[tv]c_* ) ; do
157188 echo -n " $file "
158- PIM_OPT=" "
159- [[ $file =~ vcpim.* ]] && PIM_OPT=" --veracrypt-pim $PIM "
160- SYS_OPT=" "
161- [[ $file =~ sys_.* ]] && SYS_OPT=" --tcrypt-system"
162- get_HASH_CIPHER $file
163- echo $PASSWORD | $CRYPTSETUP tcryptDump $SYS_OPT $PIM_OPT -h $HASH -c $CIPHER $file > /dev/null || fail
189+ get_PARAMS $file
190+ echo $PWD | $CRYPTSETUP tcryptDump $SYS_OPT $PIM_OPT -h $HASH -c $CIPHER $file > /dev/null || fail
164191 if [[ $file =~ .* -sha512-xts-aes$ ]] ; then
165- echo $PASSWORD | $CRYPTSETUP tcryptDump $SYS_OPT $PIM_OPT -h sha512 -c aes $file > /dev/null || fail
166- echo $PASSWORD | $CRYPTSETUP tcryptDump $SYS_OPT $PIM_OPT -h xxxx $file 2> /dev/null && fail
167- echo $PASSWORD | $CRYPTSETUP tcryptDump $SYS_OPT $PIM_OPT -h sha512 -c xxx $file 2> /dev/null && fail
192+ echo $PWD | $CRYPTSETUP tcryptDump $SYS_OPT $PIM_OPT -h sha512 -c aes $file > /dev/null || fail
193+ echo $PWD | $CRYPTSETUP tcryptDump $SYS_OPT $PIM_OPT -h xxxx $file 2> /dev/null && fail
194+ echo $PWD | $CRYPTSETUP tcryptDump $SYS_OPT $PIM_OPT -h sha512 -c xxx $file 2> /dev/null && fail
168195 fi
169196 echo " [OK]"
170197done
171198
172199echo " HEADER CHECK (TCRYPT only)"
173200for file in $( ls $TST_DIR /vc_* $TST_DIR /vcpim_* ) ; do
174201 echo -n " $file "
175- PIM_OPT=" "
176- [[ $file =~ vcpim.* ]] && PIM_OPT=" --veracrypt-pim $PIM "
177- get_HASH_CIPHER $file
178- echo $PASSWORD | $CRYPTSETUP tcryptDump --disable-veracrypt $PIM_OPT -h $HASH -c $CIPHER $file > /dev/null 2>&1 && fail
202+ get_PARAMS $file
203+ echo $PWD | $CRYPTSETUP tcryptDump --disable-veracrypt $PIM_OPT -h $HASH -c $CIPHER $file > /dev/null 2>&1 && fail
179204 echo " [OK]"
180205done
181206
182207echo " HEADER CHECK (HIDDEN)"
183208for file in $( ls $TST_DIR /[tv]c_* -hidden) ; do
184209 echo -n " $file (hidden)"
185- get_HASH_CIPHER $file
210+ get_PARAMS $file
186211 echo $PASSWORD_HIDDEN | $CRYPTSETUP tcryptDump --tcrypt-hidden -h $HASH -c $CIPHER $file > /dev/null || fail
187212 echo " [OK]"
188213done
189214
190215echo " HEADER KEYFILES CHECK"
191216for file in $( ls $TST_DIR /[tv]ck_* ) ; do
192217 echo -n " $file "
218+ get_PARAMS $file
193219 PWD=$PASSWORD
194220 [[ $file =~ vck_1_nopw.* ]] && PWD=" "
195221 [[ $file =~ vck_1_pw72.* ]] && PWD=$PASSWORD_72C
196- get_HASH_CIPHER $file
197222 echo $PWD | $CRYPTSETUP tcryptDump -d $TST_DIR /keyfile1 -d $TST_DIR /keyfile2 -h $HASH -c $CIPHER $file > /dev/null || fail
198223 echo " [OK]"
199224done
207232echo " ACTIVATION FS UUID CHECK"
208233for file in $( ls $TST_DIR /[tv]c_* $TST_DIR /vcpim_* ) ; do
209234 echo -n " $file "
210- PIM_OPT=" "
211- [[ $file =~ vcpim.* ]] && PIM_OPT=" --veracrypt-pim $PIM "
212- get_HASH_CIPHER $file
213- out=$( echo $PASSWORD | $CRYPTSETUP tcryptOpen $PIM_OPT -r -h $HASH -c $CIPHER $file $MAP 2>&1 )
235+ get_PARAMS $file
236+ out=$( echo $PWD | $CRYPTSETUP tcryptOpen $PIM_OPT -r -h $HASH -c $CIPHER $file $MAP 2>&1 )
214237 ret=$?
215238 [ $ret -eq 1 ] && ( echo " $out " | grep -q -e " TCRYPT legacy mode" ) && echo " [N/A]" && continue
216239 [ $ret -eq 1 ] && ( echo " $out " | grep -q -e " TCRYPT compatible mapping" ) && echo " [N/A]" && continue
@@ -241,28 +264,28 @@ for file in $(ls $TST_DIR/sys_[tv]c_*) ; do
241264 LOOP_SYS=" "
242265 continue
243266 fi
244- get_HASH_CIPHER $file
267+ get_PARAMS $file
245268 # map through partition name
246269 echo -n " [PART]"
247- echo $PASSWORD | $CRYPTSETUP tcryptOpen --tcrypt-system -r -h $HASH -c $CIPHER $LOOP_PART $MAP || fail
270+ echo $PWD | $CRYPTSETUP tcryptOpen --tcrypt-system -r -h $HASH -c $CIPHER $LOOP_PART $MAP || fail
248271 check_uuid DEAD-BABE
249272 $CRYPTSETUP close $MAP || fail
250273 if [[ $file =~ _part ]]; then
251274 # map through image only (TCRYPT hdr contains partition offset and size)
252275 echo -n " [IMG]"
253- echo $PASSWORD | $CRYPTSETUP tcryptOpen --tcrypt-system -r -h $HASH -c $CIPHER $file $MAP 2> /dev/null || fail
276+ echo $PWD | $CRYPTSETUP tcryptOpen --tcrypt-system -r -h $HASH -c $CIPHER $file $MAP 2> /dev/null || fail
254277 check_uuid DEAD-BABE
255278 $CRYPTSETUP close $MAP || fail
256279 # map through full device (TCRYPT hdr contains partition offset and size)
257280 echo -n " [DRIVE]"
258- echo $PASSWORD | $CRYPTSETUP tcryptOpen --tcrypt-system -r -h $HASH -c $CIPHER $LOOP_SYS $MAP || fail
281+ echo $PWD | $CRYPTSETUP tcryptOpen --tcrypt-system -r -h $HASH -c $CIPHER $LOOP_SYS $MAP || fail
259282 check_uuid DEAD-BABE
260283 $CRYPTSETUP close $MAP || fail
261284 elif [[ $file =~ _full ]]; then
262285 # map through image + header in real partition (whole system)
263286 dd if=$LOOP_PART of=$PART_IMG bs=1M > /dev/null 2>&1
264287 echo -n " [PART+IMG]"
265- echo $PASSWORD | $CRYPTSETUP tcryptOpen --tcrypt-system -r -h $HASH -c $CIPHER --header $LOOP_PART $PART_IMG $MAP || fail
288+ echo $PWD | $CRYPTSETUP tcryptOpen --tcrypt-system -r -h $HASH -c $CIPHER --header $LOOP_PART $PART_IMG $MAP || fail
266289 check_uuid DEAD-BABE
267290 $CRYPTSETUP close $MAP || fail
268291 rm $PART_IMG
275298echo " ACTIVATION FS UUID (HIDDEN) CHECK"
276299for file in $( ls $TST_DIR /[tv]c_* -hidden) ; do
277300 echo -n " $file "
278- get_HASH_CIPHER $file
301+ get_PARAMS $file
279302 out=$( echo $PASSWORD_HIDDEN | $CRYPTSETUP tcryptOpen -r -h $HASH -c $CIPHER $file $MAP --tcrypt-hidden 2>&1 )
280303 ret=$?
281304 [ $ret -eq 1 ] && ( echo " $out " | grep -q -e " TCRYPT legacy mode" ) && echo " [N/A]" && continue
0 commit comments