jwt 2.2.3 → 2.4.0

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.
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))