class Sidekiq::Encryptor::Base

Public Class Methods

new(options = {}) click to toggle source
# File lib/sidekiq/encryptor.rb, line 32
def initialize(options = {})
  @key = validate_key(compact_key(options[:key]))
  @adapter = options[:adapter] || FernetAdapter
end

Public Instance Methods

enabled?() click to toggle source
# File lib/sidekiq/encryptor.rb, line 42
def enabled?
  !@key.nil?
end
inspect() click to toggle source
# File lib/sidekiq/encryptor.rb, line 37
def inspect
  "#<#{self.class.inspect}> @key=[masked] @adapter=#{@adapter.inspect}>"
end
Also aliased as: to_s
to_s()
Alias for: inspect

Private Instance Methods

compact_key(key) click to toggle source
# File lib/sidekiq/encryptor.rb, line 48
def compact_key(key)
  flat_key = key.to_s.delete("\r\n")
  case flat_key
  # empty
  when ""
    nil
  # hexadecimal
  when /^[\da-f]+$/i
    [flat_key].pack('H*')
  # base64
  when /^[A-Za-z\d\+\/=]+$/
    key.unpack('m*').first
  # assume binary otherwise
  else
    key
  end
end
validate_key(key) click to toggle source
# File lib/sidekiq/encryptor.rb, line 66
def validate_key(key)
  if key.nil?
    $stderr.puts '[sidekiq-encryptor] ERROR: no key provided, encryption disabled'
  elsif key.bytesize < 32
    $stderr.puts '[sidekiq-encryptor] ERROR: key length less than 256 bits, encryption disabled'
  else
    key.bytes.to_a[0,32].pack('C*')
  end
end