puppet 6.3.0-universal-darwin → 6.4.0-universal-darwin

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/CODEOWNERS +30 -0
  3. data/Gemfile.lock +9 -9
  4. data/lib/puppet.rb +13 -0
  5. data/lib/puppet/application/agent.rb +8 -12
  6. data/lib/puppet/application/device.rb +2 -3
  7. data/lib/puppet/application/filebucket.rb +6 -1
  8. data/lib/puppet/application/ssl.rb +102 -55
  9. data/lib/puppet/configurer.rb +8 -7
  10. data/lib/puppet/defaults.rb +3 -1
  11. data/lib/puppet/file_system.rb +24 -4
  12. data/lib/puppet/file_system/file_impl.rb +25 -0
  13. data/lib/puppet/file_system/jruby.rb +23 -0
  14. data/lib/puppet/file_system/windows.rb +84 -0
  15. data/lib/puppet/indirector/rest.rb +4 -2
  16. data/lib/puppet/loaders.rb +1 -0
  17. data/lib/puppet/network/http.rb +1 -0
  18. data/lib/puppet/network/http/base_pool.rb +18 -0
  19. data/lib/puppet/network/http/connection.rb +49 -17
  20. data/lib/puppet/network/http/nocache_pool.rb +9 -4
  21. data/lib/puppet/network/http/pool.rb +10 -11
  22. data/lib/puppet/network/http/session.rb +3 -2
  23. data/lib/puppet/network/http_pool.rb +32 -0
  24. data/lib/puppet/pops/loader/generic_plan_instantiator.rb +28 -0
  25. data/lib/puppet/pops/loader/loader_paths.rb +46 -10
  26. data/lib/puppet/pops/loader/module_loaders.rb +10 -3
  27. data/lib/puppet/provider/file/windows.rb +49 -1
  28. data/lib/puppet/provider/package/windows.rb +5 -1
  29. data/lib/puppet/reports/http.rb +2 -1
  30. data/lib/puppet/rest/client.rb +7 -3
  31. data/lib/puppet/rest/routes.rb +9 -44
  32. data/lib/puppet/ssl.rb +6 -0
  33. data/lib/puppet/ssl/error.rb +26 -0
  34. data/lib/puppet/ssl/host.rb +9 -92
  35. data/lib/puppet/ssl/ssl_context.rb +30 -0
  36. data/lib/puppet/ssl/ssl_provider.rb +232 -0
  37. data/lib/puppet/ssl/state_machine.rb +261 -0
  38. data/lib/puppet/ssl/validator.rb +1 -0
  39. data/lib/puppet/ssl/validator/default_validator.rb +1 -0
  40. data/lib/puppet/ssl/validator/no_validator.rb +2 -0
  41. data/lib/puppet/ssl/verifier.rb +134 -0
  42. data/lib/puppet/ssl/verifier_adapter.rb +48 -0
  43. data/lib/puppet/test/test_helper.rb +2 -1
  44. data/lib/puppet/type/exec.rb +30 -6
  45. data/lib/puppet/type/file/mode.rb +6 -1
  46. data/lib/puppet/type/file/source.rb +2 -2
  47. data/lib/puppet/type/filebucket.rb +12 -8
  48. data/lib/puppet/type/user.rb +14 -1
  49. data/lib/puppet/util/connection.rb +10 -5
  50. data/lib/puppet/util/feature.rb +11 -2
  51. data/lib/puppet/util/http_proxy.rb +3 -2
  52. data/lib/puppet/util/pidlock.rb +1 -1
  53. data/lib/puppet/util/ssl.rb +1 -10
  54. data/lib/puppet/util/windows/security.rb +29 -8
  55. data/lib/puppet/version.rb +1 -1
  56. data/lib/puppet/x509.rb +7 -0
  57. data/lib/puppet/x509/cert_provider.rb +286 -0
  58. data/lib/puppet/x509/pem_store.rb +55 -0
  59. data/locales/ja/puppet.po +740 -590
  60. data/locales/puppet.pot +433 -208
  61. data/man/man5/puppet.conf.5 +6 -3
  62. data/man/man8/puppet-agent.8 +1 -1
  63. data/man/man8/puppet-apply.8 +1 -1
  64. data/man/man8/puppet-catalog.8 +1 -1
  65. data/man/man8/puppet-config.8 +1 -1
  66. data/man/man8/puppet-describe.8 +1 -1
  67. data/man/man8/puppet-device.8 +1 -1
  68. data/man/man8/puppet-doc.8 +1 -1
  69. data/man/man8/puppet-epp.8 +1 -1
  70. data/man/man8/puppet-facts.8 +1 -1
  71. data/man/man8/puppet-filebucket.8 +6 -2
  72. data/man/man8/puppet-generate.8 +1 -1
  73. data/man/man8/puppet-help.8 +1 -1
  74. data/man/man8/puppet-key.8 +1 -1
  75. data/man/man8/puppet-lookup.8 +1 -1
  76. data/man/man8/puppet-man.8 +1 -1
  77. data/man/man8/puppet-module.8 +1 -1
  78. data/man/man8/puppet-node.8 +1 -1
  79. data/man/man8/puppet-parser.8 +1 -1
  80. data/man/man8/puppet-plugin.8 +1 -1
  81. data/man/man8/puppet-report.8 +1 -1
  82. data/man/man8/puppet-resource.8 +1 -1
  83. data/man/man8/puppet-script.8 +1 -1
  84. data/man/man8/puppet-ssl.8 +5 -1
  85. data/man/man8/puppet-status.8 +1 -1
  86. data/man/man8/puppet.8 +2 -2
  87. data/spec/fixtures/ssl/127.0.0.1-key.pem +67 -0
  88. data/spec/fixtures/ssl/127.0.0.1.pem +48 -0
  89. data/spec/fixtures/ssl/bad-basic-constraints.pem +59 -0
  90. data/spec/fixtures/ssl/bad-int-basic-constraints.pem +59 -0
  91. data/spec/fixtures/ssl/ca.pem +59 -0
  92. data/spec/fixtures/ssl/crl.pem +30 -0
  93. data/spec/fixtures/ssl/encrypted-key.pem +70 -0
  94. data/spec/fixtures/ssl/intermediate-agent-crl.pem +31 -0
  95. data/spec/fixtures/ssl/intermediate-agent.pem +60 -0
  96. data/spec/fixtures/ssl/intermediate-crl.pem +36 -0
  97. data/spec/fixtures/ssl/intermediate.pem +60 -0
  98. data/spec/fixtures/ssl/netlock-arany-utf8.pem +23 -0
  99. data/spec/fixtures/ssl/pluto-key.pem +67 -0
  100. data/spec/fixtures/ssl/pluto.pem +44 -0
  101. data/spec/fixtures/ssl/request-key.pem +67 -0
  102. data/spec/fixtures/ssl/request.pem +39 -0
  103. data/spec/fixtures/ssl/revoked-key.pem +67 -0
  104. data/spec/fixtures/ssl/revoked.pem +44 -0
  105. data/spec/fixtures/ssl/signed-key.pem +67 -0
  106. data/spec/fixtures/ssl/signed.pem +44 -0
  107. data/spec/fixtures/ssl/tampered-cert.pem +44 -0
  108. data/spec/fixtures/ssl/tampered-csr.pem +39 -0
  109. data/spec/integration/network/http_pool_spec.rb +222 -0
  110. data/spec/integration/provider/file/windows_spec.rb +162 -0
  111. data/spec/integration/rest/client_spec.rb +73 -0
  112. data/spec/integration/type/file_spec.rb +0 -19
  113. data/spec/lib/puppet/test_ca.rb +87 -50
  114. data/spec/lib/puppet_spec/fixtures.rb +20 -0
  115. data/spec/lib/puppet_spec/https.rb +84 -0
  116. data/spec/unit/application/agent_spec.rb +29 -30
  117. data/spec/unit/application/device_spec.rb +12 -49
  118. data/spec/unit/application/ssl_spec.rb +24 -38
  119. data/spec/unit/configurer_spec.rb +11 -11
  120. data/spec/unit/file_system/uniquefile_spec.rb +6 -0
  121. data/spec/unit/file_system_spec.rb +214 -0
  122. data/spec/unit/indirector/rest_spec.rb +3 -3
  123. data/spec/unit/network/http/connection_spec.rb +30 -90
  124. data/spec/unit/network/http/factory_spec.rb +1 -0
  125. data/spec/unit/network/http/nocache_pool_spec.rb +8 -8
  126. data/spec/unit/network/http/pool_spec.rb +63 -33
  127. data/spec/unit/network/http/session_spec.rb +8 -1
  128. data/spec/unit/network/http_pool_spec.rb +36 -0
  129. data/spec/unit/pops/loaders/loader_spec.rb +26 -1
  130. data/spec/unit/provider/package/windows_spec.rb +12 -1
  131. data/spec/unit/reports/http_spec.rb +7 -7
  132. data/spec/unit/rest/client_spec.rb +4 -6
  133. data/spec/unit/ssl/host_spec.rb +39 -33
  134. data/spec/unit/ssl/ssl_provider_spec.rb +428 -0
  135. data/spec/unit/ssl/state_machine_spec.rb +502 -0
  136. data/spec/unit/ssl/verifier_spec.rb +123 -0
  137. data/spec/unit/type/exec_spec.rb +63 -0
  138. data/spec/unit/type/file/source_spec.rb +5 -5
  139. data/spec/unit/type/filebucket_spec.rb +8 -6
  140. data/spec/unit/util/feature_spec.rb +2 -2
  141. data/spec/unit/util/storage_spec.rb +19 -19
  142. data/spec/unit/x509/cert_provider_spec.rb +527 -0
  143. data/spec/unit/x509/pem_store_spec.rb +160 -0
  144. data/tasks/generate_cert_fixtures.rake +158 -0
  145. metadata +78 -4
  146. data/MAINTAINERS +0 -47
  147. data/lib/puppet/rest/ssl_context.rb +0 -13
