authlete 1.7.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 97d78dd039d8f22081dd1085109d84809e5ee772
4
- data.tar.gz: 7b3569794b98ad7c59eb28d0e458d4d05be474c6
2
+ SHA256:
3
+ metadata.gz: 164290174c960b47c0108dbde641e0c01e37f38b2bdbafa9f36fcbb68f5dd053
4
+ data.tar.gz: 625eba82bcdee17d39a2635199e6228e6e9a001729fdf64a1343c486ecd23998
5
5
  SHA512:
6
- metadata.gz: b737891b85b5507471f8ffe9ababe62ca7b2134b1b31a0e08c97ab8c36d862e296bc78649e2fc95768c2ce93895ca8dab189d74c0c13c609075268d89de9d27a
7
- data.tar.gz: 3b1c04aba0b8e84bf1d0306ca93f0a9e93b0841442deba6d5e170c5cca75b9d8694338a91906671e44a37d97c9913f59d4f253f4e3b7486d1e6047d29a3f71a5
6
+ metadata.gz: 9a5224c845954deb1f327f7c726c5c61368800563225abe58190208bbd18a158764d656dff2576816faf1ef13772153004beb77dbd7555b9a587c6ddeb2df74a
7
+ data.tar.gz: 6a51b9016c348e583f1d5b43285c021aea1e60d6d3371a059d997f12e731cedc70dca2d5bdf883657c815d609fd3ea5ed293ddecbafb67f20a39d9dfb04ccd4b
data/lib/authlete.rb CHANGED
@@ -39,6 +39,7 @@ module Authlete
39
39
  autoload :SnsCredentials, 'authlete/model/sns-credentials'
40
40
  autoload :TaggedValue, 'authlete/model/tagged-value'
41
41
  autoload :NamedUri, 'authlete/model/named-uri'
42
+ autoload :Hsk, 'authlete/model/hsk'
42
43
 
43
44
  module Request
44
45
  autoload :AuthenticationCallbackRequest, 'authlete/model/request/authentication-callback-request'
@@ -0,0 +1,67 @@
1
+ # :nodoc:
2
+ #
3
+ # Copyright (C) 2014-2021 Authlete, Inc.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+
18
+ module Authlete
19
+ module Model
20
+ class Hsk < Authlete::Model::Base
21
+ include Authlete::Model::Hashable
22
+ include Authlete::Utility
23
+
24
+ attr_accessor :kty
25
+
26
+ attr_accessor :use
27
+
28
+ attr_accessor :alg
29
+
30
+ attr_accessor :kid
31
+
32
+ attr_accessor :hsmName
33
+ alias_method :hsm_name, :hsmName
34
+ alias_method :hsm_name=, :hsmName=
35
+
36
+ attr_accessor :handle
37
+
38
+ attr_accessor :publicKey
39
+ alias_method :public_key, :publicKey
40
+ alias_method :public_key=, :publicKey=
41
+
42
+ private
43
+
44
+ def defaults
45
+ {
46
+ kty: nil,
47
+ use: nil,
48
+ alg: nil,
49
+ kid: nil,
50
+ hsmName: nil,
51
+ handle: nil,
52
+ publicKey: nil,
53
+ }
54
+ end
55
+
56
+ def set_params(hash)
57
+ @kty = hash[:kty]
58
+ @use = hash[:use]
59
+ @alg = hash[:alg]
60
+ @kid = hash[:kid]
61
+ @hsmName = hash[:hsmName]
62
+ @handle = hash[:handle]
63
+ @publicKey = hash[:publicKey]
64
+ end
65
+ end
66
+ end
67
+ end
@@ -457,6 +457,12 @@ module Authlete
457
457
  alias_method :request_object_encryption_enc_match_required, :requestObjectEncryptionEncMatchRequired
458
458
  alias_method :request_object_encryption_enc_match_required=, :requestObjectEncryptionEncMatchRequired=
459
459
 
460
+ attr_accessor :hsks
461
+
462
+ attr_accessor :hsmEnabled
463
+ alias_method :hsm_enabled, :hsmEnabled
464
+ alias_method :hsm_enabled=, :hsmEnabled=
465
+
460
466
  private
461
467
 
462
468
  def defaults
@@ -572,7 +578,9 @@ module Authlete
572
578
  tokenExpirationLinked: false,
573
579
  frontChannelRequestObjectEncryptionRequired: false,
574
580
  requestObjectEncryptionAlgMatchRequired: false,
575
- requestObjectEncryptionEncMatchRequired: false
581
+ requestObjectEncryptionEncMatchRequired: false,
582
+ hsks: nil,
583
+ hsmEnabled: false
576
584
  }
577
585
  end
578
586
 
@@ -689,6 +697,8 @@ module Authlete
689
697
  @frontChannelRequestObjectEncryptionRequired = hash[:frontChannelRequestObjectEncryptionRequired]
690
698
  @requestObjectEncryptionAlgMatchRequired = hash[:requestObjectEncryptionAlgMatchRequired]
691
699
  @requestObjectEncryptionEncMatchRequired = hash[:requestObjectEncryptionEncMatchRequired]
700
+ @hsks = get_parsed_array(hash[:hsks]) { |e| Authlete::Model::Hsk.parse(e) }
701
+ @hsmEnabled = hash[:hsmEnabled]
692
702
  end
693
703
 
694
704
  def to_hash_value(key, var)
@@ -696,7 +706,7 @@ module Authlete
696
706
 
697
707
  case key
698
708
  when :snsCredentials, :developerSnsCredentials, :supportedScopes,
699
- :metadata, :mtlsEndpointAliases, :attributes
709
+ :metadata, :mtlsEndpointAliases, :attributes, :hsks
700
710
  raw_val&.map { |e| e.to_hash }
701
711
  else
702
712
  raw_val
@@ -16,5 +16,5 @@
16
16
 
17
17
 
18
18
  module Authlete
19
- VERSION = "1.7.0"
19
+ VERSION = "1.8.0"
20
20
  end
@@ -0,0 +1,108 @@
1
+ # :nodoc:
2
+ #
3
+ # Copyright (C) 2014-2021 Authlete, Inc.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+
18
+ require 'authlete'
19
+ require 'json'
20
+ require 'minitest/autorun'
21
+
22
+
23
+ class HskTest < Minitest::Test
24
+ KTY = 'EC'
25
+ USE = 'sig'
26
+ ALG = 'ES256'
27
+ KID = 'jane'
28
+ HSM_NAME = 'google'
29
+ HANDLE = '<handle>'
30
+ PUBLIC_KEY = '<public-key>'
31
+
32
+
33
+ def generate_json
34
+ return <<~JSON
35
+ {
36
+ "kty": "EC",
37
+ "use": "sig",
38
+ "alg": "ES256",
39
+ "kid": "jane",
40
+ "hsmName": "google",
41
+ "handle": "<handle>",
42
+ "publicKey": "<public-key>"
43
+ }
44
+ JSON
45
+ end
46
+
47
+
48
+ def generate_hash
49
+ {
50
+ kty: 'EC',
51
+ use: 'sig',
52
+ alg: 'ES256',
53
+ kid: 'jane',
54
+ hsmName: 'google',
55
+ handle: '<handle>',
56
+ publicKey: '<public-key>'
57
+ }
58
+ end
59
+
60
+
61
+ def set_params(obj)
62
+ obj.kty = KTY
63
+ obj.use = USE
64
+ obj.alg = ALG
65
+ obj.kid = KID
66
+ obj.hsmName = HSM_NAME
67
+ obj.handle = HANDLE
68
+ obj.publicKey = PUBLIC_KEY
69
+ end
70
+
71
+
72
+ def match(obj)
73
+ assert_equal KTY, obj.kty
74
+ assert_equal USE, obj.use
75
+ assert_equal ALG, obj.alg
76
+ assert_equal KID, obj.kid
77
+ assert_equal HSM_NAME, obj.hsmName
78
+ assert_equal HANDLE, obj.handle
79
+ assert_equal PUBLIC_KEY, obj.publicKey
80
+ end
81
+
82
+
83
+ def test_from_json
84
+ jsn = generate_json
85
+ hsh = JSON.parse(jsn)
86
+ actual = Authlete::Model::Hsk.new(hsh)
87
+
88
+ match(actual)
89
+ end
90
+
91
+
92
+ def test_setters
93
+ actual = Authlete::Model::Hsk.new
94
+ set_params(actual)
95
+
96
+ match(actual)
97
+ end
98
+
99
+
100
+ def test_to_hash
101
+ obj = Authlete::Model::Hsk.new
102
+ set_params(obj)
103
+ actual = obj.to_hash
104
+ expected = generate_hash
105
+
106
+ assert_equal expected, actual
107
+ end
108
+ end
@@ -147,6 +147,15 @@ class ServiceTest < Minitest::Test
147
147
  FRONT_CHANNEL_REQUEST_OBJECT_ENCRYPTION_REQUIRED = false
148
148
  REQUEST_OBJECT_ENCRYPTION_ALG_MATCH_REQUIRED = false
149
149
  REQUEST_OBJECT_ENCRYPTION_ENC_MATCH_REQUIRED = false
150
+ HSKS_KTY = 'EC'
151
+ HSKS_USE = 'sig'
152
+ HSKS_ALG = 'ES256'
153
+ HSKS_KID = 'jane'
154
+ HSKS_HSMNAME = 'google'
155
+ HSKS_HANDLE = '<handle>'
156
+ HSKS_PUBLICKEY = '<public-key>'
157
+ HSKS = [ Authlete::Model::Hsk.new(kty: HSKS_KTY, use: HSKS_USE, alg: HSKS_ALG, kid: HSKS_KID, hsmName: HSKS_HSMNAME, handle: HSKS_HANDLE, publicKey: HSKS_PUBLICKEY) ]
158
+ HSM_ENABLED = false
150
159
 
151
160
 
152
161
  def generate_json
@@ -165,6 +174,8 @@ class ServiceTest < Minitest::Test
165
174
  "userInfoEndpoint": "<user-info-endpoint>",
