jwt 2.2.3 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52634c4d49dde601c2061590da9c75e1202c6f457d7e72f86081b9ff1ab4bd66
4
- data.tar.gz: 9b6ce357479e71e5c04b390d2fcb03ae7bdde4f1fd028de2c59a988aca3aba9b
3
+ metadata.gz: e90965d0b77b09f9b095bde7df353186e72838b843940a92f1207d36c1d14afd
4
+ data.tar.gz: ac4538d631a35219a21150952325a19ffe6f83ea37d7e32664725a06e659816c
5
5
  SHA512:
6
- metadata.gz: dd81e85c470265ae1f91bd263e52e1d4dc5448274fdfc3233f074fec75a9e4752699653244814bc6d4e7d1d0d15bd65daee70012d542165185486903fa52be76
7
- data.tar.gz: 116dc782f864cfbfe742b85fc7a9a487df580540f50efe120841bc5576093f6f18f684e65dc3a0f107c45c11145ae8cb37ba77e3bd8fd2a1f70e44c331043382
6
+ metadata.gz: b0981dc5c4cc9722514eff7eb1636dcb88bd6e634967380187df8f3555a7405bf2e807c0a996543447006f6cd24516957a11eb2320dcd7dfc2b6ac81aec671b5
7
+ data.tar.gz: fadc7972eb2ff5377d517fc6a9cf1dd2315745813e60ae041a100754770829f640f5953bb8c6afe8be76d3340ac531aa92e12326484c12ffb721d09f1aa498b0
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
@@ -17,7 +17,7 @@ jobs:
17
17
  - name: Set up Ruby
18
18
  uses: ruby/setup-ruby@v1
19
19
  with:
20
- ruby-version: "2.4"
20
+ ruby-version: "2.7"
21
21
  bundler-cache: true
22
22
  - name: Run RuboCop
23
23
  run: bundle exec rubocop
@@ -26,26 +26,18 @@ jobs:
26
26
  fail-fast: false
27
27
  matrix:
28
28
  ruby:
29
- - 2.3
30
- - 2.4
31
29
  - 2.5
32
30
  - 2.6
33
31
  - 2.7
34
- - 3.0
32
+ - "3.0"
33
+ - 3.1
35
34
  gemfile:
36
35
  - gemfiles/standalone.gemfile
37
36
  - gemfiles/openssl.gemfile
38
37
  - gemfiles/rbnacl.gemfile
39
38
  experimental: [false]
40
39
  include:
41
- - ruby: 2.1
42
- gemfile: 'gemfiles/rbnacl.gemfile'
43
- experimental: false
44
- - ruby: 2.2
45
- gemfile: 'gemfiles/rbnacl.gemfile'
46
- experimental: false
47
40
  - ruby: 2.7
48
- coverage: "true"
49
41
  gemfile: 'gemfiles/rbnacl.gemfile'
50
42
  - ruby: "ruby-head"
51
43
  experimental: true
data/.gitignore CHANGED
@@ -9,3 +9,5 @@ coverage/
9
9
  .vscode/
10
10
  .bundle
11
11
  *gemfile.lock
12
+ .byebug_history
13
+ *.gem
data/.rubocop.yml CHANGED
@@ -1,24 +1,12 @@
1
1
  inherit_from: .rubocop_todo.yml
2
2
 
3
3
  AllCops:
4
- TargetRubyVersion: 2.1
5
-
6
- Layout/AlignParameters:
7
- EnforcedStyle: with_fixed_indentation
8
-
9
- Layout/CaseIndentation:
10
- EnforcedStyle: end
11
-
12
- Style/AsciiComments:
13
- Enabled: false
14
-
15
- Layout/IndentHash:
16
- Enabled: false
17
-
18
- Style/CollectionMethods:
19
- Enabled: true
20
- PreferredMethods:
21
- inject: 'inject'
4
+ TargetRubyVersion: 2.5
5
+ NewCops: enable
6
+ SuggestExtensions: false
7
+ Exclude:
8
+ - 'gemfiles/*.gemfile'
9
+ - 'vendor/**/*'
22
10
 
23
11
  Style/Documentation:
