8 # generate primary header with config json size mismatching
9 # value in binary header
11 # secondary header is corrupted on purpose as well
15 # $2 full source luks2 image
19 JS=$(((LUKS2_HDR_SIZE-LUKS2_BIN_HDR_SIZE)*512))
20 TEST_MDA_SIZE=$LUKS2_HDR_SIZE_32K
21 TEST_MDA_SIZE_BYTES=$((TEST_MDA_SIZE*512))
22 TEST_JSN_SIZE=$((TEST_MDA_SIZE-LUKS2_BIN_HDR_SIZE))
24 json_str=$(jq -c '.' $TMPDIR/json0)
26 write_luks2_json "$json_str" $TMPDIR/json0 $TEST_JSN_SIZE
27 write_luks2_json "$json_str" $TMPDIR/json1 $TEST_JSN_SIZE
29 write_bin_hdr_size $TMPDIR/hdr0 $TEST_MDA_SIZE_BYTES
30 write_bin_hdr_size $TMPDIR/hdr1 $TEST_MDA_SIZE_BYTES
31 write_bin_hdr_offset $TMPDIR/hdr1 $TEST_MDA_SIZE_BYTES
33 lib_mangle_json_hdr0 $TEST_MDA_SIZE $TEST_JSN_SIZE
34 lib_mangle_json_hdr1 $TEST_MDA_SIZE $TEST_JSN_SIZE
39 read_luks2_bin_hdr0 $TGT_IMG $TMPDIR/hdr_res0
40 local str_res1=$(head -c 4 $TMPDIR/hdr_res0)
41 test "$str_res1" = "LUKS" || exit 2
43 read_luks2_bin_hdr1 $TGT_IMG $TMPDIR/hdr_res1 $TEST_MDA_SIZE
44 local str_res1=$(head -c 4 $TMPDIR/hdr_res1)
45 test "$str_res1" = "SKUL" || exit 2
47 read_luks2_json0 $TGT_IMG $TMPDIR/json_res0
48 jq -c --arg js $JS 'if .config.json_size != ( $js | tostring )
49 then error("Unexpected value in result json") else empty end' $TMPDIR/json_res0 || exit 5