Class: Cryptor::SymmetricEncryption::Keyring

Inherits:
Object
  • Object
show all
Defined in:
lib/cryptor/symmetric_encryption/keyring.rb

Overview

Stores multiple keys for the purposes of key rotation

Instance Method Summary collapse

Constructor Details

#initialize(*keys) ⇒ Keyring

Returns a new instance of Keyring.



7
8
9
10
11
12
13
14
# File 'lib/cryptor/symmetric_encryption/keyring.rb', line 7

def initialize(*keys)
  @keys = {}
  keys.each do |key|
    key = SecretKey.new(key) if key.is_a? String
    fail TypeError, "not a valid secret key: #{key.inspect}" unless key.is_a? SecretKey
    @keys[key.fingerprint] = key
  end
end

Instance Method Details

#find(fingerprint) ⇒ Object Also known as: []



16
17
18
# File 'lib/cryptor/symmetric_encryption/keyring.rb', line 16

def find(fingerprint)
  @keys[fingerprint] || fail(KeyNotFoundError, "no key for fingerprint: #{fingerprint}")
end