jwt 1.5.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +5 -5
  2. data/.codeclimate.yml +8 -0
  3. data/.github/workflows/coverage.yml +27 -0
  4. data/.github/workflows/test.yml +67 -0
  5. data/.gitignore +13 -0
  6. data/.reek.yml +22 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +67 -0
  9. data/.sourcelevel.yml +17 -0
  10. data/AUTHORS +119 -0
  11. data/Appraisals +13 -0
  12. data/CHANGELOG.md +786 -0
  13. data/CODE_OF_CONDUCT.md +84 -0
  14. data/CONTRIBUTING.md +99 -0
  15. data/Gemfile +7 -0
  16. data/LICENSE +7 -0
  17. data/README.md +639 -0
  18. data/Rakefile +13 -14
  19. data/lib/jwt/algos/ecdsa.rb +64 -0
  20. data/lib/jwt/algos/eddsa.rb +35 -0
  21. data/lib/jwt/algos/hmac.rb +36 -0
  22. data/lib/jwt/algos/none.rb +17 -0
  23. data/lib/jwt/algos/ps.rb +43 -0
  24. data/lib/jwt/algos/rsa.rb +22 -0
  25. data/lib/jwt/algos/unsupported.rb +19 -0
  26. data/lib/jwt/algos.rb +44 -0
  27. data/lib/jwt/base64.rb +19 -0
  28. data/lib/jwt/claims_validator.rb +37 -0
  29. data/lib/jwt/configuration/container.rb +21 -0
  30. data/lib/jwt/configuration/decode_configuration.rb +46 -0
  31. data/lib/jwt/configuration/jwk_configuration.rb +27 -0
  32. data/lib/jwt/configuration.rb +15 -0
  33. data/lib/jwt/decode.rb +145 -0
  34. data/lib/jwt/encode.rb +69 -0
  35. data/lib/jwt/error.rb +22 -0
  36. data/lib/jwt/json.rb +10 -22
  37. data/lib/jwt/jwk/ec.rb +199 -0
  38. data/lib/jwt/jwk/hmac.rb +67 -0
  39. data/lib/jwt/jwk/key_base.rb +35 -0
  40. data/lib/jwt/jwk/key_finder.rb +62 -0
  41. data/lib/jwt/jwk/kid_as_key_digest.rb +15 -0
  42. data/lib/jwt/jwk/rsa.rb +138 -0
  43. data/lib/jwt/jwk/thumbprint.rb +26 -0
  44. data/lib/jwt/jwk.rb +52 -0
  45. data/lib/jwt/security_utils.rb +59 -0
  46. data/lib/jwt/signature.rb +35 -0
  47. data/lib/jwt/verify.rb +113 -0
  48. data/lib/jwt/version.rb +28 -0
  49. data/lib/jwt/x5c_key_finder.rb +55 -0
  50. data/lib/jwt.rb +20 -215
  51. data/ruby-jwt.gemspec +35 -0
  52. metadata +138 -30
  53. data/Manifest +0 -6
  54. data/jwt.gemspec +0 -34
  55. data/spec/helper.rb +0 -2
  56. data/spec/jwt_spec.rb +0 -434
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ee5f493cb3c4ed9c97a60b59f7377f410b280218
4
- data.tar.gz: f86ae6f76dbdd064ff4a7a83370b1ba343981d90
2
+ SHA256:
3
+ metadata.gz: a3098671a837e7b291103cde1921277c61ecaa0f0797b955e6adc65328498f0d
4
+ data.tar.gz: 3253833ac6d7743e40a5d5157b161cd0daecc9b77f61dfa7687d6b3da1be56ca
5
5
  SHA512:
6
- metadata.gz: 79802a75028b87314162658551582a1c4ace40439ac718bc8ac82ed57ccaa9b5d0ac695cf4daa318bcc89616ddc8e93bf3ff79d7cb4c47903c03aee51e5bb8a1
7
- data.tar.gz: c14849f306b4952c7eba478d8fbc11c0a5045f38b931b563c67fef6367d9a8e89a66b78cccd9c8e4fbc546645e221b9b70437cde4aed18ca584269a95e94e9b6
6
+ metadata.gz: 306c946b1199301a3f1000c8ffba4a77d07fd05dd83f769da86fd29f254827b5af8488a4b6a54b11f1f7f3a028cb88caafb7ed67528e7004c0337f6506e595ea
7
+ data.tar.gz: 57d1eba7a06bc9d9f9fcb76b42aa3808415af5020c53969b4cada890b1646e7d348a96ce18010ab0a978e42825febbeb7b3f205b72e8ce60ef90132cf5887599
data/.codeclimate.yml ADDED
@@ -0,0 +1,8 @@
1
+ plugins:
2
+ fixme:
3
+ enabled: true
4
+ shellcheck:
5
+ enabled: true
6
+ rubocop:
7
+ enabled: true
8
+ channel: rubocop-1-23-0
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: coverage
3
+ on:
4
+ push:
5
+ branches:
6
+ - "master"
7
+ jobs:
8
+ coverage:
9
+ name: coverage
10
+ runs-on: ubuntu-20.04
11
+ env:
12
+ BUNDLE_GEMFILE: 'gemfiles/rbnacl.gemfile'
13
+ CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
14
+ steps:
15
+ - uses: actions/checkout@v2
16
+ - name: Install libsodium
17
+ run: |
18
+ sudo apt-get update -q
19
+ sudo apt-get install libsodium-dev -y
20
+ - name: Set up Ruby
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: "2.7"
24
+ bundler-cache: true
25
+ - uses: paambaati/codeclimate-action@v3.0.0
26
+ with:
27
+ coverageCommand: bundle exec rspec
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: test
3
+ on:
4
+ push:
5
+ branches:
6
+ - "*"
7
+ pull_request:
8
+ branches:
9
+ - "*"
10
+ jobs:
11
+ lint:
12
+ name: RuboCop
13
+ timeout-minutes: 30
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v3
17
+ - name: Set up Ruby
18
+ uses: ruby/setup-ruby@v1
19
+ with:
20
+ ruby-version: "3.0"
21
+ bundler-cache: true
22
+ - name: Run RuboCop
23
+ run: bundle exec rubocop
24
+ test:
25
+ name: ${{ matrix.os }} - Ruby ${{ matrix.ruby }}
26
+ runs-on: ${{ matrix.os }}
27
+ strategy:
28
+ fail-fast: false
29
+ matrix:
30
+ os:
31
+ - ubuntu-20.04
32
+ ruby:
33
+ - "2.5"
34
+ - "2.6"
35
+ - "2.7"
36
+ - "3.0"
37
+ - "3.1"
38
+ gemfile:
39
+ - gemfiles/standalone.gemfile
40
+ - gemfiles/openssl.gemfile
41
+ - gemfiles/rbnacl.gemfile
42
+ experimental: [false]
43
+ include:
44
+ - { os: ubuntu-20.04, ruby: "2.7", gemfile: 'gemfiles/rbnacl.gemfile', experimental: false }
45
+ - { os: ubuntu-22.04, ruby: "3.1", experimental: false }
46
+ - { os: ubuntu-20.04, ruby: "truffleruby-head", experimental: true }
47
+ - { os: ubuntu-22.04, ruby: "head", experimental: true }
48
+ continue-on-error: ${{ matrix.experimental }}
49
+ env:
50
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
51
+
52
+ steps:
53
+ - uses: actions/checkout@v3
54
+
55
+ - name: Install libsodium
56
+ run: |
57
+ sudo apt-get update -q
58
+ sudo apt-get install libsodium-dev -y
59
+
60
+ - name: Set up Ruby
61
+ uses: ruby/setup-ruby@v1
62
+ with:
63
+ ruby-version: ${{ matrix.ruby }}
64
+ bundler-cache: true
65
+
66
+ - name: Run tests
67
+ run: bundle exec rspec
data/.gitignore ADDED
@@ -0,0 +1,13 @@
1
+ .idea/
2
+ jwt.gemspec
3
+ pkg
4
+ Gemfile.lock
5
+ coverage/
6
+ .DS_Store
7
+ .rbenv-gemsets
8
+ .ruby-version
9
+ .vscode/
10
+ .bundle
11
+ *gemfile.lock
12
+ .byebug_history
13
+ *.gem
data/.reek.yml ADDED
@@ -0,0 +1,22 @@
1
+ ---
2
+ detectors:
3
+ TooManyStatements:
4
+ max_statements: 10
5
+ UtilityFunction:
6
+ enabled: false
7
+ LongParameterList:
8
+ enabled: false
9
+ DuplicateMethodCall:
10
+ max_calls: 2
11
+ IrresponsibleModule:
12
+ enabled: false
13
+ NestedIterators:
14
+ max_allowed_nesting: 2
15
+ UnusedParameters:
16
+ enabled: false
17
+ FeatureEnvy:
18
+ enabled: false
19
+ ControlParameter:
20
+ enabled: false
21
+ UnusedPrivateMethod:
22
+ enabled: false
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --require spec_helper
2
+ --color
data/.rubocop.yml ADDED
@@ -0,0 +1,67 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.5
3
+ NewCops: enable
4
+ SuggestExtensions: false
5
+ Exclude:
6
+ - 'gemfiles/*.gemfile'
7
+ - 'vendor/**/*'
8
+
9
+ Style/Documentation:
10
+ Enabled: false
11
+
12
+ Style/BlockDelimiters:
13
+ Exclude:
14
+ - spec/**/*_spec.rb
15
+
16
+ Style/GuardClause:
17
+ Enabled: false
18
+
19
+ Style/IfUnlessModifier:
20
+ Enabled: false
21
+
22
+ Style/Lambda:
23
+ Enabled: false
24
+
25
+ Style/RaiseArgs:
26
+ Enabled: false
27
+
28
+ Metrics/AbcSize:
29
+ Max: 25
30
+
31
+ Metrics/ClassLength:
32
+ Max: 112
33
+
34
+ Metrics/ModuleLength:
35
+ Max: 100
36
+
37
+ Metrics/MethodLength:
38
+ Max: 20
39
+
40
+ Metrics/BlockLength:
41
+ Exclude:
42
+ - spec/**/*_spec.rb
43
+
44
+ Layout/LineLength:
45
+ Enabled: false
46
+
47
+ Layout/EndAlignment:
48
+ EnforcedStyleAlignWith: variable
49
+
50
+ Layout/EmptyLineBetweenDefs:
51
+ Enabled: true
52
+ AllowAdjacentOneLineDefs: true
53
+
54
+ Style/FormatString:
55
+ Enabled: false
56
+
57
+ Layout/MultilineMethodCallIndentation:
58
+ EnforcedStyle: indented
59
+
60
+ Layout/MultilineOperationIndentation:
61
+ EnforcedStyle: indented
62
+
63
+ Style/WordArray:
64
+ Enabled: false
65
+
66
+ Gemspec/RequireMFA:
67
+ Enabled: false
data/.sourcelevel.yml ADDED
@@ -0,0 +1,17 @@
1
+ engines:
2
+ reek:
3
+ enabled: true
4
+ fixme:
5
+ enabled: true
6
+ rubocop:
7
+ enabled: true
8
+ channel: latest
9
+ duplication:
10
+ config:
11
+ languages:
12
+ - ruby
13
+ enabled: true
14
+ remark-lint:
15
+ enabled: false
16
+ exclude_paths:
17
+ - spec
data/AUTHORS ADDED
@@ -0,0 +1,119 @@
1
+ Tim Rudat
2
+ Joakim Antman
3
+ Jeff Lindsay
4
+ A.B
5
+ shields
6
+ Bob Aman
7
+ Emilio Cristalli
8
+ Egon Zemmer
9
+ Zane Shannon
10
+ Nikita Shatov
11
+ Paul Battley
12
+ Oliver
13
+ blackanger
14
+ Ville Lautanala
15
+ Tyler Pickett
16
+ James Stonehill
17
+ Adam Michael
18
+ Martin Emde
19
+ Saverio Trioni
20
+ Peter M. Goldstein
21
+ Korstiaan de Ridder
22
+ Richard Larocque
23
+ Andrew Davis
24
+ Yason Khaburzaniya
25
+ Klaas Jan Wierenga
26
+ Nick Hammond
27
+ Bart de Water
28
+ Steve Sloan
29
+ Antonis Berkakis
30
+ Bill Mill
31
+ Kevin Olbrich
32
+ Simon Fish
33
+ jb08
34
+ lukas
35
+ Rodrigo López Dato
36
+ ojab
37
+ Ritikesh
38
+ sawyerzhang
39
+ Larry Lv
40
+ smudge
41
+ wohlgejm
42
+ Tom Wey
43
+ yann ARMAND
44
+ Brian Flethcer
45
+ Jurriaan Pruis
46
+ Erik Michaels-Ober
47
+ Matthew Simpson
48
+ Steven Davidovitz
49
+ Nicolas Leger
50
+ Pierre Michard
51
+ RahulBajaj
52
+ Rob Wygand
53
+ Ryan Brushett
54
+ Ryan McIlmoyl
55
+ Ryan Metzler
56
+ Severin Schoepke
57
+ Shaun Guth
58
+ Steve Teti
59
+ T.J. Schuck
60
+ Taiki Sugawara
61
+ Takehiro Adachi
62
+ Tobias Haar
63
+ Toby Pinder
64
+ Tomé Duarte
65
+ Travis Hunter
66
+ Yuji Yaginuma
67
+ Zuzanna Stolińska
68
+ aarongray
69
+ danielgrippi
70
+ fusagiko/takayamaki
71
+ mai fujii
72
+ nycvotes-dev
73
+ revodoge
74
+ rono23
75
+ antonmorant
76
+ Adam Greene
77
+ Alexander Boyd
78
+ Alexandr Kostrikov
79
+ Aman Gupta
80
+ Ariel Salomon
81
+ Arnaud Mesureur
82
+ Artsiom Kuts
83
+ Austin Kabiru
84
+ B
85
+ Bouke van der Bijl
86
+ Brandon Keepers
87
+ Dan Leyden
88
+ Dave Grijalva
89
+ Dmitry Pashkevich
90
+ Dorian Marié
91
+ Ernie Miller
92
+ Evgeni Golov
93
+ Ewoud Kohl van Wijngaarden
94
+ HoneyryderChuck
95
+ Igor Victor
96
+ Ilyaaaaaaaaaaaaa Zhitomirskiy
97
+ Jens Hausherr
98
+ Jeremiah Wuenschel
99
+ John Downey
100
+ Jordan Brough
101
+ Josh Bodah
102
+ JotaSe
103
+ Juanito Fatas
104
+ Julio Lopez
105
+ Katelyn Kasperowicz
106
+ Leonardo Saraiva
107
+ Lowell Kirsh
108
+ Loïc Lengrand
109
+ Lucas Mazza
110
+ Makoto Chiba
111
+ Manuel Bustillo
112
+ Marco Adkins
113
+ Meredith Leu
114
+ Micah Gates
115
+ Michał Begejowicz
116
+ Mike Eirih
117
+ Mike Pastore
118
+ Mingan
119
+ Mitch Birti
data/Appraisals ADDED
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ appraise 'standalone' do
4
+ # No additions
5
+ end
6
+
7
+ appraise 'openssl' do
8
+ gem 'openssl', '~> 2.1'
9
+ end
10
+
11
+ appraise 'rbnacl' do
12
+ gem 'rbnacl'
13
+ end