jwt 1.5.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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"