@@ -0,0 +1,160 @@
1
+ # coding: utf-8
2
+ require 'spec_helper'
3
+ require 'puppet/x509'
4
+
5
+ class Puppet::X509::TestPemStore
6
+ include Puppet::X509::PemStore
7
+ end
8
+
9
+ describe Puppet::X509::PemStore do
10
+ include PuppetSpec::Files
11
+
12
+ let(:subject) { Puppet::X509::TestPemStore.new }
13
+
14
+ def with_unreadable_file
15
+ path = tmpfile('pem_store')
16
+ Puppet::FileSystem.touch(path)
17
+ Puppet::FileSystem.chmod(0, path)
18
+ yield path
19
+ ensure
20
+ Puppet::FileSystem.chmod(0600, path)
21
+ end
22
+
23
+ def with_unwritable_file(&block)
24
+ if Puppet::Util::Platform.windows?
25
+ with_unwritable_file_win32(&block)
26
+ else
27
+ with_unwritable_file_posix(&block)
28
+ end
29
+ end
30
+
31
+ def with_unwritable_file_win32
32
+ dir = tmpdir('pem_store')
33
+ path = File.join(dir, 'unwritable')
34
+
35
+ # if file handle is open, then file can't be written by other processes
36
+ File.open(path, 'w') do |f|
37
+ yield path
38
+ end
39
+ end
40
+
41
+ def with_unwritable_file_posix
42
+ dir = tmpdir('pem_store')
43
+ path = File.join(dir, 'unwritable')
44
+ # if directory is not executable/traverseable, then file can't be written to
45
+ Puppet::FileSystem.chmod(0, dir)
46
+ begin
47
+ yield path
48
+ ensure
49
+ Puppet::FileSystem.chmod(0700, dir)
50
+ end
51
+ end
52
+
53
+ let(:cert_path) { File.join(PuppetSpec::FIXTURE_DIR, 'ssl', 'netlock-arany-utf8.pem') }
54
+
55
+ context 'loading' do
56
+ it 'returns nil if it does not exist' do
57
+ expect(subject.load_pem('/does/not/exist')).to be_nil
58
+ end
59
+
60
+ it 'returns the file content as UTF-8' do
61
+ expect(
62
+ subject.load_pem(cert_path)
63
+ ).to match(/\ANetLock Arany \(Class Gold\) Főtanúsítvány/)
64
+ end
65
+
66
+ it 'raises EACCES if the file is unreadable' do
67
+ with_unreadable_file do |path|
68
+ expect {
69
+ subject.load_pem(path)
70
+ }.to raise_error(Errno::EACCES, /Permission denied/)
71
+ end
72
+ end
73
+ end
74
+
75
+ context 'saving' do
76
+ let(:path) { tmpfile('pem_store') }
77
+
78
+ it 'writes the file content as UTF-8' do
79
+ # read the file directly to preserve the comments
80
+ utf8 = File.read(cert_path, encoding: 'UTF-8')
81
+
82
+ subject.save_pem(utf8, path)
83
+
84
+ expect(
85
+ File.read(path, :encoding => 'UTF-8')
86
+ ).to match(/\ANetLock Arany \(Class Gold\) Főtanúsítvány/)
87
+ end
88
+
89
+ it 'never changes the owner and group on Windows', if: Puppet::Util::Platform.windows? do
90
+ FileUtils.expects(:chown).never
91
+
92
+ subject.save_pem('PEM', path, owner: 'Administrator', group: 'None')
93
+ end
94
+
95
+ it 'changes the owner and group when running as root', unless: Puppet::Util::Platform.windows? do
96
+ Puppet.features.stubs(:root?).returns(true)
97
+ FileUtils.expects(:chown).with('root', 'root', path)
98
+
99
+ subject.save_pem('PEM', path, owner: 'root', group: 'root')
100
+ end
101
+
102
+ it 'does not change owner and group when running not as roo', unless: Puppet::Util::Platform.windows? do
103
+ Puppet.features.stubs(:root?).returns(false)
104
+ FileUtils.expects(:chown).never
105
+
106
+ subject.save_pem('PEM', path, owner: 'root', group: 'root')
107
+ end
108
+
109
+ it 'allows a mode of 0600 to be specified', unless: Puppet::Util::Platform.windows? do
110
+ subject.save_pem('PEM', path, mode: 0600)
111
+
112
+ expect(File.stat(path).mode & 0777).to eq(0600)
113
+ end
114
+
115
+ it 'defaults the mode to 0644' do
116
+ subject.save_pem('PEM', path)
117
+
118
+ expect(File.stat(path).mode & 0777).to eq(0644)
119
+ end
120
+
121
+ it 'raises EACCES if the file is unwritable' do
122
+ with_unwritable_file do |path|
123
+ expect {
124
+ subject.save_pem('', path)
125
+ }.to raise_error(Errno::EACCES, /Permission denied/)
126
+ end
127
+ end
128
+
129
+ it 'raises if the directory does not exist' do
130
+ dir = tmpdir('pem_store')
131
+ Dir.unlink(dir)
132
+
133
+ expect {
134
+ subject.save_pem('', File.join(dir, 'something'))
135
+ }.to raise_error(Errno::ENOENT, /No such file or directory/)
136
+ end
137
+ end
138
+
139
+ context 'deleting' do
140
+ it 'returns false if the file does not exist' do
141
+ expect(subject.delete_pem('/does/not/exist')).to eq(false)
142
+ end
143
+
144
+ it 'returns true if the file exists' do
145
+ path = tmpfile('pem_store')
146
+ FileUtils.touch(path)
147
+
148
+ expect(subject.delete_pem(path)).to eq(true)
149
+ expect(File).to_not be_exist(path)
150
+ end
151
+
152
+ it 'raises EACCES if the file is undeletable' do
153
+ with_unwritable_file do |path|
154
+ expect {
155
+ subject.delete_pem(path)
156
+ }.to raise_error(Errno::EACCES, /Permission denied/)
157
+ end
158
+ end
159
+ end
160
+ end
@@ -0,0 +1,158 @@
1
+ # Run this rake task to generate cert fixtures used in unit tests. This should
2
+ # be run whenever new fixtures are required that derive from the existing ones
3
+ # such as to add an extension to client certs, change expiration, etc. All
4
+ # regenerated fixtures should be committed together.
5
+ desc "Generate cert test fixtures"
6
+ task(:gen_cert_fixtures) do
7
+ $LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), '../spec/lib'))
8
+ require 'puppet/test_ca'
9
+
10
+ def save(dir, name, x509)
11
+ path = File.join(dir, name)
12
+ puts "Generating #{path}"
13
+ File.open(path, 'w') do |f|
14
+ f.write(x509.to_text)
15
+ text = if block_given?
16
+ yield x509
17
+ else
18
+ x509.to_pem
19
+ end
20
+
21
+ f.write(text)
22
+ end
23
+ end
24
+
25
+ # This task generates a PKI consisting of a root CA, intermediate CA and
26
+ # several leaf certs. A CRL is generated for each CA. The root CA CRL is
27
+ # empty, while the intermediate CA CRL contains the revoked cert's serial
28
+ # number. A textual representation of each X509 object is included in the
29
+ # fixture as a comment.
30
+ #
31
+ # Certs
32
+ # =====
33
+ #
34
+ # ca.pem /CN=Test CA
35
+ # |
36
+ # intermediate.pem +- /CN=Test CA Subauthority
37
+ # | |
38
+ # signed.pem | +- /CN=signed
39
+ # revoked.pem | +- /CN=revoked
40
+ # 127.0.0.1.pem | +- /CN=127.0.0.1 (with dns alt names)
41
+ # tampered.pem | +- /CN=signed (with different public key)
42
+ # |
43
+ # + /CN=Test CA Agent Subauthority
44
+ # | |
45
+ # pluto.pem | +- /CN=pluto
46
+ # |
47
+ # bad-int-basic-constraints.pem +- /CN=Test CA Subauthority (bad isCA constraint)
48
+ #
49
+ # bad-basic-constraints.pem /CN=Test CA (bad isCA constraint)
50
+ #
51
+ # Keys
52
+ # ====
53
+ #
54
+ # The RSA private key for each leaf cert is also generated. In addition,
55
+ # `encrypted-key.pem` contains the private key for the `signed` cert.
56
+ #
57
+ # Requests
58
+ # ========
59
+ #
60
+ # `request.pem` contains a valid CSR for /CN=pending, while `tampered_csr.pem`
61
+ # is the same as `request.pem`, but it's public key has been replaced.
62
+ #
63
+ ca = Puppet::TestCa.new
64
+ dir = File.join(RAKE_ROOT, 'spec/fixtures/ssl')
65
+
66
+ # Create Test CA & CRL
67
+ save(dir, 'ca.pem', ca.ca_cert)
68
+ save(dir, 'crl.pem', ca.ca_crl)
69
+
70
+ # Create Intermediate CA & CRL "Test CA Subauthority" issued by "Test CA"
71
+ inter = ca.create_intermediate_cert('Test CA Subauthority', ca.ca_cert, ca.key)
72
+ save(dir, 'intermediate.pem', inter[:cert])
73
+ inter_crl = ca.create_crl(inter[:cert], inter[:private_key])
74
+
75
+ # Create a leaf/entity key and cert for host "signed" and issued by "Test CA Subauthority"
76
+ signed = ca.create_cert('signed', inter[:cert], inter[:private_key])
77
+ save(dir, 'signed.pem', signed[:cert])
78
+ save(dir, 'signed-key.pem', signed[:private_key])
79
+
80
+ # Create an encrypted version of the above private key for host "signed"
81
+ save(dir, 'encrypted-key.pem', signed[:private_key]) do |x509|
82
+ # private key password was chosen at random
83
+ x509.to_pem(OpenSSL::Cipher::AES.new(128, :CBC), '74695716c8b6')
84
+ end
85
+
86
+ # Create an SSL cert for 127.0.0.1 with dns_alt_names
87
+ signed = ca.create_cert('127.0.0.1', ca.ca_cert, ca.key, subject_alt_names: 'DNS:127.0.0.1,DNS:127.0.0.2')
88
+ save(dir, '127.0.0.1.pem', signed[:cert])
89
+ save(dir, '127.0.0.1-key.pem', signed[:private_key])
90
+
91
+ # Create a leaf/entity key and cert for host "revoked", issued by "Test CA Subauthority"
92
+ # and revoke the cert
93
+ revoked = ca.create_cert('revoked', inter[:cert], inter[:private_key])
94
+ ca.revoke(revoked[:cert], inter_crl, inter[:private_key])
95
+ save(dir, 'revoked.pem', revoked[:cert])
96
+ save(dir, 'revoked-key.pem', revoked[:private_key])
97
+
98
+ # Update intermediate CRL now that we've revoked
99
+ save(dir, 'intermediate-crl.pem', inter_crl)
100
+
101
+ # Create a pending request (CSR) and private key for host "pending"
102
+ request = ca.create_request('pending')
103
+ save(dir, 'request.pem', request[:csr])
104
+ save(dir, 'request-key.pem', request[:private_key])
105
+
106
+ # Create an intermediate for agent certs
107
+ inter_agent = ca.create_intermediate_cert('Test CA Agent Subauthority', ca.ca_cert, ca.key)
108
+ save(dir, 'intermediate-agent.pem', inter_agent[:cert])
109
+ inter_agent_crl = ca.create_crl(inter_agent[:cert], inter_agent[:private_key])
110
+ save(dir, 'intermediate-agent-crl.pem', inter_agent_crl)
111
+
112
+ # Create a leaf/entity key and cert for host "pluto" and issued by "Test CA Agent Subauthority"
113
+ pluto = ca.create_cert('pluto', inter_agent[:cert], inter_agent[:private_key])
114
+ save(dir, 'pluto.pem', pluto[:cert])
115
+ save(dir, 'pluto-key.pem', pluto[:private_key])
116
+
117
+ # Create a new root CA cert, but change the "isCA" basic constraint.
118
+ # It should not be trusted to act as a CA.
119
+ badconstraints = ca.create_cacert('Test CA')[:cert]
120
+ badconstraints.public_key = ca.ca_cert.public_key
121
+ badconstraints.extensions = []
122
+ ca.ca_cert.extensions.each do |ext|
123
+ if ext.oid == 'basicConstraints'
124
+ ef = OpenSSL::X509::ExtensionFactory.new
125
+ badconstraints.add_extension(ef.create_extension("basicConstraints","CA:FALSE", true))
126
+ else
127
+ badconstraints.add_extension(ext)
128
+ end
129
+ end
130
+ badconstraints.sign(ca.key, OpenSSL::Digest::SHA256.new)
131
+ save(dir, 'bad-basic-constraints.pem', badconstraints)
132
+
133
+ # Same as above, but create a new intermediate CA
134
+ badintconstraints = inter[:cert].dup
135
+ badintconstraints.public_key = inter[:cert].public_key
136
+ badintconstraints.extensions = []
137
+ inter[:cert].extensions.each do |ext|
138
+ if ext.oid == 'basicConstraints'
139
+ ef = OpenSSL::X509::ExtensionFactory.new
140
+ badintconstraints.add_extension(ef.create_extension("basicConstraints","CA:FALSE", true))
141
+ else
142
+ badintconstraints.add_extension(ext)
143
+ end
144
+ end
145
+ badintconstraints.sign(ca.key, OpenSSL::Digest::SHA256.new)
146
+ save(dir, 'bad-int-basic-constraints.pem', badintconstraints)
147
+
148
+ # Create a request, but replace its public key after it's signed
149
+ tampered_csr = ca.create_request('signed')[:csr]
150
+ tampered_csr.public_key = OpenSSL::PKey::RSA.new(1024).public_key
151
+ save(dir, 'tampered-csr.pem', tampered_csr)
152
+
153
+ # Create a cert issued from the real intermediate CA, but replace its
154
+ # public key
155
+ tampered_cert = ca.create_cert('signed', inter[:cert], inter[:private_key])[:cert]
156
+ tampered_cert.public_key = OpenSSL::PKey::RSA.new(1024).public_key
157
+ save(dir, 'tampered-cert.pem', tampered_cert)
158
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.3.0
4
+ version: 6.4.0
5
5
  platform: universal-darwin
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-18 00:00:00.000000000 Z
11
+ date: 2019-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: facter
@@ -155,6 +155,7 @@ executables:
155
155
  extensions: []
