Sha256: f50e8d291b59b5f037ad71922f4a2c4e8229f0fcca4d8e9e9c4d51df1e8e07f3
Contents?: true
Size: 1.34 KB
Versions: 3
Compression:
Stored size: 1.34 KB
Contents
# frozen_string_literal: true require_relative 'jwk/key_finder' require_relative 'jwk/set' module JWT # JSON Web Key (JWK) module JWK class << self def create_from(key, params = nil, options = {}) if key.is_a?(Hash) jwk_kty = key[:kty] || key['kty'] raise JWT::JWKError, 'Key type (kty) not provided' unless jwk_kty return mappings.fetch(jwk_kty.to_s) do |kty| raise JWT::JWKError, "Key type #{kty} not supported" end.new(key, params, options) end mappings.fetch(key.class) do |klass| raise JWT::JWKError, "Cannot create JWK from a #{klass.name}" end.new(key, params, options) end def classes @mappings = nil # reset the cached mappings @classes ||= [] end alias new create_from alias import create_from private def mappings @mappings ||= generate_mappings end def generate_mappings classes.each_with_object({}) do |klass, hash| next unless klass.const_defined?('KTYS') Array(klass::KTYS).each do |kty| hash[kty] = klass end end end end end end require_relative 'jwk/key_base' require_relative 'jwk/ec' require_relative 'jwk/rsa' require_relative 'jwk/hmac' require_relative 'jwk/okp_rbnacl' if JWT.rbnacl?
Version data entries
3 entries across 3 versions & 2 rubygems
Version | Path |
---|---|
minato_ruby_api_client-0.2.2 | vendor/bundle/ruby/3.2.0/gems/jwt-2.10.1/lib/jwt/jwk.rb |
jwt-2.10.1 | lib/jwt/jwk.rb |
jwt-2.10.0 | lib/jwt/jwk.rb |