Module: JWT

Extended by:
Configuration
Defined in:
lib/jwt.rb,
lib/jwt/jwk.rb,
lib/jwt/json.rb,
lib/jwt/algos.rb,
lib/jwt/error.rb,
lib/jwt/base64.rb,
lib/jwt/decode.rb,
lib/jwt/encode.rb,
lib/jwt/jwk/ec.rb,
lib/jwt/verify.rb,
lib/jwt/jwk/rsa.rb,
lib/jwt/jwk/set.rb,
lib/jwt/version.rb,
lib/jwt/algos/ps.rb,
lib/jwt/jwk/hmac.rb,
lib/jwt/algos/rsa.rb,
lib/jwt/algos/hmac.rb,
lib/jwt/algos/none.rb,
lib/jwt/algos/ecdsa.rb,
lib/jwt/algos/eddsa.rb,
lib/jwt/jwk/key_base.rb,
lib/jwt/configuration.rb,
lib/jwt/jwk/key_finder.rb,
lib/jwt/jwk/okp_rbnacl.rb,
lib/jwt/jwk/thumbprint.rb,
lib/jwt/x5c_key_finder.rb,
lib/jwt/claims_validator.rb,
lib/jwt/algos/hmac_rbnacl.rb,
lib/jwt/algos/unsupported.rb,
lib/jwt/algos/algo_wrapper.rb,
lib/jwt/jwk/kid_as_key_digest.rb,
lib/jwt/algos/hmac_rbnacl_fixed.rb,
lib/jwt/configuration/container.rb,
lib/jwt/configuration/jwk_configuration.rb,
lib/jwt/configuration/decode_configuration.rb

Overview

Moments version builder module

Defined Under Namespace

Modules: Algos, Configuration, JWK, VERSION Classes: Base64, ClaimsValidator, Decode, DecodeError, Encode, EncodeError, ExpiredSignature, ImmatureSignature, IncorrectAlgorithm, InvalidAudError, InvalidIatError, InvalidIssuerError, InvalidJtiError, InvalidPayload, InvalidSubError, JSON, JWKError, MissingRequiredClaim, RequiredDependencyError, UnsupportedEcdsaCurve, VerificationError, Verify, X5cKeyFinder

Class Method Summary collapse

Methods included from Configuration

configuration, configure

Class Method Details

.decode(jwt, key = nil, verify = true, options = {}, &keyfinder) ⇒ Object

rubocop:disable Style/OptionalBooleanParameter



28
29
30
# File 'lib/jwt.rb', line 28

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

.encode(payload, key, algorithm = 'HS256', header_fields = {}) ⇒ Object



21
22
23
24
25
26
# File 'lib/jwt.rb', line 21

def encode(payload, key, algorithm = 'HS256', header_fields = {})
  Encode.new(payload: payload,
             key: key,
             algorithm: algorithm,
             headers: header_fields).segments
end

.gem_versionObject



5
6
7
# File 'lib/jwt/version.rb', line 5

def self.gem_version
  Gem::Version.new VERSION::STRING
end

.openssl_3?Boolean

Returns:

  • (Boolean)


24
25
26
27
# File 'lib/jwt/version.rb', line 24

def self.openssl_3?
  return false if OpenSSL::OPENSSL_VERSION.include?('LibreSSL')
  return true if OpenSSL::OPENSSL_VERSION_NUMBER >= 3 * 0x10000000
end

.openssl_3_hmac_empty_key_regression?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/jwt/version.rb', line 37

def self.openssl_3_hmac_empty_key_regression?
  openssl_3? && openssl_version <= ::Gem::Version.new('3.0.0')
end

.openssl_versionObject



41
42
43
# File 'lib/jwt/version.rb', line 41

def self.openssl_version
  @openssl_version ||= ::Gem::Version.new(OpenSSL::VERSION)
end

.rbnacl?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/jwt/version.rb', line 29

def self.rbnacl?
  defined?(::RbNaCl)
end

.rbnacl_6_or_greater?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/jwt/version.rb', line 33

def self.rbnacl_6_or_greater?
  rbnacl? && ::Gem::Version.new(::RbNaCl::VERSION) >= ::Gem::Version.new('6.0.0')
end