# Try with stripping the foreign signature first, this should just work
echo "$IDENTITY" | homectl create -P --identity=- --seize=yes
+wait_for_state signtest inactive
homectl remove signtest
# No try again, and don't strip the signature. It will be refused.
PASSWORD="test" homectl with signtest true
# Remove the key, and check again ,should fail now
+wait_for_state signtest inactive
homectl remove-signing-key signtest.public
wait_for_state signtest inactive
(! PASSWORD="test" homectl with signtest true)
# Test unregister + adopt
mkdir /home/elsewhere
mv /home/signtest.homedir /home/elsewhere/
+wait_for_state signtest absent
homectl unregister signtest
print_public_key | homectl add-signing-key --key-name=signtest.public
homectl adopt /home/elsewhere/signtest.homedir
PASSWORD="test" homectl with signtest true
-wait_for_state signtest inactive
# Test register
+wait_for_state signtest inactive
homectl unregister signtest
homectl register /home/elsewhere/signtest.homedir/.identity
+wait_for_state signtest absent
homectl unregister signtest
# Test automatic fixation for anything in /home/
rmdir /home/elsewhere
wait_for_exist signtest
PASSWORD="test" homectl with signtest true
-wait_for_state signtest inactive
# add signing key via credential
+wait_for_state signtest inactive
homectl remove-signing-key signtest.public
(! (homectl list-signing-keys | grep -q signtest.public))
systemd-run --wait -p "SetCredential=home.add-signing-key.signtest.public:$(print_public_key)" homectl firstboot
# register user via credential
mkdir /home/elsewhere2
mv /home/signtest.homedir /home/elsewhere2/
+wait_for_state signtest absent
homectl unregister signtest
systemd-run --wait -p "LoadCredential=home.register.signtest:/home/elsewhere2/signtest.homedir/.identity" homectl firstboot
homectl inspect signtest
+wait_for_state signtest absent
homectl unregister signtest
mv /home/elsewhere2/signtest.homedir /home/
rmdir /home/elsewhere2
-wait_for_exist signtest
# Remove it all again
+wait_for_exist signtest
homectl remove-signing-key signtest.public
homectl remove signtest