autosign 0.0.10 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NzA1MDhlMDIzMDk5ZmI5Yjg4Zjk0NjgyN2ViYmVlYTljMTAwZWQyOQ==
5
- data.tar.gz: !binary |-
6
- ODU1M2JjMDFmZjk2NWNmZDE4ZmQ0MWI3YjAzODM3NzM3NDQ1YzJjNA==
2
+ SHA1:
3
+ metadata.gz: b6010183f4da71291508ea4f925737ae89c45169
4
+ data.tar.gz: 6169885297a1d91f0ff3dbe7ca14bf3c99515ae7
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MTRkZTM3M2FmZTdjNGFiOGVlZTBmNmFhODYwNGQxY2NjZjlkMWEzNTljZTg3
10
- ZTYxYmFiODhmMDVlMmM5ZjU3MjE0NDNkYjAzNGMzYzI4MzkwNDkzMmZkOWRj
11
- ZjYxNzdkMmVkZTE5MGVkN2ZiN2RhMTU2MDEyNGM0NGU5Y2UzOTA=
12
- data.tar.gz: !binary |-
13
- MGQ3NWJjN2Q4MzJmMGJkODQwNzNhYzE3ZWNhNjBhMWY0ODFlNjRlNWVmNzZk
14
- MmM5ZmE1MDVlOTUyYWY3MzQwNjA3NGQ4ZDJhY2ViNjBlN2M1Nzk0Y2NjYzYz
15
- NTAyYTZhOTFiOWI5OTA4OTI2NzE2NmU4ZWYwMmNjMmM4YTczNjI=
6
+ metadata.gz: 4d9e3f72753419191df24ba15c143ccdc7b95329ffbc699a45feb7ee7b14b61b3d223ecf2a751e91f6dcf3c59ee59af3edd43227d9277e7d86df271969a46683
7
+ data.tar.gz: e33a42eacf745a1fd54b3a38d76f8d2cb68911e2e0e6793e2af26d79c84ae3b6430bed39d59cd8c37f530dbaa831d50810e4b2de39843c47f71342dd46e23019
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  html
2
2
  doc
3
+ .bundle
3
4
  .vagrant
4
5
  .yardoc
5
6
  autosign.conf
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- autosign (0.0.10)
4
+ autosign (0.1.0)
5
5
  deep_merge (~> 1)
6
6
  gli (~> 2)
7
7
  iniparse (~> 1)
@@ -16,40 +16,42 @@ GEM
16
16
  remote: https://rubygems.org/
17
17
  specs:
18
18
  CFPropertyList (2.2.8)
19
- aruba (0.8.1)
20
- childprocess (~> 0.5.6)
21
- contracts (~> 0.9)
22
- cucumber (>= 1.3.19)
23
- rspec-expectations (>= 2.99)
19
+ aruba (0.6.2)
20
+ childprocess (>= 0.3.6)
21
+ cucumber (>= 1.1.1)
22
+ rspec-expectations (>= 2.7.0)
24
23
  builder (3.2.2)
25
24
  childprocess (0.5.6)
26
25
  ffi (~> 1.0, >= 1.0.11)
27
- contracts (0.10.1)
26
+ coderay (1.1.0)
28
27
  coveralls (0.8.2)
29
28
  json (~> 1.8)
30
29
  rest-client (>= 1.6.8, < 2)
31
30
  simplecov (~> 0.10.0)
32
31
  term-ansicolor (~> 1.3)
33
32
  thor (~> 0.19.1)
34
- cucumber (2.0.2)
33
+ cucumber (2.0.0)
35
34
  builder (>= 2.1.2)
36
- cucumber-core (~> 1.2.0)
35
+ cucumber-core (~> 1.1.3)
37
36
  diff-lcs (>= 1.1.3)
38
37
  gherkin (~> 2.12)
39
38
  multi_json (>= 1.7.5, < 2.0)
40
39
  multi_test (>= 0.1.2)
41
- cucumber-core (1.2.0)
40
+ cucumber-core (1.1.3)
42
41
  gherkin (~> 2.12.0)
43
42
  deep_merge (1.0.1)
44
43
  diff-lcs (1.2.5)
45
44
  docile (1.1.5)
46
45
  domain_name (0.5.24)
47
46
  unf (>= 0.0.5, < 1.0.0)
48
- facter (2.4.4)
47
+ facter (2.2.0)
49
48
  CFPropertyList (~> 2.2.6)
50
- ffi (1.9.10)
49
+ ffi (1.9.9)
50
+ ffi (1.9.9-java)
51
51
  gherkin (2.12.2)
52
52
  multi_json (~> 1.3)
53
+ gherkin (2.12.2-java)
54
+ multi_json (~> 1.3)
53
55
  gli (2.13.1)
54
56
  hiera (1.3.4)
55
57
  json_pure
@@ -57,17 +59,28 @@ GEM
57
59
  domain_name (~> 0.5)
58
60
  iniparse (1.4.0)
59
61
  json (1.8.3)
60
- json_pure (1.8.2)
62
+ json (1.8.3-java)
63
+ json_pure (1.8.1)
61
64
  jwt (1.5.1)
62
65
  little-plugger (1.1.3)
63
66
  logging (2.0.0)
64
67
  little-plugger (~> 1.1)
65
68
  multi_json (~> 1.10)
69
+ method_source (0.8.2)
66
70
  mime-types (2.6.1)
67
- multi_json (1.11.2)
71
+ multi_json (1.11.1)
68
72
  multi_test (0.1.2)
69
73
  netrc (0.10.3)
70
- puppet (3.8.1)
74
+ pry (0.10.2)
75
+ coderay (~> 1.1.0)
76
+ method_source (~> 0.8.1)
77
+ slop (~> 3.4)
78
+ pry (0.10.2-java)
79
+ coderay (~> 1.1.0)
80
+ method_source (~> 0.8.1)
81
+ slop (~> 3.4)
82
+ spoon (~> 0.0)
83
+ puppet (3.7.0)
71
84
  facter (> 1.6, < 3)
72
85
  hiera (~> 1.0)
73
86
  json_pure
@@ -83,12 +96,12 @@ GEM
83
96
  rspec-core (~> 3.3.0)
84
97
  rspec-expectations (~> 3.3.0)
85
98
  rspec-mocks (~> 3.3.0)
86
- rspec-core (3.3.2)
99
+ rspec-core (3.3.1)
87
100
  rspec-support (~> 3.3.0)
88
- rspec-expectations (3.3.1)
101
+ rspec-expectations (3.3.0)
89
102
  diff-lcs (>= 1.2.0, < 2.0)
90
103
  rspec-support (~> 3.3.0)
91
- rspec-mocks (3.3.2)
104
+ rspec-mocks (3.3.1)
92
105
  diff-lcs (>= 1.2.0, < 2.0)
93
106
  rspec-support (~> 3.3.0)
94
107
  rspec-support (3.3.0)
@@ -98,16 +111,21 @@ GEM
98
111
  json (~> 1.8)
99
112
  simplecov-html (~> 0.10.0)
100
113
  simplecov-html (0.10.0)
114
+ slop (3.6.0)
115
+ spoon (0.0.4)
116
+ ffi
101
117
  term-ansicolor (1.3.2)
102
118
  tins (~> 1.0)
103
119
  thor (0.19.1)
104
120
  tins (1.5.4)
105
121
  unf (0.1.4)
106
122
  unf_ext
123
+ unf (0.1.4-java)
107
124
  unf_ext (0.0.7.1)
108
125
  yard (0.8.7.6)
109
126
 
110
127
  PLATFORMS
128
+ java
111
129
  ruby
112
130
 
113
131
  DEPENDENCIES
@@ -115,6 +133,7 @@ DEPENDENCIES
115
133
  autosign!
116
134
  coveralls
117
135
  cucumber (~> 2)
136
+ pry (~> 0.10)
118
137
  puppet (~> 3)
119
138
  rake (~> 10)
120
139
  rdoc (~> 4)
data/autosign.gemspec CHANGED
@@ -3,11 +3,11 @@ require File.join([File.dirname(__FILE__),'lib','autosign','version.rb'])
3
3
  spec = Gem::Specification.new do |s|
4
4
  s.name = 'autosign'
5
5
  s.version = Autosign::VERSION
6
- s.author = 'Your Name Here'
7
- s.email = 'your@email.address.com'
8
- s.homepage = 'http://your.website.com'
6
+ s.author = 'Daniel Dreier'
7
+ s.email = 'ddreier@thinkplango.com'
8
+ s.homepage = 'https://github.com/danieldreier/autosign'
9
9
  s.platform = Gem::Platform::RUBY
10
- s.summary = 'A description of your project'
10
+ s.summary = 'Tooling to make puppet autosigning easy, secure, and extensible'
11
11
  s.files = `git ls-files`.split("
12
12
  ")
13
13
  s.require_paths << 'lib'
@@ -23,6 +23,7 @@ spec = Gem::Specification.new do |s|
23
23
  s.add_development_dependency('puppet', '~> 3')
24
24
  s.add_development_dependency('rspec', '~> 3')
25
25
  s.add_development_dependency('coveralls')
26
+ s.add_development_dependency('pry', '~> 0.10')
26
27
  s.add_runtime_dependency('gli','~> 2')
27
28
  s.add_runtime_dependency('jwt','~> 1')
28
29
  s.add_runtime_dependency('iniparse','~> 1')
data/bin/autosign CHANGED
@@ -42,6 +42,9 @@ command :generate do |c|
42
42
  c.desc 'Generate a reusable token; default is to generate one-time tokens'
43
43
  c.switch [:r, :reusable]
44
44
 
45
+ c.desc 'Output only a bare token without the surrounding csr_attributes template'
46
+ c.switch [:b, :bare]
47
+
45
48
  c.desc 'autosign token validity period'
46
49
  c.default_value '7200'
47
50
  c.arg_name 'seconds'
@@ -58,12 +61,17 @@ command :generate do |c|
58
61
 
59
62
  help_now!('validfor setting must be an positive integer number of seconds') if !/\A\d+\z/.match(options['validfor'].to_s)
60
63
  token = Autosign::Token.new(certname, options['reusable'], options['validfor'].to_i, Socket.gethostname.to_s, global_options['secret'])
61
- @logger.info "generated token for: " + certname
62
- puts "Autosign token for: " + token.certname + ", valid until: " + Time.at(token.validto).to_s
63
- puts "To use the token, put the following in ${puppet_confdir}/csr_attributes.yaml prior to running puppet agent for the first time:"
64
- puts ""
65
- puts "custom_attributes:"
66
- puts " challengePassword: \"#{token.sign.to_s}\""
64
+
65
+ if options[:bare]
66
+ puts token.sign.to_s
67
+ else
68
+ @logger.info "generated token for: " + certname
69
+ puts "Autosign token for: " + token.certname + ", valid until: " + Time.at(token.validto).to_s
70
+ puts "To use the token, put the following in ${puppet_confdir}/csr_attributes.yaml prior to running puppet agent for the first time:"
71
+ puts ""
72
+ puts "custom_attributes:"
73
+ puts " challengePassword: \"#{token.sign.to_s}\""
74
+ end
67
75
  end
68
76
  end
69
77
 
@@ -19,6 +19,23 @@ Feature: Generate autosign key
19
19
  And the output should contain "valid until"
20
20
  And the exit status should be 0
21
21
 
22
+ Scenario: Generate new token using the --bare flag
23
+ Given a pre-shared key of "secret"
24
+ And a hostname of "foo.example.com"
25
+ And a file named "autosign.conf" with:
26
+ """
27
+ ---
28
+ jwt_token:
29
+ validity: '7200'
30
+ secret: 'secret'
31
+ """
32
+ When I run `chmod 600 autosign.conf`
33
+ And I run `autosign --config autosign.conf generate --bare foo.example.com`
34
+ Then the output should be a JSON web token
35
+ And the output should not contain "Autosign token for: foo.example.com"
36
+ And the output should not contain "valid until"
37
+ And the exit status should be 0
38
+
22
39
  Scenario: Generate new reusable token
23
40
  Given a pre-shared key of "secret"
24
41
  And a hostname of "foo.example.com"
@@ -23,7 +23,8 @@ module Autosign
23
23
  end
24
24
 
25
25
  # extract challenge password
26
- challenge_password = csr.attributes.select { |a| a.oid == 'challengePassword' }.first.value.value.first.value.to_s
26
+
27
+ challenge_password = csr.attributes.find { |a| a.oid == 'challengePassword' }.value.value.first.value.to_s
27
28
 
28
29
  # extract common name
29
30
  common_name = /^\/CN=(\S*)$/.match(csr.subject.to_s)[1]
@@ -142,16 +142,14 @@ module Autosign
142
142
  rescue
143
143
  raise Autosign::Token::Invalid
144
144
  end
145
- certname = JSON.parse(decoded["data"])["certname"]
146
- requester = JSON.parse(decoded["data"])["requester"]
147
- reusable = JSON.parse(decoded["data"])["reusable"]
148
- validfor = JSON.parse(decoded["data"])["validfor"]
145
+ cert_data = JSON.parse(decoded["data"])
146
+ new_token = self.new(cert_data["certname"], cert_data["reusable"], cert_data["validfor"],
147
+ cert_data["requester"], hmac_secret)
149
148
 
150
- new_token = self.new(certname, reusable, validfor, requester, hmac_secret)
151
149
  new_token.validto = self.token_validto(token, hmac_secret)
152
- new_token.uuid = JSON.parse(decoded["data"])["uuid"]
150
+ new_token.uuid = cert_data["uuid"]
153
151
 
154
- return new_token
152
+ new_token
155
153
  end
156
154
 
157
155
  # Extract the expiration time, in seconds since epoch, from a signed token. Uses HMAC secret to validate the expiration time.
@@ -86,11 +86,7 @@ module Autosign
86
86
  # or an empty array if none are specified.
87
87
  # @return [Array] of policy executables.
88
88
  def policy_executables
89
- return [] if settings['external_policy_executable'].nil?
90
- exec_list = settings['external_policy_executable']
91
- return [exec_list] if exec_list.is_a?(String)
92
- return exec_list if exec_list.is_a?(Array)
93
- return []
89
+ Array(settings['external_policy_executable'])
94
90
  end
95
91
 
96
92
 
@@ -32,11 +32,7 @@ module Autosign
32
32
  end
33
33
 
34
34
  def password_list
35
- return [] if settings['password'].nil?
36
- passwords = settings['password']
37
- return [passwords] if passwords.is_a?(String)
38
- return passwords if passwords.is_a?(Array)
39
- return []
35
+ Array(settings['password'])
40
36
  end
41
37
 
42
38
  def validate_settings(settings)
@@ -1,3 +1,3 @@
1
1
  module Autosign
2
- VERSION = '0.0.10'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,250 +1,264 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autosign
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
- - Your Name Here
7
+ - Daniel Dreier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-21 00:00:00.000000000 Z
11
+ date: 2015-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '10'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '10'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rdoc
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '4'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '4'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: aruba
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0.6'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.6'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: cucumber
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '2'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: puppet
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '3'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: coveralls
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.10'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.10'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: gli
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - ~>
129
+ - - "~>"
116
130
  - !ruby/object:Gem::Version
117
131
  version: '2'
118
132
  type: :runtime
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - ~>
136
+ - - "~>"
123
137
  - !ruby/object:Gem::Version
124
138
  version: '2'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: jwt
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - ~>
143
+ - - "~>"
130
144
  - !ruby/object:Gem::Version
131
145
  version: '1'
132
146
  type: :runtime
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - ~>
150
+ - - "~>"
137
151
  - !ruby/object:Gem::Version
138
152
  version: '1'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: iniparse
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
- - - ~>
157
+ - - "~>"
144
158
  - !ruby/object:Gem::Version
145
159
  version: '1'
146
160
  type: :runtime
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
- - - ~>
164
+ - - "~>"
151
165
  - !ruby/object:Gem::Version
152
166
  version: '1'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: logging
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
- - - ~>
171
+ - - "~>"
158
172
  - !ruby/object:Gem::Version
159
173
  version: '2'
160
174
  type: :runtime
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
- - - ~>
178
+ - - "~>"
165
179
  - !ruby/object:Gem::Version
166
180
  version: '2'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: json
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
- - - ~>
185
+ - - "~>"
172
186
  - !ruby/object:Gem::Version
173
187
  version: '1'
174
188
  type: :runtime
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
- - - ~>
192
+ - - "~>"
179
193
  - !ruby/object:Gem::Version
180
194
  version: '1'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: deep_merge
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
- - - ~>
199
+ - - "~>"
186
200
  - !ruby/object:Gem::Version
187
201
  version: '1'
188
202
  type: :runtime
189
203
  prerelease: false
190
204
  version_requirements: !ruby/object:Gem::Requirement
191
205
  requirements:
192
- - - ~>
206
+ - - "~>"
193
207
  - !ruby/object:Gem::Version
194
208
  version: '1'
195
209
  - !ruby/object:Gem::Dependency
196
210
  name: require_all
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
- - - ~>
213
+ - - "~>"
200
214
  - !ruby/object:Gem::Version
201
215
  version: '1'
202
216
  type: :runtime
203
217
  prerelease: false
204
218
  version_requirements: !ruby/object:Gem::Requirement
205
219
  requirements:
206
- - - ~>
220
+ - - "~>"
207
221
  - !ruby/object:Gem::Version
208
222
  version: '1'
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: yard
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
- - - ~>
227
+ - - "~>"
214
228
  - !ruby/object:Gem::Version
215
229
  version: '0.8'
216
230
  type: :runtime
217
231
  prerelease: false
218
232
  version_requirements: !ruby/object:Gem::Requirement
219
233
  requirements:
220
- - - ~>
234
+ - - "~>"
221
235
  - !ruby/object:Gem::Version
222
236
  version: '0.8'
223
237
  - !ruby/object:Gem::Dependency
224
238
  name: safe_yaml
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
- - - ~>
241
+ - - "~>"
228
242
  - !ruby/object:Gem::Version
229
243
  version: '1'
230
244
  type: :runtime
231
245
  prerelease: false
232
246
  version_requirements: !ruby/object:Gem::Requirement
233
247
  requirements:
234
- - - ~>
248
+ - - "~>"
235
249
  - !ruby/object:Gem::Version
236
250
  version: '1'
237
251
  description:
238
- email: your@email.address.com
252
+ email: ddreier@thinkplango.com
239
253
  executables:
240
254
  - autosign
241
255
  - autosign-validator
242
256
  extensions: []
243
257
  extra_rdoc_files: []
244
258
  files:
245
- - .gitignore
246
- - .rspec
247
- - .travis.yml
259
+ - ".gitignore"
260
+ - ".rspec"
261
+ - ".travis.yml"
248
262
  - Gemfile
249
263
  - Gemfile.lock
250
264
  - README.md
@@ -274,33 +288,33 @@ files:
274
288
  - spec/specs/token_spec.rb
275
289
  - spec/specs/validators/jwt_spec.rb
276
290
  - spec/specs/validators/passwordlist_spec.rb
277
- homepage: http://your.website.com
291
+ homepage: https://github.com/danieldreier/autosign
278
292
  licenses: []
279
293
  metadata: {}
280
294
  post_install_message:
281
295
  rdoc_options:
282
- - --title
296
+ - "--title"
283
297
  - autosign
284
- - --main
298
+ - "--main"
285
299
  - README.rdoc
286
- - -ri
300
+ - "-ri"
287
301
  require_paths:
288
302
  - lib
289
303
  - lib
290
304
  required_ruby_version: !ruby/object:Gem::Requirement
291
305
  requirements:
292
- - - ! '>='
306
+ - - ">="
293
307
  - !ruby/object:Gem::Version
294
308
  version: '0'
295
309
  required_rubygems_version: !ruby/object:Gem::Requirement
296
310
  requirements:
297
- - - ! '>='
311
+ - - ">="
298
312
  - !ruby/object:Gem::Version
299
313
  version: '0'
300
314
  requirements: []
301
315
  rubyforge_project:
302
- rubygems_version: 2.4.5
316
+ rubygems_version: 2.2.2
303
317
  signing_key:
304
318
  specification_version: 4
305
- summary: A description of your project
319
+ summary: Tooling to make puppet autosigning easy, secure, and extensible
306
320
  test_files: []