uhide 0.0.28 โ†’ 0.0.29

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 +128 -132
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8d1b9b595b0147165ccf1f72d5005059e806e6fcfd246355ecdad0e2154ba2b
4
- data.tar.gz: a3b5102ea63b4fddc6680c41410b18329147681b913832427d81f9206524329c
3
+ metadata.gz: b1bb0a47cafba2fee10332891e6be453113a5b1ceae61eba210d77605b199083
4
+ data.tar.gz: 4c6b59d2d8ccc634767340ca5a395d6478fb3c2548c8a525576b01d7698fa834
5
5
  SHA512:
6
- metadata.gz: 724b5820a5d3aa15100683781e68c01ea0031b1bdd734ab5e2999f87e452b7e79f2dc607ced6124d91469f775b3773de4440f54eee9ce9b886ce2983f10b079b
7
- data.tar.gz: fa4b3aa3d110f32c5855ee4612a2f6909ce2a73639c7fe39446a4edb46048ed9c0f23366f244a9f2689bc3ca7b866336de9bebdb7361c75b095bf2612ae8d687
6
+ metadata.gz: fc10019a4bcc6bb68172f8a69d1917c18f217fb640b5fe640beda754695f3e4feee234f618eb318070ab4e72923e1576cc81f70196684e6859cd778ad03961b9
7
+ data.tar.gz: d42ea00c9827ab34834c732f67c9e2758dc7ddf67914cd487c08531837d2f13eb5e235f99b9144cae39b90b86f21bcec6ba932b25ca5a5dadb4193bb807dd468
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,153 +1,150 @@
1
- INVALID_๐Ÿ”‘ = 'invalid key'.colorize(:magenta)
2
- UNSUPPORTED_๐Ÿ‘พ = 'unsupported'.colorize(:magenta) + ' ๐Ÿ‘พ'
1
+ โ€ผ๏ธ๐Ÿ”‘ = 'invalid key'.colorize(:magenta)
2
+ โ€ผ๏ธ๐Ÿ‘พ = 'unsupported'.colorize(:magenta) + ' ๐Ÿ‘พ'
3
3
 
