Class: LicenseKit::PublicKeyStore

Inherits:
Object
  • Object
show all
Defined in:
lib/licensekit/verification.rb

Instance Method Summary collapse

Constructor Details

#initialize(keys = nil) ⇒ PublicKeyStore

Returns a new instance of PublicKeyStore.



20
21
22
23
24
# File 'lib/licensekit/verification.rb', line 20

def initialize(keys = nil)
  @keys = {}
  @verify_keys = {}
  Array(keys).each { |key| add(key) }
end

Instance Method Details

#add(key) ⇒ Object



26
27
28
29
# File 'lib/licensekit/verification.rb', line 26

def add(key)
  @keys[key.fetch("kid")] = key
  @verify_keys.delete(key.fetch("kid"))
end

#add_all(keys) ⇒ Object



31
32
33
# File 'lib/licensekit/verification.rb', line 31

def add_all(keys)
  Array(keys).each { |key| add(key) }
end

#get(kid) ⇒ Object



35
36
37
# File 'lib/licensekit/verification.rb', line 35

def get(kid)
  @keys[kid]
end

#valuesObject



39
40
41
# File 'lib/licensekit/verification.rb', line 39

def values
  @keys.values
end

#verify_key(kid) ⇒ Object

Raises:

  • (TypeError)


43
44
45
46
47
48
# File 'lib/licensekit/verification.rb', line 43

def verify_key(kid)
  key = get(kid)
  raise TypeError, "Unknown public key kid: #{kid}" if key.nil?

  @verify_keys[kid] ||= Ed25519::VerifyKey.new(LicenseKit.send(:decode_base64, key.fetch("public_key")))
end