uhide 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/bin/uhide +2 -2
  3. data/lib/uhide.rb +2 -153
  4. data/lib/uhide/main.rb +162 -0
  5. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e52f66ba4e2ac72f5018fea0fdb8076939883fc78bdb8ec34300e197a7d9f938
4
- data.tar.gz: 20fcf1d71dcf9538114a2f8adc533cf61607fc7b0c199b28e424228cf95822ab
3
+ metadata.gz: 8a8fd79cc30cb4eff3b0da4798c5d9c72557148d5bd004b74b359acd39ee08ac
4
+ data.tar.gz: f4f931d8f2c0ff7ac55fe3d90ec53a0e6840d6e08dcf1678758a0bdaa00e353e
5
5
  SHA512:
6
- metadata.gz: 33197f6c42b16bd08e9906a6e874040a3ba5aebc1b10584c933c3094f47e7bf06bcc952578719ef95b9c71ca61b90b3c0b641cc21d209b87450cef9e1927b663
7
- data.tar.gz: 3a63ce2db46a959e4d0d9aa08521ea744686ab9238786f9c49e2750edf5ad01d0cec6887695d0fdd811508ced96d6c575d33ef34d4fa300f6b07bf9337fbb734
6
+ metadata.gz: 2d70fd766f4d9ec4a4d3509f41f2e1928be482bfad85295fa02441c015dcdb4c4a00aaae0fba30541c233c4c5582059c74472d6c196f16c14316159e6f8acd6b
7
+ data.tar.gz: 6a687531e01bc123603183ade8e25c183702057bd6fd0c2a3fc891179fe8045477de3a389a0b7a23cdbf2ca40358a5ae5fc06c19adb0b28d9cf3ffe63fa32c58
data/bin/uhide CHANGED
@@ -1,3 +1,3 @@
1
- #!/usr/bin/env ruby
1
+ require 'uhide'
2
2
 
3
- uhide()
3
+ Uhide::Main.start()
data/lib/uhide.rb CHANGED
@@ -1,156 +1,5 @@
1
- require 'rubygems'
2
- require 'bundler/setup'
3
- require 'yaml'
4
- require 'io/console'
5
- require 'securerandom'
6
-
7
- Bundler.require(:default)
8
-
9
-
10
- ☔ = " ☔ > "
11
- $🔑 = " 🔑 > "
12
- $🧂 = (lambda { 🗃️ '🧂', SecureRandom.random_bytes })
13
- $📏 = lambda { 🗃️ '📏', ActiveSupport::MessageEncryptor.key_len }
14
- INVALID_KEY = 'invalid key'.colorize(:red)
15
- $cache = {}
16
-
17
- def password?
18
- 🧼 STDIN.noecho(&:gets)
19
- end
20
-
21
- def 🚽
22
- print "\r"
23
- $stdout.flush
24
- end
25
-
26
- def ❓ 🔑, simple: true
27
- print 🔑
28
- password = password?
29
- $password = password if simple
30
- 🚽
31
- return password
32
- end
33
-
34
- def 🧼 🗑️
35
- 🗑️.chomp
36
- end
37
-
38
- def 🔓 🏷️: nil
39
- if 🏷️.nil?
40
- puts $cache['ddllv']
41
- else
42
- puts $cache['ddllv'][🏷️]
43
- end
44
-
45
- 📕 = File.read './🧂'
46
- if 📕.empty?
47
- 🔀 = SecureRandom.random_bytes $📏.call
48
- File.write './🧂', Marshal.dump(🔀)
49
- return $cache['🧂'] = 🔀
50
- else
51
- return $cache['🧂'] = Marshal.load(File.read './🧂')
52
- end
53
-
54
- end
55
-
56
- def 🔒 🏷️, 💎
57
- $cache['ddllv'][🏷️] = 💎
58
- 💾
59
- end
60
-
61
- def 🤖 🗣️
62
- 👾, 🏷️, 💎 = 🗣️.split
63
-
64
- case 👾.to_sym
65
- when :get
66
- if 🏷️
67
- 🔓 🏷️: 🏷️
68
- else
69
- 🔓
70
- end
71
-
72
- when :set
73
- 🔒 🏷️, 💎
74
-
75
- when :reset
76
- if ❓($🔑, simple: false) == $password
77
- ['ddllv', '🧂', '📏'].each_entry{ |item| File.delete "./#{item}" }
78
- exit!
79
- else
80
- puts INVALID_KEY
81
- end
82
-
83
- end
84
-
85
- end
86
-
87
- def 💾
88
- ⚛️ = ActiveSupport::MessageEncryptor.new(
89
- ActiveSupport::KeyGenerator.new($password).generate_key($🧂.call, $📏.call)
90
- )
91
-
92
- was_bootstrapped = !(not $cache['ddllv'])
93
- 📖 = 🗃️ 'ddllv', {}, ⚛️: ⚛️
94
- 📀 'ddllv', 📖, ⚛️: ⚛️ if was_bootstrapped
95
- end
96
-
97
- def 📀 🗂️, 📖, ⚛️: false
98
- if ⚛️
99
- 📕 = ⚛️.encrypt_and_sign 📖
100
- else
101
- 📕 = 📖
102
- end
103
-
104
- 📕 = Marshal.dump(📕)
105
- File.write "./#{🗂️}", 📕
106
- return 📕
107
- end
108
-
109
- def 🗃️ 🗂️, 🔀, ⚛️: false
110
- if $cache[🗂️]
111
- return $cache[🗂️]
112
- end
1
+ module Uhide
113
2
 
