2013-06-17 21 views
6

Próbujesz przekonwertować niektóre stare skrypty powłoki/unix na Ruby.Wdrażanie gpg Szyfrowanie w Ruby

Mam następujące szyfrowanie pliku, który jest wykonywany za pomocą narzędzia gpg w systemie Unix. Mogę przekazać klucz odbiorcy, plik, który chcę zaszyfrować, i plik wyjściowy do zaszyfrowania czegoś pgp.

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

Co to jest odpowiednik ruby ​​do prostego szyfrowania jak powyżej?

Po wykonaniu niektórych Kopanie, widzę:

  1. OpenPGP jest popularny, ale nie ma dokumentacji na stronie rubygems i inne miejsca są nieliczne z dobrych przykładów.
  2. gpgme wydaje się popularny i obiecujący. Będę jednak szczery, jestem nowy w Ruby i kliknięcie na dokumentację (patrz link) pozostawia mnie trochę zdezorientowanym tym, od czego zacząć (np. Dobry przykład byłby miły)
  3. Widzę również inne mniejsze klejnoty i biblioteki zaprojektowane przez użytkowników, ale jestem ograniczony do korzystania z certyfikowanych klejnotów z bazy danych rubyGems, ponieważ są one przeznaczone do oficjalnego użytku.

Dzięki!

Odpowiedz

9

Używam ostatnio gpgme. Kod zaszyfrować plik wyglądał następująco

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 => "[email protected]" 
    end 
end 

Czasami warto wiedzieć, że nie ma nic „certyfikat” o tym, co znajduje się na RubyGems - każdy może zamieścić tam gem (i to wszystko 3 minuty, aby to zrobić)

+0

To działało świetnie, dzięki! – user2490003

+2

Tak samo jak ja to zhakowałem (https://rubygems.org/gems/rgpg) razem w pięć minut! :-) –