uhide 0.0.28 โ†’ 0.0.34

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 +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: []