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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ed1b5fb4b2994520d3a5860c51f40fc70f6a9bde5b095c5cc5ae763c71d7f5a1
4
- data.tar.gz: dea1ab21835d8ea0e503a9679f1cbc4f4703815541ddbc741e1d201a1731cf28
3
+ metadata.gz: cba73b49033dfd01aeda92ab6e44040c405d7ba75bf6cb28e38f60dfcafb7381
4
+ data.tar.gz: 35ac379b56b2bc63ca7902f3109d4fe79b211ed51965020407948b64a7ee87f9
5
5
  SHA512:
6
- metadata.gz: 14e4d5b4a7fc14342f6022b9477bca46f64e67f6809b9ef473e65155c28fc0ea3e178f0317d9de0694126009b510306f65aa3f0e8526aa1aba8bbb633855a7e9
7
- data.tar.gz: 1cd7b7bf591a5b7e4bbd4f25eab75c9415f1de0f40888e995c673e3aa76fcc7f0230bea4e419754b208fe44ee91bd20c4d8b9c8b80544018d76ce983792ad2bb
6
+ metadata.gz: b8051da7398d8dcc4706cd2af15ed63b7a71e4f342f9dab3c56f405798e683d4cc4c0c0bea1bbf4879f2fbf4ddfe42f2c7493e175d9cc3f3662423666e6ad56a
7
+ data.tar.gz: 24c3ea631fe0a9d1718e5fc17a6c783b243d3b1fca83e62bde645b285cea92e09272821baaf63f5c324dbc73c8b04353f68be2dfcf1f5f1af29a930471d74105
@@ -13,8 +13,12 @@ module Tanker
13
13
  @private_key = private_key
14
14
  end
15
15
 
16
- def get_verification_code(email)
17
- CAdmin.tanker_get_verification_code(@trustchain_url, @id, @auth_token, email).get_string
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
@@ -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 :tanker_get_verification_code, [:string, :string, :string, :string], CTanker::CFuture
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 get_verification_code(email)
15
- CTanker.tanker_get_verification_code(email).get
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
- "#{FFI::Platform::LIBPREFIX}#{name}.#{FFI::Platform::LIBSUFFIX}", __dir__
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] = 3
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
- :email, :pointer
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[:email].read_string.force_encoding(Encoding::UTF_8))
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
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Tanker
4
4
  class Core
5
- VERSION = '2.16.0'
5
+ VERSION = '2.17.2.beta.1'
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.16.0
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-06-25 00:00:00.000000000 Z
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: '0'
192
+ version: 1.3.1
192
193
  requirements: []
193
194
  rubygems_version: 3.0.3.1
194
195
  signing_key: