da_funk 3.26.0 → 3.29.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/Gemfile.lock +10 -10
- data/RELEASE_NOTES.md +26 -0
- data/Rakefile +1 -0
- data/lib/da_funk/engine.rb +7 -2
- data/lib/da_funk/i18n.rb +5 -1
- data/lib/da_funk/params_dat.rb +20 -5
- data/lib/da_funk/payment_channel.rb +1 -2
- data/lib/da_funk/secure_random.rb +17 -0
- data/lib/da_funk/version.rb +1 -1
- data/lib/device/setting.rb +5 -4
- data/test/unit/da_funk/secure_random.rb +18 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37d7e3cf03459d285f8f3dc049befefc6857d63f8f9d3920c7a28e5ba128879e
|
4
|
+
data.tar.gz: 78e552609442541e0dec9badacbcabe081ef2541350f3b9e5c684d106dd72871
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e08477af30c8b15a55b9b20d5132d90afb85d17609758bde631f09697cca24527e12069dc7a82b33dc2da3ccde99e62b8a1404cfc113d369be25ab645700f3a
|
7
|
+
data.tar.gz: 1bfe9676a867791075006151532f96b02fae0a3b2bf194b1389804b8aac5f29980671709567db2fe6a3de2d7b234a077168764da0db7f5f6f7ee4d9c49e5a1c7
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
da_funk (3.
|
4
|
+
da_funk (3.29.0)
|
5
5
|
archive-zip (~> 0.5)
|
6
6
|
bundler
|
7
7
|
cloudwalk_handshake
|
@@ -18,7 +18,7 @@ GEM
|
|
18
18
|
cloudwalk (1.15.0)
|
19
19
|
bundler
|
20
20
|
rake
|
21
|
-
cloudwalk_handshake (1.
|
21
|
+
cloudwalk_handshake (1.21.3)
|
22
22
|
funky-simplehttp (~> 0.6)
|
23
23
|
funky-emv (1.4.1)
|
24
24
|
funky-tlv (~> 0.2)
|
@@ -27,25 +27,25 @@ GEM
|
|
27
27
|
funky-tlv (0.2.3)
|
28
28
|
io-like (0.3.1)
|
29
29
|
parallel (1.19.2)
|
30
|
-
parser (2.7.
|
30
|
+
parser (2.7.2.0)
|
31
31
|
ast (~> 2.4.1)
|
32
32
|
posxml_parser (2.26.0)
|
33
33
|
funky-emv (~> 1)
|
34
34
|
rainbow (3.0.0)
|
35
35
|
rake (13.0.1)
|
36
|
-
regexp_parser (1.
|
36
|
+
regexp_parser (1.8.2)
|
37
37
|
rexml (3.2.4)
|
38
|
-
rubocop (
|
38
|
+
rubocop (1.1.0)
|
39
39
|
parallel (~> 1.10)
|
40
|
-
parser (>= 2.7.1.
|
40
|
+
parser (>= 2.7.1.5)
|
41
41
|
rainbow (>= 2.2.2, < 4.0)
|
42
|
-
regexp_parser (>= 1.
|
42
|
+
regexp_parser (>= 1.8)
|
43
43
|
rexml
|
44
|
-
rubocop-ast (>= 0.
|
44
|
+
rubocop-ast (>= 1.0.1)
|
45
45
|
ruby-progressbar (~> 1.7)
|
46
46
|
unicode-display_width (>= 1.4.0, < 2.0)
|
47
|
-
rubocop-ast (
|
48
|
-
parser (>= 2.7.1.
|
47
|
+
rubocop-ast (1.1.0)
|
48
|
+
parser (>= 2.7.1.5)
|
49
49
|
ruby-progressbar (1.10.1)
|
50
50
|
unicode-display_width (1.7.0)
|
51
51
|
yard (0.9.25)
|
data/RELEASE_NOTES.md
CHANGED
@@ -1,5 +1,31 @@
|
|
1
1
|
# DaFunk
|
2
2
|
|
3
|
+
### 3.29.0 - 2020-11-03
|
4
|
+
|
5
|
+
- Added support to Ruby SecureRandom;
|
6
|
+
- Update cloudwalk_handshake (1.21.3).
|
7
|
+
|
8
|
+
### 3.28.2 - 2020-10-07
|
9
|
+
|
10
|
+
- Added support of params.dat file restore if it was corrupted;
|
11
|
+
- Wait 3 seconds before restart after main update;
|
12
|
+
- Fixed method_missing exception;
|
13
|
+
|
14
|
+
### 3.28.1 - 2020-09-26
|
15
|
+
|
16
|
+
- Close socket in case of ssl exceptions;
|
17
|
+
- Do not assign nil to PaymentChannel#current and client on error because this is already being done on PaymentChannel#close.
|
18
|
+
|
19
|
+
### 3.28.0 - 2020-09-25
|
20
|
+
|
21
|
+
- Check if system update file is present after device restart in order to continue with system update process;
|
22
|
+
- Implemented block to write and break line if message has '\n'.
|
23
|
+
|
24
|
+
### 3.27.0 - 2020-09-25
|
25
|
+
|
26
|
+
- Print bitmap if exists on DaFunk::ParamsDat#restart;
|
27
|
+
- Add main application version on config.dat file.
|
28
|
+
|
3
29
|
### 3.26.0 - 2020-09-14
|
4
30
|
|
5
31
|
- Fixed error on virtual keyboard, chars y and Y were duplicated;
|
data/Rakefile
CHANGED
data/lib/da_funk/engine.rb
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
module DaFunk
|
2
2
|
class Engine
|
3
3
|
def self.check
|
4
|
-
|
5
|
-
|
4
|
+
if Device::Setting.boot == '1'
|
5
|
+
DaFunk::EventListener.check(:file_exists) #to check if system update is in progress
|
6
|
+
Device::Setting.boot = '0'
|
7
|
+
else
|
8
|
+
DaFunk::EventListener.check
|
9
|
+
ThreadScheduler.keep_alive
|
10
|
+
end
|
6
11
|
end
|
7
12
|
|
8
13
|
def self.app_loop(&block)
|
data/lib/da_funk/i18n.rb
CHANGED
@@ -73,7 +73,11 @@ class I18n
|
|
73
73
|
|
74
74
|
def self.pt(symbol, options = {})
|
75
75
|
if options[:line] || options[:column]
|
76
|
-
|
76
|
+
line = options[:line] || 0
|
77
|
+
t(symbol, options).split("\n").each do |message|
|
78
|
+
Device::Display.print_line(message, line, options[:column] || 0)
|
79
|
+
line+=1
|
80
|
+
end
|
77
81
|
else
|
78
82
|
puts(t(symbol, options))
|
79
83
|
end
|
data/lib/da_funk/params_dat.rb
CHANGED
@@ -5,7 +5,7 @@ module DaFunk
|
|
5
5
|
include DaFunk::Helper
|
6
6
|
|
7
7
|
class << self
|
8
|
-
attr_accessor :file, :apps, :valid, :files
|
8
|
+
attr_accessor :file, :apps, :valid, :files, :checksum
|
9
9
|
end
|
10
10
|
|
11
11
|
self.apps = Array.new
|
@@ -20,9 +20,19 @@ module DaFunk
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def self.setup
|
23
|
+
@checksum = calculate_checksum
|
23
24
|
@file = FileDb.new(FILE_NAME)
|
24
25
|
end
|
25
26
|
|
27
|
+
def self.calculate_checksum
|
28
|
+
Device::Crypto.crc16_hex(File.read(FILE_NAME)) if exists?
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.corrupted?
|
32
|
+
return true unless exists?
|
33
|
+
@checksum != calculate_checksum
|
34
|
+
end
|
35
|
+
|
26
36
|
def self.exists?
|
27
37
|
File.exists?(FILE_NAME)
|
28
38
|
end
|
@@ -151,10 +161,15 @@ module DaFunk
|
|
151
161
|
|
152
162
|
def self.restart
|
153
163
|
Device::Display.clear
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
164
|
+
if File.exists?('./shared/init_reboot.bmp')
|
165
|
+
Device::Display.print_bitmap('./shared/init_reboot.bmp')
|
166
|
+
getc(3000)
|
167
|
+
else
|
168
|
+
I18n.pt(:admin_main_update_message)
|
169
|
+
3.times do |i|
|
170
|
+
Device::Display.print("REBOOTING IN #{3 - i}",3,3)
|
171
|
+
sleep(1)
|
172
|
+
end
|
158
173
|
end
|
159
174
|
Device::System.restart
|
160
175
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module DaFunk
|
2
|
+
class SecureRandom
|
3
|
+
CHARS = [('a'..'z'), ('A'..'Z')].map(&:to_a).flatten
|
4
|
+
|
5
|
+
def self.random_bytes(n = nil)
|
6
|
+
n = n ? n.to_int : 16
|
7
|
+
(0...n).map { CHARS[rand(CHARS.length)] }.join
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.uuid
|
11
|
+
bytes = random_bytes.unpack('NnnnnN')
|
12
|
+
bytes[2] = (bytes[2] & 0x0fff) | 0x4000
|
13
|
+
bytes[3] = (bytes[3] & 0x3fff) | 0x8000
|
14
|
+
"%08x-%04x-%04x-%04x-%04x%08x" % bytes
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/da_funk/version.rb
CHANGED
data/lib/device/setting.rb
CHANGED
@@ -67,7 +67,8 @@ class Device
|
|
67
67
|
"transaction_http_host" => HTTP_HOST_PRODUCTION,
|
68
68
|
"transaction_http_port" => HTTP_PORT,
|
69
69
|
"emv_contactless_amount" => "0",
|
70
|
-
"network_init" => ""
|
70
|
+
"network_init" => "",
|
71
|
+
"main_app_version" => ""
|
71
72
|
}
|
72
73
|
|
73
74
|
class << self
|
@@ -151,16 +152,16 @@ class Device
|
|
151
152
|
|
152
153
|
# Custom Attributes
|
153
154
|
def self.tcp_recv_timeout
|
154
|
-
DaFunk::ParamsDat.file["tcp_recv_timeout"] ||
|
155
|
+
DaFunk::ParamsDat.file["tcp_recv_timeout"] || @file&.dig("tcp_recv_timeout")
|
155
156
|
end
|
156
157
|
|
157
158
|
def self.attach_gprs_timeout
|
158
|
-
value = (DaFunk::ParamsDat.file["attach_gprs_timeout"] ||
|
159
|
+
value = (DaFunk::ParamsDat.file["attach_gprs_timeout"] || @file&.dig("attach_gprs_timeout"))
|
159
160
|
value.to_s.empty? ? nil : value.to_s.to_i
|
160
161
|
end
|
161
162
|
|
162
163
|
def self.heartbeat
|
163
|
-
DaFunk::ParamsDat.file["heartbeat"] ||
|
164
|
+
DaFunk::ParamsDat.file["heartbeat"] || @file&.dig("heartbeat")
|
164
165
|
end
|
165
166
|
|
166
167
|
def self.logical_number
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class SecureRandomTest < DaFunk::Test.case
|
2
|
+
def setup
|
3
|
+
@uuid = DaFunk::SecureRandom.uuid
|
4
|
+
@random_bytes = DaFunk::SecureRandom.random_bytes
|
5
|
+
end
|
6
|
+
|
7
|
+
def test_uuid
|
8
|
+
assert_equal(36, @uuid.size)
|
9
|
+
|
10
|
+
# Check time_hi_and_version and clock_seq_hi_res bits (RFC 4122 4.4)
|
11
|
+
assert_equal('4', @uuid[14])
|
12
|
+
assert_include(%w'8 9 a b', @uuid[19])
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_random_bytes
|
16
|
+
assert_equal(16, @random_bytes.size)
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: da_funk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.29.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thiago Scalone
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -174,6 +174,7 @@ files:
|
|
174
174
|
- lib/da_funk/rake_task.rb
|
175
175
|
- lib/da_funk/screen.rb
|
176
176
|
- lib/da_funk/screen_flow.rb
|
177
|
+
- lib/da_funk/secure_random.rb
|
177
178
|
- lib/da_funk/struct.rb
|
178
179
|
- lib/da_funk/test.rb
|
179
180
|
- lib/da_funk/transaction/download.rb
|
@@ -220,6 +221,7 @@ files:
|
|
220
221
|
- test/resources/shared/bitmap_gp.dat
|
221
222
|
- test/test_helper.rb
|
222
223
|
- test/unit/da_funk/event_listener_test.rb
|
224
|
+
- test/unit/da_funk/secure_random.rb
|
223
225
|
- test/unit/da_funk/struct_test.rb
|
224
226
|
- test/unit/da_funk/support_test.rb
|
225
227
|
- test/unit/device/application_test.rb
|
@@ -269,6 +271,7 @@ test_files:
|
|
269
271
|
- test/resources/shared/bitmap_gp.dat
|
270
272
|
- test/test_helper.rb
|
271
273
|
- test/unit/da_funk/event_listener_test.rb
|
274
|
+
- test/unit/da_funk/secure_random.rb
|
272
275
|
- test/unit/da_funk/struct_test.rb
|
273
276
|
- test/unit/da_funk/support_test.rb
|
274
277
|
- test/unit/device/application_test.rb
|