Imported Upstream version 2.6.1
[platform/upstream/cryptsetup.git] / tests / generators / generate-luks2-corrupted-hdr0-with-correct-chks.img.sh
1 #!/bin/bash
2
3 . lib.sh
4
5 #
6 # *** Description ***
7 #
8 # generate header with malformed json but correct checksum in primary header
9 #
10
11 # $1 full target dir
12 # $2 full source luks2 image
13
14 function generate()
15 {
16         read -r json_str < $TMPDIR/json0
17         json_len=${#json_str}
18         json_len=$((json_len-1)) # to replace json closing '}'
19         json_new_str="${json_str:0:json_len},\""
20
21         while [ ${#json_new_str} -le $((LUKS2_JSON_SIZE*512)) ]; do
22                 json_new_str=$json_new_str"all_work_and_no_play_makes_Jack_a_dull_boy_"
23         done
24
25         printf "%s" $json_new_str | _dd of=$TMPDIR/json0 bs=512 count=$LUKS2_JSON_SIZE
26
27         lib_mangle_json_hdr0
28 }
29
30 function check()
31 {
32         lib_hdr0_checksum || exit 2
33
34         read_luks2_json0 $TGT_IMG $TMPDIR/json_res0
35         read -r json_str_res0 < $TMPDIR/json_res0
36         test ${#json_str_res0} -eq $((LUKS2_JSON_SIZE*512)) || exit 2
37 }
38
39 lib_prepare $@
40 generate
41 check
42 lib_cleanup