uhide 0.0.27 โ†’ 0.0.32

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 +130 -131
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7549fe073a8fe7084cda772418064c3ae4a6ee461ed3aa366cd1f2e36f35fbf9
4
- data.tar.gz: 745e42dcf130591deb94f771e5a38ee00201c770d006b13e86ca68c05633d861
3
+ metadata.gz: f7f3ee7fda8dbc6a3ca90ee120923bb673dc5493160131c608ca702477203696
4
+ data.tar.gz: 4f2a913910762961b403c30bd0269b17ba268d271ed7c761b99a31d2105e06e7
5
5
  SHA512:
6
- metadata.gz: 91e97dea996846aaa2b82a6166aae57504615119ad89250187c00c6d87e3abe1ac9f8bdcb66c2b9e45f48e75903c99a65377ec05978eb7b2d88212a7dd7c886d
7
- data.tar.gz: ca79538b4400dfcc213f099ce0c72f1404c7751488f726a0f5e4b00c7d8b1ab04d00cf2f2095feadbc05c6719fe7650f4522587b30385e28d6bc5cb41ed3a4de
6
+ metadata.gz: 7725eb64648d0b934b3bcb4717e26ed625854f1058b91797c0e89ef8d53b3f31ab3891ecd518c7a2427837b33f7bb62f5d8c3ec165b06cfa00ca305c7a124881
7
+ data.tar.gz: d70451a07ab063b9a83f862de8cc8fedaef80ffec4968a230d5a6cdbf748d73c1df9e83623590e47c82a591588443ce00b40f4f44c38f35aebc06e85b98ebdd4
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,151 +1,151 @@
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 โ“ ๐Ÿ”‘, ๐Ÿ˜: true
28
+ print ๐Ÿ”‘
29
+ โœ๏ธ = ๐Ÿงผ STDIN.noecho(&:gets)
30
+ @@โœ๏ธ = โœ๏ธ if ๐Ÿ˜
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
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 :reset
125
- if โ“($๐Ÿ”‘, simple: false) == $โœ๏ธ
126
- ['ddllv', '๐Ÿง‚', '๐Ÿ“'].each_entry { |item| File.delete "./#{item}" }
127
- exit!
128
- else
129
- puts INVALID_๐Ÿ”‘
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 @@๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ] = ๐Ÿ“–
130
100
  end
131
101
 
132
- else
133
- puts UNSUPPORTED_๐Ÿ‘พ
134
- end
135
-
136
- end
137
-
138
- class Uhide::Main
139
- class << self
140
- def start()
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 โ“(@@๐Ÿ”‘, ๐Ÿ˜: false) == @@โœ๏ธ
128
+ ['ใ€ฝ๏ธ', '๐Ÿง‚', '๐Ÿ“'].each_entry { | ๐Ÿ“‚ | File.delete "./#{๐Ÿ“‚}" }
129
+ exit!
130
+ else
131
+ puts $โ€ผ๏ธ๐Ÿ”‘
132
+ end
133
+
134
+ else
135
+ puts $โ€ผ๏ธ๐Ÿ‘พ
136
+ end
137
+
138
+ end
139
+
140
+ def โœˆ๏ธ
141
141
  begin
142
- โ“ $๐Ÿ”‘
142
+ โ“ @@๐Ÿ”‘
143
143
 
144
144
  ๐Ÿ’พ
145
145
 
146
146
  loop do
147
- print $โ˜”
148
- ๐Ÿค–(๐Ÿงผ gets)
147
+ print @@โ˜”
148
+ ๐Ÿค– ๐Ÿงผ gets
149
149
  end
150
150
 
151
151
  rescue SystemExit, Interrupt
@@ -158,4 +158,3 @@ class Uhide::Main
158
158
  end
159
159
 
160
160
  end
161
-
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.27
4
+ version: 0.0.32
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