tanker-core 2.25.0 → 2.26.0.alpha.10

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6fe216265307043f443dbc165fab4e015e7906de1db192689bd10a07acd63626
4
- data.tar.gz: 812f53ff93bf8514e3244fe2785e79832c53aede66e95d3e55283b3524b5e028
3
+ metadata.gz: d0cccdb9df7f1d11b270bbe824ba5c5ece563ee180e6b05436da720d46fbdeba
4
+ data.tar.gz: cf7c72d947e9617a7e2b61563eb24a929b8cd57cc2d061cf7c9c1d6d1fabb925
5
5
  SHA512:
6
- metadata.gz: e7c5507d136a92c9bdbf803f6c1d771b4920966a71855a0970c95e0e0d0aa1c71c9c0e08d57178b3290c50dd03fa2885887f628e5aaa2ae5fcfb1fc3bcf5f12b
7
- data.tar.gz: c6b17a134ca23c832afb2c2567348bffb83b53b1a4d879c239381362c1b7e5261360591b9152d6b4c5771da8754f69e355024d4a30ddae4a8f5d9db9009dcff2
6
+ metadata.gz: d1c55fa2c1de05c77c61c1b65906c6f359c398ca9ead7db3e67d3c7c49f6e06749cf5512d55ca0aa922c5a24bdf5057be8916fce9b91f1fb84648fd53955e406
7
+ data.tar.gz: fe0821b5265c9a39c6684ae1cb98257376e4af83d1b6d310e8008812a18d62f9394f5356bb635e5977be84ca24f6a07876bd0fde043e79607205cbdc4be63049
@@ -7,9 +7,10 @@ module Tanker
7
7
  class Admin
8
8
  class AppUpdateOptions < FFI::Struct
9
9
  def initialize(oidc_client_id: nil, oidc_client_provider: nil,
10
- session_certificates: nil, preverified_verification: nil)
10
+ session_certificates: nil, preverified_verification: nil,
11
+ user_enrollment: nil)
11
12
  super()
12
- self[:version] = 2
13
+ self[:version] = 3
13
14
  unless oidc_client_id.nil?
14
15
  @oidc_client_id = CTanker.new_cstring oidc_client_id
15
16
  self[:oidc_client_id] = @oidc_client_id
@@ -24,19 +25,26 @@ module Tanker
24
25
  @session_certificates = boolptr
25
26
  self[:session_certificates] = @session_certificates
26
27
  end
27
- unless preverified_verification.nil? # rubocop:disable Style/GuardClause no different than the other parameters
28
+ unless preverified_verification.nil?
28
29
  boolptr = FFI::MemoryPointer.new(:bool, 1)
29
30
  boolptr.put(:bool, 0, preverified_verification)
30
31
  @preverified_verification = boolptr
31
32
  self[:preverified_verification] = @preverified_verification
32
33
  end
34
+ unless user_enrollment.nil? # rubocop:disable Style/GuardClause no different than the other parameters
35
+ boolptr = FFI::MemoryPointer.new(:bool, 1)
36
+ boolptr.put(:bool, 0, user_enrollment)
37
+ @user_enrollment = boolptr
38
+ self[:user_enrollment] = @user_enrollment
39
+ end
33
40
  end
34
41
 
35
42
  layout :version, :uint8,
36
43
  :oidc_client_id, :pointer,
37
44
  :oidc_client_provider, :pointer,
38
45
  :session_certificates, :pointer,
39
- :preverified_verification, :pointer
46
+ :preverified_verification, :pointer,
47
+ :user_enrollment, :pointer
40
48
  end
41
49
  end
42
50
  end
@@ -104,5 +104,32 @@ module Tanker
104
104
  self[:version] = 5
105
105
  end
106
106
  end
107
+
108
+ class CVerificationList < FFI::Struct
109
+ layout :version, :uint8,
110
+ :verifications, :pointer,
111
+ :count, :uint32
112
+
113
+ def initialize(verifications)
114
+ super()
115
+
116
+ unless verifications.is_a?(Array)
117
+ raise TypeError, 'Verifications argument is not an Array[Tanker::Verification]'
118
+ end
119
+
120
+ self[:version] = 1
121
+ self[:count] = verifications.length
122
+
123
+ # NOTE: Instance variables are required to keep the CVerifications alive
124
+ @verifications = []
125
+ self[:verifications] = FFI::MemoryPointer.new(CVerification, self[:count])
126
+ verifications.each_with_index do |verification, idx|
127
+ @verifications.push(CVerification.new(verification))
128
+ # NOTE: memcopy
129
+ str = @verifications[idx].pointer.read_bytes CVerification.size
130
+ self[:verifications].put_bytes(idx * CVerification.size, str, 0, CVerification.size)
131
+ end
132
+ end
133
+ end
107
134
  end
108
135
  end
@@ -40,6 +40,7 @@ module Tanker
40
40
  blocking_attach_function :tanker_create, [Tanker::Core::Options], CFuture
41
41
  blocking_attach_function :tanker_destroy, [:session_pointer], CFuture
42
42
  blocking_attach_function :tanker_start, [:session_pointer, :string], CFuture
43
+ blocking_attach_function :tanker_enroll_user, [:session_pointer, :string, CVerificationList], CFuture
43
44
  blocking_attach_function :tanker_register_identity, [:session_pointer, CVerification,
44
45
  Tanker::VerificationOptions], CFuture
45
46
  blocking_attach_function :tanker_verify_identity, [:session_pointer, CVerification,
@@ -11,6 +11,11 @@ module Tanker
11
11
  CTanker.tanker_start(@ctanker, identity).get.address
12
12
  end
13
13
 
14
+ def enroll_user(identity, verifications)
15
+ cverifs = CTanker::CVerificationList.new(verifications)
16
+ CTanker.tanker_enroll_user(@ctanker, identity, cverifs).get
17
+ end
18
+
14
19
  def generate_verification_key
15
20
  CTanker.tanker_generate_verification_key(@ctanker).get_string
16
21
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Tanker
4
4
  class Core
5
- VERSION = '2.25.0'
5
+ VERSION = '2.26.0.alpha.10'
6
6
 
7
7
  def self.native_version
8
8
  CTanker.tanker_version_string
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tanker-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.25.0
4
+ version: 2.26.0.alpha.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanker team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-15 00:00:00.000000000 Z
11
+ date: 2022-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -188,9 +188,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
188
188
  version: 2.6.0
189
189
  required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  requirements:
191
- - - ">="
191
+ - - ">"
192
192
  - !ruby/object:Gem::Version
193
- version: '0'
193
+ version: 1.3.1
194
194
  requirements: []
195
195
  rubygems_version: 3.0.3.1
196
196
  signing_key: