Реализация шифрования gpg в Ruby

попытка преобразовать некоторые старые скрипты оболочки / unix в Ruby.

У меня есть следующее шифрование файла, которое выполняется с помощью инструмента gpg в Unix. Я могу передать ключ получателя, файл, который я хочу зашифровать,и outfile для шифрования pgp.

gpg --recipient "$my_recipient_key" \
    --encrypt "$my_file" \
    --output "$my_outfile" \
    --always-trust \
    --compress-algo zip

что такое эквивалент Ruby для простого шифрования, как указано выше?

после некоторого рытья, я вижу:

  1. OpenPGP популярно, но нет документация на сайте RubyGems и других местах скудна с хорошими примерами.
  2. gpgme кажется, популярным и перспективным. Тем не менее, я буду честен, я новичок в Ruby, и нажатие на документацию (см. ссылку) оставляет меня немного смущенным о том, с чего начать (т. е. хороший пример был бы хорошим)
  3. я также вижу другие меньшие драгоценные камни и библиотеки, которые разработали пользователи, но я ограничен использованием сертифицированных драгоценных камней из базы данных rubyGems как это для официальной работы.

спасибо!

1 ответов


недавно я использовал gpgme. Код для шифрования файла выглядел так:

GPGME::Key.import(File.open(path_to_key)) #only needed if the key has not been imported previously
crypto = GPGME::Crypto.new :always_trust => true
File.open(path_to_encrypt) do |in_file|
  File.open(output_path, 'wb') do |out_file|
    crypto.encrypt in_file, :output => out_file, :recipients => "foo@example.com"
  end
end

вы можете знать, что нет ничего "сертифицированного" о том, что на rubygems - любой может разместить там драгоценный камень (и для этого требуется всего 3 минуты)