156
156
  extra_rdoc_files: []
157
157
  files:
158
+ - CODEOWNERS
158
159
  - CODE_OF_CONDUCT.md
159
160
  - COMMITTERS.md
160
161
  - CONTRIBUTING.md
@@ -162,7 +163,6 @@ files:
162
163
  - Gemfile.lock
163
164
  - Guardfile.example
164
165
  - LICENSE
165
- - MAINTAINERS
166
166
  - README.md
167
167
  - Rakefile
168
168
  - bin/puppet
@@ -436,6 +436,7 @@ files:
436
436
  - lib/puppet/file_serving/terminus_selector.rb
437
437
  - lib/puppet/file_system.rb
438
438
  - lib/puppet/file_system/file_impl.rb
439
+ - lib/puppet/file_system/jruby.rb
439
440
  - lib/puppet/file_system/memory_file.rb
440
441
  - lib/puppet/file_system/memory_impl.rb
441
442
  - lib/puppet/file_system/path_pattern.rb
@@ -684,6 +685,7 @@ files:
684
685
  - lib/puppet/network/http/api/master/v3/authorization.rb
685
686
  - lib/puppet/network/http/api/master/v3/environment.rb
686
687
  - lib/puppet/network/http/api/master/v3/environments.rb
688
+ - lib/puppet/network/http/base_pool.rb
687
689
  - lib/puppet/network/http/compression.rb
