2013-06-17 17 views
6

Provare a convertire alcuni vecchi script shell/unix in Ruby.Implementazione della crittografia gpg in Ruby

Ho la seguente crittografia di un file che viene eseguita tramite lo strumento gpg in Unix. Posso passare la chiave del destinatario, il file che voglio crittografare, e il file di output su pgp crittografare qualcosa.

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

Qual è l'equivalente di Ruby per eseguire una semplice crittografia come sopra?

Dopo aver fatto qualche scavo, vedo:

  1. OpenPGP è popolare, ma non c'è alcuna documentazione sul sito RubyGems e in altri luoghi sono sparse con buoni esempi.
  2. gpgme sembra popolare e promettente. Tuttavia, sarò onesto, sono nuovo di Ruby e fare clic sulla documentazione (vedi link) mi lascia un po 'confuso su dove iniziare (ad esempio un buon esempio sarebbe bello)
  3. Vedo anche altri più piccoli gemme e librerie che gli utenti hanno progettato, ma io sono limitato a utilizzare gemme certificate dal database rubyGems in quanto questo è per uso di lavoro ufficiale.

Grazie!

risposta

9

Ho usato gpgme di recente. Il codice per crittografare un file si presentava così

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 

Si potrebbe desiderare di sapere che non c'è nulla di "certificato" di ciò che è sul rubygems - chiunque può pubblicare una gemma lì (e ci vuole tutto 3 minuti per farlo)

+0

Questo ha funzionato alla grande, grazie! – user2490003

+2

Proprio come ho hackerato questo (https://rubygems.org/gems/rgpg) insieme in cinque minuti! :-) –

Problemi correlati