24
12
  Enabled: false
@@ -27,10 +15,6 @@ Style/BlockDelimiters:
27
15
  Exclude:
28
16
  - spec/**/*_spec.rb
29
17
 
30
- Style/BracesAroundHashParameters:
31
- Exclude:
32
- - spec/**/*_spec.rb
33
-
34
18
  Style/GuardClause:
35
19
  Enabled: false
36
20
 
@@ -50,15 +34,15 @@ Style/SignalException:
50
34
  Enabled: false
51
35
 
52
36
  Metrics/AbcSize:
53
- Max: 20
37
+ Max: 25
54
38
 
55
39
  Metrics/ClassLength:
56
- Max: 101
40
+ Max: 103
57
41
 
58
42
  Metrics/ModuleLength:
59
43
  Max: 100
60
44
 
61
- Metrics/LineLength:
45
+ Layout/LineLength:
62
46
  Enabled: false
63
47
 
64
48
  Metrics/BlockLength:
@@ -71,7 +55,7 @@ Metrics/MethodLength:
71
55
  Style/SingleLineBlockParams:
72
56
  Enabled: false
73
57
 
74
- Lint/EndAlignment:
58
+ Layout/EndAlignment:
75
59
  EnforcedStyleAlignWith: variable
76
60
 
77
61
  Style/FormatString:
@@ -89,9 +73,9 @@ Style/WordArray:
89
73
  Style/RedundantSelf:
90
74
  Enabled: false
91
75
 
92
- Layout/AlignHash:
76
+ Layout/HashAlignment:
93
77
  Enabled: true
94
78
  EnforcedLastArgumentHashStyle: always_ignore
95
79
 
96
80
  Style/TrivialAccessors:
97
- AllowPredicates: true
81
+ AllowPredicates: true
data/.rubocop_todo.yml CHANGED
@@ -1,191 +1,22 @@
1
1
  # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2020-12-21 23:11:43 +0200 using RuboCop version 0.52.1.
2
+ # `rubocop --auto-gen-config --exclude-limit 1000000`
3
+ # on 2021-12-27 06:53:55 UTC using RuboCop version 1.23.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 2
9
+ # Offense count: 1
10
10
  # Cop supports --auto-correct.
11
- # Configuration parameters: Include, TreatCommentsAsGroupSeparators.
11
+ # Configuration parameters: Include.
12
12
  # Include: **/*.gemspec
13
- Gemspec/OrderedDependencies:
13
+ Gemspec/RequireMFA:
14
14
  Exclude:
15
15
  - 'ruby-jwt.gemspec'
16
16
 
17
17
  # Offense count: 1
