json-jwt 1.10.0 → 1.10.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of json-jwt might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f805fa120c4c633a6be48aab961f504aa3e7d5f68aee05f13585e3751201c67
4
- data.tar.gz: bb26869e462704b7ca5ae9109cd07749b76fc6ee53fc99a6db70238dbfa51c77
3
+ metadata.gz: 51a327761ea931101039a020adc776471ea89e73d4abe27267c0433916f6e327
4
+ data.tar.gz: 717bab99944dce15400c188ccd63e3556d60f2c498234884994966070c7b3068
5
5
  SHA512:
6
- metadata.gz: f2673b42a974d7b9d003f48cf17ef15580d948ef5f06ea8d4c7f46e56249d3849e342720974fcca3a979014cfc898753a541ce851099459f559568f3523f5100
7
- data.tar.gz: 749aa5e6eadb127674086f77e05e691a162dddfa4cb2d3b4132a1c96649f7a8001b506169dc45112fca117afa67ca16549b090b2ad70fd7275cae2583db735ee
6
+ metadata.gz: fbcd1b698ce7c0f488bc7d6f873ec5c5bf8c5099f501b140bdc371e0a00f45ada1323df227a29d2ad16e4a971bd714904138b95d221bf76c4cf2b2fd2f444b2f
7
+ data.tar.gz: e53705c42a6f37833a1727bf14b86733502c06312bfab503217c2985de427aa4b0d68698e449f0d42a4e62415793e710f5d5ca412d7cade734bfb7b20455834a
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.10.0
1
+ 1.10.1
@@ -7,8 +7,9 @@ Gem::Specification.new do |gem|
7
7
  gem.summary = %q{JSON Web Token and its family (JSON Web Signature, JSON Web Encryption and JSON Web Key) in Ruby}
8
8
  gem.description = %q{JSON Web Token and its family (JSON Web Signature, JSON Web Encryption and JSON Web Key) in Ruby}
9
9
  gem.license = 'MIT'
10
- gem.files = `git ls-files`.split("\n")
11
- gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
10
+ gem.files = `git ls-files`.split("\n").reject do |f|
11
+ f.match(%r{^(test|spec|features)/})
12
+ end
12
13
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
13
14
  gem.require_paths = ['lib']
14
15
  gem.required_ruby_version = '>= 2.3'
@@ -26,7 +26,7 @@ module JSON
26
26
  when JSON::JWK::Set
27
27
  key.detect do |jwk|
28
28
  jwk[:kid] && jwk[:kid] == kid
29
- end.try(:to_key) or raise JWK::Set::KidNotFound
29
+ end&.to_key or raise JWK::Set::KidNotFound
30
30
  else
31
31
  key
32
32
  end
@@ -98,15 +98,15 @@ module JSON
98
98
  # common
99
99
 
100
100
  def gcm?
101
- [:A128GCM, :A256GCM].include? encryption_method.try(:to_sym)
101
+ [:A128GCM, :A256GCM].include? encryption_method&.to_sym
102
102
  end
103
103
 
104
104
  def cbc?
105
- [:'A128CBC-HS256', :'A256CBC-HS512'].include? encryption_method.try(:to_sym)
105
+ [:'A128CBC-HS256', :'A256CBC-HS512'].include? encryption_method&.to_sym
106
106
  end
107
107
 
108
108
  def dir?
109
- :dir == algorithm.try(:to_sym)
109
+ :dir == algorithm&.to_sym
110
110
  end
111
111
 
112
112
  def cipher
@@ -115,7 +115,7 @@ module JSON
115
115
  end
116
116
 
117
117
  def cipher_name
118
- case encryption_method.try(:to_sym)
118
+ case encryption_method&.to_sym
119
119
  when :A128GCM
120
120
  'aes-128-gcm'
121
121
  when :A256GCM
@@ -130,7 +130,7 @@ module JSON
130
130
  end
131
131
 
132
132
  def sha_size
133
- case encryption_method.try(:to_sym)
133
+ case encryption_method&.to_sym
134
134
  when :'A128CBC-HS256'
135
135
  256
136
136
  when :'A256CBC-HS512'
@@ -158,7 +158,7 @@ module JSON
158
158
  # encryption
