puppet 6.3.0-x86-mingw32 → 6.4.0-x86-mingw32

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: x86-mingw32
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
@@ -225,6 +225,7 @@ executables:
225
225
  extensions: []
226
226
  extra_rdoc_files: []
227
227
  files:
228
+ - CODEOWNERS
228
229
  - CODE_OF_CONDUCT.md
229
230
  - COMMITTERS.md
230
231
  - CONTRIBUTING.md
@@ -232,7 +233,6 @@ files:
232
233
  - Gemfile.lock
233
234
  - Guardfile.example
234
235
  - LICENSE
235
- - MAINTAINERS
236
236
  - README.md
237
237
  - Rakefile
238
238
  - bin/puppet
@@ -506,6 +506,7 @@ files:
506
506
  - lib/puppet/file_serving/terminus_selector.rb
507
507
  - lib/puppet/file_system.rb
508
508
  - lib/puppet/file_system/file_impl.rb
509
+ - lib/puppet/file_system/jruby.rb
509
510
  - lib/puppet/file_system/memory_file.rb
510
511
  - lib/puppet/file_system/memory_impl.rb
511
512
  - lib/puppet/file_system/path_pattern.rb
@@ -754,6 +755,7 @@ files:
754
755
  - lib/puppet/network/http/api/master/v3/authorization.rb
755
756
  - lib/puppet/network/http/api/master/v3/environment.rb
756
757
  - lib/puppet/network/http/api/master/v3/environments.rb
758
+ - lib/puppet/network/http/base_pool.rb
757
759
  - lib/puppet/network/http/compression.rb
758
760
  - lib/puppet/network/http/connection.rb
759
761
  - lib/puppet/network/http/error.rb
@@ -908,6 +910,7 @@ files:
908
910
  - lib/puppet/pops/loader/base_loader.rb
909
911
  - lib/puppet/pops/loader/dependency_loader.rb
910
912
  - lib/puppet/pops/loader/gem_support.rb
913
+ - lib/puppet/pops/loader/generic_plan_instantiator.rb
911
914
  - lib/puppet/pops/loader/loader.rb
912
915
  - lib/puppet/pops/loader/loader_paths.rb
913
916
  - lib/puppet/pops/loader/module_loaders.rb
@@ -1165,7 +1168,6 @@ files:
1165
1168
  - lib/puppet/rest/response.rb
1166
1169
  - lib/puppet/rest/route.rb
1167
1170
  - lib/puppet/rest/routes.rb
1168
- - lib/puppet/rest/ssl_context.rb
1169
1171
  - lib/puppet/scheduler.rb
1170
1172
  - lib/puppet/scheduler/job.rb
1171
1173
  - lib/puppet/scheduler/scheduler.rb
@@ -1201,12 +1203,18 @@ files:
1201
1203
  - lib/puppet/ssl/certificate_request_attributes.rb
1202
1204
  - lib/puppet/ssl/certificate_signer.rb
1203
1205
  - lib/puppet/ssl/digest.rb
1206
+ - lib/puppet/ssl/error.rb
1204
1207
  - lib/puppet/ssl/host.rb
1205
1208
  - lib/puppet/ssl/key.rb
1206
1209
  - lib/puppet/ssl/oids.rb
1210
+ - lib/puppet/ssl/ssl_context.rb
1211
+ - lib/puppet/ssl/ssl_provider.rb
1212
+ - lib/puppet/ssl/state_machine.rb
1207
1213
  - lib/puppet/ssl/validator.rb
1208
1214
  - lib/puppet/ssl/validator/default_validator.rb
1209
1215
  - lib/puppet/ssl/validator/no_validator.rb
1216
+ - lib/puppet/ssl/verifier.rb
1217
+ - lib/puppet/ssl/verifier_adapter.rb
1210
1218
  - lib/puppet/status.rb
1211
1219
  - lib/puppet/syntax_checkers.rb
