class JWT::JWK::KeyBase

def self.inherited(klass)

def self.inherited(klass)
  super
  ::JWT::JWK.classes << klass
end

def <=>(other)

def <=>(other)
  self[:kid] <=> other[:kid]
end

def ==(other)

def ==(other)
  self[:kid] == other[:kid]
end

def [](key)

def [](key)
  @parameters[key.to_sym]
end

def []=(key, value)

def []=(key, value)
  @parameters[key.to_sym] = value
end

def hash

def hash
  self[:kid].hash
end

def initialize(options, params = {})

def initialize(options, params = {})
  options ||= {}
  @parameters = params.transform_keys(&:to_sym) # Uniform interface
  # For backwards compatibility, kid_generator may be specified in the parameters
  options[:kid_generator] ||= @parameters.delete(:kid_generator)
  # Make sure the key has a kid
  kid_generator = options[:kid_generator] || ::JWT.configuration.jwk.kid_generator
  self[:kid] ||= kid_generator.new(self).generate
end

def kid

def kid
  self[:kid]
end