donjon 2.0.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/README.md +20 -3
- data/donjon.gemspec +1 -1
- data/lib/donjon/encrypted_file.rb +3 -3
- data/lib/donjon/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a52e48a0e488c6c6c5fd5e621ae964131f09237f
|
4
|
+
data.tar.gz: 41d5d8286f93d7816cd995f7da295d11ed88dca2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34a36e4f2d73d4a200fab5d90927783e1bef7b0c4be1d03d1cf90716070c2301bbb6a0cb9d7fe3003ac75efe8520c37e70e96c7f0eb0b308fce78ec245e5c06d
|
7
|
+
data.tar.gz: a651bf0842529f2e3d0afd2527fe2b83918752c8db4aa54c1dfeb726fbfd576b26162b7301c3667a9ee763a15839528498334f2548e5b7ee6f8e844bf9b8a71b
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -58,7 +58,7 @@ This section assumes the vault is synced between users using Bittorrent Sync.
|
|
58
58
|
### Creating a new vault
|
59
59
|
|
60
60
|
Install Donjon:
|
61
|
-
|
61
|
+
|
62
62
|
$ gem install donjon
|
63
63
|
|
64
64
|
Run the Donjon configuration:
|
@@ -70,7 +70,9 @@ encrypted and be a 2048-bit RSA key.
|
|
70
70
|
|
71
71
|
Add, then read a first key-value pair to confirm encryption is working:
|
72
72
|
|
73
|
-
$ dj config:set TEST
|
73
|
+
$ dj config:set TEST
|
74
|
+
Enter the value for 'TEST'
|
75
|
+
> ****
|
74
76
|
$ dj config:get TEST
|
75
77
|
TEST: foobar
|
76
78
|
|
@@ -104,7 +106,7 @@ Configure Donjon; when prompted for a vault path, enter the path to the relevant
|
|
104
106
|
synced directory:
|
105
107
|
|
106
108
|
$ dj init
|
107
|
-
|
109
|
+
|
108
110
|
At this point your public key has been added to the vault, but you can't access
|
109
111
|
any data as it hasn't been encrypted for you. Obtain your public key:
|
110
112
|
|
@@ -118,6 +120,21 @@ to encrypt all key-value pairs for your user.
|
|
118
120
|
|
119
121
|
Test that you can read a particular key, and you're all set!
|
120
122
|
|
123
|
+
#### Troubleshooting: lost private key password
|
124
|
+
|
125
|
+
In case you lose your private key password, you won't be able to decrypt the vault.
|
126
|
+
|
127
|
+
However, you don't need to reinstall donjon from scratch, just remove your donjon preferences and the private/public keys:
|
128
|
+
```bash
|
129
|
+
rm ~/.donjonrc
|
130
|
+
rm ~/.ssh/donjon*
|
131
|
+
```
|
132
|
+
|
133
|
+
Then repeat the installation procedure above from the `dj init` step onwards.
|
134
|
+
|
135
|
+
**DO NOT** delete your vault, it will sync to others.
|
136
|
+
If you really need to, stop the Bittorrent syncing beforehand.
|
137
|
+
|
121
138
|
|
122
139
|
## Usage
|
123
140
|
|
data/donjon.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
20
|
spec.add_dependency 'thor'
|
21
|
-
spec.add_dependency 'gibberish'
|
21
|
+
spec.add_dependency 'gibberish', '>= 2.0.0'
|
22
22
|
|
23
23
|
spec.add_development_dependency 'bundler'
|
24
24
|
spec.add_development_dependency 'rake'
|
@@ -60,7 +60,7 @@ module Donjon
|
|
60
60
|
decrypted_pw = user.key.private_decrypt(encrypted_key)
|
61
61
|
|
62
62
|
assert(decrypted_pw.size == 32)
|
63
|
-
payload = Gibberish::AES.new(decrypted_pw).decrypt(encrypted_data, binary: true)
|
63
|
+
payload = Gibberish::AES::CBC.new(decrypted_pw).decrypt(encrypted_data, binary: true)
|
64
64
|
encoding = payload[0...32].strip
|
65
65
|
payload[32...-PADDING].force_encoding(encoding)
|
66
66
|
end
|
@@ -72,8 +72,8 @@ module Donjon
|
|
72
72
|
encoding_field = ("%-32s" % encoding).force_encoding(Encoding::BINARY)
|
73
73
|
payload = encoding_field + data + OpenSSL::Random.random_bytes(PADDING)
|
74
74
|
password = OpenSSL::Random.random_bytes(32)
|
75
|
-
encrypted_data = Gibberish::AES.new(password).encrypt(payload, binary: true)
|
76
|
-
|
75
|
+
encrypted_data = Gibberish::AES::CBC.new(password).encrypt(payload, binary: true)
|
76
|
+
|
77
77
|
encrypted_key = user.key.public_encrypt(password)
|
78
78
|
|
79
79
|
assert(encrypted_key.size == 256)
|
data/lib/donjon/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: donjon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julien Letessier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
170
|
version: '0'
|
171
171
|
requirements: []
|
172
172
|
rubyforge_project:
|
173
|
-
rubygems_version: 2.
|
173
|
+
rubygems_version: 2.4.5
|
174
174
|
signing_key:
|
175
175
|
specification_version: 4
|
176
176
|
summary: Secure, multi-user data store.
|
@@ -182,3 +182,4 @@ test_files:
|
|
182
182
|
- spec/spec_helper.rb
|
183
183
|
- spec/support/keys.rb
|
184
184
|
- spec/support/repos.rb
|
185
|
+
has_rdoc:
|