1212
1220
  - lib/puppet/syntax_checkers/base64.rb
@@ -1387,6 +1395,9 @@ files:
1387
1395
  - lib/puppet/vendor/pathspec/lib/pathspec/spec.rb
1388
1396
  - lib/puppet/vendor/require_vendored.rb
1389
1397
  - lib/puppet/version.rb
1398
+ - lib/puppet/x509.rb
1399
+ - lib/puppet/x509/cert_provider.rb
1400
+ - lib/puppet/x509/pem_store.rb
1390
1401
  - lib/puppet_pal.rb
1391
1402
  - lib/puppet_x.rb
1392
1403
  - locales/config.yaml
@@ -1451,6 +1462,28 @@ files:
1451
1462
  - spec/fixtures/releases/jamtur01-apache/tests/php.pp
1452
1463
  - spec/fixtures/releases/jamtur01-apache/tests/ssl.pp
1453
1464
  - spec/fixtures/releases/jamtur01-apache/tests/vhost.pp
1465
+ - spec/fixtures/ssl/127.0.0.1-key.pem
1466
+ - spec/fixtures/ssl/127.0.0.1.pem
1467
+ - spec/fixtures/ssl/bad-basic-constraints.pem
1468
+ - spec/fixtures/ssl/bad-int-basic-constraints.pem
1469
+ - spec/fixtures/ssl/ca.pem
1470
+ - spec/fixtures/ssl/crl.pem
1471
+ - spec/fixtures/ssl/encrypted-key.pem
1472
+ - spec/fixtures/ssl/intermediate-agent-crl.pem
1473
+ - spec/fixtures/ssl/intermediate-agent.pem
1474
+ - spec/fixtures/ssl/intermediate-crl.pem
1475
+ - spec/fixtures/ssl/intermediate.pem
1476
+ - spec/fixtures/ssl/netlock-arany-utf8.pem
1477
+ - spec/fixtures/ssl/pluto-key.pem
1478
+ - spec/fixtures/ssl/pluto.pem
1479
+ - spec/fixtures/ssl/request-key.pem
1480
+ - spec/fixtures/ssl/request.pem
1481
+ - spec/fixtures/ssl/revoked-key.pem
1482
+ - spec/fixtures/ssl/revoked.pem
1483
+ - spec/fixtures/ssl/signed-key.pem
1484
+ - spec/fixtures/ssl/signed.pem
1485
+ - spec/fixtures/ssl/tampered-cert.pem
1486
+ - spec/fixtures/ssl/tampered-csr.pem
1454
1487
  - spec/fixtures/stdlib.tgz
1455
1488
  - spec/fixtures/unit/application/environments/production/data/common.yaml
1456
1489
  - spec/fixtures/unit/application/environments/production/environment.conf
@@ -1810,6 +1843,7 @@ files:
1810
1843
  - spec/integration/network/authconfig_spec.rb
1811
1844
  - spec/integration/network/formats_spec.rb
1812
1845
  - spec/integration/network/http/api/indirected_routes_spec.rb
1846
+ - spec/integration/network/http_pool_spec.rb
1813
1847
  - spec/integration/node/environment_spec.rb
1814
1848
  - spec/integration/node/facts_spec.rb
1815
1849
  - spec/integration/node_spec.rb
@@ -1827,6 +1861,7 @@ files:
1827
1861
  - spec/integration/parser/scope_spec.rb
1828
1862
  - spec/integration/parser/script_compiler_spec.rb
1829
1863
  - spec/integration/parser/undef_param_spec.rb
1864
+ - spec/integration/provider/file/windows_spec.rb
1830
1865
  - spec/integration/provider/service/init_spec.rb
1831
1866
  - spec/integration/provider/service/systemd_spec.rb
1832
1867
  - spec/integration/provider/service/windows_spec.rb
@@ -1834,6 +1869,7 @@ files:
1834
1869
  - spec/integration/reports_spec.rb