688
690
  - lib/puppet/network/http/connection.rb
689
691
  - lib/puppet/network/http/error.rb
@@ -838,6 +840,7 @@ files:
838
840
  - lib/puppet/pops/loader/base_loader.rb
839
841
  - lib/puppet/pops/loader/dependency_loader.rb
840
842
  - lib/puppet/pops/loader/gem_support.rb
843
+ - lib/puppet/pops/loader/generic_plan_instantiator.rb
841
844
  - lib/puppet/pops/loader/loader.rb
842
845
  - lib/puppet/pops/loader/loader_paths.rb
843
846
  - lib/puppet/pops/loader/module_loaders.rb
@@ -1095,7 +1098,6 @@ files:
1095
1098
  - lib/puppet/rest/response.rb
1096
1099
  - lib/puppet/rest/route.rb
1097
1100
  - lib/puppet/rest/routes.rb
1098
- - lib/puppet/rest/ssl_context.rb
1099
1101
  - lib/puppet/scheduler.rb
1100
1102
  - lib/puppet/scheduler/job.rb
1101
1103
  - lib/puppet/scheduler/scheduler.rb
@@ -1131,12 +1133,18 @@ files:
1131
1133
  - lib/puppet/ssl/certificate_request_attributes.rb
1132
1134
  - lib/puppet/ssl/certificate_signer.rb