4
- $โ˜” = " โ˜” > "
5
- $๐Ÿ”‘ = " ๐Ÿ”‘ > "
6
- $๐Ÿง‚ = -> { ๐Ÿ—ƒ๏ธ '๐Ÿง‚', SecureRandom.random_bytes }
7
- $๐Ÿ“ = -> { ๐Ÿ—ƒ๏ธ '๐Ÿ“', ActiveSupport::MessageEncryptor.key_len }
8
- $๐Ÿ—„๏ธ = {}
9
-
10
- def ๐Ÿšฝ
11
- print "\r"
12
- $stdout.flush
13
- end
14
-
15
- def ๐Ÿงผ ๐Ÿ—‘๏ธ
16
- ๐Ÿ—‘๏ธ.chomp
17
- end
18
-
19
- def โ“ ๐Ÿ”‘, simple: true
20
- print ๐Ÿ”‘
21
- โœ๏ธ = ๐Ÿงผ STDIN.noecho(&:gets)
22
- $โœ๏ธ = โœ๏ธ if simple
23
- ๐Ÿšฝ
24
- return โœ๏ธ
25
- end
26
-
27
- def ๐Ÿ”“ ๐Ÿท๏ธ: nil
28
- if ๐Ÿท๏ธ.nil?
29
- puts $๐Ÿ—„๏ธ['ddllv']
30
- else
31
- puts $๐Ÿ—„๏ธ['ddllv'][๐Ÿท๏ธ]
32
- end
33
-
34
- ๐Ÿ“• = File.read './๐Ÿง‚'
35
- if ๐Ÿ“•.empty?
36
- ๐Ÿ”€ = SecureRandom.random_bytes $๐Ÿ“.call
37
- File.write './๐Ÿง‚', Marshal.dump(๐Ÿ”€)
38
- return $๐Ÿ—„๏ธ['๐Ÿง‚'] = ๐Ÿ”€
39
- else
40
- return $๐Ÿ—„๏ธ['๐Ÿง‚'] = Marshal.load(File.read './๐Ÿง‚')
41
- end
42
-
43
- end
44
-
45
- def ๐Ÿ”’ ๐Ÿท๏ธ, ๐Ÿ’Ž
46
- $๐Ÿ—„๏ธ['ddllv'][๐Ÿท๏ธ] = ๐Ÿ’Ž
47
- ๐Ÿ’พ
48
- end
49
-
50
- def ๐Ÿ’พ
51
- โš›๏ธ = ActiveSupport::MessageEncryptor.new(
52
- ActiveSupport::KeyGenerator.new($โœ๏ธ).generate_key($๐Ÿง‚.call, $๐Ÿ“.call)
53
- )
54
-
55
- was_bootstrapped = !(not $๐Ÿ—„๏ธ['ddllv'])
56
- ๐Ÿ“– = ๐Ÿ—ƒ๏ธ 'ddllv', {}, โš›๏ธ: โš›๏ธ
57
- ๐Ÿ“€ 'ddllv', ๐Ÿ“–, โš›๏ธ: โš›๏ธ if was_bootstrapped
58
- end
59
-
60
- def ๐Ÿ“€ ๐Ÿ—‚๏ธ, ๐Ÿ“–, โš›๏ธ: false
61
- if โš›๏ธ
62
- ๐Ÿ“• = โš›๏ธ.encrypt_and_sign ๐Ÿ“–
63
- else
64
- ๐Ÿ“• = ๐Ÿ“–
65
- end
66
-
67
- ๐Ÿ“• = Marshal.dump ๐Ÿ“•
68
- File.write "./#{๐Ÿ—‚๏ธ}", ๐Ÿ“•
69
- return ๐Ÿ“•
70
- end
71
-
72
- def ๐Ÿ—ƒ๏ธ ๐Ÿ—‚๏ธ, ๐Ÿ’Ž, โš›๏ธ: false
73
- if $๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ]
74
- return $๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ]
75
- end
76
-
77
- begin
78
- ๐Ÿ“• = File.read "./#{๐Ÿ—‚๏ธ}"
79
- rescue Errno::ENOENT
80
- ๐Ÿ“• = ๐Ÿ“€ ๐Ÿ—‚๏ธ, ๐Ÿ’Ž, โš›๏ธ: โš›๏ธ
81
- end
4
+ class Uhide::Main
5
+ @@โ˜” = " โ˜” > "
6
+ @@๐Ÿ”‘ = " ๐Ÿ”‘ > "
7
+ @@๐Ÿ—„๏ธ = {}
82
8
 
83
- if not ๐Ÿ“•.empty?
84
- ๐Ÿ“• = Marshal.load ๐Ÿ“•
9
+ class << self
10
+ def ๐Ÿง‚
11
+ ๐Ÿ—ƒ๏ธ '๐Ÿง‚', SecureRandom.random_bytes
12
+ end
85
13
 
86
- if โš›๏ธ
87
- begin
88
- ๐Ÿ“– = โš›๏ธ.decrypt_and_verify ๐Ÿ“•
89
- rescue ActiveSupport::MessageVerifier::InvalidSignature
90
- puts INVALID_๐Ÿ”‘
91
- exit!
14
+ def ๐Ÿ“
15
+ ๐Ÿ—ƒ๏ธ '๐Ÿ“', ActiveSupport::MessageEncryptor.key_len
16
+ end
17
+
18
+ def ๐Ÿšฝ
19
+ print "\r"
20
+ $stdout.flush
21
+ end
22
+
23
+ def ๐Ÿงผ ๐Ÿ—‘๏ธ
24
+ ๐Ÿ—‘๏ธ.chomp
25
+ end
26
+
27
+ def โ“ ๐Ÿ”‘, simple: true
28
+ print ๐Ÿ”‘
29
+ โœ๏ธ = ๐Ÿงผ STDIN.noecho(&:gets)
30
+ @@โœ๏ธ = โœ๏ธ if simple
31
+ ๐Ÿšฝ
32
+ return โœ๏ธ
33
+ end
34
+
35
+ def ๐Ÿ”“ ๐Ÿท๏ธ: nil
36
+ if ๐Ÿท๏ธ.nil?
37
+ puts @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ']
38
+ else
39
+ puts @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ'][๐Ÿท๏ธ]
92
40
  end
