tanker-core 2.16.0 → 2.17.2.beta.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.
- checksums.yaml +4 -4
- data/lib/tanker/admin/app.rb +6 -2
- data/lib/tanker/admin/c_admin.rb +2 -1
- data/lib/tanker/admin/c_admin/c_app_descriptor.rb +6 -2
- data/lib/tanker/c_tanker/c_lib.rb +1 -1
- data/lib/tanker/c_tanker/c_verification.rb +26 -2
- data/lib/tanker/c_tanker/c_verification_method.rb +5 -2
- data/lib/tanker/core/verification.rb +14 -0
- data/lib/tanker/core/verification_method.rb +13 -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 +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cba73b49033dfd01aeda92ab6e44040c405d7ba75bf6cb28e38f60dfcafb7381
|
4
|
+
data.tar.gz: 35ac379b56b2bc63ca7902f3109d4fe79b211ed51965020407948b64a7ee87f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b8051da7398d8dcc4706cd2af15ed63b7a71e4f342f9dab3c56f405798e683d4cc4c0c0bea1bbf4879f2fbf4ddfe42f2c7493e175d9cc3f3662423666e6ad56a
|
7
|
+
data.tar.gz: 24c3ea631fe0a9d1718e5fc17a6c783b243d3b1fca83e62bde645b285cea92e09272821baaf63f5c324dbc73c8b04353f68be2dfcf1f5f1af29a930471d74105
|
data/lib/tanker/admin/app.rb
CHANGED
@@ -13,8 +13,12 @@ module Tanker
|
|
13
13
|
@private_key = private_key
|
14
14
|
end
|
15
15
|
|
16
|
-
def
|
17
|
-
CAdmin.
|
16
|
+
def get_email_verification_code(email)
|
17
|
+
CAdmin.tanker_get_email_verification_code(@trustchain_url, @id, @auth_token, email).get_string
|
18
|
+
end
|
19
|
+
|
20
|
+
def get_sms_verification_code(phone_number)
|
21
|
+
CAdmin.tanker_get_sms_verification_code(@trustchain_url, @id, @auth_token, phone_number).get_string
|
18
22
|
end
|
19
23
|
end
|
20
24
|
end
|
data/lib/tanker/admin/c_admin.rb
CHANGED
@@ -23,7 +23,8 @@ module Tanker
|
|
23
23
|
attach_function :tanker_admin_app_descriptor_free, [:pointer], :void
|
24
24
|
attach_function :tanker_admin_app_update, [:admin_pointer, :string,
|
25
25
|
Tanker::Admin::AppUpdateOptions], CTanker::CFuture
|
26
|
-
attach_function :
|
26
|
+
attach_function :tanker_get_email_verification_code, [:string, :string, :string, :string], CTanker::CFuture
|
27
|
+
attach_function :tanker_get_sms_verification_code, [:string, :string, :string, :string], CTanker::CFuture
|
27
28
|
end
|
28
29
|
|
29
30
|
private_constant :CAdmin
|
@@ -11,8 +11,12 @@ module Tanker
|
|
11
11
|
:private_key, :string,
|
12
12
|
:public_key, :string
|
13
13
|
|
14
|
-
def
|
15
|
-
CTanker.
|
14
|
+
def get_email_verification_code(email)
|
15
|
+
CTanker.tanker_get_email_verification_code(email).get
|
16
|
+
end
|
17
|
+
|
18
|
+
def get_sms_verification_code(phone_number)
|
19
|
+
CTanker.tanker_get_sms_verification_code(phone_number).get
|
16
20
|
end
|
17
21
|
|
18
22
|
def self.release(ptr)
|
@@ -5,6 +5,6 @@ require 'ffi/platform'
|
|
5
5
|
module Tanker::CTanker
|
6
6
|
def self.get_path(name)
|
7
7
|
File.expand_path "../../../vendor/tanker/#{FFI::Platform::OS}-#{FFI::Platform::ARCH}/"\
|
8
|
-
|
8
|
+
"#{FFI::Platform::LIBPREFIX}#{name}.#{FFI::Platform::LIBSUFFIX}", __dir__
|
9
9
|
end
|
10
10
|
end
|
@@ -24,18 +24,38 @@ module Tanker
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
class CPhoneNumberVerification < FFI::Struct
|
28
|
+
layout :version, :uint8,
|
29
|
+
:phone_number, :pointer,
|
30
|
+
:verification_code, :pointer
|
31
|
+
|
32
|
+
def initialize(phone_number, verification_code)
|
33
|
+
super()
|
34
|
+
|
35
|
+
# NOTE: Instance variables are required to keep the CStrings alive
|
36
|
+
@phone_number = CTanker.new_cstring phone_number
|
37
|
+
@verification_code = CTanker.new_cstring verification_code
|
38
|
+
|
39
|
+
self[:version] = 1
|
40
|
+
self[:phone_number] = @phone_number
|
41
|
+
self[:verification_code] = @verification_code
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
27
45
|
class CVerification < FFI::Struct
|
28
46
|
layout :version, :uint8,
|
29
47
|
:type, :uint8,
|
30
48
|
:verification_key, :pointer,
|
31
49
|
:email_verification, CEmailVerification,
|
32
50
|
:passphrase, :pointer,
|
33
|
-
:oidc_id_token, :pointer
|
51
|
+
:oidc_id_token, :pointer,
|
52
|
+
:phone_number_verification, CPhoneNumberVerification
|
34
53
|
|
35
54
|
TYPE_EMAIL = 1
|
36
55
|
TYPE_PASSPHRASE = 2
|
37
56
|
TYPE_VERIFICATION_KEY = 3
|
38
57
|
TYPE_OIDC_ID_TOKEN = 4
|
58
|
+
TYPE_PHONE_NUMBER = 5
|
39
59
|
|
40
60
|
def initialize(verification)
|
41
61
|
super()
|
@@ -61,11 +81,15 @@ module Tanker
|
|
61
81
|
@oidc_id_token = CTanker.new_cstring verification.oidc_id_token
|
62
82
|
self[:type] = TYPE_OIDC_ID_TOKEN
|
63
83
|
self[:oidc_id_token] = @oidc_id_token
|
84
|
+
when Tanker::PhoneNumberVerification
|
85
|
+
self[:type] = TYPE_PHONE_NUMBER
|
86
|
+
self[:phone_number_verification] =
|
87
|
+
CPhoneNumberVerification.new verification.phone_number, verification.verification_code
|
64
88
|
else
|
65
89
|
raise ArgumentError, 'Unknown Tanker::Verification type!'
|
66
90
|
end
|
67
91
|
|
68
|
-
self[:version] =
|
92
|
+
self[:version] = 4
|
69
93
|
end
|
70
94
|
end
|
71
95
|
end
|
@@ -9,23 +9,26 @@ module Tanker
|
|
9
9
|
class CVerificationMethod < FFI::Struct
|
10
10
|
layout :version, :uint8,
|
11
11
|
:type, :uint8,
|
12
|
-
:
|
12
|
+
:value, :pointer
|
13
13
|
|
14
14
|
TYPE_EMAIL = 1
|
15
15
|
TYPE_PASSPHRASE = 2
|
16
16
|
TYPE_VERIFICATION_KEY = 3
|
17
17
|
TYPE_OIDC_ID_TOKEN = 4
|
18
|
+
TYPE_PHONE_NUMBER = 5
|
18
19
|
|
19
20
|
def to_verification_method
|
20
21
|
case self[:type]
|
21
22
|
when TYPE_EMAIL
|
22
|
-
EmailVerificationMethod.new(self[:
|
23
|
+
EmailVerificationMethod.new(self[:value].read_string.force_encoding(Encoding::UTF_8))
|
23
24
|
when TYPE_PASSPHRASE
|
24
25
|
PassphraseVerificationMethod.new
|
25
26
|
when TYPE_VERIFICATION_KEY
|
26
27
|
VerificationKeyVerificationMethod.new
|
27
28
|
when TYPE_OIDC_ID_TOKEN
|
28
29
|
OIDCIDTokenVerificationMethod.new
|
30
|
+
when TYPE_PHONE_NUMBER
|
31
|
+
PhoneNumberVerificationMethod.new(self[:value].read_string.force_encoding(Encoding::UTF_8))
|
29
32
|
else
|
30
33
|
raise "Unknown VerificationMethod type #{self[:type]}!"
|
31
34
|
end
|
@@ -55,4 +55,18 @@ module Tanker
|
|
55
55
|
@oidc_id_token = oidc_id_token
|
56
56
|
end
|
57
57
|
end
|
58
|
+
|
59
|
+
class PhoneNumberVerification < Verification
|
60
|
+
attr_reader :phone_number, :verification_code
|
61
|
+
|
62
|
+
def initialize(phone_number, verif_code)
|
63
|
+
super()
|
64
|
+
|
65
|
+
ASSERT_UTF8.call(phone_number)
|
66
|
+
ASSERT_UTF8.call(verif_code)
|
67
|
+
|
68
|
+
@phone_number = phone_number
|
69
|
+
@verification_code = verif_code
|
70
|
+
end
|
71
|
+
end
|
58
72
|
end
|
@@ -25,4 +25,17 @@ module Tanker
|
|
25
25
|
super && email == other.email
|
26
26
|
end
|
27
27
|
end
|
28
|
+
|
29
|
+
class PhoneNumberVerificationMethod < VerificationMethod
|
30
|
+
attr_reader :phone_number
|
31
|
+
|
32
|
+
def initialize(phone_number)
|
33
|
+
super()
|
34
|
+
@phone_number = phone_number
|
35
|
+
end
|
36
|
+
|
37
|
+
def ==(other)
|
38
|
+
super && phone_number == other.phone_number
|
39
|
+
end
|
40
|
+
end
|
28
41
|
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.
|
4
|
+
version: 2.17.2.beta.1
|
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-
|
11
|
+
date: 2021-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -167,6 +167,7 @@ files:
|
|
167
167
|
- lib/tanker/error.rb
|
168
168
|
- lib/tanker/sharing_options.rb
|
169
169
|
- lib/tanker/verification_options.rb
|
170
|
+
- vendor/tanker/darwin-aarch64/libctanker.dylib
|
170
171
|
- vendor/tanker/darwin-x86_64/libctanker.dylib
|
171
172
|
- vendor/tanker/linux-x86_64/libctanker.so
|
172
173
|
homepage: https://tanker.io
|
@@ -186,9 +187,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
187
|
version: 2.6.0
|
187
188
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
189
|
requirements:
|
189
|
-
- - "
|
190
|
+
- - ">"
|
190
191
|
- !ruby/object:Gem::Version
|
191
|
-
version:
|
192
|
+
version: 1.3.1
|
192
193
|
requirements: []
|
193
194
|
rubygems_version: 3.0.3.1
|
194
195
|
signing_key:
|