module AspisInit
Public Class Methods
init()
click to toggle source
# File lib/aspis/aspis_init.rb, line 24 def self.init options = {} OptionParser.new do |opts| opts.banner = "Encryption filter utility.\n" opts.version = Aspis::VERSION opts.on('-e', '--encrypt', 'Encrypt') do options[:mode] = 'encrypt' end opts.on('-d', '--decrypt', 'Decrypt') do options[:mode] = 'decrypt' end opts.on('-g', '--generate', 'Generate key pair') do options[:mode] = 'generate' end opts.on('-n', '--nopass', 'Use env variable ASPIS_PASS for passphrase') do options[:ask_pass] = false end opts.on('-p', '--pubkey public_key', String, "Recipient's public key") do |p| options[:public_key] = p end opts.on('-k', '--privatekey private_key', String, "Sender's private key") do |k| options[:private_key] = k end opts.on('-o', '--opslimit opslimit', Integer, 'Argon2i ops parameter') do |o| options[:opslimit] = o end opts.on('-m', '--memlimit memlimit', Integer, 'Argon2i memory in MiB') do |m| options[:memlimit] = m end opts.on('-h', '--help', 'Displays help') do puts opts exit end end.parse! abort('Fatal error: must enter -g, -e, or -d') unless options[:mode] run(options) end
run(options)
click to toggle source
# File lib/aspis/aspis_init.rb, line 74 def self.run(options) if options[:public_key] unless options[:private_key] aspis_dir = File.expand_path('~/.aspis') options[:private_key] = aspis_dir + '/private_key' end end case options[:mode] when 'encrypt' if options[:public_key] puts Asymmetric.encrypt(ARGF.read, options[:public_key], options[:private_key], options[:ask_pass]) else puts Symmetric.encrypt(ARGF.read, options[:opslimit], options[:memlimit], options[:ask_pass]) end when 'decrypt' if options[:public_key] puts Asymmetric.decrypt(ARGF.read, options[:public_key], options[:private_key], options[:ask_pass]) else puts Symmetric.decrypt(ARGF.read, options[:ask_pass]) end when 'generate' GenerateKeys.generate(options[:opslimit], options[:memlimit], options[:ask_pass]) end end