class JWT::JWK::HMAC
Constants
- KTY
- KTYS
Attributes
keypair[R]
signing_key[R]
Public Class Methods
import(jwk_data)
click to toggle source
# File lib/jwt/jwk/hmac.rb, line 56 def import(jwk_data) jwk_k = jwk_data[:k] || jwk_data['k'] jwk_kid = jwk_data[:kid] || jwk_data['kid'] raise JWT::JWKError, 'Key format is invalid for HMAC' unless jwk_k new(jwk_k, kid: jwk_kid) end
new(signing_key, options = {})
click to toggle source
Calls superclass method
# File lib/jwt/jwk/hmac.rb, line 11 def initialize(signing_key, options = {}) raise ArgumentError, 'signing_key must be of type String' unless signing_key.is_a?(String) @signing_key = signing_key super(options) end
Public Instance Methods
export(options = {})
click to toggle source
See tools.ietf.org/html/rfc7517#appendix-A.3
# File lib/jwt/jwk/hmac.rb, line 27 def export(options = {}) exported_hash = { kty: KTY, kid: kid } return exported_hash unless private? && options[:include_private] == true exported_hash.merge( k: signing_key ) end
key_digest()
click to toggle source
# File lib/jwt/jwk/hmac.rb, line 49 def key_digest sequence = OpenSSL::ASN1::Sequence([OpenSSL::ASN1::UTF8String.new(signing_key), OpenSSL::ASN1::UTF8String.new(KTY)]) OpenSSL::Digest::SHA256.hexdigest(sequence.to_der) end
members()
click to toggle source
# File lib/jwt/jwk/hmac.rb, line 40 def members { kty: KTY, k: signing_key } end
private?()
click to toggle source
# File lib/jwt/jwk/hmac.rb, line 18 def private? true end
public_key()
click to toggle source
# File lib/jwt/jwk/hmac.rb, line 22 def public_key nil end