class Epithet::Config
Class for passing around preset configs. See Epithet::configure for options.
Public Class Methods
Source
# File lib/epithet.rb, line 158 def initialize(opts = {}) opts = opts.dup @separator = String(opts.delete(:separator) { '_' }) @salt = String(opts.delete(:salt)) @cipher = opts.delete(:cipher) || 'aes-256-ecb' @digest = opts.delete(:digest) || 'sha256' cipher = OpenSSL::Cipher.new(@cipher) raise ArgumentError, "#{@cipher} not a 128-bit block cipher" if cipher.block_size != 16 raise ArgumentError, "#{@cipher} requires an IV/nonce" if cipher.iv_len != 0 raise ArgumentError, "#{@digest} produces < 64-bit digest" if OpenSSL::Digest.new(@digest).digest_length < 8 @keygen = opts.delete(:keygen) || Keygen.new( passphrase: opts.delete(:passphrase), digest: @digest, scrypt: opts.delete(:scrypt) || Keygen::DEFAULT_SCRYPT_PARAMS) raise ArgumentError, "unused option(s) #{opts.keys}" unless opts.empty? end