我使用了以下模块
https://github.com/ueno/ruby-gpgme
我的加密代码库是这样的:
def encrypt_sign(
plaintext,
recipient_pubkey,
sender_privkey,
binary: nil,
password: nil
)
in_a_directory(binary) do
options = pinentry_mode(password)
GPGME::Ctx.new(options) do |ctx|
import(sender_privkey)
import(recipient_pubkey)
ctx.add_signer(*(find(sender_privkey, :secret)))
ctx.encrypt_sign(
find(recipient_pubkey, :public),
data(plaintext),
data,
GPGME::ENCRYPT_ALWAYS_TRUST
).to_s
end
end
end
我不知道如何输入文件路径而不是纯文本文件。
任何建议都表示赞赏。
答案 0 :(得分:0)
"明文"在密码学的上下文中,并不是指实际文本,而是指您想要加密的常规数据。所以它应该将文件内容传递为plaintext
encrypt_sign(File.read(file_path), recipient_pubkey, ...)