18
- # Cop supports --auto-correct.
19
- Layout/EmptyLines:
20
- Exclude:
21
- - 'spec/integration/readme_examples_spec.rb'
22
-
23
- # Offense count: 1
24
- # Cop supports --auto-correct.
25
- # Configuration parameters: EnforcedStyle.
26
- # SupportedStyles: empty_lines, no_empty_lines
27
- Layout/EmptyLinesAroundBlockBody:
28
- Exclude:
29
- - 'spec/jwt_spec.rb'
30
-
31
- # Offense count: 1
32
- # Cop supports --auto-correct.
33
- # Configuration parameters: AllowForAlignment, ForceEqualSignAlignment.
34
- Layout/ExtraSpacing:
35
- Exclude:
36
- - 'spec/jwk_spec.rb'
37
-
38
- # Offense count: 2
39
- # Cop supports --auto-correct.
40
- # Configuration parameters: EnforcedStyle.
41
- # SupportedStyles: normal, rails
42
- Layout/IndentationConsistency:
43
- Exclude:
44
- - 'spec/jwt_spec.rb'
45
-
46
- # Offense count: 1
47
- # Cop supports --auto-correct.
48
- # Configuration parameters: Width, IgnoredPatterns.
49
- Layout/IndentationWidth:
50
- Exclude:
51
- - 'spec/jwt_spec.rb'
52
-
53
- # Offense count: 3
54
- # Cop supports --auto-correct.
55
- Layout/SpaceAfterComma:
56
- Exclude:
57
- - 'spec/jwt_spec.rb'
58
-
59
- # Offense count: 2
60
- # Cop supports --auto-correct.
61
- # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
62
- # SupportedStyles: space, no_space
63
- # SupportedStylesForEmptyBraces: space, no_space
64
- Layout/SpaceBeforeBlockBraces:
65
- Exclude:
66
- - 'spec/jwk/ec_spec.rb'
67
- - 'spec/jwt/verify_spec.rb'
68
-
69
- # Offense count: 1
70
- # Cop supports --auto-correct.
71
- # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
72
- # SupportedStyles: space, no_space
73
- # SupportedStylesForEmptyBraces: space, no_space
74
- Layout/SpaceInsideBlockBraces:
75
- Exclude:
76
- - 'spec/jwt/verify_spec.rb'
77
-
78
- # Offense count: 1
79
- # Cop supports --auto-correct.
80
- # Configuration parameters: EnforcedStyle.
81
- # SupportedStyles: final_newline, final_blank_line
82
- Layout/TrailingBlankLines:
83
- Exclude:
84
- - 'bin/console.rb'
85
-
86
- # Offense count: 3
87
- # Cop supports --auto-correct.
88
- # Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
89
- Lint/UnusedBlockArgument:
90
- Exclude:
91
- - 'spec/jwk/decode_with_jwk_spec.rb'
92
- - 'spec/jwk/ec_spec.rb'
93
- - 'spec/jwt/verify_spec.rb'
94
-
95
- # Offense count: 2
96
- Metrics/CyclomaticComplexity:
97
- Max: 7
98
-
99
- # Offense count: 1
100
- Metrics/PerceivedComplexity:
101
- Max: 8
102
-
103
- # Offense count: 1
104
- # Cop supports --auto-correct.
105
- # Configuration parameters: MaxKeyValuePairs.
106
- Performance/RedundantMerge:
18
+ # Configuration parameters: AllowedMethods.
19
+ # AllowedMethods: respond_to_missing?
20
+ Style/OptionalBooleanParameter:
107
21
  Exclude:
108
- - 'spec/jwt_spec.rb'
109
-
110
- # Offense count: 1
111
- # Cop supports --auto-correct.
112
- Style/Encoding:
113
- Exclude:
114
- - 'lib/jwt/version.rb'
115
-
116
- # Offense count: 1
117
- # Cop supports --auto-correct.
118
- # Configuration parameters: InverseMethods, InverseBlocks.
119
- Style/InverseMethods:
120
- Exclude:
121
- - 'spec/jwk/ec_spec.rb'
122
-
123
- # Offense count: 2
124
- # Cop supports --auto-correct.
125
- Style/MethodCallWithoutArgsParentheses:
126
- Exclude:
127
- - 'spec/jwt_spec.rb'
128
-
129
- # Offense count: 2
130
- # Configuration parameters: EnforcedStyle.
131
- # SupportedStyles: module_function, extend_self
132
- Style/ModuleFunction:
133
- Exclude:
134
- - 'lib/jwt/algos.rb'
135
- - 'lib/jwt/signature.rb'
136
-
137
- # Offense count: 1
138
- # Cop supports --auto-correct.
139
- Style/MultilineIfModifier:
140
- Exclude:
141
- - 'spec/integration/readme_examples_spec.rb'
142
-
143
- # Offense count: 1
144
- # Cop supports --auto-correct.
145
- Style/MutableConstant:
146
- Exclude:
147
- - 'lib/jwt/version.rb'
148
-
149
- # Offense count: 1
150
- # Cop supports --auto-correct.
151
- # Configuration parameters: Strict.
152
- Style/NumericLiterals:
153
- MinDigits: 6
154
-
155
- # Offense count: 1
156
- # Cop supports --auto-correct.
157
- Style/ParallelAssignment:
158
- Exclude:
159
- - 'spec/integration/readme_examples_spec.rb'
160
-
161
- # Offense count: 11
162
- # Cop supports --auto-correct.
163
- # Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
164
- # SupportedStyles: single_quotes, double_quotes
165
- Style/StringLiterals:
166
- Exclude:
167
- - 'bin/console.rb'
168
- - 'spec/jwk/ec_spec.rb'
169
- - 'spec/jwk/rsa_spec.rb'
170
- - 'spec/jwk_spec.rb'
171
- - 'spec/jwt_spec.rb'
172
-
173
- # Offense count: 1
174
- # Cop supports --auto-correct.
175
- # Configuration parameters: EnforcedStyleForMultiline.
176
- # SupportedStylesForMultiline: comma, consistent_comma, no_comma
177
- Style/TrailingCommaInArguments:
178
- Exclude:
179
- - 'spec/jwt_spec.rb'
180
-
181
- # Offense count: 1
182
- # Cop supports --auto-correct.
183
- Style/UnlessElse:
184
- Exclude:
185
- - 'spec/jwt_spec.rb'
186
-
187
- # Offense count: 162
188
- # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
189
- # URISchemes: http, https
190
- Metrics/LineLength:
191
- Max: 420
22
+ - 'lib/jwt.rb'
data/AUTHORS CHANGED
@@ -1,6 +1,6 @@
1
1
  Tim Rudat
