class PassphraseCallback
def initialize(passphrase)
@passphrase = passphrase
end
def call(*args)
fd = args.last
io = IO.for_fd(fd, 'w')
io.puts(@passphrase)
io.flush
end
end
crypto = GPGME::Crypto.new
options = {:recipients => 'dev@example.com.my', :passphrase_callback => PassphraseCallback.new('my_passphrase_string'), output: decrypted_file_path}
cipthertext = GPGME::Data.new(File.open(file))
crypto.decrypt cipthertext, options
Я использую gem gpgme, чтобы попытаться расшифровать файл. Я следовал за турбулентностью, найденной в этом https://github.com/ueno/ruby-gpgme, но продолжаю получать ошибку, когда он пытается выполнить этот метод PassphraseCallback.new('my_passphrase_key')
Я получаю ошибку TypeError: no implicit conversion from nil to integer
, потому что там написано fd is nil
, но не уверен, какое значение мне нужно передать при инициализации и при вызове моего метода.
Любая помощь будет оценена.
Спасибо