Skip to content

Commit ee1c867

Browse files
committed
tests: Add new trcypt images for Argon2 PBKDF.
Also modify test to use longer PIM password, as VeraCrypt requires at least 20 character password with lower PIM values.
1 parent 4e0c3c8 commit ee1c867

2 files changed

Lines changed: 50 additions & 27 deletions

File tree

tests/tcrypt-compat-test

Lines changed: 50 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ MAP=tctst
99
PASSWORD="aaaaaaaaaaaa"
1010
PASSWORD_HIDDEN="bbbbbbbbbbbb"
1111
PASSWORD_72C="aaaaaaaaaaaabbbbbbbbbbbbccccccccccccddddddddddddeeeeeeeeeeeeffffffffffff"
12-
PIM=1234
12+
PASSWORD_PIM="cccccccccccccccccccc"
1313
LOOP_SYS=""
1414
PART_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

87116
test_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
155186
echo "HEADER CHECK"
156187
for 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]"
170197
done
171198

172199
echo "HEADER CHECK (TCRYPT only)"
173200
for 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]"
180205
done
181206

182207
echo "HEADER CHECK (HIDDEN)"
183208
for 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]"
188213
done
189214

190215
echo "HEADER KEYFILES CHECK"
191216
for 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]"
199224
done
@@ -207,10 +232,8 @@ fi
207232
echo "ACTIVATION FS UUID CHECK"
208233
for 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
@@ -275,7 +298,7 @@ done
275298
echo "ACTIVATION FS UUID (HIDDEN) CHECK"
276299
for 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

tests/tcrypt-images.tar.xz

12.3 KB
Binary file not shown.

0 commit comments

Comments
 (0)