1835
1870
  - spec/integration/resource/catalog_spec.rb
1836
1871
  - spec/integration/resource/type_collection_spec.rb
1872
+ - spec/integration/rest/client_spec.rb
1837
1873
  - spec/integration/ssl/certificate_request_spec.rb
1838
1874
  - spec/integration/ssl/host_spec.rb
1839
1875
  - spec/integration/ssl/key_spec.rb
@@ -1882,6 +1918,7 @@ files:
1882
1918
  - spec/lib/puppet_spec/files.rb
1883
1919
  - spec/lib/puppet_spec/fixtures.rb
1884
1920
  - spec/lib/puppet_spec/handler.rb
1921
+ - spec/lib/puppet_spec/https.rb
1885
1922
  - spec/lib/puppet_spec/language.rb
1886
1923
  - spec/lib/puppet_spec/matchers.rb
1887
1924
  - spec/lib/puppet_spec/module_tool/shared_functions.rb
@@ -2472,7 +2509,10 @@ files:
2472
2509
  - spec/unit/ssl/host_spec.rb
2473
2510
  - spec/unit/ssl/key_spec.rb
2474
2511
  - spec/unit/ssl/oids_spec.rb
2512
+ - spec/unit/ssl/ssl_provider_spec.rb
2513
+ - spec/unit/ssl/state_machine_spec.rb
2475
2514
  - spec/unit/ssl/validator_spec.rb
2515
+ - spec/unit/ssl/verifier_spec.rb
2476
2516
  - spec/unit/status_spec.rb
2477
2517
  - spec/unit/task_spec.rb
2478
2518
  - spec/unit/transaction/additional_resource_generator_spec.rb
@@ -2587,10 +2627,13 @@ files:
2587
2627
  - spec/unit/util/yaml_spec.rb
2588
2628
  - spec/unit/util_spec.rb
2589
2629
  - spec/unit/version_spec.rb
2630
+ - spec/unit/x509/cert_provider_spec.rb
2631
+ - spec/unit/x509/pem_store_spec.rb
2590
2632
  - tasks/benchmark.rake
2591
2633
  - tasks/cfpropertylist.rake
2592
2634
  - tasks/ci.rake
2593
2635
  - tasks/generate_ast_model.rake
2636
+ - tasks/generate_cert_fixtures.rake
2594
2637
  - tasks/manpages.rake
2595
2638
  - tasks/memwalk.rake
2596
2639
  - tasks/parallel.rake
@@ -2657,6 +2700,28 @@ test_files:
2657
2700
  - spec/fixtures/releases/jamtur01-apache/tests/php.pp
2658
2701
  - spec/fixtures/releases/jamtur01-apache/tests/ssl.pp
2659
2702
  - spec/fixtures/releases/jamtur01-apache/tests/vhost.pp
2703
+ - spec/fixtures/ssl/127.0.0.1-key.pem
2704
+ - spec/fixtures/ssl/127.0.0.1.pem
2705
+ - spec/fixtures/ssl/bad-basic-constraints.pem
2706
+ - spec/fixtures/ssl/bad-int-basic-constraints.pem
2707
+ - spec/fixtures/ssl/ca.pem
2708
+ - spec/fixtures/ssl/crl.pem
2709
+ - spec/fixtures/ssl/encrypted-key.pem
2710
+ - spec/fixtures/ssl/intermediate-agent-crl.pem
2711
+ - spec/fixtures/ssl/intermediate-agent.pem
2712
+ - spec/fixtures/ssl/intermediate-crl.pem
2713
+ - spec/fixtures/ssl/intermediate.pem
2714
+ - spec/fixtures/ssl/netlock-arany-utf8.pem
2715
+ - spec/fixtures/ssl/pluto-key.pem
2716
+ - spec/fixtures/ssl/pluto.pem
2717
+ - spec/fixtures/ssl/request-key.pem
2718
+ - spec/fixtures/ssl/request.pem
2719
+ - spec/fixtures/ssl/revoked-key.pem
2720
+ - spec/fixtures/ssl/revoked.pem
2721
+ - spec/fixtures/ssl/signed-key.pem
2722
+ - spec/fixtures/ssl/signed.pem
2723
+ - spec/fixtures/ssl/tampered-cert.pem
2724
+ - spec/fixtures/ssl/tampered-csr.pem
2660
2725
  - spec/fixtures/stdlib.tgz