1133
1135
  - lib/puppet/ssl/digest.rb
1136
+ - lib/puppet/ssl/error.rb
1134
1137
  - lib/puppet/ssl/host.rb
1135
1138
  - lib/puppet/ssl/key.rb
1136
1139
  - lib/puppet/ssl/oids.rb
1140
+ - lib/puppet/ssl/ssl_context.rb
1141
+ - lib/puppet/ssl/ssl_provider.rb
1142
+ - lib/puppet/ssl/state_machine.rb
1137
1143
  - lib/puppet/ssl/validator.rb
1138
1144
  - lib/puppet/ssl/validator/default_validator.rb
1139
1145
  - lib/puppet/ssl/validator/no_validator.rb
1146
+ - lib/puppet/ssl/verifier.rb
1147
+ - lib/puppet/ssl/verifier_adapter.rb
1140
1148
  - lib/puppet/status.rb
1141
1149
  - lib/puppet/syntax_checkers.rb
1142
1150
  - lib/puppet/syntax_checkers/base64.rb
@@ -1317,6 +1325,9 @@ files:
1317
1325
  - lib/puppet/vendor/pathspec/lib/pathspec/spec.rb
1318
1326
  - lib/puppet/vendor/require_vendored.rb
1319
1327
  - lib/puppet/version.rb