159
159
 
160
160
  def jwe_encrypted_key
161
- @jwe_encrypted_key ||= case algorithm.try(:to_sym)
161
+ @jwe_encrypted_key ||= case algorithm&.to_sym
162
162
  when :RSA1_5
163
163
  public_key_or_secret.public_encrypt content_encryption_key
164
164
  when :'RSA-OAEP'
@@ -210,7 +210,7 @@ module JSON
210
210
 
211
211
  def decrypt_content_encryption_key
212
212
  fake_content_encryption_key = generate_content_encryption_key # NOTE: do this always not to make timing difference
213
- case algorithm.try(:to_sym)
213
+ case algorithm&.to_sym
214
214
  when :RSA1_5
215
215
  private_key_or_secret.private_decrypt jwe_encrypted_key
216
216
  when :'RSA-OAEP'
@@ -53,15 +53,15 @@ module JSON
53
53
  private
54
54
 
55
55
  def rsa?
56
- self[:kty].try(:to_sym) == :RSA
56
+ self[:kty]&.to_sym == :RSA
57
57
  end
58
58
 
59
59
  def ec?
60
- self[:kty].try(:to_sym) == :EC
60
+ self[:kty]&.to_sym == :EC
61
61
  end
62
62
 
63
63
  def oct?
64
- self[:kty].try(:to_sym) == :oct
64
+ self[:kty]&.to_sym == :oct
65
65
  end
66
66
 
67
67
  def calculate_default_kid
@@ -120,7 +120,7 @@ module JSON
120
120
  end
121
121
 
122
122
  def to_ec_key
123
- curve_name = case self[:crv].try(:to_sym)
123
+ curve_name = case self[:crv]&.to_sym
124
124
  when :'P-256'
125
125
  'prime256v1'
126
126
  when :'P-384'
@@ -19,10 +19,10 @@ module JSON
19
19
  end
20
20
 
21
21
  def verify!(public_key_or_secret, algorithms = nil)
22
- if alg.try(:to_sym) == :none
22
+ if alg&.to_sym == :none
23
23
  raise UnexpectedAlgorithm if public_key_or_secret
24
24
  signature == '' or raise VerificationFailed
25
- elsif algorithms.blank? || Array(algorithms).include?(alg.try(:to_sym))
25
+ elsif algorithms.blank? || Array(algorithms).include?(alg&.to_sym)
26
26
  public_key_or_secret && valid?(public_key_or_secret) or
27
27
  raise VerificationFailed
28
28
  else
@@ -47,15 +47,15 @@ module JSON
47
47
  end
48
48
 
49
49
  def hmac?
50
- [:HS256, :HS384, :HS512].include? algorithm.try(:to_sym)
50
+ [:HS256, :HS384, :HS512].include? algorithm&.to_sym
51
51
  end
52
52
 
53
53
  def rsa?
54
- [:RS256, :RS384, :RS512].include? algorithm.try(:to_sym)
54
+ [:RS256, :RS384, :RS512].include? algorithm&.to_sym
55
55
  end
56
56
 
57
57
  def rsa_pss?
58
- if [:PS256, :PS384, :PS512].include? algorithm.try(:to_sym)
58
+ if [:PS256, :PS384, :PS512].include? algorithm&.to_sym
59
59
  if OpenSSL::VERSION < '2.1.0'
60
60
  raise "#{alg} isn't supported. OpenSSL gem v2.1.0+ is required to use #{alg}."
61
61
  else
@@ -67,7 +67,7 @@ module JSON
67
67
  end
68
68
 
69
69
  def ecdsa?
70
- [:ES256, :ES384, :ES512].include? algorithm.try(:to_sym)
70
+ [:ES256, :ES384, :ES512].include? algorithm&.to_sym
71
71
  end
72
72
 
73
73
  def autodetected_algorithm_from(private_key_or_secret)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json-jwt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - nov matake
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-14 00:00:00.000000000 Z
11
+ date: 2019-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -133,27 +133,6 @@ files:
133
133
  - lib/json/jwk/set.rb
134
134
  - lib/json/jws.rb
135
135
  - lib/json/jwt.rb
136
- - spec/fixtures/ecdsa/256/private_key.pem
137
- - spec/fixtures/ecdsa/256/public_key.pem
138
- - spec/fixtures/ecdsa/384/private_key.pem
139
- - spec/fixtures/ecdsa/384/public_key.pem
140
- - spec/fixtures/ecdsa/512/private_key.pem
141
- - spec/fixtures/ecdsa/512/public_key.pem
142
- - spec/fixtures/rsa/private_key.der
143
- - spec/fixtures/rsa/private_key.pem
144
- - spec/fixtures/rsa/public_key.pem
145
- - spec/helpers/nimbus_spec_helper.rb
146
- - spec/helpers/sign_key_fixture_helper.rb
147
- - spec/interop/with_jsrsasign_spec.rb
148
- - spec/interop/with_nimbus_jose_spec.rb
149
- - spec/interop/with_rfc_example_spec.rb
150
- - spec/json/jwe_spec.rb
151
- - spec/json/jwk/jwkizable_spec.rb
152
- - spec/json/jwk/set_spec.rb
153
- - spec/json/jwk_spec.rb
154
- - spec/json/jws_spec.rb
155
- - spec/json/jwt_spec.rb
156
- - spec/spec_helper.rb
157
136
  homepage: https://github.com/nov/json-jwt
158
137
  licenses:
159
138
  - MIT
@@ -179,25 +158,4 @@ signing_key:
179
158
  specification_version: 4
180
159
  summary: JSON Web Token and its family (JSON Web Signature, JSON Web Encryption and
181
160
  JSON Web Key) in Ruby
