Class: AtomicLti::Jwk
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- AtomicLti::Jwk
- Defined in:
- app/models/atomic_lti/jwk.rb
Class Method Summary collapse
Instance Method Summary collapse
- #alg ⇒ Object
- #generate_keys ⇒ Object
- #private_key ⇒ Object
- #public_key ⇒ Object
- #to_json ⇒ Object
- #to_pem ⇒ Object
Class Method Details
.current_jwk ⇒ Object
37 38 39 |
# File 'app/models/atomic_lti/jwk.rb', line 37 def self.current_jwk self.last end |
Instance Method Details
#alg ⇒ Object
11 12 13 |
# File 'app/models/atomic_lti/jwk.rb', line 11 def alg "RS256" end |
#generate_keys ⇒ Object
5 6 7 8 9 |
# File 'app/models/atomic_lti/jwk.rb', line 5 def generate_keys pkey = OpenSSL::PKey::RSA.generate(2048) self.pem = pkey.to_pem self.kid = pkey.to_jwk.thumbprint end |
#private_key ⇒ Object
15 16 17 |
# File 'app/models/atomic_lti/jwk.rb', line 15 def private_key OpenSSL::PKey::RSA.new(pem) end |
#public_key ⇒ Object
19 20 21 22 |
# File 'app/models/atomic_lti/jwk.rb', line 19 def public_key pkey = OpenSSL::PKey::RSA.new(pem) pkey.public_key end |
#to_json ⇒ Object
24 25 26 27 28 29 30 |
# File 'app/models/atomic_lti/jwk.rb', line 24 def to_json pkey = OpenSSL::PKey::RSA.new(pem) json = JSON::JWK.new(pkey.public_key, kid: kid).as_json json["use"] = "sig" json["alg"] = alg json end |
#to_pem ⇒ Object
32 33 34 35 |
# File 'app/models/atomic_lti/jwk.rb', line 32 def to_pem pkey = OpenSSL::PKey::RSA.new(pem) pkey.public_key.to_pem end |