uhide 0.0.28 โ†’ 0.0.34

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 +7 -9
  4. data/lib/uhide/main.rb +114 -134
  5. metadata +4 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8d1b9b595b0147165ccf1f72d5005059e806e6fcfd246355ecdad0e2154ba2b
4
- data.tar.gz: a3b5102ea63b4fddc6680c41410b18329147681b913832427d81f9206524329c
3
+ metadata.gz: ce9452809c6b83efc0a90355a5ca5b3e4662dd4d07c095399b345ee2c8c9f4e4
4
+ data.tar.gz: 1d2d1b702491a2bd4400267c57d7ecfe14f7fd72fffc8505a061d805c13f91c4
5
5
  SHA512:
6
- metadata.gz: 724b5820a5d3aa15100683781e68c01ea0031b1bdd734ab5e2999f87e452b7e79f2dc607ced6124d91469f775b3773de4440f54eee9ce9b886ce2983f10b079b
7
- data.tar.gz: fa4b3aa3d110f32c5855ee4612a2f6909ce2a73639c7fe39446a4edb46048ed9c0f23366f244a9f2689bc3ca7b866336de9bebdb7361c75b095bf2612ae8d687
6
+ metadata.gz: 1a55ba657fff14914f0db0579bd50d2282f45dd8da9b4691c4806af0a05f3f5112e674f1d76b6fb9a934466dc8bf4e00f25fadea5304a19c884cd5335e401c2a
7
+ data.tar.gz: abba5652661fd5c6eddb853001d3d8f2e1d9da747690c1030b2231ea2f7f6ee9b0a4710d6fc22baf15a1039f1cd9583ab2cb8cbc289d0ad30351fc39c52b582b
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,12 +1,9 @@
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|
9
- puts <<-HELP
4
+ OptionParser.new do | ๐Ÿ“‹ |
5
+ ๐Ÿ“‹.on '-h', '--help', 'Help' do | ๐Ÿ“š |
6
+ puts <<-๐Ÿ““
10
7
  Usage: uhide command [key-name] [key-value]
11
8
  Example: uhide set gmail mysecurepassword123
12
9
  Example: uhide get gmail
@@ -14,16 +11,17 @@ 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 a ๐Ÿ”‘ prompt. Type a password you can remember and press enter.
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.
16
+ 4. Uhide stores encrypted data inside whatever directory you run it from.
19
17
 
20
18
  Commands and Optional Arguments:
21
19
  - get [key-name]
22
20
  - set [key-name] [key-value]
23
- HELP
21
+ ๐Ÿ““
24
22
  exit!
25
23
  end
26
24
 
27
25
  end.parse!
28
26
 
29
- Uhide::Main.start()
27
+ Uhide::Main.โœˆ๏ธ
data/lib/uhide/main.rb CHANGED
@@ -1,154 +1,135 @@
1
- INVALID_๐Ÿ”‘ = 'invalid key'.colorize(:magenta)
2
- UNSUPPORTED_๐Ÿ‘พ = 'unsupported'.colorize(:magenta) + ' ๐Ÿ‘พ'
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
1
+ class Uhide::Main
2
+ @@โ˜” = " โ˜” > "
3
+ @@๐Ÿ”‘ = " ๐Ÿ”‘ > "
4
+ @@๐Ÿ—„๏ธ = {}
82
5
 
83
- if not ๐Ÿ“•.empty?
84
- ๐Ÿ“• = Marshal.load ๐Ÿ“•
6
+ class << self
7
+ def โ€ผ๏ธ โ—; โ—.colorize :magenta; end
8
+ def ๐Ÿง‚; ๐Ÿ—ƒ๏ธ '๐Ÿง‚', SecureRandom.random_bytes; end
85
9
 
86
- if โš›๏ธ
87
- begin
88
- ๐Ÿ“– = โš›๏ธ.decrypt_and_verify ๐Ÿ“•
89
- rescue ActiveSupport::MessageVerifier::InvalidSignature
90
- puts INVALID_๐Ÿ”‘
91
- exit!
10
+ def ๐Ÿšฝ
11
+ print "\r"
12
+ $stdout.flush
13
+ end
14
+
15
+ def ๐Ÿงผ ๐Ÿ—‘๏ธ
16
+ ๐Ÿ—‘๏ธ.chomp
17
+ end
18
+
19
+ def โ“ ๐Ÿ”‘, ๐Ÿ˜: true
20
+ print ๐Ÿ”‘
21
+ โœ๏ธ = ๐Ÿงผ STDIN.noecho(&:gets)
22
+ @@โœ๏ธ = โœ๏ธ if ๐Ÿ˜
23
+ ๐Ÿšฝ
24
+ return โœ๏ธ
25
+ end
26
+
27
+ def ๐Ÿ”“ ๐Ÿท๏ธ: nil
28
+ if ๐Ÿท๏ธ.nil?
29
+ puts @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ']
30
+ else
31
+ puts @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ'][๐Ÿท๏ธ]
92
32
  end
93
33
 
94
- else
95
- ๐Ÿ“– = ๐Ÿ“•
96
34
  end
97
35
 
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
- ๐Ÿ”“
36
+ def ๐Ÿ”’ ๐Ÿท๏ธ, ๐Ÿ’Ž
37
+ @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ'][๐Ÿท๏ธ] = ๐Ÿ’Ž
38
+ ๐Ÿ’พ
116
39
  end
117
40
 