114
- begin
115
- 📕 = File.read "./#{🗂️}"
116
- rescue Errno::ENOENT
117
- 📕 = 📀 🗂️, 🔀, ⚛️: ⚛️
118
- end
119
-
120
- if not 📕.empty?
121
- 📕 = Marshal.load 📕
122
-
123
- if ⚛️
124
- begin
125
- 📖 = ⚛️.decrypt_and_verify 📕
126
- rescue ActiveSupport::MessageVerifier::InvalidSignature
127
- puts INVALID_KEY
128
- exit!
129
- end
130
-
131
- else
132
- 📖 = 📕
133
- end
134
-
135
- end
136
-
137
- return $cache[🗂️] = 📖
138
3
  end
139
4
 
140
- def uhide()
141
- begin
142
- ❓ $🔑
143
-
144
- 💾
145
-
146
- loop do
147
- print ☔
148
- 🤖(🧼 gets)
149
- end
150
-
151
- rescue SystemExit, Interrupt
152
- 🚽
153
- exit!
154
- end
155
-
156
- end
5
+ require_relative "uhide/main"
data/lib/uhide/main.rb ADDED
@@ -0,0 +1,162 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'yaml'
4
+ require 'io/console'
5
+ require 'securerandom'
6
+
7
+ Bundler.require(:default)
8
+
9
+ ☔ = " ☔ > "
10
+ $🔑 = " 🔑 > "
11
+ $🧂 = (lambda { 🗃️ '🧂', SecureRandom.random_bytes })
12
+ $📏 = lambda { 🗃️ '📏', ActiveSupport::MessageEncryptor.key_len }
13
+ INVALID_KEY = 'invalid key'.colorize(:red)
14
+ $cache = {}
15
+
16
+ def password?
17
+ 🧼 STDIN.noecho(&:gets)
18
+ end
19
+
20
+ def 🚽
21
+ print "\r"
22
+ $stdout.flush
23
+ end
24
+
25
+ def ❓ 🔑, simple: true
26
+ print 🔑
27
+ password = password?
28
+ $password = password if simple
29
+ 🚽
30
+ return password
31
+ end
32
+
33
+ def 🧼 🗑️
34
+ 🗑️.chomp
35
+ end
36
+
37
+ def 🔓 🏷️: nil
38
+ if 🏷️.nil?
39
+ puts $cache['ddllv']
40
+ else
41
+ puts $cache['ddllv'][🏷️]
42
+ end
43
+
44
+ 📕 = File.read './🧂'
45
+ if 📕.empty?
46
+ 🔀 = SecureRandom.random_bytes $📏.call
47
+ File.write './🧂', Marshal.dump(🔀)
48
+ return $cache['🧂'] = 🔀
49
+ else
50
+ return $cache['🧂'] = Marshal.load(File.read './🧂')
51
+ end
52
+
53
+ end
54
+
55
+ def 🔒 🏷️, 💎
56
+ $cache['ddllv'][🏷️] = 💎
57
+ 💾
58
+ end
59
+
60
+ def 🤖 🗣️
61
+ 👾, 🏷️, 💎 = 🗣️.split
62
+
63
+ case 👾.to_sym
64
+ when :get
65
+ if 🏷️
66
+ 🔓 🏷️: 🏷️
67
+ else
68
+ 🔓
69
+ end
70
+
71
+ when :set
72
+ 🔒 🏷️, 💎
73
+
74
+ when :reset
75
+ if ❓($🔑, simple: false) == $password
76
+ ['ddllv', '🧂', '📏'].each_entry{ |item| File.delete "./#{item}" }
77
+ exit!
78
+ else
79
+ puts INVALID_KEY
80
+ end
81
+
82
+ end
83
+
84
+ end
85
+
86
+ def 💾
87
+ ⚛️ = ActiveSupport::MessageEncryptor.new(
88
+ ActiveSupport::KeyGenerator.new($password).generate_key($🧂.call, $📏.call)
89
+ )
90
+
91
+ was_bootstrapped = !(not $cache['ddllv'])
92
+ 📖 = 🗃️ 'ddllv', {}, ⚛️: ⚛️
93
+ 📀 'ddllv', 📖, ⚛️: ⚛️ if was_bootstrapped
94
+ end
95
+
96
+ def 📀 🗂️, 📖, ⚛️: false
97
+ if ⚛️
98
+ 📕 = ⚛️.encrypt_and_sign 📖
99
+ else
100
+ 📕 = 📖
101
+ end
102
+
103
+ 📕 = Marshal.dump(📕)
104
+ File.write "./#{🗂️}", 📕
105
+ return 📕
106
+ end
107
+
108
+ def 🗃️ 🗂️, 🔀, ⚛️: false
109
+ if $cache[🗂️]
110
+ return $cache[🗂️]
111
+ end
112
+
113
+ begin
114
+ 📕 = File.read "./#{🗂️}"
115
+ rescue Errno::ENOENT
116
+ 📕 = 📀 🗂️, 🔀, ⚛️: ⚛️
117
+ end
118
+
119
+ if not 📕.empty?
120
+ 📕 = Marshal.load 📕
121
+
122
+ if ⚛️
123
+ begin
124
+ 📖 = ⚛️.decrypt_and_verify 📕
125
+ rescue ActiveSupport::MessageVerifier::InvalidSignature
126
+ puts INVALID_KEY
127
+ exit!
128
+ end
129
+
130
+ else
131
+ 📖 = 📕
132
+ end
133
+
134
+ end
135
+
136
+ return $cache[🗂️] = 📖
137
+ end
138
+
139
+ class Uhide::Main
140
+ class << self
141
+ def start()
142
+ begin
143
+ ❓ $🔑
144
+
145
+ 💾
146
+
147
+ loop do
148
+ print ☔
149
+ 🤖(🧼 gets)
150
+ end
151
+
152
+ rescue SystemExit, Interrupt
153
+ 🚽
154
+ exit!
155
+ end
156
+
157
+ end
158
+
159
+ end
160
+
161
+ end
162
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uhide
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Keen
@@ -22,6 +22,7 @@ files:
22
22
  - README.md
23
23
  - bin/uhide
24
24
  - lib/uhide.rb
25
+ - lib/uhide/main.rb
25
26
  homepage: https://github.com/mkeen/uhide
26
27
  licenses:
27
28
  - ISC (BSD2/MIT)