uhide 0.0.25 โ†’ 0.0.30

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/README.md +1 -1
  3. data/bin/uhide +4 -7
  4. data/lib/uhide/main.rb +127 -127
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 00ea66edf2e528cd716a66ad017e304f7c69afb6070f1d07865fbed4d689ddeb
4
- data.tar.gz: 4194a9e449edbf70f12ee01d26ea89f132aa44cd0b4d4c1842f979d06bd0885b
3
+ metadata.gz: 773253308b1df9432b3f534e36d66d1f679aad8fa7c88ca168f758eb70c94696
4
+ data.tar.gz: f1b922a157f660522455bf3c9b98362aef787b9288af1e0fb590d298c7237eec
5
5
  SHA512:
6
- metadata.gz: db758558903c9ca55602a03591310e1e06748fead358cbca6aef2a147f6b3e2bd551e3c5377896cd22bf80a8b46e7898ea4972c64cde44bf03f26884e20f4ca9
7
- data.tar.gz: ab2b58b83be7090e6457cc7d4fd2c61a1185a9b5b3fbca3aeee4d3c49f7f003f84f978cd0ebafb99ae5871cca3b5b637f0c66e4de5726c97ffcf50aa5ae96c4d
6
+ metadata.gz: f1c845c342c524c5f624d70415483119dd046258c7758089761da40a102837990be7af3361f4ca6858f5fb4dd421faa96c350c4989d679f0b061714c8d1dfed8
7
+ data.tar.gz: 13388acb2284b1a00b02659fe6d5e9579c9834fd5c171e7789b085b7aebd09dc5d6a5fa2ba723c7eb1d4343d0c97337dac6185f692a8ae0353fd9c914b2fa427
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ๐Ÿ…ฟ๏ธ๐Ÿ˜๐Ÿ‡ผeยฎ๏ธed    ๐Ÿ…ฑ๏ธ๐Ÿ‡พ    eโ“‚๏ธ๐Ÿค“๐Ÿ‡ฏโ„น๏ธ    tec๐Ÿจn๐Ÿ˜Ž๐Ÿ‡ฑ๐Ÿ…พ๏ธg๐Ÿ‡พ
4
4
 
5
- Store passwords, phone numbers, email addresses, credit card numbers -- any sensitive text.
5
+ Securely store passwords, phone numbers, email addresses, credit card numbers -- any sensitive text.
6
6
 
7
7
  **Install:** `gem install uhide`
8
8
 
data/bin/uhide CHANGED
@@ -1,11 +1,8 @@
1
1
  require 'optparse'
2
2
  require 'uhide'
3
3
 
4
- options = {}
5
- OptionParser.new do |opts|
6
- opts.banner = "Usage: uhide command [key-name] [key-value]"
7
-
8
- opts.on("-h", "--help", "Help") do |v|
4
+ OptionParser.new do |๐Ÿ“‹|
5
+ ๐Ÿ“‹.on('-h', '--help', 'Help') do |๐Ÿ“š|
9
6
  puts <<-HELP
10
7
  Usage: uhide command [key-name] [key-value]
11
8
  Example: uhide set gmail mysecurepassword123
@@ -14,7 +11,7 @@ Example: uhide get gmail
14
11
  Get Started:
15
12
 
16
13
  1. run `uhide`
17
- 2. You will be see: ๐Ÿ”‘ > . Choose a password you can remember and enter it.
14
+ 2. You will see: ๐Ÿ”‘ > . Choose a password you can remember and enter it.
18
15
  3. You can now run commands. Next time you run `uhide` from this directory, enter the same password to manage your sensitive information.
19
16
 
20
17
  Commands and Optional Arguments:
@@ -26,4 +23,4 @@ Commands and Optional Arguments:
26
23
 
27
24
  end.parse!
28
25
 