93
41
 
94
- else
95
- ๐Ÿ“– = ๐Ÿ“•
96
42
  end
97
43
 
98
- end
99
-
100
- return $๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ] = ๐Ÿ“–
101
- end
102
-
103
- def ๐Ÿค– ๐Ÿ—ฃ๏ธ
104
- ๐Ÿ‘พ, ๐Ÿท๏ธ, ๐Ÿ’Ž = ๐Ÿ—ฃ๏ธ.split
105
-
106
- if ๐Ÿ‘พ.nil?
107
- return
108
- end
109
-
110
- case ๐Ÿ‘พ.to_sym
111
- when :get
112
- if ๐Ÿท๏ธ
113
- ๐Ÿ”“ ๐Ÿท๏ธ: ๐Ÿท๏ธ
114
- else
115
- ๐Ÿ”“
44
+ def ๐Ÿ”’ ๐Ÿท๏ธ, ๐Ÿ’Ž
45
+ @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ'][๐Ÿท๏ธ] = ๐Ÿ’Ž
46
+ ๐Ÿ’พ
116
47
  end
117
48
 
118
- when :set
119
- ๐Ÿ”’ ๐Ÿท๏ธ, ๐Ÿ’Ž
49
+ def ๐Ÿ’พ
50
+ โš›๏ธ = ActiveSupport::MessageEncryptor.new(
51
+ ActiveSupport::KeyGenerator.new(@@โœ๏ธ).generate_key(๐Ÿง‚, ๐Ÿ“)
52
+ )
53
+
54
+ ๐Ÿฅพ = !(not @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ'])
55
+ ๐Ÿ“– = ๐Ÿ—ƒ๏ธ 'ใ€ฝ๏ธ', {}, โš›๏ธ: โš›๏ธ
56
+ ๐Ÿ“€ 'ใ€ฝ๏ธ', ๐Ÿ“–, โš›๏ธ: โš›๏ธ if ๐Ÿฅพ
57
+ end
120
58
 
121
- when :exit, :quit
122
- exit!
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
123
70
 
124
- when :help
125
- puts "For help, quit and run `uhide -h` from your shell"
71
+ def ๐Ÿ—ƒ๏ธ ๐Ÿ—‚๏ธ, ๐Ÿ’Ž, โš›๏ธ: false
72
+ if @@๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ]
73
+ return @@๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ]
74
+ end
75
+
76
+ begin
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
126
101
 
127
- when :reset
128
- if โ“($๐Ÿ”‘, simple: false) == $โœ๏ธ
129
- ['ddllv', '๐Ÿง‚', '๐Ÿ“'].each_entry { |item| File.delete "./#{item}" }
130
- exit!
131
- else
132
- puts INVALID_๐Ÿ”‘
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
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 โ€ผ๏ธ๐Ÿ‘พ
136
+ end
137
+
133
138
  end
134
139
 
135
- else
136
- puts UNSUPPORTED_๐Ÿ‘พ
137
- end
138
-
139
- end
140
-
141
- class Uhide::Main
142
- class << self
143
- def start()
140
+ def โœˆ๏ธ
144
141
  begin
145
- โ“ $๐Ÿ”‘
142
+ โ“ @@๐Ÿ”‘
146
143
 
147
144
  ๐Ÿ’พ
148
145
 
149
146
  loop do
150
- print $โ˜”
147
+ print @@โ˜”
151
148
  ๐Ÿค–(๐Ÿงผ gets)
152
149
  end
153
150
 
@@ -161,4 +158,3 @@ class Uhide::Main
161
158
  end
162
159
 
163
160
  end
164
-
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.28
4
+ version: 0.0.29
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