1328
+ - lib/puppet/x509.rb
1329
+ - lib/puppet/x509/cert_provider.rb
1330
+ - lib/puppet/x509/pem_store.rb
1320
1331
  - lib/puppet_pal.rb
1321
1332
  - lib/puppet_x.rb
1322
1333
  - locales/config.yaml
@@ -1381,6 +1392,28 @@ files:
1381
1392
  - spec/fixtures/releases/jamtur01-apache/tests/php.pp
1382
1393
  - spec/fixtures/releases/jamtur01-apache/tests/ssl.pp
1383
1394
  - spec/fixtures/releases/jamtur01-apache/tests/vhost.pp
1395
+ - spec/fixtures/ssl/127.0.0.1-key.pem
1396
+ - spec/fixtures/ssl/127.0.0.1.pem
1397
+ - spec/fixtures/ssl/bad-basic-constraints.pem
1398
+ - spec/fixtures/ssl/bad-int-basic-constraints.pem
1399
+ - spec/fixtures/ssl/ca.pem
1400
+ - spec/fixtures/ssl/crl.pem
1401
+ - spec/fixtures/ssl/encrypted-key.pem
1402
+ - spec/fixtures/ssl/intermediate-agent-crl.pem
1403
+ - spec/fixtures/ssl/intermediate-agent.pem
1404
+ - spec/fixtures/ssl/intermediate-crl.pem
1405
+ - spec/fixtures/ssl/intermediate.pem
1406
+ - spec/fixtures/ssl/netlock-arany-utf8.pem
1407
+ - spec/fixtures/ssl/pluto-key.pem
1408
+ - spec/fixtures/ssl/pluto.pem
1409
+ - spec/fixtures/ssl/request-key.pem
1410
+ - spec/fixtures/ssl/request.pem
1411
+ - spec/fixtures/ssl/revoked-key.pem
1412
+ - spec/fixtures/ssl/revoked.pem
1413
+ - spec/fixtures/ssl/signed-key.pem
1414
+ - spec/fixtures/ssl/signed.pem
1415
+ - spec/fixtures/ssl/tampered-cert.pem
1416
+ - spec/fixtures/ssl/tampered-csr.pem
1384
1417
  - spec/fixtures/stdlib.tgz
1385
1418
  - spec/fixtures/unit/application/environments/production/data/common.yaml
1386
1419
  - spec/fixtures/unit/application/environments/production/environment.conf
@@ -1740,6 +1773,7 @@ files:
1740
1773
  - spec/integration/network/authconfig_spec.rb
1741
1774
  - spec/integration/network/formats_spec.rb
1742
1775
  - spec/integration/network/http/api/indirected_routes_spec.rb
1776
+ - spec/integration/network/http_pool_spec.rb
1743
1777
  - spec/integration/node/environment_spec.rb
1744
1778
  - spec/integration/node/facts_spec.rb
1745
1779
  - spec/integration/node_spec.rb
@@ -1757,6 +1791,7 @@ files:
1757
1791
  - spec/integration/parser/scope_spec.rb
1758
1792
  - spec/integration/parser/script_compiler_spec.rb
1759
1793
  - spec/integration/parser/undef_param_spec.rb
1794
+ - spec/integration/provider/file/windows_spec.rb
1760
1795
  - spec/integration/provider/service/init_spec.rb
1761
1796
  - spec/integration/provider/service/systemd_spec.rb
1762
1797
  - spec/integration/provider/service/windows_spec.rb
@@ -1764,6 +1799,7 @@ files:
1764
1799
  - spec/integration/reports_spec.rb
1765
1800
  - spec/integration/resource/catalog_spec.rb
1766
1801
  - spec/integration/resource/type_collection_spec.rb
1802
+ - spec/integration/rest/client_spec.rb
1767
1803
  - spec/integration/ssl/certificate_request_spec.rb
1768
1804
  - spec/integration/ssl/host_spec.rb
1769
1805
  - spec/integration/ssl/key_spec.rb
@@ -1812,6 +1848,7 @@ files:
1812
1848
  - spec/lib/puppet_spec/files.rb
1813
1849
  - spec/lib/puppet_spec/fixtures.rb
1814
1850
  - spec/lib/puppet_spec/handler.rb
1851
+ - spec/lib/puppet_spec/https.rb
1815
1852
  - spec/lib/puppet_spec/language.rb
1816
1853
  - spec/lib/puppet_spec/matchers.rb
1817
1854
  - spec/lib/puppet_spec/module_tool/shared_functions.rb
@@ -2402,7 +2439,10 @@ files:
2402
2439
  - spec/unit/ssl/host_spec.rb
2403
2440
  - spec/unit/ssl/key_spec.rb
2404
2441
  - spec/unit/ssl/oids_spec.rb
2442
+ - spec/unit/ssl/ssl_provider_spec.rb
2443
+ - spec/unit/ssl/state_machine_spec.rb
2405
2444
  - spec/unit/ssl/validator_spec.rb
2445
+ - spec/unit/ssl/verifier_spec.rb
2406
2446
  - spec/unit/status_spec.rb
2407
2447
  - spec/unit/task_spec.rb
2408
2448
  - spec/unit/transaction/additional_resource_generator_spec.rb
@@ -2517,10 +2557,13 @@ files:
2517
2557
  - spec/unit/util/yaml_spec.rb
2518
2558
  - spec/unit/util_spec.rb
2519
2559
  - spec/unit/version_spec.rb
2560
+ - spec/unit/x509/cert_provider_spec.rb
2561
+ - spec/unit/x509/pem_store_spec.rb
2520
2562
  - tasks/benchmark.rake
2521
2563
  - tasks/cfpropertylist.rake
2522
2564
  - tasks/ci.rake
2523
2565
  - tasks/generate_ast_model.rake
2566
+ - tasks/generate_cert_fixtures.rake
2524
2567
  - tasks/manpages.rake
2525
2568
  - tasks/memwalk.rake
2526
2569
  - tasks/parallel.rake
@@ -2587,6 +2630,28 @@ test_files:
2587
2630
  - spec/fixtures/releases/jamtur01-apache/tests/php.pp
2588
2631
  - spec/fixtures/releases/jamtur01-apache/tests/ssl.pp
2589
2632
  - spec/fixtures/releases/jamtur01-apache/tests/vhost.pp
2633
+ - spec/fixtures/ssl/127.0.0.1-key.pem
2634
+ - spec/fixtures/ssl/127.0.0.1.pem
2635
+ - spec/fixtures/ssl/bad-basic-constraints.pem
2636
+ - spec/fixtures/ssl/bad-int-basic-constraints.pem
2637
+ - spec/fixtures/ssl/ca.pem
2638
+ - spec/fixtures/ssl/crl.pem
2639
+ - spec/fixtures/ssl/encrypted-key.pem
2640
+ - spec/fixtures/ssl/intermediate-agent-crl.pem
2641
+ - spec/fixtures/ssl/intermediate-agent.pem
2642
+ - spec/fixtures/ssl/intermediate-crl.pem
2643
+ - spec/fixtures/ssl/intermediate.pem
2644
+ - spec/fixtures/ssl/netlock-arany-utf8.pem
2645
+ - spec/fixtures/ssl/pluto-key.pem
2646
+ - spec/fixtures/ssl/pluto.pem
2647
+ - spec/fixtures/ssl/request-key.pem
2648
+ - spec/fixtures/ssl/request.pem
2649
+ - spec/fixtures/ssl/revoked-key.pem
2650
+ - spec/fixtures/ssl/revoked.pem
2651
+ - spec/fixtures/ssl/signed-key.pem
2652
+ - spec/fixtures/ssl/signed.pem
2653
+ - spec/fixtures/ssl/tampered-cert.pem
2654
+ - spec/fixtures/ssl/tampered-csr.pem
2590
2655
  - spec/fixtures/stdlib.tgz
2591
2656
  - spec/fixtures/unit/application/environments/production/data/common.yaml
2592
2657
  - spec/fixtures/unit/application/environments/production/environment.conf
@@ -2946,6 +3011,7 @@ test_files:
2946
3011
  - spec/integration/network/authconfig_spec.rb
2947
3012
  - spec/integration/network/formats_spec.rb
2948
3013
  - spec/integration/network/http/api/indirected_routes_spec.rb
3014
+ - spec/integration/network/http_pool_spec.rb
2949
3015
  - spec/integration/node/environment_spec.rb
2950
3016
  - spec/integration/node/facts_spec.rb
2951
3017
  - spec/integration/node_spec.rb
@@ -2963,6 +3029,7 @@ test_files:
2963
3029
  - spec/integration/parser/scope_spec.rb
2964
3030
  - spec/integration/parser/script_compiler_spec.rb
2965
3031
  - spec/integration/parser/undef_param_spec.rb
3032
+ - spec/integration/provider/file/windows_spec.rb
2966
3033
  - spec/integration/provider/service/init_spec.rb
2967
3034
  - spec/integration/provider/service/systemd_spec.rb
2968
3035
  - spec/integration/provider/service/windows_spec.rb
@@ -2970,6 +3037,7 @@ test_files:
2970
3037
  - spec/integration/reports_spec.rb
2971
3038
  - spec/integration/resource/catalog_spec.rb
2972
3039
  - spec/integration/resource/type_collection_spec.rb
3040
+ - spec/integration/rest/client_spec.rb
2973
3041
  - spec/integration/ssl/certificate_request_spec.rb
2974
3042
  - spec/integration/ssl/host_spec.rb
2975
3043
  - spec/integration/ssl/key_spec.rb
@@ -3018,6 +3086,7 @@ test_files:
3018
3086
  - spec/lib/puppet_spec/files.rb
3019
3087
  - spec/lib/puppet_spec/fixtures.rb
3020
3088
  - spec/lib/puppet_spec/handler.rb
3089
+ - spec/lib/puppet_spec/https.rb
3021
3090
  - spec/lib/puppet_spec/language.rb
3022
3091
  - spec/lib/puppet_spec/matchers.rb
3023
3092
  - spec/lib/puppet_spec/module_tool/shared_functions.rb
@@ -3608,7 +3677,10 @@ test_files:
3608
3677
  - spec/unit/ssl/host_spec.rb
3609
3678
  - spec/unit/ssl/key_spec.rb
3610
3679
  - spec/unit/ssl/oids_spec.rb
3680
+ - spec/unit/ssl/ssl_provider_spec.rb
3681
+ - spec/unit/ssl/state_machine_spec.rb
3611
3682
  - spec/unit/ssl/validator_spec.rb
3683
+ - spec/unit/ssl/verifier_spec.rb
3612
3684
  - spec/unit/status_spec.rb
3613
3685
  - spec/unit/task_spec.rb
3614
3686
  - spec/unit/transaction/additional_resource_generator_spec.rb
@@ -3723,3 +3795,5 @@ test_files:
3723
3795
  - spec/unit/util/yaml_spec.rb
3724
3796
  - spec/unit/util_spec.rb
3725
3797
  - spec/unit/version_spec.rb
3798
+ - spec/unit/x509/cert_provider_spec.rb
3799
+ - spec/unit/x509/pem_store_spec.rb