29
- Uhide::Main.start()
26
+ Uhide::Main.โœˆ๏ธ
data/lib/uhide/main.rb CHANGED
@@ -1,149 +1,150 @@
1
- $โ˜” = " โ˜” > "
2
- $๐Ÿ”‘ = " ๐Ÿ”‘ > "
3
- $๐Ÿง‚ = -> { ๐Ÿ—ƒ๏ธ '๐Ÿง‚', SecureRandom.random_bytes }
4
- $๐Ÿ“ = -> { ๐Ÿ—ƒ๏ธ '๐Ÿ“', ActiveSupport::MessageEncryptor.key_len }
5
- INVALID_KEY = 'invalid key'.colorize(:magenta)
6
- UNSUPPORTED_๐Ÿ‘พ = 'unsupported'.colorize(:magenta) + ' ๐Ÿ‘พ'
7
- $cache = {}
1
+ $โ€ผ๏ธ๐Ÿ”‘ = 'invalid key'.colorize(:magenta)
2
+ $โ€ผ๏ธ๐Ÿ‘พ = 'unsupported'.colorize(:magenta) + ' ๐Ÿ‘พ'
8
3
 
9
- def ๐Ÿšฝ
10
- print "\r"
11
- $stdout.flush
12
- end
13
-
14
- def ๐Ÿงผ ๐Ÿ—‘๏ธ
15
- ๐Ÿ—‘๏ธ.chomp
16
- end
17
-
18
- def โ“ ๐Ÿ”‘, simple: true
19
- print ๐Ÿ”‘
20
- password = ๐Ÿงผ STDIN.noecho(&:gets)
21
- $password = password if simple
22
- ๐Ÿšฝ
23
- return password
24
- end
25
-
26
- def ๐Ÿ”“ ๐Ÿท๏ธ: nil
27
- if ๐Ÿท๏ธ.nil?
28
- puts $cache['ddllv']
29
- else
30
- puts $cache['ddllv'][๐Ÿท๏ธ]
31
- end
32
-
33
- ๐Ÿ“• = File.read './๐Ÿง‚'
34
- if ๐Ÿ“•.empty?
35
- ๐Ÿ”€ = SecureRandom.random_bytes $๐Ÿ“.call
36
- File.write './๐Ÿง‚', Marshal.dump(๐Ÿ”€)
37
- return $cache['๐Ÿง‚'] = ๐Ÿ”€
38
- else
39
- return $cache['๐Ÿง‚'] = Marshal.load(File.read './๐Ÿง‚')
40
- end
41
-
42
- end
43
-
44
- def ๐Ÿ”’ ๐Ÿท๏ธ, ๐Ÿ’Ž
45
- $cache['ddllv'][๐Ÿท๏ธ] = ๐Ÿ’Ž
46
- ๐Ÿ’พ
47
- end
48
-
49
- def ๐Ÿค– ๐Ÿ—ฃ๏ธ
50
- ๐Ÿ‘พ, ๐Ÿท๏ธ, ๐Ÿ’Ž = ๐Ÿ—ฃ๏ธ.split
51
-
52
- if ๐Ÿ‘พ.nil?
53
- return
54
- end
4
+ class Uhide::Main
5
+ @@โ˜” = " โ˜” > "
6
+ @@๐Ÿ”‘ = " ๐Ÿ”‘ > "
7
+ @@๐Ÿ—„๏ธ = {}
55
8
 
56
- case ๐Ÿ‘พ.to_sym
57
- when :get
58
- if ๐Ÿท๏ธ
59
- ๐Ÿ”“ ๐Ÿท๏ธ: ๐Ÿท๏ธ
60
- else
61
- ๐Ÿ”“
9
+ class << self
10
+ def ๐Ÿง‚
11
+ ๐Ÿ—ƒ๏ธ '๐Ÿง‚', SecureRandom.random_bytes
62
12
  end
63
13
 
64
- when :set
65
- ๐Ÿ”’ ๐Ÿท๏ธ, ๐Ÿ’Ž
14
+ def ๐Ÿ“
15
+ ๐Ÿ—ƒ๏ธ '๐Ÿ“', ActiveSupport::MessageEncryptor.key_len
16
+ end
66
17
 
67
- when :exit
68
- exit!
18
+ def ๐Ÿšฝ
19
+ print "\r"
20
+ $stdout.flush
21
+ end
69
22
 
70
- when :reset
71
- if โ“($๐Ÿ”‘, simple: false) == $password
72
- ['ddllv', '๐Ÿง‚', '๐Ÿ“'].each_entry{ |item| File.delete "./#{item}" }
73
- exit!
74
- else
75
- puts INVALID_KEY
23
+ def ๐Ÿงผ ๐Ÿ—‘๏ธ
24
+ ๐Ÿ—‘๏ธ.chomp
76
25
  end
