passw3rd 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/EXAMPLES.md +6 -1
- data/History.txt +5 -0
- data/lib/passw3rd/key_loader.rb +3 -3
- data/lib/passw3rd/password_client.rb +4 -4
- data/lib/passw3rd/password_service.rb +1 -1
- data/lib/passw3rd/version.rb +1 -1
- data/test/password_service_test.rb +5 -5
- metadata +2 -2
data/EXAMPLES.md
CHANGED
@@ -24,6 +24,11 @@ Command line use
|
|
24
24
|
The password is: asdf
|
25
25
|
$ passw3rd -d foobar_app -p ~/Desktop/
|
26
26
|
The password is: asdf
|
27
|
+
------------------------------------------------------------------------------
|
28
|
+
|
29
|
+
Key rotation: simple
|
30
|
+
|
31
|
+
[passw3rd (gh-10-key_rotation *$)]$ rake rotate_keys[~/passwords,~/passwords,aes-256-cbc]
|
27
32
|
|
28
33
|
|
29
34
|
------------------------------------------------------------------------------
|
@@ -54,7 +59,7 @@ Java properties file
|
|
54
59
|
Ruby on Rails config/database.yml
|
55
60
|
|
56
61
|
initializer:
|
57
|
-
Passw3rd::PasswordService.password_file_dir = "passwords"
|
62
|
+
::Passw3rd::PasswordService.password_file_dir = "passwords"
|
58
63
|
|
59
64
|
Before:
|
60
65
|
|
data/History.txt
CHANGED
data/lib/passw3rd/key_loader.rb
CHANGED
@@ -25,8 +25,8 @@ module Passw3rd
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def self.create_key_iv_file(path=nil)
|
28
|
-
|
29
|
-
path = ENV['HOME']
|
28
|
+
unless path
|
29
|
+
path = ::Passw3rd::PasswordService.key_file_dir || ENV['HOME']
|
30
30
|
end
|
31
31
|
|
32
32
|
# d'oh!
|
@@ -41,7 +41,7 @@ module Passw3rd
|
|
41
41
|
puts "Couldn't write key/IV to #{path}\n"
|
42
42
|
raise $!
|
43
43
|
end
|
44
|
-
|
44
|
+
path
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
@@ -32,7 +32,7 @@ module Passw3rd
|
|
32
32
|
|
33
33
|
opts.on('-p', '--password-dir PATH', 'Read and write password files to this directory (default is ~/)') do |opt|
|
34
34
|
password_dir = opt
|
35
|
-
Passw3rd::PasswordService.password_file_dir = password_dir
|
35
|
+
::Passw3rd::PasswordService.password_file_dir = password_dir
|
36
36
|
if !File.directory?(File.expand_path(password_dir))
|
37
37
|
raise "#{password_dir} must be a directory"
|
38
38
|
end
|
@@ -57,13 +57,13 @@ module Passw3rd
|
|
57
57
|
|
58
58
|
# generate key/IV
|
59
59
|
if gen_key_path
|
60
|
-
|
60
|
+
::Passw3rd::KeyLoader.create_key_iv_file(gen_key_path)
|
61
61
|
puts "generated keys in #{gen_key_path}"
|
62
62
|
end
|
63
63
|
|
64
64
|
# decrypt password_file using the key/IV in key_path
|
65
65
|
if mode == "decrypt"
|
66
|
-
decrypted
|
66
|
+
decrypted =::Passw3rd::PasswordService.get_password(password_file, key_path)
|
67
67
|
puts "The password is: #{decrypted}"
|
68
68
|
end
|
69
69
|
|
@@ -77,7 +77,7 @@ module Passw3rd
|
|
77
77
|
system 'stty echo; echo ""'
|
78
78
|
end
|
79
79
|
|
80
|
-
file
|
80
|
+
file =::Passw3rd::PasswordService.write_password_file(password, password_file, key_path)
|
81
81
|
puts "Wrote password to #{file}"
|
82
82
|
end
|
83
83
|
end
|
@@ -56,7 +56,7 @@ module Passw3rd
|
|
56
56
|
d = cipher.update(cipher_text)
|
57
57
|
d << cipher.final
|
58
58
|
rescue OpenSSL::Cipher::CipherError => err
|
59
|
-
puts "Couldn't decrypt password. Are you using the right keys?"
|
59
|
+
puts "Couldn't decrypt password. Are you using the right keys (#{key_path})?"
|
60
60
|
raise err
|
61
61
|
end
|
62
62
|
end
|
data/lib/passw3rd/version.rb
CHANGED
@@ -31,7 +31,7 @@ class PasswordServiceTest < Test::Unit::TestCase
|
|
31
31
|
|
32
32
|
def test_set_and_get_password
|
33
33
|
password_file = ::Passw3rd::PasswordService.write_password_file(@random_string, "test")
|
34
|
-
decrypted = Passw3rd::PasswordService.get_password("test")
|
34
|
+
decrypted = ::Passw3rd::PasswordService.get_password("test")
|
35
35
|
assert_equal(@random_string, decrypted)
|
36
36
|
end
|
37
37
|
|
@@ -39,17 +39,17 @@ class PasswordServiceTest < Test::Unit::TestCase
|
|
39
39
|
::Passw3rd::PasswordService.password_file_dir = Dir.tmpdir
|
40
40
|
|
41
41
|
password_file = ::Passw3rd::PasswordService.write_password_file(@random_string, "test2")
|
42
|
-
decrypted = Passw3rd::PasswordService.get_password("test2")
|
42
|
+
decrypted = ::Passw3rd::PasswordService.get_password("test2")
|
43
43
|
assert_equal(@random_string, decrypted)
|
44
44
|
end
|
45
45
|
|
46
46
|
def test_configure_with_block
|
47
|
-
|
47
|
+
::Passw3rd::PasswordService.configure do |c|
|
48
48
|
c.password_file_dir = "/tmp/"
|
49
49
|
c.cipher_name = "aes-256-cbc"
|
50
50
|
end
|
51
|
-
assert_equal(Passw3rd::PasswordService.password_file_dir, "/tmp/")
|
52
|
-
assert_equal(Passw3rd::PasswordService.cipher_name, "aes-256-cbc")
|
51
|
+
assert_equal(::Passw3rd::PasswordService.password_file_dir, "/tmp/")
|
52
|
+
assert_equal(::Passw3rd::PasswordService.cipher_name, "aes-256-cbc")
|
53
53
|
end
|
54
54
|
|
55
55
|
def test_gen_key
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: passw3rd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
12
|
+
date: 2011-11-04 00:00:00.000000000Z
|
13
13
|
dependencies: []
|
14
14
|
description: Generate a key/iv file, generate passwords, and store encrypted files
|
15
15
|
in source control, keep the key/iv safe!
|