1 Given /^I generate an OpenPGP key named "([^"]+)" with password "([^"]+)"$/ do |name, pwd|
4 next if @skip_steps_while_restoring_background
5 gpg_key_recipie = <<EOF
10 Name-Real: #{@key_name}
12 Name-Email: #{@key_name}@test.org
17 gpg_key_recipie.split("\n").each do |line|
18 @vm.execute("echo '#{line}' >> /tmp/gpg_key_recipie", $live_user)
20 c = @vm.execute("gpg --batch --gen-key < /tmp/gpg_key_recipie", $live_user)
21 assert(c.success?, "Failed to generate OpenPGP key:\n#{c.stderr}")
24 When /^I type a message into gedit$/ do
25 next if @skip_steps_while_restoring_background
27 @screen.wait_and_click("GeditWindow.png", 10)
29 @screen.type("ATTACK AT DAWN")
32 def maybe_deal_with_pinentry
34 @screen.wait("PinEntryPrompt.png", 3)
35 @screen.type(@passphrase + Sikuli::KEY_RETURN)
36 rescue Sikuli::ImageNotFound
37 # The passphrase was cached or we wasn't prompted at all (e.g. when
38 # only encrypting to a public key)
42 def encrypt_sign_helper
43 @screen.wait_and_click("GeditWindow.png", 10)
44 @screen.type("a", Sikuli::KEY_CTRL)
46 @screen.click("GpgAppletIconNormal.png")
49 @screen.wait_and_click("GpgAppletChooseKeyWindow.png", 30)
52 maybe_deal_with_pinentry
53 @screen.wait_and_click("GeditWindow.png", 10)
55 @screen.type("n", Sikuli::KEY_CTRL)
57 @screen.type("v", Sikuli::KEY_CTRL)
60 def decrypt_verify_helper(icon)
61 @screen.wait_and_click("GeditWindow.png", 10)
62 @screen.type("a", Sikuli::KEY_CTRL)
67 maybe_deal_with_pinentry
68 @screen.wait("GpgAppletResults.png", 10)
69 @screen.wait("GpgAppletResultsMsg.png", 10)
72 When /^I encrypt the message using my OpenPGP key$/ do
73 next if @skip_steps_while_restoring_background
74 encrypt_sign_helper do
75 @screen.type(@key_name + Sikuli::KEY_RETURN + Sikuli::KEY_RETURN)
79 Then /^I can decrypt the encrypted message$/ do
80 next if @skip_steps_while_restoring_background
81 decrypt_verify_helper("GpgAppletIconEncrypted.png")
82 @screen.wait("GpgAppletResultsEncrypted.png", 10)
85 When /^I sign the message using my OpenPGP key$/ do
86 next if @skip_steps_while_restoring_background
87 encrypt_sign_helper do
88 @screen.type("\t" + Sikuli::DOWN_ARROW + Sikuli::KEY_RETURN)
89 @screen.wait("PinEntryPrompt.png", 10)
90 @screen.type(@passphrase + Sikuli::KEY_RETURN)
94 Then /^I can verify the message's signature$/ do
95 next if @skip_steps_while_restoring_background
96 decrypt_verify_helper("GpgAppletIconSigned.png")
97 @screen.wait("GpgAppletResultsSigned.png", 10)
100 When /^I both encrypt and sign the message using my OpenPGP key$/ do
101 next if @skip_steps_while_restoring_background
102 encrypt_sign_helper do
103 @screen.type(@key_name + Sikuli::KEY_RETURN)
104 @screen.type("\t" + Sikuli::DOWN_ARROW + Sikuli::KEY_RETURN)
105 @screen.wait("PinEntryPrompt.png", 10)
106 @screen.type(@passphrase + Sikuli::KEY_RETURN)
110 Then /^I can decrypt and verify the encrypted message$/ do
111 next if @skip_steps_while_restoring_background
112 decrypt_verify_helper("GpgAppletIconEncrypted.png")
113 @screen.wait("GpgAppletResultsEncrypted.png", 10)
114 @screen.wait("GpgAppletResultsSigned.png", 10)
117 When /^I symmetrically encrypt the message with password "([^"]+)"$/ do |pwd|
119 next if @skip_steps_while_restoring_background
120 @screen.wait_and_click("GeditWindow.png", 10)
121 @screen.type("a", Sikuli::KEY_CTRL)
123 @screen.click("GpgAppletIconNormal.png")
126 @screen.wait("PinEntryPrompt.png", 10)
127 @screen.type(@passphrase + Sikuli::KEY_RETURN)
129 @screen.wait("PinEntryPrompt.png", 10)
130 @screen.type(@passphrase + Sikuli::KEY_RETURN)
131 @screen.wait_and_click("GeditWindow.png", 10)
133 @screen.type("n", Sikuli::KEY_CTRL)
135 @screen.type("v", Sikuli::KEY_CTRL)