我找不到如何执行此操作的单个示例。我有一个PGP加密的XLS文件和一个PGP key 。这是我的代码,返回一个空字符串:

require 'rubygems'
require 'gpgme'

def passfunc(obj, uid_hint, passphrase_info, prev_was_bad, fd)
  io = IO.for_fd(fd, 'w')
  io.puts "PASSPHRASE"
  io.flush
end

encrypted_data = GPGME::Data.new(File.open("file.xls.pgp"))
key = GPGME::Data.new(File.open("key.txt"))

ctx = GPGME::Ctx.new :passphrase_callback => method(:passfunc)
ctx.import_keys key

decrypted = ctx.decrypt encrypted_data

puts decrypted.read

我可以使用相同的 key 在Windows上名为GNU Privacy Assistant的程序中解密此文件。任何帮助表示赞赏。

最佳答案

Ruby gpgme的开发人员Daiki Ueno在GitHub上与我联系:

关于ruby - 如何使用Ruby gpgme解密PGP加密文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10092184/

10-11 00:23