182
- test_files:
183
- - spec/fixtures/ecdsa/256/private_key.pem
184
- - spec/fixtures/ecdsa/256/public_key.pem
185
- - spec/fixtures/ecdsa/384/private_key.pem
186
- - spec/fixtures/ecdsa/384/public_key.pem
187
- - spec/fixtures/ecdsa/512/private_key.pem
188
- - spec/fixtures/ecdsa/512/public_key.pem
189
- - spec/fixtures/rsa/private_key.der
190
- - spec/fixtures/rsa/private_key.pem
191
- - spec/fixtures/rsa/public_key.pem
192
- - spec/helpers/nimbus_spec_helper.rb
193
- - spec/helpers/sign_key_fixture_helper.rb
194
- - spec/interop/with_jsrsasign_spec.rb
195
- - spec/interop/with_nimbus_jose_spec.rb
196
- - spec/interop/with_rfc_example_spec.rb
197
- - spec/json/jwe_spec.rb
198
- - spec/json/jwk/jwkizable_spec.rb
199
- - spec/json/jwk/set_spec.rb
200
- - spec/json/jwk_spec.rb
201
- - spec/json/jws_spec.rb
202
- - spec/json/jwt_spec.rb
203
- - spec/spec_helper.rb
161
+ test_files: []
@@ -1,5 +0,0 @@
1
- -----BEGIN EC PRIVATE KEY-----
2
- MHcCAQEEIHo5LvIgMVpOlEKjjZiE5n+xYtTxLm4Eumx7FRMgICyDoAoGCCqGSM49
3
- AwEHoUQDQgAEsaPyrO4Lh9kh2FxrF9y1QVmZznWnRRJwpr12UHqzrVYwzPhb3POq
4
- WsmGqv4nKum+WdogjJlAToN+uA+TEwDDUw==
5
- -----END EC PRIVATE KEY-----
@@ -1,4 +0,0 @@
1
- -----BEGIN PUBLIC KEY-----
2
- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsaPyrO4Lh9kh2FxrF9y1QVmZznWn
3
- RRJwpr12UHqzrVYwzPhb3POqWsmGqv4nKum+WdogjJlAToN+uA+TEwDDUw==
4
- -----END PUBLIC KEY-----
@@ -1,6 +0,0 @@
1
- -----BEGIN EC PRIVATE KEY-----
2
- MIGkAgEBBDB1NRLzYeQa7oRUwWrnQFZOBVqzlyJ9n654/PFjCLJh/A/uGWeECoM2
3
- 1hXEvp80pqGgBwYFK4EEACKhZANiAASmXMCnIWcrurOGDlechlsWPaFmgfZV2Xj5
4
- EWbsOew0wb23Kqul+rZHKN8oAFtwVG2LEHN9+GTd9xuZ6KkYuS9AE0LN42bpAveE
5
- 5RMfogUHM4vRjsewZOik1NOykuOWK9s=
6
- -----END EC PRIVATE KEY-----
@@ -1,5 +0,0 @@
1
- -----BEGIN PUBLIC KEY-----
2
- MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEplzApyFnK7qzhg5XnIZbFj2hZoH2Vdl4
3
- +RFm7DnsNMG9tyqrpfq2RyjfKABbcFRtixBzffhk3fcbmeipGLkvQBNCzeNm6QL3
4
- hOUTH6IFBzOL0Y7HsGTopNTTspLjlivb
5
- -----END PUBLIC KEY-----
@@ -1,7 +0,0 @@
1
- -----BEGIN EC PRIVATE KEY-----
2
- MIHcAgEBBEIBBpwKqvGEZGpE3wX1fDzJjrrM4uXr16WKsijjqjRP8tHdnvr5p2fO
3
- zrPVyDVbiQDulOhSh9aouunuwmbudKjWvZagBwYFK4EEACOhgYkDgYYABAHDAg/m
4
- tGuq5xPU7wtJjqhfwxl0YOWN4k2+HhzcE5tpA+oro8fTP3/HfxRh69DoaasxJ+K2
5
- D2GaLhrGyDxIC9Kv/wFC2BHfJfm1fwSNvPWns4Ui2dUQxdpbYAzxMvWO2LamGuHC
6
- XKYss1QzKV1sAaenI4Ok1yDZKFa1V2YTeNOIobuCNg==
7
- -----END EC PRIVATE KEY-----
@@ -1,6 +0,0 @@
1
- -----BEGIN PUBLIC KEY-----
2
- MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBwwIP5rRrqucT1O8LSY6oX8MZdGDl
3
- jeJNvh4c3BObaQPqK6PH0z9/x38UYevQ6GmrMSfitg9hmi4axsg8SAvSr/8BQtgR
4
- 3yX5tX8Ejbz1p7OFItnVEMXaW2AM8TL1jti2phrhwlymLLNUMyldbAGnpyODpNcg
5
- 2ShWtVdmE3jTiKG7gjY=
6
- -----END PUBLIC KEY-----
@@ -1,30 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- Proc-Type: 4,ENCRYPTED
3
- DEK-Info: AES-256-CBC,A6B5D10FFA23D7BC66CE4FB46B754E8C
4
-
5
- gvYFJmzetWSwpf1Ut6USm4IReFLA6bpp5nVUfU2Xa9dJmrCu0cTupTkdzNmGp14/
6
- mzeT/a5WplK1hWV41Y7bLm57hOpaoxbEx2h3IW9cxuqgAp422AbafRu6hEvjUONO
7
- qUEm63I4d7/FKo0he4IVVx0UHaX5eEq8pdY1AZR9+fqlxWvjpgZlB0anT3AMpfVL
8
- CY4sGc/Es14M9A4zUpOkp+09PbV3WNG8A4G4IJA3wx6tYBxrd2866Te2ccP6/BL8
9
- HA2uoqeD+70ziybvd//CtGAD1xoTDvOCwzXXT5A4fCuec3apFp8O6WyJ63ao99R4
10
- E0r6AvD4iOkLMC8K2YUSc1zFLJAkhlfhBb8qFbXOwOomazWf2Z8rDtkP1VCfB9gC
11
- W6oYRBOyVUkbaBSBOOPBJtxjuTL/cJBvFhn6r0zdC67g0CD4cabMPd1VY92lUVbl
12
- JvE9CouDB5O39jwfpgfxo3kGev2UzwRze9U2uw6EdYIUB/ixyC8/5BoN8lKZXdTn
13
- 7vQBmcBsC3boMqQiq2c/dVGW7yrt/Y4q8wq9aGFwdBAY1pYhRlOZ0MwFmlAJKOzo
14
- Y3i2OILtPM0sdfqIeAvrwicQULGAzLGEhecDOQ1r0GwZRy5/Sl3ILxKMW8ngdaK4
15
- iNDM56u6F9dwqqArrZDZgkfwnKakXU2ZbltSOWTCleCfYrc1D75Yw3FHKcWozB/l
16
- uyMTIqzBXzO6OiNDUv7zAE1xzVaV+VeBH/5KGx18dAuRP3TnpYltGSUVDyGk9FX7
17
- m7nhvkqOcFJMHOGdTjt2Ff9Ibn3rgCEFI0CjCwcJPo2ym1Zox8GfP0/nXk3p/oWV
18
- ebBTvS+yc9HaSm2Al77GDXEwY7NDcTef+3kEtQHpesS+xmC8mFtMEKV8vifXEhpt
19
- iNp6gtsfDMtFmrFXCADTaUD1WBmhJQtYUsGsoQ75c5zzUHU93BOswBe2KODCA3Ie
20
- X3XKvHTjGw3wjWJvLcnL3EgcHDL1x7ehIA5UgvHFixmkx5D91uIdq4YDMt6xERle
21
- JgeLKF9g1qCl9wmxqT4T1J9h9LGMQQEUhth0uTFr6bEpzgg6hFTrPDaI8dOMlcgu
22
- ctOH2wFZgRMfrykGIs53rwF4pL+8iy+pakaRRAVTaZIX2CL2dThy0283jTVu9dNn
23
- f/Zfu5mNlvsRcXlZMgTy0UMBpXeLMjaWyd+JeAnAeZxO3/ID/Ppg6vcc0Wn8XyB5
24
- YUOIQe+Rc0jJnB1zqjww2cB6H5Ke3GjktQqrulHFfEYbn7lj8WLVgDLmellFNOxX
25
- k9H2sta5SN/t3fN3oBO0A6JyotQOiBE54yHVpgoc+PBlcrpoOxSZx67lprD+WnlV
26
- Ynnf6qIrR9NxgYN00Elzj9KP9OT1ufFrMQ0BnW4EWdFLCScGLsZVlmBKPrtHwK3N
27
- FSy3JFMJcpymgNas5+bqIyZGqAZREHH3AWhc2TVl1Kt11g6PZWm3dSafT6SlqgyP
28
- Z7OcBEnWr+ZhDeJfnAXrn5siah9eXuT0KtQWlqpSn76dExlfz16Da/3xBtO4ceyz
29
- Lk4gzZ1QjP1ZvjarWOIEtkT7eiWaCQHYNVbvFRu5wo98o/KwO3xaPTDN9LCZKGhR
30
- -----END RSA PRIVATE KEY-----
@@ -1,8 +0,0 @@
1
- -----BEGIN RSA PUBLIC KEY-----
2
- MIIBCgKCAQEAx9vNhcvSrxjsegZAAo4OEuoZOV/oxINEeWneJYczS80/bQ1J6lSS
3
- J81qecxXAzCLPlvsFoP4eeUNXSt/G7hP7SAM479N+kY/MzbihJ5LRY9sRzLbQTMe
4
- qsmDAmmQe4y3Ke3bvd70r8VOmo5pqM3IPLGwBkTRTQmyRsDQArilg6WtxDUgy5ol
5
- 2STHFA8E1iCReh9bck8ZaLxzVhYRXZ0nuOKWGRMppocPlp55HVohOItUZh7uSCch
6
- LcVAZuhTTNaDLtLIJ6G0yNJvfEieJUhA8wGBoPhD3LMQwQMxTMerpjZhP/qjm6Gg
7
- eWpKf+iVil86/PSy/z0Vw06/rD0sfXPtlQIDAQAB
8
- -----END RSA PUBLIC KEY-----
@@ -1,22 +0,0 @@
1
- module NimbusSpecHelper
2
- module_function
3
-
4
- def setup
5
- nimbus_path = File.expand_path(
6
- File.join(
7
- File.dirname(__FILE__),
8
- 'json-jwt-nimbus',
9
- 'nimbus_jwe.rb'
10
- )
11
- )
12
- if File.exist? nimbus_path
13
- require nimbus_path
14
- end
15
- end
16
-
17
- def nimbus_available?
18
- defined? NimbusJWE
19
- end
20
- end
21
-
22
- NimbusSpecHelper.setup
@@ -1,52 +0,0 @@
1
- module SignKeyFixtureHelper
2
- def shared_secret
3
- 'shared-secret'
4
- end
5
-
6
- def pem_file(file_name)
7
- File.new pem_file_path(file_name)
8
- end
9
-
10
- def pem_file_path(file_name)
11
- File.join(
12
- File.dirname(__FILE__),
13
- "../fixtures/#{file_name}.pem"
14
- )
15
- end
16
-
17
- def der_file_path(file_name)
18
- File.join(
19
- File.dirname(__FILE__),
20
- "../fixtures/#{file_name}.der"
21
- )
22
- end
23
-
24
- def private_key(algorithm = :rsa, options = {})
25
- case algorithm
26
- when :rsa
27
- OpenSSL::PKey::RSA.new(
28
- pem_file("#{algorithm}/private_key"),
29
- 'pass-phrase'
30
- )
31
- when :ecdsa
32
- OpenSSL::PKey::EC.new(
33
- pem_file("#{algorithm}/#{options[:digest_length] || 256}/private_key")
34
- )
35
- end
36
- end
37
-
38
- def public_key(algorithm = :rsa, options = {})
39
- case algorithm
40
- when :rsa
41
- OpenSSL::PKey::RSA.new(
42
- pem_file("#{algorithm}/public_key")
43
- )
44
- when :ecdsa
45
- OpenSSL::PKey::EC.new(
46
- pem_file("#{algorithm}/#{options[:digest_length] || 256}/public_key")
47
- )
48
- end
49
- end
50
- end
51
-
52
- include SignKeyFixtureHelper
@@ -1,49 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'interop' do
4
- describe 'with jsrsasign' do
5
- context 'JWS' do
6
- let(:public_key) do
7
- pem = <<-PEM.strip_heredoc
8
- -----BEGIN PUBLIC KEY-----
9
- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoBUyo8CQAFPeYPvv78ylh5MwFZjT
10
- CLQeb042TjiMJxG+9DLFmRSMlBQ9T/RsLLc+PmpB1+7yPAR+oR5gZn3kJQ==
11
- -----END PUBLIC KEY-----
12
- PEM
13
- OpenSSL::PKey::EC.new pem
14
- end
15
- let(:private_key) do
16
- pem = <<-PEM.strip_heredoc
17
- -----BEGIN PRIVATE KEY-----
18
- MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgEbVzfPnZPxfAyxqE
19
- ZV05laAoJAl+/6Xt2O4mOB611sOhRANCAASgFTKjwJAAU95g++/vzKWHkzAVmNMI
20
- tB5vTjZOOIwnEb70MsWZFIyUFD1P9Gwstz4+akHX7vI8BH6hHmBmfeQl
21
- -----END PRIVATE KEY-----
22
- PEM
23
- OpenSSL::PKey::EC.new pem
24
- end
25
- let(:jws_string) do
26
- 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2p3dC1pZHAuZXhhbXBsZS5jb20iLCJzdWIiOiJtYWlsdG86bWlrZUBleGFtcGxlLmNvbSIsIm5iZiI6MTQzNTA2MjUyMywiZXhwIjoxNDM1MDY2MTIzLCJpYXQiOjE0MzUwNjI1MjMsImp0aSI6ImlkMTIzNDU2IiwidHlwIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9yZWdpc3RlciJ9.HFmKrExGIFm5SwzTq_ayG80ELUIKnrR9psedV_6ZsuHl5ZLZ-1nV35o0yjKkN7qPQipQMK90xMvDYpi7e2XU9Q'
27
- end
28
- let(:payload) do
29
- {
30
- iss: 'https://jwt-idp.example.com',
31
- sub: 'mailto:mike@example.com',
32
- nbf: 1435062523,
33
- exp: 1435066123,
34
- iat: 1435062523,
35
- jti: 'id123456',
36
- typ: 'https://example.com/register'
37
- }
38
- end
39
-
40
- describe 'verify' do
41
- it 'should succeed' do
42
- expect do
43
- JSON::JWT.decode(jws_string, public_key, :ES256)
44
- end.not_to raise_error
45
- end
46
- end
47
- end
48
- end
49
- end