tanker-core 2.4.2 → 2.5.0
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/c_admin.rb +2 -2
- data/lib/tanker/c_tanker.rb +2 -2
- data/lib/tanker/c_tanker/c_future.rb +2 -1
- data/lib/tanker/c_tanker/c_lib.rb +15 -0
- data/lib/tanker/core/init.rb +15 -0
- data/lib/tanker/core/version.rb +1 -1
- data/vendor/libctanker/linux64/tanker/lib/libctanker.so +0 -0
- data/vendor/libctanker/mac64/tanker/lib/libctanker.dylib +0 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a679a4adda85f80bb146bf73a365982a492c65ddf4c4930fc688c38796e624b8
|
4
|
+
data.tar.gz: 62a6fc4e808225298bbf8a30b494780a6e81f47e5c66904014f56f1754cc957a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 952d8771ff38bc23dd80aeb45fd87d41481484c3900f9676d2ea4266e04dd06246c811c13fb72a481082a895ca526e16a0fb96475333f2ed11302287b04ca62b
|
7
|
+
data.tar.gz: 41c19bea75dec5c26e2c17b6bc4435c85917df1edff5756663847a10f3f1fcc692d0f9b197e17219358723afc342523ab1b2ed8540c44c1ff252e81ee4a359bb
|
data/lib/tanker/admin/c_admin.rb
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
require 'ffi'
|
4
4
|
require 'tanker/c_tanker/c_future'
|
5
|
+
require 'tanker/c_tanker/c_lib'
|
5
6
|
|
6
7
|
module Tanker
|
7
8
|
class Admin
|
8
9
|
module CAdmin
|
9
10
|
extend FFI::Library
|
10
11
|
|
11
|
-
ffi_lib
|
12
|
-
|
12
|
+
ffi_lib Tanker::CTanker.get_path('tanker_admin-c')
|
13
13
|
typedef :pointer, :admin_pointer
|
14
14
|
|
15
15
|
# Note: We use those CFutures with the tanker_future_* functions exposed by CTanker,
|
data/lib/tanker/c_tanker.rb
CHANGED
@@ -4,6 +4,7 @@ require 'ffi'
|
|
4
4
|
require_relative 'core/options'
|
5
5
|
require_relative 'sharing_options'
|
6
6
|
require_relative 'encryption_options'
|
7
|
+
require_relative 'c_tanker/c_lib'
|
7
8
|
require_relative 'c_tanker/c_future'
|
8
9
|
require_relative 'c_tanker/c_verification'
|
9
10
|
require_relative 'c_tanker/c_verification_method'
|
@@ -22,8 +23,7 @@ end
|
|
22
23
|
module Tanker
|
23
24
|
module CTanker
|
24
25
|
extend FFI::Library
|
25
|
-
|
26
|
-
ffi_lib "#{__dir__}/../../vendor/libctanker/linux64/tanker/lib/libctanker.so"
|
26
|
+
ffi_lib get_path('ctanker')
|
27
27
|
|
28
28
|
typedef :pointer, :session_pointer
|
29
29
|
typedef :pointer, :enc_sess_pointer
|
@@ -2,13 +2,14 @@
|
|
2
2
|
|
3
3
|
require 'ffi'
|
4
4
|
require 'tanker/error'
|
5
|
+
require 'tanker/c_tanker/c_lib'
|
5
6
|
require_relative 'c_tanker_error'
|
6
7
|
|
7
8
|
module Tanker
|
8
9
|
module CTanker
|
9
10
|
extend FFI::Library
|
10
11
|
|
11
|
-
ffi_lib
|
12
|
+
ffi_lib get_path('ctanker')
|
12
13
|
|
13
14
|
class CFuture < FFI::AutoPointer
|
14
15
|
def initialize(ptr, proc = nil, &block)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Tanker::CTanker
|
4
|
+
def self.get_path(name)
|
5
|
+
if /darwin/ =~ RUBY_PLATFORM
|
6
|
+
ext = '.dylib'
|
7
|
+
subdir = 'mac64'
|
8
|
+
else
|
9
|
+
ext = '.so'
|
10
|
+
subdir = 'linux64'
|
11
|
+
end
|
12
|
+
|
13
|
+
File.expand_path "../../../vendor/libctanker/#{subdir}/tanker/lib/lib#{name}#{ext}", __dir__
|
14
|
+
end
|
15
|
+
end
|
data/lib/tanker/core/init.rb
CHANGED
@@ -8,8 +8,11 @@ module Tanker
|
|
8
8
|
def initialize(options)
|
9
9
|
@revoke_event_handlers = Set.new
|
10
10
|
@ctanker = CTanker.tanker_create(options).get
|
11
|
+
@freed = false
|
11
12
|
ctanker_addr = @ctanker.address
|
12
13
|
ObjectSpace.define_finalizer(@ctanker) do |_|
|
14
|
+
next if @freed
|
15
|
+
|
13
16
|
CTanker.tanker_destroy(FFI::Pointer.new(:void, ctanker_addr)).get
|
14
17
|
end
|
15
18
|
|
@@ -19,6 +22,18 @@ module Tanker
|
|
19
22
|
CTanker.tanker_event_connect(@ctanker, CTanker::CTankerEvent::DEVICE_REVOKED, @device_revoked_handler, nil).get
|
20
23
|
end
|
21
24
|
|
25
|
+
def free
|
26
|
+
@freed = true
|
27
|
+
CTanker.tanker_destroy(@ctanker).get
|
28
|
+
@ctanker = nil
|
29
|
+
|
30
|
+
public_methods(false).each do |method|
|
31
|
+
send(:define_singleton_method, method) do |*_|
|
32
|
+
raise "using Tanker::Core##{method} after free"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
22
37
|
def self.set_log_handler(&block) # rubocop:disable Naming/AccessorMethodName
|
23
38
|
@log_handler = lambda do |clog|
|
24
39
|
block.call LogRecord.new clog[:category], clog[:level], clog[:file], clog[:line], clog[:message]
|
data/lib/tanker/core/version.rb
CHANGED
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.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tanker team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-07-
|
11
|
+
date: 2020-07-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -142,6 +142,7 @@ files:
|
|
142
142
|
- lib/tanker/c_tanker/c_device_info.rb
|
143
143
|
- lib/tanker/c_tanker/c_event.rb
|
144
144
|
- lib/tanker/c_tanker/c_future.rb
|
145
|
+
- lib/tanker/c_tanker/c_lib.rb
|
145
146
|
- lib/tanker/c_tanker/c_log_record.rb
|
146
147
|
- lib/tanker/c_tanker/c_string.rb
|
147
148
|
- lib/tanker/c_tanker/c_tanker_error.rb
|
@@ -165,6 +166,7 @@ files:
|
|
165
166
|
- lib/tanker/error.rb
|
166
167
|
- lib/tanker/sharing_options.rb
|
167
168
|
- vendor/libctanker/linux64/tanker/lib/libctanker.so
|
169
|
+
- vendor/libctanker/mac64/tanker/lib/libctanker.dylib
|
168
170
|
homepage: https://tanker.io
|
169
171
|
licenses:
|
170
172
|
- Apache-2.0
|
@@ -186,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
188
|
- !ruby/object:Gem::Version
|
187
189
|
version: '0'
|
188
190
|
requirements: []
|
189
|
-
rubygems_version: 3.0.
|
191
|
+
rubygems_version: 3.0.3
|
190
192
|
signing_key:
|
191
193
|
specification_version: 4
|
192
194
|
summary: Ruby SDK for Tanker
|