@@ -66,7 +66,8 @@ pkgs.nixosTest {
6666 system1.wait_for_file("/tmp/1")
6767 assert "${ user } " in system1.succeed("cat /tmp/1")
6868
69- userDo = lambda input : f"sudo -u user1 -- bash -c 'set -eou pipefail; cd /tmp/secrets; {input}'"
69+ userDir = "/tmp/secrets"
70+ userDo = lambda input : f"sudo -u user1 -- bash -c 'set -eou pipefail; cd {userDir}; {input}'"
7071
7172 before_hash = system1.succeed(userDo('sha256sum passwordfile-user1.age')).split()
7273 print(system1.succeed(userDo('agenix -r -i /home/user1/.ssh/id_ed25519')))
@@ -89,7 +90,15 @@ pkgs.nixosTest {
8990 system1.succeed(userDo("rm ~/.ssh/id_rsa"))
9091
9192 # user1 can edit a secret by piping in contents
92- system1.succeed(userDo("echo ' secret1234' | agenix -e passwordfile-user1.age"))
93+ system1.succeed(userDo("echo secret1234 | agenix -e passwordfile-user1.age"))
9394 assert "secret1234" in system1.succeed(userDo("EDITOR=cat agenix -e passwordfile-user1.age"))
95+
96+ # user1 can make a one-way secret, but cannot see the contents, and host can decrypt
97+ userDir = "/tmp/secrets-one-way"
98+ system1.succeed(userDo("echo eye1234 | agenix -e one-way.age"))
99+ system1.fail(userDo("EDITOR=cat agenix -e one-way.age"))
100+ assert "eye1234" in system1.succeed(f"cd {userDir};EDITOR=cat agenix -e one-way.age -i /etc/ssh/ssh_host_ed25519_key")
101+ system1.succeed(userDo("echo nose1234 | agenix -e one-way.age"))
102+ assert "nose1234" in system1.succeed(f"cd {userDir};EDITOR=cat agenix -e one-way.age -i /etc/ssh/ssh_host_ed25519_key")
94103 '' ;
95104}
0 commit comments