jwt 1.5.1 → 2.1.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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +20 -0
  3. data/.ebert.yml +18 -0
  4. data/.gitignore +11 -0
  5. data/.reek.yml +40 -0
  6. data/.rspec +1 -0
  7. data/.rubocop.yml +98 -0
  8. data/.travis.yml +14 -0
  9. data/CHANGELOG.md +476 -0
  10. data/Gemfile +3 -0
  11. data/LICENSE +7 -0
  12. data/Manifest +3 -1
  13. data/README.md +478 -0
  14. data/Rakefile +8 -15
  15. data/lib/jwt/algos/ecdsa.rb +35 -0
  16. data/lib/jwt/algos/eddsa.rb +23 -0
  17. data/lib/jwt/algos/hmac.rb +33 -0
  18. data/lib/jwt/algos/rsa.rb +19 -0
  19. data/lib/jwt/algos/unsupported.rb +16 -0
  20. data/lib/jwt/decode.rb +49 -0
  21. data/lib/jwt/default_options.rb +15 -0
  22. data/lib/jwt/encode.rb +51 -0
  23. data/lib/jwt/error.rb +16 -0
  24. data/lib/jwt/security_utils.rb +51 -0
  25. data/lib/jwt/signature.rb +50 -0
  26. data/lib/jwt/verify.rb +102 -0
  27. data/lib/jwt/version.rb +24 -0
  28. data/lib/jwt.rb +33 -203
  29. data/ruby-jwt.gemspec +31 -0
  30. data/spec/fixtures/certs/ec256-private.pem +8 -0
  31. data/spec/fixtures/certs/ec256-public.pem +4 -0
  32. data/spec/fixtures/certs/ec256-wrong-private.pem +8 -0
  33. data/spec/fixtures/certs/ec256-wrong-public.pem +4 -0
  34. data/spec/fixtures/certs/ec384-private.pem +9 -0
  35. data/spec/fixtures/certs/ec384-public.pem +5 -0
  36. data/spec/fixtures/certs/ec384-wrong-private.pem +9 -0
  37. data/spec/fixtures/certs/ec384-wrong-public.pem +5 -0
  38. data/spec/fixtures/certs/ec512-private.pem +10 -0
  39. data/spec/fixtures/certs/ec512-public.pem +6 -0
  40. data/spec/fixtures/certs/ec512-wrong-private.pem +10 -0
  41. data/spec/fixtures/certs/ec512-wrong-public.pem +6 -0
  42. data/spec/fixtures/certs/rsa-1024-private.pem +15 -0
  43. data/spec/fixtures/certs/rsa-1024-public.pem +6 -0
  44. data/spec/fixtures/certs/rsa-2048-private.pem +27 -0
  45. data/spec/fixtures/certs/rsa-2048-public.pem +9 -0
  46. data/spec/fixtures/certs/rsa-2048-wrong-private.pem +27 -0
  47. data/spec/fixtures/certs/rsa-2048-wrong-public.pem +9 -0
  48. data/spec/fixtures/certs/rsa-4096-private.pem +51 -0
  49. data/spec/fixtures/certs/rsa-4096-public.pem +14 -0
  50. data/spec/integration/readme_examples_spec.rb +202 -0
  51. data/spec/jwt/verify_spec.rb +232 -0
  52. data/spec/jwt_spec.rb +236 -384
  53. data/spec/spec_helper.rb +28 -0
  54. metadata +187 -26
  55. data/jwt.gemspec +0 -34
  56. data/lib/jwt/json.rb +0 -32
  57. data/spec/helper.rb +0 -19
@@ -0,0 +1,28 @@
1
+ require 'rspec'
2
+ require 'simplecov'
3
+ require 'simplecov-json'
4
+ require 'codeclimate-test-reporter'
5
+ require 'codacy-coverage'
6
+
7
+ Codacy::Reporter.start
8
+
9
+ SimpleCov.configure do
10
+ root File.join(File.dirname(__FILE__), '..')
11
+ project_name 'Ruby JWT - Ruby JSON Web Token implementation'
12
+ add_filter 'spec'
13
+ end
14
+
15
+ SimpleCov.start if ENV['COVERAGE']
16
+
17
+ CERT_PATH = File.join(File.dirname(__FILE__), 'fixtures', 'certs')
18
+
19
+ RSpec.configure do |config|
20
+ config.expect_with :rspec do |c|
21
+ c.syntax = %i[should expect]
22
+ end
23
+
24
+ config.run_all_when_everything_filtered = true
25
+ config.filter_run :focus
26
+
27
+ config.order = 'random'
28
+ end
metadata CHANGED
@@ -1,71 +1,232 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jwt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
- - Jeff Lindsay
7
+ - Tim Rudat
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-22 00:00:00.000000000 Z
11
+ date: 2017-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: echoe
14
+ name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.6.3
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 4.6.3
27
- description: JSON Web Token implementation in Ruby
28
- email: progrium@gmail.com
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: simplecov
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: simplecov-json
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: codeclimate-test-reporter
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: codacy-coverage
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rbnacl
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: A pure ruby implementation of the RFC 7519 OAuth JSON Web Token (JWT)
126
+ standard.
127
+ email: timrudat@gmail.com
29
128
  executables: []
30
129
  extensions: []
31
- extra_rdoc_files:
32
- - lib/jwt.rb
33
- - lib/jwt/json.rb
130
+ extra_rdoc_files: []
34
131
  files:
132
+ - ".codeclimate.yml"
133
+ - ".ebert.yml"
134
+ - ".gitignore"
135
+ - ".reek.yml"
136
+ - ".rspec"
137
+ - ".rubocop.yml"
138
+ - ".travis.yml"
139
+ - CHANGELOG.md
140
+ - Gemfile
141
+ - LICENSE
35
142
  - Manifest
143
+ - README.md
36
144
  - Rakefile
37
- - jwt.gemspec
38
145
  - lib/jwt.rb
39
- - lib/jwt/json.rb
40
- - spec/helper.rb
146
+ - lib/jwt/algos/ecdsa.rb
147
+ - lib/jwt/algos/eddsa.rb
148
+ - lib/jwt/algos/hmac.rb
149
+ - lib/jwt/algos/rsa.rb
150
+ - lib/jwt/algos/unsupported.rb
151
+ - lib/jwt/decode.rb
152
+ - lib/jwt/default_options.rb
153
+ - lib/jwt/encode.rb
154
+ - lib/jwt/error.rb
155
+ - lib/jwt/security_utils.rb
156
+ - lib/jwt/signature.rb
157
+ - lib/jwt/verify.rb
158
+ - lib/jwt/version.rb
159
+ - ruby-jwt.gemspec
160
+ - spec/fixtures/certs/ec256-private.pem
161
+ - spec/fixtures/certs/ec256-public.pem
162
+ - spec/fixtures/certs/ec256-wrong-private.pem
163
+ - spec/fixtures/certs/ec256-wrong-public.pem
164
+ - spec/fixtures/certs/ec384-private.pem
165
+ - spec/fixtures/certs/ec384-public.pem
166
+ - spec/fixtures/certs/ec384-wrong-private.pem
167
+ - spec/fixtures/certs/ec384-wrong-public.pem
168
+ - spec/fixtures/certs/ec512-private.pem
169
+ - spec/fixtures/certs/ec512-public.pem
170
+ - spec/fixtures/certs/ec512-wrong-private.pem
171
+ - spec/fixtures/certs/ec512-wrong-public.pem
172
+ - spec/fixtures/certs/rsa-1024-private.pem
173
+ - spec/fixtures/certs/rsa-1024-public.pem
174
+ - spec/fixtures/certs/rsa-2048-private.pem
175
+ - spec/fixtures/certs/rsa-2048-public.pem
176
+ - spec/fixtures/certs/rsa-2048-wrong-private.pem
177
+ - spec/fixtures/certs/rsa-2048-wrong-public.pem
178
+ - spec/fixtures/certs/rsa-4096-private.pem
179
+ - spec/fixtures/certs/rsa-4096-public.pem
180
+ - spec/integration/readme_examples_spec.rb
181
+ - spec/jwt/verify_spec.rb
41
182
  - spec/jwt_spec.rb
42
- homepage: http://github.com/progrium/ruby-jwt
183
+ - spec/spec_helper.rb
184
+ homepage: http://github.com/jwt/ruby-jwt
43
185
  licenses:
44
186
  - MIT
45
187
  metadata: {}
46
188
  post_install_message:
47
- rdoc_options:
48
- - "--line-numbers"
49
- - "--title"
50
- - Jwt
51
- - "--main"
52
- - README.md
189
+ rdoc_options: []
53
190
  require_paths:
54
191
  - lib
55
192
  required_ruby_version: !ruby/object:Gem::Requirement
56
193
  requirements:
57
194
  - - ">="
58
195
  - !ruby/object:Gem::Version
59
- version: '0'
196
+ version: '2.1'
60
197
  required_rubygems_version: !ruby/object:Gem::Requirement
61
198
  requirements:
62
199
  - - ">="
63
200
  - !ruby/object:Gem::Version
64
- version: '1.2'
201
+ version: '0'
65
202
  requirements: []
66
- rubyforge_project: jwt
67
- rubygems_version: 2.4.6
203
+ rubyforge_project:
204
+ rubygems_version: 2.6.13
68
205
  signing_key:
69
206
  specification_version: 4
70
207
  summary: JSON Web Token implementation in Ruby
