Sha256: 145c4e3390eeb754027f9b1b3295a022a548226d0e06c7bf662ba1fbd63186d8
Contents?: true
Size: 948 Bytes
Versions: 4
Compression:
Stored size: 948 Bytes
Contents
# frozen_string_literal: true module JWT module JWA module Ps # RSASSA-PSS signing algorithms module_function SUPPORTED = %w[PS256 PS384 PS512].freeze def sign(algorithm, msg, key) unless key.is_a?(::OpenSSL::PKey::RSA) raise EncodeError, "The given key is a #{key_class}. It has to be an OpenSSL::PKey::RSA instance." end translated_algorithm = algorithm.sub('PS', 'sha') key.sign_pss(translated_algorithm, msg, salt_length: :digest, mgf1_hash: translated_algorithm) end def verify(algorithm, public_key, signing_input, signature) translated_algorithm = algorithm.sub('PS', 'sha') public_key.verify_pss(translated_algorithm, signature, signing_input, salt_length: :auto, mgf1_hash: translated_algorithm) rescue OpenSSL::PKey::PKeyError raise JWT::VerificationError, 'Signature verification raised' end end end end
Version data entries
4 entries across 4 versions & 2 rubygems
Version | Path |
---|---|
blacklight-spotlight-3.6.0.beta8 | vendor/bundle/ruby/3.2.0/gems/jwt-2.8.2/lib/jwt/jwa/ps.rb |
jwt-2.8.2 | lib/jwt/jwa/ps.rb |
jwt-2.8.1 | lib/jwt/jwa/ps.rb |
jwt-2.8.0 | lib/jwt/jwa/ps.rb |