Module: JwkLoader::Test
- Defined in:
- lib/jwk_loader/test.rb
Instance Method Summary collapse
- #generate_signing_key(algorithm:) ⇒ Object
- #sign_test_token(token_payload:, jwk_endpoint:, algorithm: "RS512") ⇒ Object
- #test_signing_key_for(jwk_endpoint:, algorithm: "RS512") ⇒ Object
Instance Method Details
#generate_signing_key(algorithm:) ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/jwk_loader/test.rb', line 5 def generate_signing_key(algorithm:) case algorithm when "RS256", "RS384", "RS512" OpenSSL::PKey::RSA.new(2048) when "ES256" OpenSSL::PKey::EC.generate("prime256v1") else raise "Unsupported algorithm: #{algorithm}" end end |
#sign_test_token(token_payload:, jwk_endpoint:, algorithm: "RS512") ⇒ Object
27 28 29 30 |
# File 'lib/jwk_loader/test.rb', line 27 def sign_test_token(token_payload:, jwk_endpoint:, algorithm: "RS512") key = test_signing_key_for(jwk_endpoint: jwk_endpoint, algorithm: algorithm) JWT.encode(token_payload, key.signing_key, algorithm, kid: key[:kid]) end |
#test_signing_key_for(jwk_endpoint:, algorithm: "RS512") ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/jwk_loader/test.rb', line 16 def test_signing_key_for(jwk_endpoint:, algorithm: "RS512") key_set = JwkLoader.memory_store.fetch(jwk_endpoint) if key_set.nil? key_set = JWT::JWK::Set.new([generate_signing_key(algorithm: algorithm)]) JwkLoader.memory_store.store(jwk_endpoint, key_set) end key_set.first end |