json-jwt 1.10.0 → 1.10.1

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.

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