我怎么能用ruby-gpgme加密file_path?

时间:2017-10-02 14:37:43

标签: ruby encryption gnupg gpgme

我使用了以下模块

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

我不知道如何输入文件路径而不是纯文本文件。

任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

"明文"在密码学的上下文中,并不是指实际文本,而是指您想要加密的常规数据。所以它应该将文件内容传递为plaintext

encrypt_sign(File.read(file_path), recipient_pubkey, ...)