uhide 0.0.28 โ†’ 0.0.29

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.
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