2
- Jeff Lindsay
3
2
  Joakim Antman
3
+ Jeff Lindsay
4
4
  A.B
5
5
  shields
6
6
  Bob Aman
@@ -8,44 +8,53 @@ Emilio Cristalli
8
8
  Egon Zemmer
9
9
  Zane Shannon
10
10
  Nikita Shatov
11
- Oliver
12
11
  Paul Battley
12
+ Oliver
13
13
  blackanger
14
- Adam Michael
15
14
  Ville Lautanala
16
15
  Tyler Pickett
17
16
  James Stonehill
18
- Peter M. Goldstein
17
+ Adam Michael
19
18
  Martin Emde
20
- Richard Larocque
19
+ Saverio Trioni
20
+ Peter M. Goldstein
21
21
  Korstiaan de Ridder
22
+ Richard Larocque
23
+ Andrew Davis
24
+ Yason Khaburzaniya
22
25
  Klaas Jan Wierenga
23
- Antonis Berkakis
26
+ Nick Hammond
27
+ Bart de Water
24
28
  Steve Sloan
25
- Yason Khaburzaniya
29
+ Antonis Berkakis
26
30
  Bill Mill
31
+ Kevin Olbrich
32
+ Simon Fish
27
33
  jb08
28
34
  lukas
29
35
  Rodrigo López Dato
30
36
  ojab
37
+ Ritikesh
31
38
  sawyerzhang
32
- Kevin Olbrich
39
+ Larry Lv
33
40
  smudge
34
41
  wohlgejm
35
42
  Tom Wey
36
43
  yann ARMAND
37
44
  Brian Flethcer
45
+ Jurriaan Pruis
38
46
  Erik Michaels-Ober
47
+ Matthew Simpson
39
48
  Steven Davidovitz
40
- Jurriaan Pruis
41
- Larry Lv
42
- Mingan
43
- Mitch Birti
44
49
  Nicolas Leger
50
+ Pierre Michard
51
+ RahulBajaj
45
52
  Rob Wygand
46
53
  Ryan Brushett
47
54
  Ryan McIlmoyl
48
55
  Ryan Metzler
56
+ Severin Schoepke
57
+ Shaun Guth
49
58
  Steve Teti
50
59
  T.J. Schuck
51
60
  Taiki Sugawara
@@ -58,10 +67,12 @@ Yuji Yaginuma
58
67
  Zuzanna Stolińska
59
68
  aarongray
60
69
  danielgrippi
70
+ fusagiko/takayamaki
71
+ mai fujii
61
72
  nycvotes-dev
62
73
  revodoge
63
74
  rono23
64
- RahulBajaj
75
+ antonmorant
65
76
  Adam Greene
66
77
  Alexander Boyd
67
78
  Alexandr Kostrikov
@@ -71,9 +82,11 @@ Arnaud Mesureur
71
82
  Artsiom Kuts
72
83
  Austin Kabiru
73
84
  B
85
+ Bouke van der Bijl
74
86
  Brandon Keepers
