2012-04-10 19 views
7

これを行う方法の一例が見つかりません。私はPGP暗号化XLSファイルとPGP鍵を持っています。ここにある空の文字列を返す私のコードです:Ruby gpgmeで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プライバシー・アシスタントと呼ばれるプログラムでこのファイルを復号化することができますよ。どんな助けもありがとうございます。

答えて

6

ダイキ上野、RubyのGPGMEの開発者は、GitHubの上で私に手を伸ばし:

ライン decrypted = ctx.decrypt encrypted_datadecrypted.seek(0)を追加

が問題にこのため

+1

感謝を解決するようです。時には私はGPGMEの 'E'が 'Enigmatic'の略であると感じることがあります。 – aidan

+0

@Vincent obj、uid_hint、passphrase_info、prev_was_bad、fdのパラメータは何ですか?私の場合、クライアントは公開鍵 - 秘密鍵と暗号化されたファイルのみを共有しています – VKatz

+0

@Vincent、私はSTUCKの一種です!間に – VKatz

関連する問題