gpt4 book ai didi

ruby - 在 ruby​​ gpgme 中使用密码回调

转载 作者:数据小太阳 更新时间:2023-10-29 07:47:18 24 4
gpt4 key购买 nike

我正在使用 ruby​​ gpgme gem (1.0.8)。我的密码回调没有被调用:

def passfunc(*args)
fd = args.last
io = IO.for_fd(fd, 'w')
io.puts "mypassphrase"
io.flush
end

opts = {
:passphrase_callback => method(:passfunc)
}
GPGME.decrypt(input,output, opts)

有人有密码回调的工作示例吗?

最佳答案

您可以在以下工作示例中找到回调示例。它以分离模式对文件进行签名,即签名文件与原始文件分离。它使用 ~/.gnupg 或类似的默认 key 环。要为 key 环使用不同的目录,请在调用 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

关于ruby - 在 ruby​​ gpgme 中使用密码回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1867757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com