jwt 2.5.0 → 2.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +101 -23
  3. data/CONTRIBUTING.md +7 -7
  4. data/README.md +125 -47
  5. data/lib/jwt/base64.rb +16 -2
  6. data/lib/jwt/claims_validator.rb +1 -1
  7. data/lib/jwt/configuration/container.rb +14 -3
  8. data/lib/jwt/configuration/jwk_configuration.rb +1 -1
  9. data/lib/jwt/decode.rb +49 -32
  10. data/lib/jwt/deprecations.rb +48 -0
  11. data/lib/jwt/encode.rb +23 -19
  12. data/lib/jwt/error.rb +1 -0
  13. data/lib/jwt/{algos → jwa}/ecdsa.rb +19 -7
  14. data/lib/jwt/jwa/eddsa.rb +42 -0
  15. data/lib/jwt/jwa/hmac.rb +75 -0
  16. data/lib/jwt/jwa/hmac_rbnacl.rb +50 -0
  17. data/lib/jwt/jwa/hmac_rbnacl_fixed.rb +46 -0
  18. data/lib/jwt/{algos → jwa}/none.rb +4 -2
  19. data/lib/jwt/jwa/ps.rb +30 -0
  20. data/lib/jwt/jwa/rsa.rb +25 -0
  21. data/lib/jwt/{algos → jwa}/unsupported.rb +1 -1
  22. data/lib/jwt/jwa/wrapper.rb +26 -0
  23. data/lib/jwt/jwa.rb +62 -0
  24. data/lib/jwt/jwk/ec.rb +168 -116
  25. data/lib/jwt/jwk/hmac.rb +64 -28
  26. data/lib/jwt/jwk/key_base.rb +33 -11
  27. data/lib/jwt/jwk/key_finder.rb +19 -35
  28. data/lib/jwt/jwk/okp_rbnacl.rb +110 -0
  29. data/lib/jwt/jwk/rsa.rb +142 -77
  30. data/lib/jwt/jwk/set.rb +80 -0
  31. data/lib/jwt/jwk.rb +14 -11
  32. data/lib/jwt/verify.rb +16 -12
  33. data/lib/jwt/version.rb +20 -3
  34. data/lib/jwt/x5c_key_finder.rb +2 -5
  35. data/lib/jwt.rb +4 -1
  36. data/ruby-jwt.gemspec +11 -4
  37. metadata +35 -27
  38. data/.codeclimate.yml +0 -8
  39. data/.github/workflows/coverage.yml +0 -27
  40. data/.github/workflows/test.yml +0 -67
  41. data/.gitignore +0 -13
  42. data/.reek.yml +0 -22
  43. data/.rspec +0 -2
  44. data/.rubocop.yml +0 -67
  45. data/.sourcelevel.yml +0 -17
  46. data/Appraisals +0 -13
  47. data/Gemfile +0 -7
  48. data/Rakefile +0 -16
  49. data/lib/jwt/algos/eddsa.rb +0 -35
  50. data/lib/jwt/algos/hmac.rb +0 -36
  51. data/lib/jwt/algos/ps.rb +0 -43
  52. data/lib/jwt/algos/rsa.rb +0 -22
  53. data/lib/jwt/algos.rb +0 -44
  54. data/lib/jwt/security_utils.rb +0 -59
  55. data/lib/jwt/signature.rb +0 -35
data/lib/jwt/signature.rb DELETED
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'jwt/security_utils'
4
- require 'openssl'
5
- require 'jwt/algos'
6
- begin
7
- require 'rbnacl'
8
- rescue LoadError
9
- raise if defined?(RbNaCl)
10
- end
11
-
12
- # JWT::Signature module
13
- module JWT
14
- # Signature logic for JWT
15
- module Signature
16
- module_function
17
-
18
- ToSign = Struct.new(:algorithm, :msg, :key)
19
- ToVerify = Struct.new(:algorithm, :public_key, :signing_input, :signature)
20
-
21
- def sign(algorithm, msg, key)
22
- algo, code = Algos.find(algorithm)
23
- algo.sign ToSign.new(code, msg, key)
24
- end
25
-
26
- def verify(algorithm, key, signing_input, signature)
27
- algo, code = Algos.find(algorithm)
28
- algo.verify(ToVerify.new(code, key, signing_input, signature))
29
- rescue OpenSSL::PKey::PKeyError
30
- raise JWT::VerificationError, 'Signature verification raised'
31
- ensure
32
- OpenSSL.errors.clear
33
- end
34
- end
35
- end