blackbox 4.0.3 → 4.0.4
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 +5 -5
- data/.rubocop.yml +21 -0
- data/.ruby-version +1 -1
- data/Gemfile +1 -0
- data/Guardfile +1 -0
- data/Rakefile +1 -0
- data/blackbox.gemspec +11 -11
- data/coverage/.last_run.json +1 -1
- data/coverage/.resultset.json +15 -12
- data/coverage/index.html +578 -554
- data/lib/blackbox.rb +1 -0
- data/lib/blackbox/crypto.rb +3 -4
- data/lib/blackbox/gem.rb +2 -1
- data/lib/blackbox/hash.rb +1 -0
- data/lib/blackbox/number.rb +8 -7
- data/lib/blackbox/string.rb +1 -0
- data/lib/blackbox/unix.rb +5 -5
- data/lib/blackbox/version.rb +2 -1
- data/spec/blackbox_spec.rb +1 -0
- data/spec/crypto_spec.rb +14 -13
- data/spec/gem_spec.rb +1 -1
- data/spec/hash_spec.rb +1 -0
- data/spec/number_spec.rb +1 -0
- data/spec/spec_helper.rb +2 -1
- data/spec/string_spec.rb +1 -0
- data/spec/unix_spec.rb +1 -0
- metadata +25 -26
data/lib/blackbox.rb
CHANGED
data/lib/blackbox/crypto.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'openssl'
|
3
4
|
require 'base64'
|
4
5
|
require 'chronic_duration'
|
@@ -41,7 +42,7 @@ module BB
|
|
41
42
|
cipher.key = key
|
42
43
|
if iv.nil?
|
43
44
|
iv_len = ciphertext.slice!(0).unpack('C')[0]
|
44
|
-
cipher.iv = ciphertext.slice!(0..iv_len - 1) unless
|
45
|
+
cipher.iv = ciphertext.slice!(0..iv_len - 1) unless iv_len == 0
|
45
46
|
else
|
46
47
|
cipher.iv = iv
|
47
48
|
end
|
@@ -127,9 +128,7 @@ module BB
|
|
127
128
|
valid_until, op, *args = body.split("\x00")
|
128
129
|
valid_until = valid_until.unpack('l<')[0]
|
129
130
|
expired = Time.now.to_i > valid_until
|
130
|
-
if expired && !force
|
131
|
-
raise ArgumentError, "Token expired at #{Time.at(valid_until)} (#{ChronicDuration.output(Time.now.to_i - valid_until)} ago)"
|
132
|
-
end
|
131
|
+
raise ArgumentError, "Token expired at #{Time.at(valid_until)} (#{ChronicDuration.output(Time.now.to_i - valid_until)} ago)" if expired && !force
|
133
132
|
{ valid_until: valid_until,
|
134
133
|
op: op,
|
135
134
|
args: args,
|
data/lib/blackbox/gem.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'versionomy'
|
3
4
|
module BB
|
4
5
|
# Gem utilities.
|
@@ -59,7 +60,7 @@ module BB
|
|
59
60
|
last_check_at = nil
|
60
61
|
begin
|
61
62
|
last_check_at = File.stat(statefile_path).mtime
|
62
|
-
rescue
|
63
|
+
rescue StandardError
|
63
64
|
last_check_at = Time.at(0)
|
64
65
|
end
|
65
66
|
|
data/lib/blackbox/hash.rb
CHANGED
data/lib/blackbox/number.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'blackbox/hash'
|
3
4
|
|
4
5
|
module BB
|
5
6
|
# String utilities.
|
6
7
|
module Number
|
7
8
|
class << self
|
8
|
-
STORAGE_UNITS = %w
|
9
|
+
STORAGE_UNITS = %w[byte k M G T P E Z Y].freeze
|
9
10
|
|
10
11
|
##
|
11
12
|
# Formats the bytes in +number+ into a more understandable representation
|
@@ -46,7 +47,7 @@ module BB
|
|
46
47
|
def to_human_size(number, args = {})
|
47
48
|
begin
|
48
49
|
Float(number)
|
49
|
-
rescue
|
50
|
+
rescue StandardError
|
50
51
|
return nil
|
51
52
|
end
|
52
53
|
|
@@ -77,7 +78,7 @@ module BB
|
|
77
78
|
delimiter: delimiter).sub(/(#{escaped_separator})(\d*[1-9])?0+\z/, '\1\2').sub(/#{escaped_separator}\z/, '')
|
78
79
|
storage_units_format.gsub(/%n/, formatted_number).gsub(/%u/, unit)
|
79
80
|
end
|
80
|
-
rescue
|
81
|
+
rescue StandardError
|
81
82
|
number
|
82
83
|
end
|
83
84
|
end
|
@@ -112,7 +113,7 @@ module BB
|
|
112
113
|
def with_precision(number, args)
|
113
114
|
begin
|
114
115
|
Float(number)
|
115
|
-
rescue
|
116
|
+
rescue StandardError
|
116
117
|
return nil
|
117
118
|
end
|
118
119
|
|
@@ -127,7 +128,7 @@ module BB
|
|
127
128
|
with_delimiter("%01.#{precision}f" % rounded_number,
|
128
129
|
separator: separator,
|
129
130
|
delimiter: delimiter)
|
130
|
-
rescue
|
131
|
+
rescue StandardError
|
131
132
|
number
|
132
133
|
end
|
133
134
|
end
|
@@ -160,7 +161,7 @@ module BB
|
|
160
161
|
def with_delimiter(number, args = {})
|
161
162
|
begin
|
162
163
|
Float(number)
|
163
|
-
rescue
|
164
|
+
rescue StandardError
|
164
165
|
return nil
|
165
166
|
end
|
166
167
|
options = BB::Hash.symbolize_keys(args)
|
@@ -172,7 +173,7 @@ module BB
|
|
172
173
|
parts = number.to_s.split('.')
|
173
174
|
parts[0].gsub!(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{delimiter}")
|
174
175
|
parts.join(separator)
|
175
|
-
rescue
|
176
|
+
rescue StandardError
|
176
177
|
number
|
177
178
|
end
|
178
179
|
end
|
data/lib/blackbox/string.rb
CHANGED
data/lib/blackbox/unix.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'lolcat/lol'
|
3
|
-
require 'thread'
|
4
4
|
require 'open3'
|
5
5
|
require 'pty'
|
6
6
|
require 'rainbow/ext/string'
|
@@ -48,7 +48,7 @@ module BB
|
|
48
48
|
i = 0
|
49
49
|
loop do
|
50
50
|
break if @minispin_last_char_at == :end
|
51
|
-
if
|
51
|
+
if Time.now - @minispin_last_char_at < 0.23 || @minispin_disable
|
52
52
|
sleep 0.1
|
53
53
|
next
|
54
54
|
end
|
@@ -91,10 +91,10 @@ module BB
|
|
91
91
|
@tspin = nil
|
92
92
|
end
|
93
93
|
else
|
94
|
-
opts[:spinner]
|
94
|
+
opts[:spinner]&.call(true)
|
95
95
|
output, status = Open3.capture2e(line)
|
96
|
-
opts[:spinner]
|
97
|
-
color =
|
96
|
+
opts[:spinner]&.call(false)
|
97
|
+
color = status.exitstatus == 0 ? :green : :red
|
98
98
|
if status.exitstatus != 0 || !opts[:quiet]
|
99
99
|
puts "\n> ".color(color) + line.color(:black).bright
|
100
100
|
puts output
|
data/lib/blackbox/version.rb
CHANGED
data/spec/blackbox_spec.rb
CHANGED
data/spec/crypto_spec.rb
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'spec_helper'
|
3
4
|
require 'blackbox/crypto'
|
4
5
|
require 'base64'
|
5
6
|
|
6
|
-
OPENSSL_CIPHERS = %w
|
7
|
-
%w
|
8
|
-
%w
|
9
|
-
%w
|
10
|
-
%w
|
11
|
-
%w
|
12
|
-
%w
|
13
|
-
%w
|
14
|
-
%w
|
7
|
+
OPENSSL_CIPHERS = %w[aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc] +
|
8
|
+
%w[aes-256-ecb bf bf-cbc bf-cfb] +
|
9
|
+
%w[bf-ecb bf-ofb cast cast-cbc cast5-cbc] +
|
10
|
+
%w[cast5-cfb cast5-ecb cast5-ofb des des-cbc] +
|
11
|
+
%w[des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb] +
|
12
|
+
%w[des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb] +
|
13
|
+
%w[des-ofb des3 desx rc2 rc2-40-cbc] +
|
14
|
+
%w[rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb] +
|
15
|
+
%w[rc4 rc4-40]
|
15
16
|
|
16
17
|
CIPHER_KEY_IV_SIZE = {
|
17
18
|
'aes-128-cbc': [16, 16],
|
@@ -65,9 +66,9 @@ TEST_TEXT_LONG = '[LONG_TEST]' * 8192
|
|
65
66
|
describe BB::Crypto do
|
66
67
|
OPENSSL_CIPHERS.each do |cipher|
|
67
68
|
describe cipher.to_s do
|
68
|
-
[[
|
69
|
-
[
|
70
|
-
[
|
69
|
+
[%i[encrypt decrypt],
|
70
|
+
%i[encrypt_base64 decrypt_base64],
|
71
|
+
%i[encrypt_urlsafe_base64 decrypt_urlsafe_base64]].each do |e|
|
71
72
|
m_enc, m_dec = e
|
72
73
|
describe "#{m_enc}, #{m_dec}" do
|
73
74
|
it 'can decrypt what it encrypted (short string, random iv)' do
|
@@ -144,7 +145,7 @@ describe BB::Crypto do
|
|
144
145
|
it 'decodes all elements of token payload as Strings' do
|
145
146
|
v = subject.class.parse(subject.class.create('foo', ['a', 2, :c], 5, test_key), test_key)
|
146
147
|
expect(v[:op]).to eq('foo')
|
147
|
-
expect(v[:args]).to eq(%w
|
148
|
+
expect(v[:args]).to eq(%w[a 2 c])
|
148
149
|
expect(v[:expired]).to eq(false)
|
149
150
|
end
|
150
151
|
|
data/spec/gem_spec.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'spec_helper'
|
3
4
|
require 'timecop'
|
4
5
|
require 'blackbox/gem'
|
@@ -44,7 +45,6 @@ describe BB::Gem do
|
|
44
45
|
expect(retval).to include(
|
45
46
|
next_check_for_update: Time.parse('2015-10-22 00:00'),
|
46
47
|
gem_latest_version: :unknown
|
47
|
-
|
48
48
|
)
|
49
49
|
end
|
50
50
|
end
|
data/spec/hash_spec.rb
CHANGED
data/spec/number_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/spec/string_spec.rb
CHANGED
data/spec/unix_spec.rb
CHANGED
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blackbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Moe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-08-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: bump
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: fuubar
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: guard
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: guard-rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: redcarpet
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: rubocop
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
@@ -123,7 +123,7 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: simplecov
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - ">="
|
@@ -151,7 +151,7 @@ dependencies:
|
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: yard
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - ">="
|
@@ -165,61 +165,61 @@ dependencies:
|
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
168
|
+
name: chronic_duration
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.
|
173
|
+
version: 0.10.6
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: 0.
|
180
|
+
version: 0.10.6
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
182
|
+
name: gem_update_checker
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version:
|
187
|
+
version: 0.2.0
|
188
188
|
type: :runtime
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version:
|
194
|
+
version: 0.2.0
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
|
-
name:
|
196
|
+
name: lolcat
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
199
|
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
201
|
+
version: 90.8.8
|
202
202
|
type: :runtime
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
208
|
+
version: 90.8.8
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
210
|
+
name: rainbow
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
213
|
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version: 0.
|
215
|
+
version: 3.0.0
|
216
216
|
type: :runtime
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
220
|
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: 0.
|
222
|
+
version: 3.0.0
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: versionomy
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -380,7 +380,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
380
380
|
version: '0'
|
381
381
|
requirements: []
|
382
382
|
rubyforge_project:
|
383
|
-
rubygems_version: 2.6
|
383
|
+
rubygems_version: 2.7.6
|
384
384
|
signing_key:
|
385
385
|
specification_version: 4
|
386
386
|
summary: Various little helpers
|
@@ -393,4 +393,3 @@ test_files:
|
|
393
393
|
- spec/spec_helper.rb
|
394
394
|
- spec/string_spec.rb
|
395
395
|
- spec/unix_spec.rb
|
396
|
-
has_rdoc:
|