class AttrEncrypter::Boxes

Constants

KEY_FORMAT

Public Class Methods

new(keychain) click to toggle source
# File lib/attr_encrypter/boxes.rb, line 7
def initialize(keychain)
  @boxes = keychain.split.reduce({}) do |keys, item|
    segments = item.match(KEY_FORMAT)
    version  = segments[1].to_i
    key      = [segments[2]].pack("H*")

    keys.merge(version => RbNaCl::SimpleBox.from_secret_key(key))
  end

  if @boxes.empty?
    raise AttrEncrypter::Errors::NoKeychainError
  end

  @boxes.freeze
end

Public Instance Methods

[](version) click to toggle source
# File lib/attr_encrypter/boxes.rb, line 23
def [](version)
  @boxes[version]
end
latest_version() click to toggle source
# File lib/attr_encrypter/boxes.rb, line 27
def latest_version
  @boxes.keys.max
end