trocla 0.0.8 → 0.0.9
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.
- data/README.md +10 -0
- data/bin/trocla +5 -4
- data/lib/VERSION +1 -1
- data/lib/trocla/formats/ssha.rb +9 -0
- data/trocla.gemspec +9 -9
- metadata +139 -143
data/README.md
CHANGED
@@ -125,6 +125,16 @@ to address.
|
|
125
125
|
|
126
126
|
Simply build and install the gem.
|
127
127
|
|
128
|
+
## Update & Changes
|
129
|
+
|
130
|
+
### to 0.0.8
|
131
|
+
|
132
|
+
1. be sure to update as well the moneta gem, trocla now uses the official moneta releases and supports current avaiable versions.
|
133
|
+
1. Options for moneta's backends have changed. For example, if you are using the yaml-backend you will likely need to change the adapter option `:path:` to `:file:` to match moneta's new API.
|
134
|
+
1. **IMPORTANT:** If you are using the yaml backend you need to migrate the current data *before* using the new trocla version! You can migrate the datastore by using the following two sed commands: `sed -i 's/^\s\{3\}/ /' /PATH/TO/trocla_data.yaml` && `sed -i '/^\s\{2\}value\:/d' /PATH/TO/trocla_data.yaml`.
|
135
|
+
1. **SECURITY:** Previous versions of trocla used quite a simple random generator. Especially in combination with the puppet `fqdn_rand` function, you likely have very predictable random passwords and I recommend you to regenerate all randomly generated passwords! Now!
|
136
|
+
1. We now support reading passwords from files, which means that you can now also easily add multi-line passwords. Have a look at the documentation above.
|
137
|
+
|
128
138
|
## Contributing to trocla
|
129
139
|
|
130
140
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
data/bin/trocla
CHANGED
@@ -55,8 +55,8 @@ end
|
|
55
55
|
def set(options)
|
56
56
|
if options.delete(:ask_password)
|
57
57
|
require 'highline/import'
|
58
|
-
password = ask("Enter your password: ") { |q| q.echo = "x" }
|
59
|
-
pwd2 = ask("Repeat password: ") { |q| q.echo = "x" }
|
58
|
+
password = ask("Enter your password: ") { |q| q.echo = "x" }.to_s
|
59
|
+
pwd2 = ask("Repeat password: ") { |q| q.echo = "x" }.to_s
|
60
60
|
unless password == pwd2
|
61
61
|
STDERR.puts "Passwords did not match, exiting!"
|
62
62
|
exit 1
|
@@ -64,10 +64,11 @@ def set(options)
|
|
64
64
|
else
|
65
65
|
password = options.delete(:password) || STDIN.read.chomp
|
66
66
|
end
|
67
|
+
format = options.delete(:trocla_format)
|
67
68
|
Trocla.new(options.delete(:config_file)).set_password(
|
68
69
|
options.delete(:trocla_key),
|
69
|
-
|
70
|
-
password
|
70
|
+
format,
|
71
|
+
Trocla::Formats[format].format(password, options.delete(:other_options).shift.to_s)
|
71
72
|
)
|
72
73
|
""
|
73
74
|
end
|
data/lib/VERSION
CHANGED
@@ -0,0 +1,9 @@
|
|
1
|
+
# salted crypt
|
2
|
+
require 'base64'
|
3
|
+
require 'digest'
|
4
|
+
class Trocla::Formats::Ssha
|
5
|
+
def format(plain_password,options={})
|
6
|
+
salt = options['salt'] || Trocla::Util.salt(16)
|
7
|
+
"{SSHA}"+Base64.encode64("#{Digest::SHA1.digest("#{plain_password}#{salt}")}#{salt}").chomp
|
8
|
+
end
|
9
|
+
end
|
data/trocla.gemspec
CHANGED
@@ -4,15 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.0.
|
7
|
+
s.name = "trocla"
|
8
|
+
s.version = "0.0.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["mh"]
|
12
|
-
s.date =
|
13
|
-
s.
|
14
|
-
s.
|
15
|
-
s.email = %q{mh+trocla@immerda.ch}
|
12
|
+
s.date = "2013-10-03"
|
13
|
+
s.description = "Trocla helps you to generate random passwords and to store them in various formats (plain, MD5, bcrypt) for later retrival."
|
14
|
+
s.email = "mh+trocla@immerda.ch"
|
16
15
|
s.executables = ["trocla"]
|
17
16
|
s.extra_rdoc_files = [
|
18
17
|
"LICENSE.txt",
|
@@ -39,6 +38,7 @@ Gem::Specification.new do |s|
|
|
39
38
|
"lib/trocla/formats/plain.rb",
|
40
39
|
"lib/trocla/formats/sha256crypt.rb",
|
41
40
|
"lib/trocla/formats/sha512crypt.rb",
|
41
|
+
"lib/trocla/formats/ssha.rb",
|
42
42
|
"lib/trocla/util.rb",
|
43
43
|
"lib/trocla/version.rb",
|
44
44
|
"spec/data/.keep",
|
@@ -47,11 +47,11 @@ Gem::Specification.new do |s|
|
|
47
47
|
"spec/trocla_spec.rb",
|
48
48
|
"trocla.gemspec"
|
49
49
|
]
|
50
|
-
s.homepage =
|
50
|
+
s.homepage = "https://tech.immerda.ch/2011/12/trocla-get-hashed-passwords-out-of-puppet-manifests/"
|
51
51
|
s.licenses = ["GPLv3"]
|
52
52
|
s.require_paths = ["lib"]
|
53
|
-
s.rubygems_version =
|
54
|
-
s.summary =
|
53
|
+
s.rubygems_version = "1.8.25"
|
54
|
+
s.summary = "Trocla a simple password generator and storage"
|
55
55
|
|
56
56
|
if s.respond_to? :specification_version then
|
57
57
|
s.specification_version = 3
|
metadata
CHANGED
@@ -1,168 +1,170 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: trocla
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 8
|
10
|
-
version: 0.0.8
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- mh
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
22
|
-
type: :runtime
|
12
|
+
date: 2013-10-03 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
23
15
|
name: moneta
|
24
|
-
|
25
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
26
17
|
none: false
|
27
|
-
requirements:
|
18
|
+
requirements:
|
28
19
|
- - ~>
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 7
|
31
|
-
segments:
|
32
|
-
- 0
|
33
|
-
- 7
|
34
|
-
- 2
|
20
|
+
- !ruby/object:Gem::Version
|
35
21
|
version: 0.7.2
|
36
|
-
requirement: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
22
|
type: :runtime
|
39
|
-
name: highline
|
40
23
|
prerelease: false
|
41
|
-
version_requirements:
|
42
|
-
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.7.2
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: highline
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
52
38
|
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
53
47
|
name: bcrypt-ruby
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
54
55
|
prerelease: false
|
55
|
-
version_requirements:
|
56
|
-
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
|
62
|
-
- 0
|
63
|
-
version: "0"
|
64
|
-
requirement: *id003
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
|
-
type: :development
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
67
63
|
name: rspec
|
68
|
-
|
69
|
-
version_requirements: &id004 !ruby/object:Gem::Requirement
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
70
65
|
none: false
|
71
|
-
requirements:
|
66
|
+
requirements:
|
72
67
|
- - ~>
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
hash: 31
|
75
|
-
segments:
|
76
|
-
- 2
|
77
|
-
- 4
|
78
|
-
- 0
|
68
|
+
- !ruby/object:Gem::Version
|
79
69
|
version: 2.4.0
|
80
|
-
requirement: *id004
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
70
|
type: :development
|
83
|
-
name: rdoc
|
84
71
|
prerelease: false
|
85
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
73
|
none: false
|
87
|
-
requirements:
|
74
|
+
requirements:
|
88
75
|
- - ~>
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
-
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 2.4.0
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rdoc
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '3.8'
|
97
86
|
type: :development
|
98
|
-
name: mocha
|
99
87
|
prerelease: false
|
100
|
-
version_requirements:
|
101
|
-
none: false
|
102
|
-
requirements:
|
103
|
-
- -
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '3.8'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: mocha
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
111
102
|
type: :development
|
112
|
-
name: bundler
|
113
103
|
prerelease: false
|
114
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
115
105
|
none: false
|
116
|
-
requirements:
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: bundler
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
117
115
|
- - ~>
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
hash: 25
|
120
|
-
segments:
|
121
|
-
- 1
|
122
|
-
- 2
|
123
|
-
- 3
|
116
|
+
- !ruby/object:Gem::Version
|
124
117
|
version: 1.2.3
|
125
|
-
requirement: *id007
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
118
|
type: :development
|
128
|
-
name: jeweler
|
129
119
|
prerelease: false
|
130
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.2.3
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: jeweler
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
131
129
|
none: false
|
132
|
-
requirements:
|
130
|
+
requirements:
|
133
131
|
- - ~>
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
hash: 7
|
136
|
-
segments:
|
137
|
-
- 1
|
138
|
-
- 6
|
139
|
-
- 4
|
132
|
+
- !ruby/object:Gem::Version
|
140
133
|
version: 1.6.4
|
141
|
-
requirement: *id008
|
142
|
-
- !ruby/object:Gem::Dependency
|
143
134
|
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ~>
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 1.6.4
|
142
|
+
- !ruby/object:Gem::Dependency
|
144
143
|
name: rcov
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
type: :development
|
145
151
|
prerelease: false
|
146
|
-
version_requirements:
|
147
|
-
none: false
|
148
|
-
requirements:
|
149
|
-
- -
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
version: "0"
|
155
|
-
requirement: *id009
|
156
|
-
description: Trocla helps you to generate random passwords and to store them in various formats (plain, MD5, bcrypt) for later retrival.
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
description: Trocla helps you to generate random passwords and to store them in various
|
159
|
+
formats (plain, MD5, bcrypt) for later retrival.
|
157
160
|
email: mh+trocla@immerda.ch
|
158
|
-
executables:
|
161
|
+
executables:
|
159
162
|
- trocla
|
160
163
|
extensions: []
|
161
|
-
|
162
|
-
extra_rdoc_files:
|
164
|
+
extra_rdoc_files:
|
163
165
|
- LICENSE.txt
|
164
166
|
- README.md
|
165
|
-
files:
|
167
|
+
files:
|
166
168
|
- .document
|
167
169
|
- .rspec
|
168
170
|
- .travis.yml
|
@@ -183,6 +185,7 @@ files:
|
|
183
185
|
- lib/trocla/formats/plain.rb
|
184
186
|
- lib/trocla/formats/sha256crypt.rb
|
185
187
|
- lib/trocla/formats/sha512crypt.rb
|
188
|
+
- lib/trocla/formats/ssha.rb
|
186
189
|
- lib/trocla/util.rb
|
187
190
|
- lib/trocla/version.rb
|
188
191
|
- spec/data/.keep
|
@@ -190,39 +193,32 @@ files:
|
|
190
193
|
- spec/trocla/util_spec.rb
|
191
194
|
- spec/trocla_spec.rb
|
192
195
|
- trocla.gemspec
|
193
|
-
has_rdoc: true
|
194
196
|
homepage: https://tech.immerda.ch/2011/12/trocla-get-hashed-passwords-out-of-puppet-manifests/
|
195
|
-
licenses:
|
197
|
+
licenses:
|
196
198
|
- GPLv3
|
197
199
|
post_install_message:
|
198
200
|
rdoc_options: []
|
199
|
-
|
200
|
-
require_paths:
|
201
|
+
require_paths:
|
201
202
|
- lib
|
202
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
203
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
203
204
|
none: false
|
204
|
-
requirements:
|
205
|
-
- -
|
206
|
-
- !ruby/object:Gem::Version
|
207
|
-
|
208
|
-
segments:
|
205
|
+
requirements:
|
206
|
+
- - ! '>='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
segments:
|
209
210
|
- 0
|
210
|
-
|
211
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
211
|
+
hash: -851903621501958623
|
212
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
213
|
none: false
|
213
|
-
requirements:
|
214
|
-
- -
|
215
|
-
- !ruby/object:Gem::Version
|
216
|
-
|
217
|
-
segments:
|
218
|
-
- 0
|
219
|
-
version: "0"
|
214
|
+
requirements:
|
215
|
+
- - ! '>='
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '0'
|
220
218
|
requirements: []
|
221
|
-
|
222
219
|
rubyforge_project:
|
223
|
-
rubygems_version: 1.
|
220
|
+
rubygems_version: 1.8.25
|
224
221
|
signing_key:
|
225
222
|
specification_version: 3
|
226
223
|
summary: Trocla a simple password generator and storage
|
227
224
|
test_files: []
|
228
|
-
|