# Copyright © 2012-2023 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html Feature: Using the installed keyring Scenario: Storing a password in keyring Given we use the config "multiple.yaml" And we have a keyring When we run "jrnl simple --encrypt" and enter """ sabertooth sabertooth Y """ Then the config for journal "simple" should contain "encrypt: true" When we run "jrnl simple -n 1" Then the output should contain "2013-06-10 15:40 Life is good" Scenario: Encrypt journal with no keyring backend and do not store in keyring Given we use the config "simple.yaml" When we run "jrnl test entry" And we run "jrnl --encrypt" and enter """ password password n """ Then we should get no error And the output should not contain "Failed to retrieve keyring" Scenario: Encrypt journal with no keyring backend and do store in keyring Given we use the config "simple.yaml" When we run "jrnl test entry" And we run "jrnl --encrypt" and enter """ password password y """ Then we should get no error And the output should not contain "Failed to retrieve keyring" # @todo add step to check contents of keyring @todo Scenario: Open an encrypted journal with wrong password in keyring # This should ask the user for the password after the keyring fails @todo Scenario: Decrypt journal with password in keyring @todo Scenario: Decrypt journal without a keyring Scenario: Encrypt journal when keyring exists but fails Given we use the config "simple.yaml" And we have a failed keyring When we run "jrnl --encrypt" and enter """ this password will not be saved in keyring this password will not be saved in keyring y """ Then the output should contain "Failed to retrieve keyring" And we should get no error And we should be prompted for a password And the config for journal "default" should contain "encrypt: true" Scenario: Decrypt journal when keyring exists but fails Given we use the config "encrypted.yaml" And we have a failed keyring And we use the password "bad doggie no biscuit" if prompted When we run "jrnl --decrypt" Then the error output should contain "Failed to retrieve keyring" And we should get no error And we should be prompted for a password And the output should contain "Journal decrypted" And the config for journal "default" should contain "encrypt: false" When we run "jrnl --short" Then we should not be prompted for a password And the output should be """ 2013-06-09 15:39 My first entry. 2013-06-10 15:40 Life is good. """ Scenario: Open encrypted journal when keyring exists but fails # This should ask the user for the password after the keyring fails Given we use the config "encrypted.yaml" And we have a failed keyring And we use the password "bad doggie no biscuit" if prompted When we run "jrnl -n 1" Then we should get no error And we should be prompted for a password And the output should contain "Failed to retrieve keyring" And the output should contain "2013-06-10 15:40 Life is good" Scenario: Mistyping your password Given we use the config "simple.yaml" When we run "jrnl --encrypt" and enter """ swordfish sordfish """ Then we should be prompted for a password And the output should contain "Passwords did not match" And the config for journal "default" should not contain "encrypt: true" When we run "jrnl --short" Then the output should be """ 2013-06-09 15:39 My first entry. 2013-06-10 15:40 Life is good. """ Scenario: Mistyping your password, then getting it right Given we use the config "simple.yaml" When we run "jrnl --encrypt" and enter """ swordfish sordfish swordfish swordfish n """ Then we should be prompted for a password And the output should contain "Passwords did not match" And the output should contain "Journal encrypted" And the config for journal "default" should contain "encrypt: true" When we run "jrnl -1" and enter "swordfish" Then we should be prompted for a password And the output should contain "2013-06-10 15:40 Life is good"