Class: AttrEncrypter::Boxes
- Inherits:
-
Object
- Object
- AttrEncrypter::Boxes
- Defined in:
- lib/attr_encrypter/boxes.rb
Constant Summary collapse
- KEY_FORMAT =
/^(\d+)\.([a-f0-9]{64})$/.freeze
Instance Method Summary collapse
- #[](version) ⇒ Object
-
#initialize(keychain) ⇒ Boxes
constructor
A new instance of Boxes.
- #latest_version ⇒ Object
Constructor Details
#initialize(keychain) ⇒ Boxes
Returns a new instance of Boxes.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# 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 |
Instance Method Details
#[](version) ⇒ Object
23 24 25 |
# File 'lib/attr_encrypter/boxes.rb', line 23 def [](version) @boxes[version] end |
#latest_version ⇒ Object
27 28 29 |
# File 'lib/attr_encrypter/boxes.rb', line 27 def latest_version @boxes.keys.max end |