From c07cfa20de3b6632d27c256749b93ef8b8b19e18 Mon Sep 17 00:00:00 2001 From: Milan Broz Date: Sat, 9 Apr 2022 16:57:36 +0200 Subject: [PATCH] test generators: unify checksum check functions --- ...nerate-luks2-argon2-leftover-params.img.sh | 3 +-- .../generate-luks2-correct-full-json0.img.sh | 3 +-- ...s2-corrupted-hdr0-with-correct-chks.img.sh | 4 +-- ...s2-corrupted-hdr1-with-correct-chks.img.sh | 5 ++-- ...te-luks2-invalid-checksum-both-hdrs.img.sh | 14 +++++------ ...enerate-luks2-invalid-checksum-hdr0.img.sh | 7 +++--- ...enerate-luks2-invalid-checksum-hdr1.img.sh | 7 +++--- ...ate-luks2-invalid-object-type-json0.img.sh | 3 +-- ...te-luks2-invalid-opening-char-json0.img.sh | 3 +-- ...nerate-luks2-keyslot-missing-digest.img.sh | 3 +-- ...rate-luks2-keyslot-too-many-digests.img.sh | 3 +-- ...issing-keyslot-referenced-in-digest.img.sh | 3 +-- ...missing-keyslot-referenced-in-token.img.sh | 3 +-- ...issing-segment-referenced-in-digest.img.sh | 3 +-- ...s2-missing-trailing-null-byte-json0.img.sh | 3 +-- ...te-luks2-non-null-byte-beyond-json0.img.sh | 3 +-- ...e-luks2-non-null-bytes-beyond-json0.img.sh | 3 +-- ...rate-luks2-pbkdf2-leftover-params-0.img.sh | 3 +-- ...rate-luks2-pbkdf2-leftover-params-1.img.sh | 3 +-- tests/generators/lib.sh | 25 ++++++++++++++++--- 20 files changed, 51 insertions(+), 53 deletions(-) diff --git a/tests/generators/generate-luks2-argon2-leftover-params.img.sh b/tests/generators/generate-luks2-argon2-leftover-params.img.sh index 6f10f370..f0b74d7d 100755 --- a/tests/generators/generate-luks2-argon2-leftover-params.img.sh +++ b/tests/generators/generate-luks2-argon2-leftover-params.img.sh @@ -29,10 +29,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 new_obj_len=$(jq -c -M '.keyslots."1".kdf | length' $TMPDIR/json_res0) test $((obj_len+2)) -eq $new_obj_len || exit 2 } diff --git a/tests/generators/generate-luks2-correct-full-json0.img.sh b/tests/generators/generate-luks2-correct-full-json0.img.sh index eb3b7324..5cba2715 100755 --- a/tests/generators/generate-luks2-correct-full-json0.img.sh +++ b/tests/generators/generate-luks2-correct-full-json0.img.sh @@ -44,10 +44,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 #json_str_res0=$(< $TMPDIR/json_res0) read -r json_str_res0 < $TMPDIR/json_res0 test ${#json_str_res0} -eq $((LUKS2_JSON_SIZE*512-1)) || exit 2 diff --git a/tests/generators/generate-luks2-corrupted-hdr0-with-correct-chks.img.sh b/tests/generators/generate-luks2-corrupted-hdr0-with-correct-chks.img.sh index e5da2c97..1365e0cd 100755 --- a/tests/generators/generate-luks2-corrupted-hdr0-with-correct-chks.img.sh +++ b/tests/generators/generate-luks2-corrupted-hdr0-with-correct-chks.img.sh @@ -29,8 +29,8 @@ function generate() function check() { - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 + lib_hdr0_checksum || exit 2 + read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 read -r json_str_res0 < $TMPDIR/json_res0 test ${#json_str_res0} -eq $((LUKS2_JSON_SIZE*512)) || exit 2 diff --git a/tests/generators/generate-luks2-corrupted-hdr1-with-correct-chks.img.sh b/tests/generators/generate-luks2-corrupted-hdr1-with-correct-chks.img.sh index eb4f2b6e..fcbbb1ed 100755 --- a/tests/generators/generate-luks2-corrupted-hdr1-with-correct-chks.img.sh +++ b/tests/generators/generate-luks2-corrupted-hdr1-with-correct-chks.img.sh @@ -29,9 +29,8 @@ function generate() function check() { - read_luks2_bin_hdr1 $TGT_IMG $TMPDIR/hdr_res1 - chks_res1=$(read_sha256_checksum $TMPDIR/hdr_res1) - test "$chks1" = "$chks_res1" || exit 2 + lib_hdr1_checksum || exit 2 + read_luks2_json1 $TGT_IMG $TMPDIR/json_res1 read -r json_str_res1 < $TMPDIR/json_res1 test ${#json_str_res1} -eq $((LUKS2_JSON_SIZE*512)) || exit 2 diff --git a/tests/generators/generate-luks2-invalid-checksum-both-hdrs.img.sh b/tests/generators/generate-luks2-invalid-checksum-both-hdrs.img.sh index 330e0fde..925763e7 100755 --- a/tests/generators/generate-luks2-invalid-checksum-both-hdrs.img.sh +++ b/tests/generators/generate-luks2-invalid-checksum-both-hdrs.img.sh @@ -13,19 +13,17 @@ function generate() { - chks0=$(echo "Arbitrary chosen string: D'oh!" | calc_sha256_checksum_stdin) - chks1=$(echo "D'oh!: arbitrary chosen string" | calc_sha256_checksum_stdin) - write_checksum $chks0 $TGT_IMG - write_checksum $chks1 $TMPDIR/hdr1 + CHKS0=$(echo "Arbitrary chosen string: D'oh!" | calc_sha256_checksum_stdin) + CHKS1=$(echo "D'oh!: arbitrary chosen string" | calc_sha256_checksum_stdin) + write_checksum $CHKS0 $TGT_IMG + write_checksum $CHKS1 $TMPDIR/hdr1 write_luks2_bin_hdr1 $TMPDIR/hdr1 $TGT_IMG } function check() { - chks_res0=$(read_sha256_checksum $TGT_IMG) - chks_res1=$(read_sha256_checksum $TMPDIR/hdr1) - test "$chks0" = "$chks_res0" || exit 2 - test "$chks1" = "$chks_res1" || exit 2 + lib_hdr0_checksum || exit 2 + lib_hdr1_checksum || exit 2 } lib_prepare $@ diff --git a/tests/generators/generate-luks2-invalid-checksum-hdr0.img.sh b/tests/generators/generate-luks2-invalid-checksum-hdr0.img.sh index d5c4c489..ae8c5957 100755 --- a/tests/generators/generate-luks2-invalid-checksum-hdr0.img.sh +++ b/tests/generators/generate-luks2-invalid-checksum-hdr0.img.sh @@ -13,14 +13,13 @@ function generate() { - chks=$(echo "Arbitrary chosen string: D'oh!" | calc_sha256_checksum_stdin) - write_checksum $chks $TGT_IMG + CHKS0=$(echo "Arbitrary chosen string: D'oh!" | calc_sha256_checksum_stdin) + write_checksum $CHKS0 $TGT_IMG } function check() { - chks_res=$(read_sha256_checksum $TGT_IMG) - test "$chks" = "$chks_res" || exit 2 + lib_hdr0_checksum || exit 2 } lib_prepare $@ diff --git a/tests/generators/generate-luks2-invalid-checksum-hdr1.img.sh b/tests/generators/generate-luks2-invalid-checksum-hdr1.img.sh index 58dfd619..a56695d7 100755 --- a/tests/generators/generate-luks2-invalid-checksum-hdr1.img.sh +++ b/tests/generators/generate-luks2-invalid-checksum-hdr1.img.sh @@ -13,15 +13,14 @@ function generate() { - chks=$(echo "Arbitrary chosen string: D'oh!" | calc_sha256_checksum_stdin) - write_checksum $chks $TMPDIR/hdr1 + CHKS1=$(echo "Arbitrary chosen string: D'oh!" | calc_sha256_checksum_stdin) + write_checksum $CHKS1 $TMPDIR/hdr1 write_luks2_bin_hdr1 $TMPDIR/hdr1 $TGT_IMG } function check() { - chks_res=$(read_sha256_checksum $TMPDIR/hdr1) - test "$chks" = "$chks_res" || exit 2 + lib_hdr1_checksum || exit 2 } lib_prepare $@ diff --git a/tests/generators/generate-luks2-invalid-object-type-json0.img.sh b/tests/generators/generate-luks2-invalid-object-type-json0.img.sh index b84df31d..616120b9 100755 --- a/tests/generators/generate-luks2-invalid-object-type-json0.img.sh +++ b/tests/generators/generate-luks2-invalid-object-type-json0.img.sh @@ -28,10 +28,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 read -r json_str_res0 < $TMPDIR/json_res0 test "$json_str" = "$json_str_res0" || exit 2 } diff --git a/tests/generators/generate-luks2-invalid-opening-char-json0.img.sh b/tests/generators/generate-luks2-invalid-opening-char-json0.img.sh index aeaeba4b..3f34692a 100755 --- a/tests/generators/generate-luks2-invalid-opening-char-json0.img.sh +++ b/tests/generators/generate-luks2-invalid-opening-char-json0.img.sh @@ -28,10 +28,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 IFS= read -r json_str_res0 < $TMPDIR/json_res0 test "$json_str" = "$json_str_res0" || exit 2 } diff --git a/tests/generators/generate-luks2-keyslot-missing-digest.img.sh b/tests/generators/generate-luks2-keyslot-missing-digest.img.sh index ecfd7cf8..49aeff1a 100755 --- a/tests/generators/generate-luks2-keyslot-missing-digest.img.sh +++ b/tests/generators/generate-luks2-keyslot-missing-digest.img.sh @@ -30,10 +30,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 new_arr_len=$(jq -c -M '.digests."0".keyslots | length' $TMPDIR/json_res0) test $((arr_len-1)) -eq $new_arr_len || exit 2 } diff --git a/tests/generators/generate-luks2-keyslot-too-many-digests.img.sh b/tests/generators/generate-luks2-keyslot-too-many-digests.img.sh index 034c6e07..5ba55f1e 100755 --- a/tests/generators/generate-luks2-keyslot-too-many-digests.img.sh +++ b/tests/generators/generate-luks2-keyslot-too-many-digests.img.sh @@ -28,10 +28,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 new_arr_len=$(jq -c -M '.digests."1".keyslots | length' $TMPDIR/json_res0) test 1 -eq $new_arr_len || exit 2 } diff --git a/tests/generators/generate-luks2-missing-keyslot-referenced-in-digest.img.sh b/tests/generators/generate-luks2-missing-keyslot-referenced-in-digest.img.sh index 2d2bbb61..a0ca53c3 100755 --- a/tests/generators/generate-luks2-missing-keyslot-referenced-in-digest.img.sh +++ b/tests/generators/generate-luks2-missing-keyslot-referenced-in-digest.img.sh @@ -32,10 +32,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 new_arr_len=$(jq -c -M '.digests."0".keyslots | length' $TMPDIR/json_res0) test $((arr_len+1)) -eq $new_arr_len || exit 2 } diff --git a/tests/generators/generate-luks2-missing-keyslot-referenced-in-token.img.sh b/tests/generators/generate-luks2-missing-keyslot-referenced-in-token.img.sh index 2b16afb1..84d7ed21 100755 --- a/tests/generators/generate-luks2-missing-keyslot-referenced-in-token.img.sh +++ b/tests/generators/generate-luks2-missing-keyslot-referenced-in-token.img.sh @@ -30,10 +30,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 new_arr_len=$(jq -c -M '.tokens."0".keyslots | length' $TMPDIR/json_res0) test $new_arr_len -eq 2 || exit 2 } diff --git a/tests/generators/generate-luks2-missing-segment-referenced-in-digest.img.sh b/tests/generators/generate-luks2-missing-segment-referenced-in-digest.img.sh index 3e7a299b..300c2dc9 100755 --- a/tests/generators/generate-luks2-missing-segment-referenced-in-digest.img.sh +++ b/tests/generators/generate-luks2-missing-segment-referenced-in-digest.img.sh @@ -32,10 +32,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 new_arr_len=$(jq -c -M '.digests."0".segments | length' $TMPDIR/json_res0) test $((arr_len+1)) -eq $new_arr_len || exit 2 } diff --git a/tests/generators/generate-luks2-missing-trailing-null-byte-json0.img.sh b/tests/generators/generate-luks2-missing-trailing-null-byte-json0.img.sh index eedfc89c..9c5ed0bb 100755 --- a/tests/generators/generate-luks2-missing-trailing-null-byte-json0.img.sh +++ b/tests/generators/generate-luks2-missing-trailing-null-byte-json0.img.sh @@ -47,10 +47,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 read -r json_str_res0 < $TMPDIR/json_res0 test ${#json_str_res0} -eq $((LUKS2_JSON_SIZE*512)) || exit 2 } diff --git a/tests/generators/generate-luks2-non-null-byte-beyond-json0.img.sh b/tests/generators/generate-luks2-non-null-byte-beyond-json0.img.sh index d21ebc66..6f4aa7db 100755 --- a/tests/generators/generate-luks2-non-null-byte-beyond-json0.img.sh +++ b/tests/generators/generate-luks2-non-null-byte-beyond-json0.img.sh @@ -28,10 +28,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 read -r json_str_res0 < $TMPDIR/json_res0 local len=${#json_str_res0} len=$((len-1)) diff --git a/tests/generators/generate-luks2-non-null-bytes-beyond-json0.img.sh b/tests/generators/generate-luks2-non-null-bytes-beyond-json0.img.sh index 205d9ba5..18abf23f 100755 --- a/tests/generators/generate-luks2-non-null-bytes-beyond-json0.img.sh +++ b/tests/generators/generate-luks2-non-null-bytes-beyond-json0.img.sh @@ -32,10 +32,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 _dd if=$TMPDIR/json_res0 of=$TMPDIR/quote skip=$((json_len_orig+SPACE)) count=${#QUOTE} bs=1 json_str_res0=$(head -c ${#QUOTE} $TMPDIR/quote) diff --git a/tests/generators/generate-luks2-pbkdf2-leftover-params-0.img.sh b/tests/generators/generate-luks2-pbkdf2-leftover-params-0.img.sh index c703a65a..e035f945 100755 --- a/tests/generators/generate-luks2-pbkdf2-leftover-params-0.img.sh +++ b/tests/generators/generate-luks2-pbkdf2-leftover-params-0.img.sh @@ -29,10 +29,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 new_obj_len=$(jq -c -M '.keyslots."2".kdf | length' $TMPDIR/json_res0) test $((obj_len+2)) -eq $new_obj_len || exit 2 } diff --git a/tests/generators/generate-luks2-pbkdf2-leftover-params-1.img.sh b/tests/generators/generate-luks2-pbkdf2-leftover-params-1.img.sh index 3d186114..d82c2bd3 100755 --- a/tests/generators/generate-luks2-pbkdf2-leftover-params-1.img.sh +++ b/tests/generators/generate-luks2-pbkdf2-leftover-params-1.img.sh @@ -29,10 +29,9 @@ function generate() function check() { lib_hdr1_killed || exit 2 + lib_hdr0_checksum || exit 2 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0 - chks_res0=$(read_sha256_checksum $TGT_IMG) - test "$chks0" = "$chks_res0" || exit 2 new_obj_len=$(jq -c -M '.keyslots."2".kdf | length' $TMPDIR/json_res0) test $((obj_len+2)) -eq $new_obj_len || exit 2 } diff --git a/tests/generators/lib.sh b/tests/generators/lib.sh index 4d7100d7..c0e9cc1f 100644 --- a/tests/generators/lib.sh +++ b/tests/generators/lib.sh @@ -197,6 +197,10 @@ function lib_prepare() TGT_IMG=$1/$(test_img_name $0) SRC_IMG=$2 + # wipe checksums + CHKS0=0 + CHKS1=0 + cp $SRC_IMG $TGT_IMG test -d $TMPDIR || mkdir $TMPDIR read_luks2_json0 $TGT_IMG $TMPDIR/json0 @@ -219,8 +223,8 @@ function lib_mangle_json_hdr0() merge_bin_hdr_with_json $TMPDIR/hdr0 $TMPDIR/json0 $TMPDIR/area0 $jsn_sz erase_checksum $TMPDIR/area0 - chks0=$(calc_sha256_checksum_file $TMPDIR/area0) - write_checksum $chks0 $TMPDIR/area0 + CHKS0=$(calc_sha256_checksum_file $TMPDIR/area0) + write_checksum $CHKS0 $TMPDIR/area0 test -n "$kill_hdr" && kill_bin_hdr $TMPDIR/area0 write_luks2_hdr0 $TMPDIR/area0 $TGT_IMG $mda_sz } @@ -233,8 +237,8 @@ function lib_mangle_json_hdr1() merge_bin_hdr_with_json $TMPDIR/hdr1 $TMPDIR/json1 $TMPDIR/area1 $jsn_sz erase_checksum $TMPDIR/area1 - chks1=$(calc_sha256_checksum_file $TMPDIR/area1) - write_checksum $chks1 $TMPDIR/area1 + CHKS1=$(calc_sha256_checksum_file $TMPDIR/area1) + write_checksum $CHKS1 $TMPDIR/area1 test -n "$kill_hdr" && kill_bin_hdr $TMPDIR/area1 write_luks2_hdr1 $TMPDIR/area1 $TGT_IMG $mda_sz } @@ -264,3 +268,16 @@ function lib_hdr1_killed() local str_res1=$(head -c 6 $TMPDIR/hdr_res1) test "$str_res1" = "VACUUM" } + +function lib_hdr0_checksum() +{ + local chks_res0=$(read_sha256_checksum $TGT_IMG) + test "$CHKS0" = "$chks_res0" +} + +function lib_hdr1_checksum() +{ + read_luks2_bin_hdr1 $TGT_IMG $TMPDIR/hdr_res1 + local chks_res1=$(read_sha256_checksum $TMPDIR/hdr_res1) + test "$CHKS1" = "$chks_res1" +}