Class: AttrKeyring::Keyring
- Inherits:
-
Object
- Object
- AttrKeyring::Keyring
- Defined in:
- lib/attr_keyring/keyring.rb
Instance Method Summary collapse
- #[](id) ⇒ Object
- #[]=(id, value) ⇒ Object
- #clear ⇒ Object
- #current_key ⇒ Object
- #decrypt(message, keyring_id) ⇒ Object
- #encrypt(message, keyring_id = current_key.id) ⇒ Object
-
#initialize(keyring, encryptor = Encryptor::AES128CBC) ⇒ Keyring
constructor
A new instance of Keyring.
Constructor Details
#initialize(keyring, encryptor = Encryptor::AES128CBC) ⇒ Keyring
Returns a new instance of Keyring.
3 4 5 6 7 8 |
# File 'lib/attr_keyring/keyring.rb', line 3 def initialize(keyring, encryptor = Encryptor::AES128CBC) @encryptor = encryptor @keyring = keyring.map do |id, value| Key.new(id, value, @encryptor.key_size) end end |
Instance Method Details
#[](id) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/attr_keyring/keyring.rb', line 14 def [](id) key = @keyring.find {|k| k.id == id.to_i } return key if key raise UnknownKey, "key=#{id} is not available on keyring" end |
#[]=(id, value) ⇒ Object
21 22 23 |
# File 'lib/attr_keyring/keyring.rb', line 21 def []=(id, value) @keyring << Key.new(id, value, @encryptor.key_size) end |
#clear ⇒ Object
25 26 27 |
# File 'lib/attr_keyring/keyring.rb', line 25 def clear @keyring.clear end |
#current_key ⇒ Object
10 11 12 |
# File 'lib/attr_keyring/keyring.rb', line 10 def current_key @keyring.max_by(&:id) end |
#decrypt(message, keyring_id) ⇒ Object
33 34 35 |
# File 'lib/attr_keyring/keyring.rb', line 33 def decrypt(, keyring_id) @encryptor.decrypt(self[keyring_id].value, ) end |
#encrypt(message, keyring_id = current_key.id) ⇒ Object
29 30 31 |
# File 'lib/attr_keyring/keyring.rb', line 29 def encrypt(, keyring_id = current_key.id) @encryptor.encrypt(self[keyring_id].value, ) end |