166
175
  "jwksUri": "<jwks-uri>",
167
176
  "jwks": "<jwks>",
177
+ "hsks": [ { "kty": "EC", "use": "sig", "alg": "ES256", "kid": "jane", "hsmName": "google", "handle": "<handle>", "publicKey": "<public-key>" } ],
178
+ "hsmEnabled": false,
168
179
  "registrationEndpoint": "<registration-endpoint>",
169
180
  "registrationManagementEndpoint": "<registration-management-endpoint>",
170
181
  "supportedScopes": [ { "name": "scope0", "description": "<scope0-description>" } ],
@@ -382,7 +393,9 @@ class ServiceTest < Minitest::Test
382
393
  tokenExpirationLinked: false,
383
394
  frontChannelRequestObjectEncryptionRequired: false,
384
395
  requestObjectEncryptionAlgMatchRequired: false,
385
- requestObjectEncryptionEncMatchRequired: false
396
+ requestObjectEncryptionEncMatchRequired: false,
397
+ hsks: [ { kty: 'EC', use: 'sig', alg: 'ES256', kid: 'jane', hsmName: 'google', handle: '<handle>', publicKey: '<public-key>' } ],
398
+ hsmEnabled: false
386
399
  }
387
400
  end
388
401
 
@@ -500,6 +513,8 @@ class ServiceTest < Minitest::Test
500
513
  obj.frontChannelRequestObjectEncryptionRequired = FRONT_CHANNEL_REQUEST_OBJECT_ENCRYPTION_REQUIRED
501
514
  obj.requestObjectEncryptionAlgMatchRequired = REQUEST_OBJECT_ENCRYPTION_ALG_MATCH_REQUIRED
502
515
  obj.requestObjectEncryptionEncMatchRequired = REQUEST_OBJECT_ENCRYPTION_ENC_MATCH_REQUIRED
516
+ obj.hsks = HSKS
517
+ obj.hsm_enabled = HSM_ENABLED
503
518
  end
504
519
 
505
520
 
@@ -624,6 +639,14 @@ class ServiceTest < Minitest::Test
624
639
  assert_equal FRONT_CHANNEL_REQUEST_OBJECT_ENCRYPTION_REQUIRED, obj.frontChannelRequestObjectEncryptionRequired
625
640
  assert_equal REQUEST_OBJECT_ENCRYPTION_ALG_MATCH_REQUIRED, obj.requestObjectEncryptionAlgMatchRequired
626
641
  assert_equal REQUEST_OBJECT_ENCRYPTION_ENC_MATCH_REQUIRED, obj.requestObjectEncryptionEncMatchRequired
642
+ assert_equal HSKS_KTY, obj.hsks[0].kty
643
+ assert_equal HSKS_USE, obj.hsks[0].use
644
+ assert_equal HSKS_ALG, obj.hsks[0].alg
645
+ assert_equal HSKS_KID, obj.hsks[0].kid
646
+ assert_equal HSKS_HSMNAME, obj.hsks[0].hsmName
647
+ assert_equal HSKS_HANDLE, obj.hsks[0].handle
648
+ assert_equal HSKS_PUBLICKEY, obj.hsks[0].publicKey
649
+ assert_equal HSM_ENABLED, obj.hsmEnabled
627
650
  end
628
651
 
629
652
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authlete
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takahiko Kawasaki
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-06-26 00:00:00.000000000 Z
12
+ date: 2021-07-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -75,6 +75,7 @@ files:
75
75
  - lib/authlete/model/client-extension.rb
76
76
  - lib/authlete/model/client.rb
77
77
  - lib/authlete/model/hashable.rb
78
+ - lib/authlete/model/hsk.rb
78
79
  - lib/authlete/model/named-uri.rb
79
80
  - lib/authlete/model/pair.rb
80
81
  - lib/authlete/model/param-initializer.rb
@@ -207,6 +208,7 @@ files:
207
208
  - test/authlete/model/response/test_user-info-response.rb
208
209
  - test/authlete/model/test_client-extension.rb
209
210
  - test/authlete/model/test_client.rb
211
+ - test/authlete/model/test_hsk.rb
210
212
  - test/authlete/model/test_named-uri.rb
211
213
  - test/authlete/model/test_pair.rb
212
214
  - test/authlete/model/test_property.rb
@@ -236,8 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
238
  - !ruby/object:Gem::Version
237
239
  version: '0'
238
240
  requirements: []
239
- rubyforge_project:
240
- rubygems_version: 2.6.8
241
+ rubygems_version: 3.2.15
241
242
  signing_key:
242
243
  specification_version: 4
243
244
  summary: A library for Authlete Web APIs
@@ -300,6 +301,7 @@ test_files:
300
301
  - test/authlete/model/response/test_user-info-response.rb
301
302
  - test/authlete/model/test_client-extension.rb
302
303
  - test/authlete/model/test_client.rb
304
+ - test/authlete/model/test_hsk.rb
303
305
  - test/authlete/model/test_named-uri.rb
304
306
  - test/authlete/model/test_pair.rb
305
307
  - test/authlete/model/test_property.rb