75
87
  Dan Leyden
76
88
  Dave Grijalva
89
+ Dmitry Pashkevich
77
90
  Dorian Marié
78
91
  Ernie Miller
79
92
  Evgeni Golov
@@ -90,12 +103,17 @@ JotaSe
90
103
  Juanito Fatas
91
104
  Julio Lopez
92
105
  Katelyn Kasperowicz
106
+ Leonardo Saraiva
93
107
  Lowell Kirsh
108
+ Loïc Lengrand
94
109
  Lucas Mazza
95
110
  Makoto Chiba
96
111
  Manuel Bustillo
97
112
  Marco Adkins
113
+ Meredith Leu
98
114
  Micah Gates
99
115
  Michał Begejowicz
100
116
  Mike Eirih
101
117
  Mike Pastore
118
+ Mingan
119
+ Mitch Birti
data/Appraisals CHANGED
@@ -1,4 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  appraise 'standalone' do
4
+ # No additions
2
5
  end
3
6
 
4
7
  appraise 'openssl' do
data/CHANGELOG.md CHANGED
@@ -1,8 +1,90 @@
1
1
  # Changelog
2
2
 
3
- ## [2.2.3](https://github.com/jwt/ruby-jwt/tree/2.2.3) (2021-04-19)
3
+ ## [v2.4.0](https://github.com/jwt/ruby-jwt/tree/v2.4.0) (2022-06-06)
4
4
 
