class JWT::Algos::AlgoWrapper

Attributes

alg[R]
cls[R]

Public Class Methods

new(alg, cls) click to toggle source
# File lib/jwt/algos/algo_wrapper.rb, line 8
def initialize(alg, cls)
  @alg = alg
  @cls = cls
end

Public Instance Methods

sign(data:, signing_key:) click to toggle source
# File lib/jwt/algos/algo_wrapper.rb, line 17
def sign(data:, signing_key:)
  cls.sign(alg, data, signing_key)
end
valid_alg?(alg_to_check) click to toggle source
# File lib/jwt/algos/algo_wrapper.rb, line 13
def valid_alg?(alg_to_check)
  alg.casecmp(alg_to_check)&.zero? == true
end
verify(data:, signature:, verification_key:) click to toggle source
# File lib/jwt/algos/algo_wrapper.rb, line 21
def verify(data:, signature:, verification_key:)
  cls.verify(alg, verification_key, data, signature)
rescue OpenSSL::PKey::PKeyError # These should be moved to the algorithms that actually need this, but left here to ensure nothing will break.
  raise JWT::VerificationError, 'Signature verification raised'
ensure
  OpenSSL.errors.clear
end