Как я могу зашифровать file_path с помощью ruby-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

Я понятия не имею, как ввести путь к файлу вместо файла с открытым текстом.

любые советы приветствуются.


person kei Sugano    schedule 02.10.2017    source источник


Ответы (1)


«Открытый текст» в контексте криптографии относится не к реальному тексту, а к обычным данным, которые вы хотите зашифровать. Итак, все, что нужно сделать, это передать содержимое файла как plaintext

encrypt_sign(File.read(file_path), recipient_pubkey, ...)
person Max    schedule 02.10.2017