7

これを行う方法の例が1つも見つかりません。PGP で暗号化された XLS ファイルと PGP キーがあります。空の文字列を返すコードは次のとおりです。

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

Windows の GNU Privacy Assistant というプログラムで、同じキーを使用してこのファイルを復号化できます。どんな助けでも大歓迎です。

4

1 に答える 1

6

Ruby gpgme の開発者である上野大樹氏が GitHub で連絡をくれました。

decrypted.seek(0)行の後に追加decrypted = ctx.decrypt encrypted_dataすると問題が解決するようです

于 2012-04-11T02:24:00.443 に答える