aboutsummaryrefslogtreecommitdiff
path: root/cli-tests/t_encrypt_raw_key.sh
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2020-05-09 15:15:12 -0700
committerGitHub <noreply@github.com>2020-05-09 15:15:12 -0700
commit338347ac4766f899fdc471d57f293798ff0e6c29 (patch)
tree8f5c0969a49a396d60c33a324834d92d9911a240 /cli-tests/t_encrypt_raw_key.sh
parent1aef2541a434bd9e88ebd52be72f13d56c5ef748 (diff)
parente68d65c440125ff1e47627abf1fc5a97f700d38d (diff)
Merge pull request #218 from ebiggers/cli-tests
Add tests for command-line interface Add tests that directly test the fscrypt command-line tool. See cli-tests/README.md for information about the test framework. The following test scripts are included: * t_change_passphrase * t_encrypt_custom * t_encrypt_login * t_encrypt_raw_key * t_encrypt * t_lock * t_not_enabled * t_not_supported * t_passphrase_hashing * t_setup * t_status * t_unlock * t_v1_policy_fs_keyring * t_v1_policy Unfortunately, we can't actually make Travis CI run these tests yet because they need kernel v5.4 or later, and Travis CI doesn't support an Ubuntu version that has that yet. But for now, they can be run manually using make cli-test.
Diffstat (limited to 'cli-tests/t_encrypt_raw_key.sh')
-rwxr-xr-xcli-tests/t_encrypt_raw_key.sh38
1 files changed, 38 insertions, 0 deletions
diff --git a/cli-tests/t_encrypt_raw_key.sh b/cli-tests/t_encrypt_raw_key.sh
new file mode 100755
index 0000000..260b094
--- /dev/null
+++ b/cli-tests/t_encrypt_raw_key.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+# Test encrypting a directory using a raw_key protector.
+
+cd "$(dirname "$0")"
+. common.sh
+
+dir="$MNT/dir"
+raw_key_file="$TMPDIR/raw_key"
+
+begin()
+{
+ _reset_filesystems
+ mkdir "$dir"
+ _print_header "$1"
+}
+
+show_status()
+{
+ local encrypted=$1
+
+ fscrypt status "$MNT"
+ if $encrypted; then
+ fscrypt status "$dir"
+ else
+ _expect_failure "fscrypt status '$dir'"
+ fi
+}
+
+begin "Encrypt with raw_key protector"
+head -c 32 /dev/urandom > "$raw_key_file"
+fscrypt encrypt --quiet --name=prot --source=raw_key --key="$raw_key_file" "$dir"
+show_status true
+
+begin "Try to encrypt with raw_key protector, using wrong key length"
+head -c 16 /dev/urandom > "$raw_key_file"
+_expect_failure "fscrypt encrypt --quiet --name=prot --source=raw_key --key='$raw_key_file' '$dir'"
+show_status false