| #!/bin/sh -vx |
| |
| . /root/test-config |
| |
| dmesg -n 7 |
| mkdir -p /vdc |
| |
| setup_test_dummy_key () |
| { |
| mode='\x00\x00\x00\x00' |
| raw="$(printf ""\\\\x%02x"" $(seq 0 63))" |
| if lscpu | grep "Byte Order" | grep -q Little ; then |
| size='\x40\x00\x00\x00' |
| else |
| size='\x00\x00\x00\x40' |
| fi |
| key="${mode}${raw}${size}" |
| keyctl new_session |
| echo -n -e "${key}" | keyctl padd logon fscrypt:4242424242424242 @s |
| } |
| |
| do_mount () |
| { |
| mount -t ext4 $VDC /vdc |
| } |
| |
| do_unmount () |
| { |
| umount /vdc |
| } |
| |
| do_smoketest () |
| { |
| do_mount |
| rm -rf /vdc/a /vdc/b |
| mkdir /vdc/a /vdc/b |
| echo foobar | e4crypt add_key /vdc/a |
| cp /etc/motd /vdc |
| mv /vdc/motd /vdc/a |
| cp /etc/motd /vdc/a |
| ln -s motd /vdc/a/link |
| cp -r /root/xfstests /vdc/a |
| do_unmount |
| do_mount |
| lsattr /vdc/a |
| ls -l /vdc/a |
| cat /vdc/a/link |
| cat /vdc/a/motd |
| do_unmount |
| keyctl purge logon |
| do_mount |
| lsattr /vdc/a |
| ls -l /vdc/a |
| if test -z "$SKIP_CLEANUP" ; then |
| rm -rf /vdc/a /vdc/b |
| fi |
| do_unmount |
| } |
| |
| if test -z "$SKIP_NO_DIR_INDEX" ; then |
| mke2fs -t ext4 -O encrypt,^dir_index -Fq $VDC |
| do_smoketest |
| fi |
| |
| if test -z "$SKIP_DIR_INDEX" ; then |
| mke2fs -t ext4 -O encrypt -Fq $VDC |
| do_smoketest |
| fi |