您可以在以下工作示例中找到回調的示例。它以分離模式簽名文件,即簽名文件與原始文件分離。它使用〜/ .gnupg或類似的默認密鑰環。要爲密鑰環使用不同的目錄,請在調用GPGME :: sign()之前設置環境變量ENV [「GNUPGHOME」] =「」。
#!/usr/bin/ruby
require 'rubygems'
require 'gpgme'
puts "Signing #{ARGV[0]}"
input = File.open(ARGV[0],'r')
PASSWD = "abc"
def passfunc(hook, uid_hint, passphrase_info, prev_was_bad, fd)
puts("Passphrase for #{uid_hint}: ")
io = IO.for_fd(fd, 'w')
io.write(PASSWD+"\n")
io.flush
end
output = File.open(ARGV[0]+'.asc','w')
sign = GPGME::sign(input, {
:passphrase_callback => method(:passfunc),
:mode => GPGME::SIG_MODE_DETACH
})
output.write(sign)
output.close
input.close
非常感謝你 – msanteler 2015-03-10 21:44:56