77
26
 
78
- else
79
- puts UNSUPPORTED_๐Ÿ‘พ
80
- end
81
-
82
- end
83
-
84
- def ๐Ÿ’พ
85
- โš›๏ธ = ActiveSupport::MessageEncryptor.new(
86
- ActiveSupport::KeyGenerator.new($password).generate_key($๐Ÿง‚.call, $๐Ÿ“.call)
87
- )
88
-
89
- was_bootstrapped = !(not $cache['ddllv'])
90
- ๐Ÿ“– = ๐Ÿ—ƒ๏ธ 'ddllv', {}, โš›๏ธ: โš›๏ธ
91
- ๐Ÿ“€ 'ddllv', ๐Ÿ“–, โš›๏ธ: โš›๏ธ if was_bootstrapped
92
- end
93
-
94
- def ๐Ÿ“€ ๐Ÿ—‚๏ธ, ๐Ÿ“–, โš›๏ธ: false
95
- if โš›๏ธ
96
- ๐Ÿ“• = โš›๏ธ.encrypt_and_sign ๐Ÿ“–
97
- else
98
- ๐Ÿ“• = ๐Ÿ“–
99
- end
100
-
101
- ๐Ÿ“• = Marshal.dump ๐Ÿ“•
102
- File.write "./#{๐Ÿ—‚๏ธ}", ๐Ÿ“•
103
- return ๐Ÿ“•
104
- end
105
-
106
- def ๐Ÿ—ƒ๏ธ ๐Ÿ—‚๏ธ, ๐Ÿ’Ž, โš›๏ธ: false
107
- if $cache[๐Ÿ—‚๏ธ]
108
- return $cache[๐Ÿ—‚๏ธ]
109
- end
110
-
111
- begin
112
- ๐Ÿ“• = File.read "./#{๐Ÿ—‚๏ธ}"
113
- rescue Errno::ENOENT
114
- ๐Ÿ“• = ๐Ÿ“€ ๐Ÿ—‚๏ธ, ๐Ÿ’Ž, โš›๏ธ: โš›๏ธ
115
- end
116
-
117
- if not ๐Ÿ“•.empty?
118
- ๐Ÿ“• = Marshal.load ๐Ÿ“•
27
+ def โ“ ๐Ÿ”‘, simple: true
28
+ print ๐Ÿ”‘
29
+ โœ๏ธ = ๐Ÿงผ STDIN.noecho(&:gets)
30
+ @@โœ๏ธ = โœ๏ธ if simple
31
+ ๐Ÿšฝ
32
+ return โœ๏ธ
33
+ end
119
34
 
120
- if โš›๏ธ
35
+ def ๐Ÿ”“ ๐Ÿท๏ธ: nil
36
+ if ๐Ÿท๏ธ.nil?
37
+ puts @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ']
38
+ else
39
+ puts @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ'][๐Ÿท๏ธ]
40
+ end
41
+
42
+ end
43
+
44
+ def ๐Ÿ”’ ๐Ÿท๏ธ, ๐Ÿ’Ž
45
+ @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ'][๐Ÿท๏ธ] = ๐Ÿ’Ž
46
+ ๐Ÿ’พ
47
+ end
48
+
49
+ def ๐Ÿ’พ
50
+ โš›๏ธ = ActiveSupport::MessageEncryptor.new(
51
+ ActiveSupport::KeyGenerator.new(@@โœ๏ธ).generate_key(๐Ÿง‚, ๐Ÿ“)
52
+ )
53
+
54
+ ๐Ÿฅพ = !(not @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ'])
55
+ ๐Ÿ“– = ๐Ÿ—ƒ๏ธ 'ใ€ฝ๏ธ', {}, โš›๏ธ: โš›๏ธ
56
+ ๐Ÿ“€ 'ใ€ฝ๏ธ', ๐Ÿ“–, โš›๏ธ: โš›๏ธ if ๐Ÿฅพ
57
+ end
58
+
59
+ def ๐Ÿ“€ ๐Ÿ—‚๏ธ, ๐Ÿ“–, โš›๏ธ: false
60
+ if โš›๏ธ
61
+ ๐Ÿ“• = โš›๏ธ.encrypt_and_sign ๐Ÿ“–
62
+ else
63
+ ๐Ÿ“• = ๐Ÿ“–
64
+ end
65
+
66
+ ๐Ÿ“• = Marshal.dump ๐Ÿ“•
67
+ File.write "./#{๐Ÿ—‚๏ธ}", ๐Ÿ“•
68
+ return ๐Ÿ“•
69
+ end
70
+
71
+ def ๐Ÿ—ƒ๏ธ ๐Ÿ—‚๏ธ, ๐Ÿ’Ž, โš›๏ธ: false
72
+ if @@๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ]
73
+ return @@๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ]
74
+ end
75
+
121
76
  begin
