Class: Generate
- Inherits:
-
Object
- Object
- Generate
- Defined in:
- lib/rapid-vaults/generate.rb
Overview
generates files necessary for encryption and decryption
Class Method Summary collapse
-
.gpgme(settings) ⇒ Object
generates a private and public key.
-
.openssl(settings) ⇒ Object
generates a key and nonce.
Class Method Details
.gpgme(settings) ⇒ Object
generates a private and public key
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/rapid-vaults/generate.rb', line 23 def self.gpgme(settings) require 'gpgme' # ensure we have a place to store these output files raise 'Environment variable "GNUPGHOME" was not set.' unless ENV.fetch('GNUPGHOME', false) # create gpg keys GPGME::Ctx.new.generate_key(settings[:gpgparams], nil, nil) puts "Your GPG keys have been generated in #{ENV.fetch('GNUPGHOME')}." if settings[:ui] == :cli end |
.openssl(settings) ⇒ Object
generates a key and nonce
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/rapid-vaults/generate.rb', line 4 def self.openssl(settings) require 'openssl' # setup parameters cipher = OpenSSL::Cipher.new('aes-256-gcm').encrypt case settings[:ui] when :cli # output to file File.write("#{settings[:outdir]}key.txt", cipher.random_key) File.write("#{settings[:outdir]}nonce.txt", cipher.random_iv) puts "Your key.txt and nonce.txt have been generated in #{settings[:outdir]}." when :api # return as array [cipher.random_key, cipher.random_iv] end end |