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 +4 -4
- data/lib/tanker/admin/c_admin/c_app_update_options.rb +12 -4
- data/lib/tanker/c_tanker/c_verification.rb +27 -0
- data/lib/tanker/c_tanker.rb +1 -0
- data/lib/tanker/core/session.rb +5 -0
- data/lib/tanker/core/version.rb +1 -1
- data/vendor/tanker/darwin-aarch64/libctanker.dylib +0 -0
- data/vendor/tanker/darwin-x86_64/libctanker.dylib +0 -0
- data/vendor/tanker/linux-x86_64/libctanker.so +0 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0cccdb9df7f1d11b270bbe824ba5c5ece563ee180e6b05436da720d46fbdeba
|
4
|
+
data.tar.gz: cf7c72d947e9617a7e2b61563eb24a929b8cd57cc2d061cf7c9c1d6d1fabb925
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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] =
|
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?
|
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
|
data/lib/tanker/c_tanker.rb
CHANGED
@@ -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,
|
data/lib/tanker/core/session.rb
CHANGED
@@ -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
|
data/lib/tanker/core/version.rb
CHANGED
Binary file
|
Binary file
|
Binary file
|
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.
|
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-
|
11
|
+
date: 2022-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|