122
- ๐Ÿ“– = โš›๏ธ.decrypt_and_verify ๐Ÿ“•
123
- rescue ActiveSupport::MessageVerifier::InvalidSignature
124
- puts INVALID_KEY
77
+ ๐Ÿ“• = File.read "./#{๐Ÿ—‚๏ธ}"
78
+ rescue Errno::ENOENT
79
+ ๐Ÿ“• = ๐Ÿ“€ ๐Ÿ—‚๏ธ, ๐Ÿ’Ž, โš›๏ธ: โš›๏ธ
80
+ end
81
+
82
+ if not ๐Ÿ“•.empty?
83
+ ๐Ÿ“• = Marshal.load ๐Ÿ“•
84
+
85
+ if โš›๏ธ
86
+ begin
87
+ ๐Ÿ“– = โš›๏ธ.decrypt_and_verify ๐Ÿ“•
88
+ rescue ActiveSupport::MessageVerifier::InvalidSignature
89
+ puts $โ€ผ๏ธ๐Ÿ”‘
90
+ exit!
91
+ end
92
+
93
+ else
94
+ ๐Ÿ“– = ๐Ÿ“•
95
+ end
96
+
97
+ end
98
+
99
+ return @@๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ] = ๐Ÿ“–
100
+ end
101
+
102
+ def ๐Ÿค– ๐Ÿ—ฃ๏ธ
103
+ ๐Ÿ‘พ, ๐Ÿท๏ธ, ๐Ÿ’Ž = ๐Ÿ—ฃ๏ธ.split
104
+
105
+ if ๐Ÿ‘พ.nil?
106
+ return
107
+ end
108
+
109
+ case ๐Ÿ‘พ.to_sym
110
+ when :get
111
+ if ๐Ÿท๏ธ
112
+ ๐Ÿ”“ ๐Ÿท๏ธ: ๐Ÿท๏ธ
113
+ else
114
+ ๐Ÿ”“
115
+ end
116
+
117
+ when :set
118
+ ๐Ÿ”’ ๐Ÿท๏ธ, ๐Ÿ’Ž
119
+
120
+ when :exit, :quit
125
121
  exit!
122
+
123
+ when :help
124
+ puts "For help, quit and run `uhide -h` from your shell"
125
+
126
+ when :reset
127
+ if โ“(@@๐Ÿ”‘, simple: false) == @@โœ๏ธ
128
+ ['ใ€ฝ๏ธ', '๐Ÿง‚', '๐Ÿ“'].each_entry { |item| File.delete "./#{item}" }
129
+ exit!
130
+ else
131
+ puts $โ€ผ๏ธ๐Ÿ”‘
132
+ end
133
+
134
+ else
135
+ puts $โ€ผ๏ธ๐Ÿ‘พ
126
136
  end
127
137
 
128
- else
129
- ๐Ÿ“– = ๐Ÿ“•
130
138
  end
131
139
 
132
- end
133
-
134
- return $cache[๐Ÿ—‚๏ธ] = ๐Ÿ“–
135
- end
136
-
137
- class Uhide::Main
138
- class << self
139
- def start()
140
+ def โœˆ๏ธ
140
141
  begin
141
- โ“ $๐Ÿ”‘
142
+ โ“ @@๐Ÿ”‘
142
143
 
143
144
  ๐Ÿ’พ
144
145
 
145
146
  loop do
146
- print $โ˜”
147
+ print @@โ˜”
147
148
  ๐Ÿค–(๐Ÿงผ gets)
148
149
  end
149
150
 
@@ -157,4 +158,3 @@ class Uhide::Main
157
158
  end
158
159
 
159
160
  end
160
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uhide
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.25
4
+ version: 0.0.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Keen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-15 00:00:00.000000000 Z
11
+ date: 2021-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport