jwt 1.5.4 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.codeclimate.yml +6 -18
- data/.github/workflows/coverage.yml +27 -0
- data/.github/workflows/test.yml +67 -0
- data/.gitignore +7 -0
- data/.reek.yml +22 -0
- data/.rspec +1 -1
- data/.rubocop.yml +66 -1
- data/.sourcelevel.yml +17 -0
- data/AUTHORS +119 -0
- data/Appraisals +13 -0
- data/CHANGELOG.md +786 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/CONTRIBUTING.md +99 -0
- data/Gemfile +4 -1
- data/README.md +332 -79
- data/Rakefile +15 -0
- data/lib/jwt/algos/ecdsa.rb +64 -0
- data/lib/jwt/algos/eddsa.rb +35 -0
- data/lib/jwt/algos/hmac.rb +36 -0
- data/lib/jwt/algos/none.rb +17 -0
- data/lib/jwt/algos/ps.rb +43 -0
- data/lib/jwt/algos/rsa.rb +22 -0
- data/lib/jwt/algos/unsupported.rb +19 -0
- data/lib/jwt/algos.rb +44 -0
- data/lib/jwt/base64.rb +19 -0
- data/lib/jwt/claims_validator.rb +37 -0
- data/lib/jwt/configuration/container.rb +21 -0
- data/lib/jwt/configuration/decode_configuration.rb +46 -0
- data/lib/jwt/configuration/jwk_configuration.rb +27 -0
- data/lib/jwt/configuration.rb +15 -0
- data/lib/jwt/decode.rb +119 -30
- data/lib/jwt/encode.rb +69 -0
- data/lib/jwt/error.rb +10 -0
- data/lib/jwt/json.rb +11 -9
- data/lib/jwt/jwk/ec.rb +199 -0
- data/lib/jwt/jwk/hmac.rb +67 -0
- data/lib/jwt/jwk/key_base.rb +35 -0
- data/lib/jwt/jwk/key_finder.rb +62 -0
- data/lib/jwt/jwk/kid_as_key_digest.rb +15 -0
- data/lib/jwt/jwk/rsa.rb +138 -0
- data/lib/jwt/jwk/thumbprint.rb +26 -0
- data/lib/jwt/jwk.rb +52 -0
- data/lib/jwt/security_utils.rb +59 -0
- data/lib/jwt/signature.rb +35 -0
- data/lib/jwt/verify.rb +59 -44
- data/lib/jwt/version.rb +8 -3
- data/lib/jwt/x5c_key_finder.rb +55 -0
- data/lib/jwt.rb +16 -162
- data/ruby-jwt.gemspec +14 -8
- metadata +71 -84
- data/.travis.yml +0 -13
- data/Manifest +0 -8
- data/spec/fixtures/certs/ec256-private.pem +0 -8
- data/spec/fixtures/certs/ec256-public.pem +0 -4
- data/spec/fixtures/certs/ec256-wrong-private.pem +0 -8
- data/spec/fixtures/certs/ec256-wrong-public.pem +0 -4
- data/spec/fixtures/certs/ec384-private.pem +0 -9
- data/spec/fixtures/certs/ec384-public.pem +0 -5
- data/spec/fixtures/certs/ec384-wrong-private.pem +0 -9
- data/spec/fixtures/certs/ec384-wrong-public.pem +0 -5
- data/spec/fixtures/certs/ec512-private.pem +0 -10
- data/spec/fixtures/certs/ec512-public.pem +0 -6
- data/spec/fixtures/certs/ec512-wrong-private.pem +0 -10
- data/spec/fixtures/certs/ec512-wrong-public.pem +0 -6
- data/spec/fixtures/certs/rsa-1024-private.pem +0 -15
- data/spec/fixtures/certs/rsa-1024-public.pem +0 -6
- data/spec/fixtures/certs/rsa-2048-private.pem +0 -27
- data/spec/fixtures/certs/rsa-2048-public.pem +0 -9
- data/spec/fixtures/certs/rsa-2048-wrong-private.pem +0 -27
- data/spec/fixtures/certs/rsa-2048-wrong-public.pem +0 -9
- data/spec/fixtures/certs/rsa-4096-private.pem +0 -51
- data/spec/fixtures/certs/rsa-4096-public.pem +0 -14
- data/spec/jwt/verify_spec.rb +0 -175
- data/spec/jwt_spec.rb +0 -232
- data/spec/spec_helper.rb +0 -31
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YmM3YWU5NTkxNDEzOGQyMTAzMTIyYzVmNWNhY2ZlMWU2NTFlZjliNQ==
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a3098671a837e7b291103cde1921277c61ecaa0f0797b955e6adc65328498f0d
|
4
|
+
data.tar.gz: 3253833ac6d7743e40a5d5157b161cd0daecc9b77f61dfa7687d6b3da1be56ca
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
N2E3MmE5NmQ1ZjlhZTU2ZDc3NDYxYzIxZjhkMjJjOGE1NDI5MDI4MmVmN2Fi
|
11
|
-
ZGExYWMzOGI3ZDAxNWE2NzdhOWRjNjkzZjAxMjRmMGM0NTIwZDU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
OGQxM2IyM2E1ZTUzM2QzZjBlMmZiYzBiMGU4OGM5YjI5NTU0YjA2ZWQ3MDY3
|
14
|
-
MjQ0ZDMxNTEzMWE0NzUzYjAxOGQ2MTAwZTFiMmU5YmYzZDFjYTVhNTdhOGVm
|
15
|
-
N2Q3Mjk0ODMxYWI3NDg3M2IwYzA5MmMwYTgzNzhjM2U5YTJkODI=
|
6
|
+
metadata.gz: 306c946b1199301a3f1000c8ffba4a77d07fd05dd83f769da86fd29f254827b5af8488a4b6a54b11f1f7f3a028cb88caafb7ed67528e7004c0337f6506e595ea
|
7
|
+
data.tar.gz: 57d1eba7a06bc9d9f9fcb76b42aa3808415af5020c53969b4cada890b1646e7d348a96ce18010ab0a978e42825febbeb7b3f205b72e8ce60ef90132cf5887599
|
data/.codeclimate.yml
CHANGED
@@ -1,20 +1,8 @@
|
|
1
|
-
|
1
|
+
plugins:
|
2
|
+
fixme:
|
3
|
+
enabled: true
|
4
|
+
shellcheck:
|
5
|
+
enabled: true
|
2
6
|
rubocop:
|
3
7
|
enabled: true
|
4
|
-
|
5
|
-
enabled: false
|
6
|
-
gofmt:
|
7
|
-
enabled: false
|
8
|
-
eslint:
|
9
|
-
enabled: false
|
10
|
-
csslint:
|
11
|
-
enabled: false
|
12
|
-
|
13
|
-
ratings:
|
14
|
-
paths:
|
15
|
-
- lib/**
|
16
|
-
- "**.rb"
|
17
|
-
|
18
|
-
exclude_paths:
|
19
|
-
- spec/**/*
|
20
|
-
- vendor/**/*
|
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
CHANGED
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
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,2 +1,67 @@
|
|
1
|
-
|
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:
|
2
67
|
Enabled: false
|
data/.sourcelevel.yml
ADDED
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
|