71
- test_files: []
208
+ test_files:
209
+ - spec/fixtures/certs/ec256-private.pem
210
+ - spec/fixtures/certs/ec256-public.pem
211
+ - spec/fixtures/certs/ec256-wrong-private.pem
212
+ - spec/fixtures/certs/ec256-wrong-public.pem
213
+ - spec/fixtures/certs/ec384-private.pem
214
+ - spec/fixtures/certs/ec384-public.pem
215
+ - spec/fixtures/certs/ec384-wrong-private.pem
216
+ - spec/fixtures/certs/ec384-wrong-public.pem
217
+ - spec/fixtures/certs/ec512-private.pem
218
+ - spec/fixtures/certs/ec512-public.pem
219
+ - spec/fixtures/certs/ec512-wrong-private.pem
220
+ - spec/fixtures/certs/ec512-wrong-public.pem
221
+ - spec/fixtures/certs/rsa-1024-private.pem
222
+ - spec/fixtures/certs/rsa-1024-public.pem
223
+ - spec/fixtures/certs/rsa-2048-private.pem
224
+ - spec/fixtures/certs/rsa-2048-public.pem
225
+ - spec/fixtures/certs/rsa-2048-wrong-private.pem
226
+ - spec/fixtures/certs/rsa-2048-wrong-public.pem
227
+ - spec/fixtures/certs/rsa-4096-private.pem
228
+ - spec/fixtures/certs/rsa-4096-public.pem
229
+ - spec/integration/readme_examples_spec.rb
230
+ - spec/jwt/verify_spec.rb
231
+ - spec/jwt_spec.rb
232
+ - spec/spec_helper.rb
data/jwt.gemspec DELETED
@@ -1,34 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- # stub: jwt 1.5.1 ruby lib
3
-
4
- Gem::Specification.new do |s|
5
- s.name = "jwt"
6
- s.version = "1.5.1"
7
-
8
- s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
9
- s.require_paths = ["lib"]
10
- s.authors = ["Jeff Lindsay"]
11
- s.date = "2015-06-22"
12
- s.description = "JSON Web Token implementation in Ruby"
13
- s.email = "progrium@gmail.com"
14
- s.extra_rdoc_files = ["lib/jwt.rb", "lib/jwt/json.rb"]
15
- s.files = ["Manifest", "Rakefile", "jwt.gemspec", "lib/jwt.rb", "lib/jwt/json.rb", "spec/helper.rb", "spec/jwt_spec.rb"]
16
- s.homepage = "http://github.com/progrium/ruby-jwt"
17
- s.licenses = ["MIT"]
18
- s.rdoc_options = ["--line-numbers", "--title", "Jwt", "--main", "README.md"]
19
- s.rubyforge_project = "jwt"
20
- s.rubygems_version = "2.4.6"
21
- s.summary = "JSON Web Token implementation in Ruby"
22
-
23
- if s.respond_to? :specification_version then
24
- s.specification_version = 4
25
-
26
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
27
- s.add_development_dependency(%q<echoe>, [">= 4.6.3"])
28
- else
29
- s.add_dependency(%q<echoe>, [">= 4.6.3"])
30
- end
31
- else
32
- s.add_dependency(%q<echoe>, [">= 4.6.3"])
33
- end
34
- end
data/lib/jwt/json.rb DELETED
@@ -1,32 +0,0 @@
1
- # encoding: utf-8
2
- module JWT
3
- # JSON fallback implementation or ruby 1.8.x
4
- module Json
5
- if RUBY_VERSION >= '1.9' && !defined?(MultiJson)
6
- require 'json'
7
-
8
- def decode_json(encoded)
9
- JSON.parse(encoded)
10
- rescue JSON::ParserError
11
- raise JWT::DecodeError.new('Invalid segment encoding')
12
- end
13
-
14
- def encode_json(raw)
15
- JSON.generate(raw)
16
- end
17
-
18
- else
19
- require 'multi_json'
20
-
21
- def decode_json(encoded)
22
- MultiJson.decode(encoded)
23
- rescue MultiJson::LoadError
24
- raise JWT::DecodeError.new('Invalid segment encoding')
25
- end
26
-
27
- def encode_json(raw)
28
- MultiJson.encode(raw)
29
- end
30
- end
31
- end
32
- end
data/spec/helper.rb DELETED
@@ -1,19 +0,0 @@
1
- # encoding: utf-8
2
- require 'rspec'
3
- require 'simplecov'
4
- require 'simplecov-json'
5
-
6
- SimpleCov.configure do
7
- root File.join(File.dirname(__FILE__), '..')
8
- project_name 'Ruby JWT - Ruby JSON Web Token implementation'
9
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
10
- SimpleCov::Formatter::HTMLFormatter,
11
- SimpleCov::Formatter::JSONFormatter
12
- ]
13
-
14
- add_filter 'spec'
15
- end
16
-
17
- SimpleCov.start if ENV['COVERAGE']
18
-
19
- require "#{File.dirname(__FILE__)}/../lib/jwt.rb"