2661
2726
  - spec/fixtures/unit/application/environments/production/data/common.yaml
2662
2727
  - spec/fixtures/unit/application/environments/production/environment.conf
@@ -3016,6 +3081,7 @@ test_files:
3016
3081
  - spec/integration/network/authconfig_spec.rb
3017
3082
  - spec/integration/network/formats_spec.rb
3018
3083
  - spec/integration/network/http/api/indirected_routes_spec.rb
3084
+ - spec/integration/network/http_pool_spec.rb
3019
3085
  - spec/integration/node/environment_spec.rb
3020
3086
  - spec/integration/node/facts_spec.rb
3021
3087
  - spec/integration/node_spec.rb
@@ -3033,6 +3099,7 @@ test_files:
3033
3099
  - spec/integration/parser/scope_spec.rb
3034
3100
  - spec/integration/parser/script_compiler_spec.rb
3035
3101
  - spec/integration/parser/undef_param_spec.rb
3102
+ - spec/integration/provider/file/windows_spec.rb
3036
3103
  - spec/integration/provider/service/init_spec.rb
3037
3104
  - spec/integration/provider/service/systemd_spec.rb
3038
3105
  - spec/integration/provider/service/windows_spec.rb
@@ -3040,6 +3107,7 @@ test_files:
3040
3107
  - spec/integration/reports_spec.rb
3041
3108
  - spec/integration/resource/catalog_spec.rb
3042
3109
  - spec/integration/resource/type_collection_spec.rb
3110
+ - spec/integration/rest/client_spec.rb
3043
3111
  - spec/integration/ssl/certificate_request_spec.rb
3044
3112
  - spec/integration/ssl/host_spec.rb
3045
3113
  - spec/integration/ssl/key_spec.rb
@@ -3088,6 +3156,7 @@ test_files:
3088
3156
  - spec/lib/puppet_spec/files.rb
3089
3157
  - spec/lib/puppet_spec/fixtures.rb
3090
3158
  - spec/lib/puppet_spec/handler.rb
3159
+ - spec/lib/puppet_spec/https.rb
3091
3160
  - spec/lib/puppet_spec/language.rb
3092
3161
  - spec/lib/puppet_spec/matchers.rb
3093
3162
  - spec/lib/puppet_spec/module_tool/shared_functions.rb
@@ -3678,7 +3747,10 @@ test_files:
3678
3747
  - spec/unit/ssl/host_spec.rb
3679
3748
  - spec/unit/ssl/key_spec.rb
3680
3749
  - spec/unit/ssl/oids_spec.rb
3750
+ - spec/unit/ssl/ssl_provider_spec.rb
3751
+ - spec/unit/ssl/state_machine_spec.rb
3681
3752
  - spec/unit/ssl/validator_spec.rb
3753
+ - spec/unit/ssl/verifier_spec.rb
3682
3754
  - spec/unit/status_spec.rb
3683
3755
  - spec/unit/task_spec.rb
3684
3756
  - spec/unit/transaction/additional_resource_generator_spec.rb
@@ -3793,3 +3865,5 @@ test_files:
3793
3865
  - spec/unit/util/yaml_spec.rb
3794
3866
  - spec/unit/util_spec.rb
3795
3867
  - spec/unit/version_spec.rb
3868
+ - spec/unit/x509/cert_provider_spec.rb
3869
+ - spec/unit/x509/pem_store_spec.rb