module JWT
def self.gem_version
def self.gem_version Gem::Version.new VERSION::STRING end
def self.openssl_3?
def self.openssl_3? return false if OpenSSL::OPENSSL_VERSION.include?('LibreSSL') return true if OpenSSL::OPENSSL_VERSION_NUMBER >= 3 * 0x10000000 end
def self.openssl_3_hmac_empty_key_regression?
def self.openssl_3_hmac_empty_key_regression? openssl_3? && openssl_version <= ::Gem::Version.new('3.0.0') end
def self.openssl_version
def self.openssl_version @openssl_version ||= ::Gem::Version.new(OpenSSL::VERSION) end
def self.rbnacl?
def self.rbnacl? defined?(::RbNaCl) end
def self.rbnacl_6_or_greater?
def self.rbnacl_6_or_greater? rbnacl? && ::Gem::Version.new(::RbNaCl::VERSION) >= ::Gem::Version.new('6.0.0') end
def decode(jwt, key = nil, verify = true, options = {}, &keyfinder) # rubocop:disable Style/OptionalBooleanParameter
def decode(jwt, key = nil, verify = true, options = {}, &keyfinder) # rubocop:disable Style/OptionalBooleanParameter Decode.new(jwt, key, verify, configuration.decode.to_h.merge(options), &keyfinder).decode_segments end
def encode(payload, key, algorithm = 'HS256', header_fields = {})
def encode(payload, key, algorithm = 'HS256', header_fields = {}) Encode.new(payload: payload, key: key, algorithm: algorithm, headers: header_fields).segments end