118
- when :set
119
- ๐Ÿ”’ ๐Ÿท๏ธ, ๐Ÿ’Ž
41
+ def ๐Ÿ’พ
42
+ โš›๏ธ = ActiveSupport::MessageEncryptor.new(
43
+ ActiveSupport::KeyGenerator.new(@@โœ๏ธ).generate_key ๐Ÿง‚, ActiveSupport::MessageEncryptor.key_len
44
+ )
45
+
46
+ ๐Ÿฅพ = !(not @@๐Ÿ—„๏ธ['ใ€ฝ๏ธ'])
47
+ ๐Ÿ“– = ๐Ÿ—ƒ๏ธ 'ใ€ฝ๏ธ', {}, โš›๏ธ: โš›๏ธ
48
+ ๐Ÿ“€ 'ใ€ฝ๏ธ', ๐Ÿ“–, โš›๏ธ: โš›๏ธ if ๐Ÿฅพ
49
+ end
120
50
 
121
- when :exit, :quit
122
- exit!
51
+ def ๐Ÿ“€ ๐Ÿ—‚๏ธ, ๐Ÿ“–, โš›๏ธ: false
52
+ if โš›๏ธ
53
+ ๐Ÿ“• = โš›๏ธ.encrypt_and_sign ๐Ÿ“–
54
+ else
55
+ ๐Ÿ“• = ๐Ÿ“–
56
+ end
57
+
58
+ ๐Ÿ“• = Marshal.dump ๐Ÿ“•
59
+ File.write "./#{๐Ÿ—‚๏ธ}", ๐Ÿ“•
60
+ return ๐Ÿ“•
61
+ end
123
62
 
124
- when :help
125
- puts "For help, quit and run `uhide -h` from your shell"
63
+ def ๐Ÿ—ƒ๏ธ ๐Ÿ—‚๏ธ, ๐Ÿ’Ž, โš›๏ธ: false
64
+ if @@๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ]
65
+ return @@๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ]
66
+ end
67
+
68
+ begin
69
+ ๐Ÿ“• = File.read "./#{๐Ÿ—‚๏ธ}"
70
+ rescue Errno::ENOENT
71
+ ๐Ÿ“• = ๐Ÿ“€ ๐Ÿ—‚๏ธ, ๐Ÿ’Ž, โš›๏ธ: โš›๏ธ
72
+ end
73
+
74
+ if not ๐Ÿ“•.empty?
75
+ ๐Ÿ“• = Marshal.load ๐Ÿ“•
76
+
77
+ if โš›๏ธ
78
+ begin
79
+ ๐Ÿ“– = โš›๏ธ.decrypt_and_verify ๐Ÿ“•
80
+ rescue ActiveSupport::MessageVerifier::InvalidSignature
81
+ puts โ€ผ๏ธ ๐Ÿ”‘
82
+ exit!
83
+ end
84
+
85
+ else
86
+ ๐Ÿ“– = ๐Ÿ“•
87
+ end
88
+
89
+ end
90
+
91
+ return @@๐Ÿ—„๏ธ[๐Ÿ—‚๏ธ] = ๐Ÿ“–
92
+ end
126
93
 
127
- when :reset
128
- if โ“($๐Ÿ”‘, simple: false) == $โœ๏ธ
129
- ['ddllv', '๐Ÿง‚', '๐Ÿ“'].each_entry { |item| File.delete "./#{item}" }
130
- exit!
131
- else
132
- puts INVALID_๐Ÿ”‘
94
+ def ๐Ÿค– ๐Ÿ—ฃ๏ธ
95
+ ๐Ÿ‘พ, ๐Ÿท๏ธ, ๐Ÿ’Ž = ๐Ÿ—ฃ๏ธ.split
96
+
97
+ if ๐Ÿ‘พ.nil?
98
+ return
99
+ end
100
+
101
+ case ๐Ÿ‘พ.to_sym
102
+ when :get
103
+ if ๐Ÿท๏ธ
104
+ ๐Ÿ”“ ๐Ÿท๏ธ: ๐Ÿท๏ธ
105
+ else
106
+ ๐Ÿ”“
107
+ end
108
+
109
+ when :set
110
+ ๐Ÿ”’ ๐Ÿท๏ธ, ๐Ÿ’Ž
111
+
112
+ when :exit, :quit
113
+ exit!
114
+
115
+ when :help
116
+ puts "For help, quit and run `uhide -h` from your shell"
117
+
118
+ else
119
+ puts โ€ผ๏ธ('unsupported') + ' ๐Ÿ‘พ'
120
+ end
121
+
133
122
  end
134
123
 
135
- else
136
- puts UNSUPPORTED_๐Ÿ‘พ
137
- end
138
-
139
- end
140
-
141
- class Uhide::Main
142
- class << self
143
- def start()
124
+ def โœˆ๏ธ
144
125
  begin
145
- โ“ $๐Ÿ”‘
126
+ โ“ @@๐Ÿ”‘
146
127
 
147
128
  ๐Ÿ’พ
148
129
 
149
130
  loop do
150
- print $โ˜”
151
- ๐Ÿค–(๐Ÿงผ gets)
131
+ print @@โ˜”
132
+ ๐Ÿค– ๐Ÿงผ gets
152
133
  end
153
134
 
154
135
  rescue SystemExit, Interrupt
@@ -161,4 +142,3 @@ class Uhide::Main
161
142
  end
162
143
 
163
144
  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.34
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
@@ -66,8 +66,7 @@ dependencies:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.2.5
69
- description: Allows a regular person to maintain a named list of secrets that's encrypted
70
- at rest
69
+ description: "โ˜‚๏ธ Personal encryption fit for a spy"
71
70
  email: mwk@mikekeen.com
72
71
  executables:
73
72
  - uhide
@@ -101,5 +100,5 @@ requirements: []
101
100
  rubygems_version: 3.2.0.rc.1
102
101
  signing_key:
103
102
  specification_version: 4
104
- summary: "โ˜‚๏ธ: Personal encryption fit for a spy"
103
+ summary: Powered by emoji technology, this encrypted text store is a cut above.
105
104
  test_files: []