tanker-core 2.26.0.alpha.3 → 2.26.0.alpha.10

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
2
  SHA256:
3
- metadata.gz: 0316a297c651c74a86046512790acc93584e255951dcf0d1f6a208795354131a
4
- data.tar.gz: f42ecea9cefcaeac70ca467a5ee4719a0d2d552bdca3ed1e0d6c63f5cc200dc4
3
+ metadata.gz: d0cccdb9df7f1d11b270bbe824ba5c5ece563ee180e6b05436da720d46fbdeba
4
+ data.tar.gz: cf7c72d947e9617a7e2b61563eb24a929b8cd57cc2d061cf7c9c1d6d1fabb925
5
5
  SHA512:
6
- metadata.gz: e3a2d1b2463dacbd39e1235639d6a39de5fef31a308a461974cc7d5f6d64d85bb373c1449f83779c15a345f46101fc6f7757c73d2c2c278005a970cc9aef4e02
7
- data.tar.gz: b732096c77a6b5c42ba1f7b5df0e9750f3ec4d85be62f1987c35e9ff0ec7f8648c3a49ab8db5afa03bb67bab22c23491a812e43a9e67827173d1bbea08e26ce5
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.26.0.alpha.3'
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.26.0.alpha.3
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: 2022-01-10 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