5
- [Full Changelog](https://github.com/jwt/ruby-jwt/compare/v2.2.2...2.2.3)
5
+ [Full Changelog](https://github.com/jwt/ruby-jwt/compare/v2.3.0...v2.4.0)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - Ensure presence of claims [\#244](https://github.com/jwt/ruby-jwt/issues/244)
10
+ - Support verifying signature signed using x5c header [\#59](https://github.com/jwt/ruby-jwt/issues/59)
11
+ - Add x5c header key finder [\#338](https://github.com/jwt/ruby-jwt/pull/338) ([bdewater](https://github.com/bdewater))
12
+
13
+ **Security fixes:**
14
+
15
+ - Importing JWK then exporting results in different `kid` [\#313](https://github.com/jwt/ruby-jwt/issues/313)
16
+
17
+ **Closed issues:**
18
+
19
+ - Is there a way to decode a ES256 encoded JWT with a root certificate but without a public key or a private key? [\#471](https://github.com/jwt/ruby-jwt/issues/471)
20
+ - Encode output with extra quote [\#469](https://github.com/jwt/ruby-jwt/issues/469)
21
+ - Please release new gem version [\#444](https://github.com/jwt/ruby-jwt/issues/444)
22
+ - HS512 signature verification fails for valid tokens [\#438](https://github.com/jwt/ruby-jwt/issues/438)
23
+ - ArgumentError: invalid base64 while calling JWT::JWK.import\(hash\) [\#361](https://github.com/jwt/ruby-jwt/issues/361)
24
+ - NoMethodError (undefined method `encode' for JsonWebToken:Module\) [\#329](https://github.com/jwt/ruby-jwt/issues/329)
25
+
26
+ **Merged pull requests:**
27
+
28
+ - Fix RuboCop TODOs [\#476](https://github.com/jwt/ruby-jwt/pull/476) ([typhoon2099](https://github.com/typhoon2099))
29
+ - Update note about supported JWK types [\#475](https://github.com/jwt/ruby-jwt/pull/475) ([dpashkevich](https://github.com/dpashkevich))
30
+ - Make specific algorithms in README linkable [\#472](https://github.com/jwt/ruby-jwt/pull/472) ([milieu](https://github.com/milieu))
31
+ - Add tests for keyfinder logic to ensure the argument count does not matter [\#467](https://github.com/jwt/ruby-jwt/pull/467) ([anakinj](https://github.com/anakinj))
32
+ - More tests for none token [\#466](https://github.com/jwt/ruby-jwt/pull/466) ([anakinj](https://github.com/anakinj))
33
+ - Improve non algorithm tests [\#465](https://github.com/jwt/ruby-jwt/pull/465) ([anakinj](https://github.com/anakinj))
34
+ - Bring back Ruby 2.5 support and CodeClimate coverage reports [\#464](https://github.com/jwt/ruby-jwt/pull/464) ([anakinj](https://github.com/anakinj))
35
+ - Fix a little RuboCop issue [\#462](https://github.com/jwt/ruby-jwt/pull/462) ([anakinj](https://github.com/anakinj))
36
+ - Fixes with latest RuboCop [\#459](https://github.com/jwt/ruby-jwt/pull/459) ([anakinj](https://github.com/anakinj))
37
+ - Removed bundler-audit from codeclimate config [\#458](https://github.com/jwt/ruby-jwt/pull/458) ([anakinj](https://github.com/anakinj))
38
+ - Updated rubocop to 1.23.0 [\#457](https://github.com/jwt/ruby-jwt/pull/457) ([anakinj](https://github.com/anakinj))
39
+ - Add Ruby 3.1 to test matrix [\#456](https://github.com/jwt/ruby-jwt/pull/456) ([anakinj](https://github.com/anakinj))
40
+ - Use Ruby built-in url-safe base64 methods [\#454](https://github.com/jwt/ruby-jwt/pull/454) ([bdewater](https://github.com/bdewater))
41
+ - Stop running tests on EOL rubies. [\#453](https://github.com/jwt/ruby-jwt/pull/453) ([anakinj](https://github.com/anakinj))
42
+ - Fix openssl gem version check to support versons greater than 3 [\#452](https://github.com/jwt/ruby-jwt/pull/452) ([anakinj](https://github.com/anakinj))
43
+ - Readme: Typo fix re MissingRequiredClaim [\#451](https://github.com/jwt/ruby-jwt/pull/451) ([antonmorant](https://github.com/antonmorant))
44
+ - Fix for exception after mergeing \#385 [\#450](https://github.com/jwt/ruby-jwt/pull/450) ([anakinj](https://github.com/anakinj))
45
+ - Create CODE\_OF\_CONDUCT.md [\#449](https://github.com/jwt/ruby-jwt/pull/449) ([loic5](https://github.com/loic5))
46
+ - Allow regular expressions and procs to verify issuer [\#437](https://github.com/jwt/ruby-jwt/pull/437) ([rewritten](https://github.com/rewritten))
47
+ - Add Support to be able to verify from multiple keys [\#425](https://github.com/jwt/ruby-jwt/pull/425) ([ritikesh](https://github.com/ritikesh))
48
+ - Define the secp256r1 curve [\#385](https://github.com/jwt/ruby-jwt/pull/385) ([anakinj](https://github.com/anakinj))
49
+
50
+ ## [v2.3.0](https://github.com/jwt/ruby-jwt/tree/v2.3.0) (2021-10-03)
51
+
52
+ [Full Changelog](https://github.com/jwt/ruby-jwt/compare/v2.2.3...v2.3.0)
53
+
54
+ **Closed issues:**
55
+
56
+ - \[SECURITY\] Algorithm Confusion Through kid Header [\#440](https://github.com/jwt/ruby-jwt/issues/440)
57
+ - JWT to memory [\#436](https://github.com/jwt/ruby-jwt/issues/436)
58
+ - ArgumentError: wrong number of arguments \(given 2, expected 1\) [\#429](https://github.com/jwt/ruby-jwt/issues/429)
59
+ - HMAC section of README outdated [\#421](https://github.com/jwt/ruby-jwt/issues/421)
60
+ - NoMethodError: undefined method `zero?' for nil:NilClass if JWT has no 'alg' field [\#410](https://github.com/jwt/ruby-jwt/issues/410)
61
+ - Release new version [\#409](https://github.com/jwt/ruby-jwt/issues/409)
62
+ - NameError: uninitialized constant JWT::JWK [\#403](https://github.com/jwt/ruby-jwt/issues/403)
63
+
64
+ **Merged pull requests:**
65
+
66
+ - Release 2.3.0 [\#448](https://github.com/jwt/ruby-jwt/pull/448) ([excpt](https://github.com/excpt))
67
+ - Fix Style/MultilineIfModifier issues [\#447](https://github.com/jwt/ruby-jwt/pull/447) ([anakinj](https://github.com/anakinj))
68
+ - feat\(EdDSA\): Accept EdDSA as algorithm header [\#446](https://github.com/jwt/ruby-jwt/pull/446) ([Pierre-Michard](https://github.com/Pierre-Michard))
69
+ - Pass kid param through JWT::JWK.create\_from [\#445](https://github.com/jwt/ruby-jwt/pull/445) ([shaun-guth-allscripts](https://github.com/shaun-guth-allscripts))
70
+ - fix document about passing JWKs as a simple Hash [\#443](https://github.com/jwt/ruby-jwt/pull/443) ([takayamaki](https://github.com/takayamaki))
71
+ - Tests for mixing JWK keys with mismatching algorithms [\#441](https://github.com/jwt/ruby-jwt/pull/441) ([anakinj](https://github.com/anakinj))
72
+ - verify\_claims test shouldnt be within the verify\_sub test [\#431](https://github.com/jwt/ruby-jwt/pull/431) ([andyjdavis](https://github.com/andyjdavis))
73
+ - Allow decode options to specify required claims [\#430](https://github.com/jwt/ruby-jwt/pull/430) ([andyjdavis](https://github.com/andyjdavis))
74
+ - Fix OpenSSL::PKey::EC public\_key handing in tests [\#427](https://github.com/jwt/ruby-jwt/pull/427) ([anakinj](https://github.com/anakinj))
75
+ - Add documentation for find\_key [\#426](https://github.com/jwt/ruby-jwt/pull/426) ([ritikesh](https://github.com/ritikesh))
76
+ - Give ruby 3.0 as a string to avoid number formatting issues [\#424](https://github.com/jwt/ruby-jwt/pull/424) ([anakinj](https://github.com/anakinj))
77
+ - Tests for iat verification behaviour [\#423](https://github.com/jwt/ruby-jwt/pull/423) ([anakinj](https://github.com/anakinj))
78
+ - Remove HMAC with nil secret from documentation [\#422](https://github.com/jwt/ruby-jwt/pull/422) ([boardfish](https://github.com/boardfish))
79
+ - Update broken link in README [\#420](https://github.com/jwt/ruby-jwt/pull/420) ([severin](https://github.com/severin))
80
+ - Add metadata for RubyGems [\#418](https://github.com/jwt/ruby-jwt/pull/418) ([nickhammond](https://github.com/nickhammond))
81
+ - Fixed a typo about class name [\#417](https://github.com/jwt/ruby-jwt/pull/417) ([mai-f](https://github.com/mai-f))
82
+ - Fix references for v2.2.3 on CHANGELOG [\#416](https://github.com/jwt/ruby-jwt/pull/416) ([vyper](https://github.com/vyper))
83
+ - Raise IncorrectAlgorithm if token has no alg header [\#411](https://github.com/jwt/ruby-jwt/pull/411) ([bouk](https://github.com/bouk))
84
+
85
+ ## [v2.2.3](https://github.com/jwt/ruby-jwt/tree/v2.2.3) (2021-04-19)
86
+
87
+ [Full Changelog](https://github.com/jwt/ruby-jwt/compare/v2.2.2...v2.2.3)
6
88
 
7
89
  **Implemented enhancements:**
8
90
 
@@ -31,6 +113,7 @@
31
113
 
32
114
  **Merged pull requests:**
33
115
 
116
+ - Prepare 2.2.3 release [\#415](https://github.com/jwt/ruby-jwt/pull/415) ([excpt](https://github.com/excpt))
34
117
  - Remove codeclimate code coverage dev dependency [\#414](https://github.com/jwt/ruby-jwt/pull/414) ([excpt](https://github.com/excpt))
35
118
  - Add forwardable dependency [\#408](https://github.com/jwt/ruby-jwt/pull/408) ([anakinj](https://github.com/anakinj))
36
119
  - Ignore casing of algorithm [\#405](https://github.com/jwt/ruby-jwt/pull/405) ([johnnyshields](https://github.com/johnnyshields))