Class: LightJWT::JWA::JWS

Inherits:
Object
  • Object
show all
Defined in:
lib/light_jwt/jwa/jws.rb

Defined Under Namespace

Classes: BaseHandler, ECDSAHandler, HMACHandler, NoneHandler, RSAHandler

Constant Summary collapse

HMAC_ALGORITHMS =
{
  'HS256' => OpenSSL::Digest::SHA256,
  'HS384' => OpenSSL::Digest::SHA384,
  'HS512' => OpenSSL::Digest::SHA512
}.freeze
RSA_ALGORITHMS =
{
  'RS256' => OpenSSL::Digest::SHA256,
  'RS384' => OpenSSL::Digest::SHA384,
  'RS512' => OpenSSL::Digest::SHA512
}.freeze
ECDSA_ALGORITHMS =
{
  'ES256' => OpenSSL::Digest::SHA256,
  'ES384' => OpenSSL::Digest::SHA384,
  'ES512' => OpenSSL::Digest::SHA512
}.freeze
SUPPORTED_ALGORITHMS =
HMAC_ALGORITHMS.keys + RSA_ALGORITHMS.keys + ECDSA_ALGORITHMS.keys + ['none']

Class Method Summary collapse

Class Method Details

.sign(alg, signing_key, token) ⇒ Object



27
28
29
# File 'lib/light_jwt/jwa/jws.rb', line 27

def sign(alg, signing_key, token)
  algorithm_handler(alg).sign(signing_key, token)
end

.supported_algorithmsObject



35
36
37
# File 'lib/light_jwt/jwa/jws.rb', line 35

def supported_algorithms
  SUPPORTED_ALGORITHMS
end

.verify(alg, key, token, signature) ⇒ Object



31
32
33
# File 'lib/light_jwt/jwa/jws.rb', line 31

def verify(alg, key, token, signature)
  algorithm_handler(alg).verify(key, token, signature)
end