S
Simon Strandgaard
using gnupg to encrypt a file with only a passphrase.
prompt> echo 'hello world' >> test
prompt> gpg -c test
Enter passphrase:
Repeat passphrase:
prompt>
note: I have not shown the many backspaces.
however if there already exists a 'test.gpg' file
then there is third question.
prompt> echo 'hello world' >> test
prompt> gpg -c test
Enter passphrase:
Repeat passphrase:
File `test.gpg' exists. Overwrite? (y/N)
I want to listen for:
'Enter passphrase: '
'Repeat passphrase: '
eof?
In case I get something else than eof? then
I want to raise an error.
--
Simon Strandgaard
File.open("test", "a+") do |f|
500000.times { f.write("helloworld") }
end
require 'pty'
require 'expect'
PTY.spawn("gpg -c test") do |r,w,pid|
w.sync = true
r.expect("Enter passphrase: ", 1) do |e|
raise unless e
w.puts "secretpassword"
end
r.expect("Repeat passphrase: ", 1) do |e|
raise unless e
w.puts "secretpassword"
end
puts "eof=#{r.eof}"
# how to read eventual data
# how to expect eof?
end
system('ls test*')
# output when running the program
prompt> ruby a.rb
eof=false
test test.gpg
prompt>
prompt> echo 'hello world' >> test
prompt> gpg -c test
Enter passphrase:
Repeat passphrase:
prompt>
note: I have not shown the many backspaces.
however if there already exists a 'test.gpg' file
then there is third question.
prompt> echo 'hello world' >> test
prompt> gpg -c test
Enter passphrase:
Repeat passphrase:
File `test.gpg' exists. Overwrite? (y/N)
I want to listen for:
'Enter passphrase: '
'Repeat passphrase: '
eof?
In case I get something else than eof? then
I want to raise an error.
--
Simon Strandgaard
File.open("test", "a+") do |f|
500000.times { f.write("helloworld") }
end
require 'pty'
require 'expect'
PTY.spawn("gpg -c test") do |r,w,pid|
w.sync = true
r.expect("Enter passphrase: ", 1) do |e|
raise unless e
w.puts "secretpassword"
end
r.expect("Repeat passphrase: ", 1) do |e|
raise unless e
w.puts "secretpassword"
end
puts "eof=#{r.eof}"
# how to read eventual data
# how to expect eof?
end
system('ls test*')
# output when running the program
prompt> ruby a.rb
eof=false
test test.gpg
prompt>