Sha256: 15d3e4839fdb73b144993ebc9a88e7a2871eb926d72fcb08aad4df98260ae8ed

Contents?: true

Size: 638 Bytes

Versions: 3

Compression:

Stored size: 638 Bytes

Contents

require 'cryptor/symmetric_encryption/secret_key'

module Cryptor
  class SymmetricEncryption
    # Stores multiple keys for the purposes of key rotation
    class Keyring
      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

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cryptor-1.1.1 lib/cryptor/symmetric_encryption/keyring.rb
cryptor-1.1.0 lib/cryptor/symmetric_encryption/keyring.rb
cryptor-1.0.0 lib/cryptor/symmetric_encryption/keyring.rb