From: Lucas Kanashiro Date: Mon, 23 Dec 2024 22:07:19 +0000 (-0300) Subject: puma (6.4.3-2) unstable; urgency=medium X-Git-Tag: archive/raspbian/6.6.0-4+rpi1~1^2^2^2~14 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=925711325ffc7c3f1f4a54a7f5c533efa46c2b75;p=puma.git puma (6.4.3-2) unstable; urgency=medium * Team upload. * d/p/0018-disable-test-failing-with-ruby3.2.patch: fix FTBFS [dgit import unpatched puma 6.4.3-2] --- 925711325ffc7c3f1f4a54a7f5c533efa46c2b75 diff --cc debian/README.source index 0000000,0000000..620cda3 new file mode 100644 --- /dev/null +++ b/debian/README.source @@@ -1,0 -1,0 +1,14 @@@ ++puma (4.3.1-1) ++ ++ Several tests have been disabled by default: ++ ++ - test/test_puma_server_ssl.rb has been disabled because all tests fail ++ randomly. However these tests have never been performed in puma 3.x and ++ they also work randomly. So until someone can look into them and fix them, ++ we decided to not run them (see also #921931). ++ ++ - test_control_for_ssl (test/test_cli.rb) and ++ test_control_ssl (test/test_pumactl.rb) show similar issues and don't seem ++ to imply that the package fails to work. So they have been disabled too. ++ ++ -- Daniel Leidert Wed, 05 Feb 2020 23:51:51 +0100 diff --cc debian/changelog index 0000000,0000000..7b7d539 new file mode 100644 --- /dev/null +++ b/debian/changelog @@@ -1,0 -1,0 +1,371 @@@ ++puma (6.4.3-2) unstable; urgency=medium ++ ++ * Team upload. ++ * d/p/0018-disable-test-failing-with-ruby3.2.patch: fix FTBFS ++ ++ -- Lucas Kanashiro Mon, 23 Dec 2024 19:07:19 -0300 ++ ++puma (6.4.3-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream version. Fixes CVE-2024-45614 (Closes: #1082379) ++ * Remove custom ssl autopkgtest. ++ - https://lists.debian.org/debian-ruby/2024/11/msg00006.html ++ * Update certificates for tests. ++ ++ -- Abhijith PA Mon, 30 Sep 2024 09:46:18 +0530 ++ ++puma (6.4.2-6) unstable; urgency=medium ++ ++ * Fix FTBFS due to certs expiration (Closes: #1078640) ++ - d/p/0010-Update-all-certs.patch ++ - d/p/0011-Fix-path-of-certs-useb-by-test_example_cert_expirati.patch ++ * Declare compliance with Debian Policy 4.7.0. ++ ++ -- Lucas Kanashiro Thu, 19 Sep 2024 17:56:24 -0300 ++ ++puma (6.4.2-5) unstable; urgency=medium ++ ++ * Backport upstream patch to update certificates in examples. ++ This fixes a test failure. ++ ++ -- Lucas Kanashiro Sat, 20 Jul 2024 12:24:05 -0300 ++ ++puma (6.4.2-4) unstable; urgency=medium ++ ++ * Disable test failing on armhf ++ ++ -- Pirate Praveen Tue, 06 Feb 2024 18:13:41 +0530 ++ ++puma (6.4.2-3) unstable; urgency=medium ++ ++ * Add Breaks: rails (<< 2:6.1.7.3+dfsg-3~) ++ ++ -- Pirate Praveen Mon, 05 Feb 2024 15:12:00 +0530 ++ ++puma (6.4.2-2) unstable; urgency=medium ++ ++ * Disable test failing on arm64 buildd ++ ++ -- Pirate Praveen Mon, 05 Feb 2024 14:11:14 +0530 ++ ++puma (6.4.2-1) unstable; urgency=medium ++ ++ * Switch to github tags from releases (6.4.2 is only available from tags) ++ * New upstream version 6.4.2 (Fixes: CVE-2024-21647) ++ ++ -- Pirate Praveen Mon, 05 Feb 2024 01:08:22 +0530 ++ ++puma (6.4.0-4) unstable; urgency=medium ++ ++ * Remove minitest/retry as well (copy from 5.x branch and fixes salsa ci) ++ * Export LC_ALL also to C.UTF-8 (hoping this would fix some test failures) ++ ++ -- Pirate Praveen Mon, 05 Feb 2024 00:52:13 +0530 ++ ++puma (6.4.0-3) unstable; urgency=medium ++ ++ * Reupload to unstable ++ ++ -- Pirate Praveen Sun, 04 Feb 2024 01:16:15 +0530 ++ ++puma (6.4.0-2) experimental; urgency=medium ++ ++ * Set TEST_CASE_TIMEOUT = 300 (one test is timing out on amd64 buildd) ++ ++ -- Pirate Praveen Mon, 04 Dec 2023 23:59:02 +0530 ++ ++puma (6.4.0-1) experimental; urgency=medium ++ ++ * New upstream version 6.4.0 ++ * Disable more tests and refresh patches ++ * Add procps to build depends for kill command (used in tests) ++ ++ -- Pirate Praveen Sun, 03 Dec 2023 13:58:23 +0530 ++ ++puma (6.0.2-1) experimental; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ * d/control (Standards-Version): Bump to 4.6.2. ++ (Build-Depends): Add ruby-sd-notify. ++ * d/copyright (Copyright): Update years. ++ * d/ruby-tests.rake: Re-enable multiple tests (closes: #984713). ++ * d/upstream/metadata: Adjust a few URLs. ++ ++ -- Daniel Leidert Thu, 09 Feb 2023 16:12:20 +0100 ++ ++puma (5.6.5-2) unstable; urgency=medium ++ ++ * debian/ruby-tests.rake: skip test that fails often (Closes: #1006022) ++ * debian/ruby-tests.rake: exclude tests that fail often but not always ++ ++ -- Antonio Terceiro Wed, 02 Nov 2022 09:26:37 -0300 ++ ++puma (5.6.5-1) unstable; urgency=medium ++ ++ * Update watch file for github.com pattern change ++ * New upstream version 5.6.5 ++ * Refresh patches ++ * Bump Standards-Version to 4.6.1 (no changes needed) ++ ++ -- Pirate Praveen Sun, 16 Oct 2022 22:44:46 +0530 ++ ++puma (5.6.4-1) unstable; urgency=medium ++ ++ * New upstream version 5.6.4 ++ * Refresh patches ++ * Disable some tests that fail with ++ NameError: uninitialized constant Puma::LogWriter ++ * Remove tmp/restart.txt in clean ++ ++ -- Pirate Praveen Mon, 04 Apr 2022 13:24:10 +0530 ++ ++puma (5.5.2-2) unstable; urgency=medium ++ ++ * Team upload ++ * debian/rules: force an UTF-8 locale ++ * debian/ruby-tests.rake: wrap lines ++ * debian/ruby-tests.rake: run all ssl tests on autopkgtest only ++ * debian/test/control: give ssl test a name ++ ++ -- Antonio Terceiro Tue, 02 Nov 2021 16:35:12 -0300 ++ ++puma (5.5.2-1) unstable; urgency=medium ++ ++ * Team upload ++ * New upstream version 5.5.2 ++ - Builds and tests fine again (Closes: #998295) ++ * Add build-dependency on ruby-localhost ++ * debian/rules: exclude several unnecessary files from installation ++ ++ -- Antonio Terceiro Tue, 02 Nov 2021 14:39:10 -0300 ++ ++puma (5.3.2-3) unstable; urgency=medium ++ ++ * Use --gem-install layout option of dh-ruby ++ ++ -- Pirate Praveen Tue, 12 Oct 2021 02:24:33 +0530 ++ ++puma (5.3.2-2) unstable; urgency=medium ++ ++ * Reupload to unstable ++ * Bump Standards-Version to 4.6.0 (no changes needed) ++ * Bump debhelper compatibility level to 13 ++ ++ -- Pirate Praveen Mon, 11 Oct 2021 03:17:23 +0530 ++ ++puma (5.3.2-1) experimental; urgency=medium ++ ++ * New upstream version 5.3.2 (Closes: #989054) (Fixes: CVE-2021-29509) ++ * Refresh patches ++ ++ -- Pirate Praveen Fri, 28 May 2021 22:34:53 +0530 ++ ++puma (4.3.8-1) unstable; urgency=medium ++ ++ * New upstream version 4.3.8 (Closes: #989054) (Fixes: CVE-2021-29509) ++ ++ -- Pirate Praveen Wed, 26 May 2021 10:24:19 +0530 ++ ++puma (5.2.2-2) experimental; urgency=medium ++ ++ * Disable test that failied on amd64 buildd ++ ++ -- Pirate Praveen Mon, 08 Mar 2021 23:03:52 +0530 ++ ++puma (5.2.2-1) experimental; urgency=medium ++ ++ * New upstream version 5.2.2 ++ * Bump Standards-Version to 4.5.1 (no changes needed) ++ * Refresh patches for new upstream release ++ * Add ruby-minitest-stub-const as build dependency ++ * Disable failing tests ++ ++ -- Pirate Praveen Sun, 07 Mar 2021 21:03:52 +0530 ++ ++puma (4.3.6-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream version. ++ - Fixes CVE-2020-11076 and CVE-2020-11077 (closes: #972102). ++ * d/copyright: Minor update. ++ * d/puma.lintian-overrides: Add package override. ++ * d/ruby-tests.rake: Add logic to run SSL test. ++ * d/patches/*.patch: Add missing headers and refresh. ++ * d/source/lintian-overrides: Add source override. ++ * d/tests/control: Set environment variable to run the SSL tests separately ++ (similar to the solution used in the jekyll package). ++ * d/tests/test-puma-server-ssl*: Removed. ++ ++ -- Daniel Leidert Thu, 15 Oct 2020 20:57:29 +0200 ++ ++puma (4.3.3-3) unstable; urgency=medium ++ ++ * Include patch from gitlab to improve performance ++ ++ -- Pirate Praveen Tue, 18 Aug 2020 00:15:20 +0530 ++ ++puma (4.3.3-2) unstable; urgency=medium ++ ++ [ Daniel Leidert ] ++ * debian/tests/test_puma_server_ssl, ++ debian/tests/test_puma_server_ssl.rake: Run test/test_puma_server_ssl.rb ++ in an openssl enviroment not using the Debian defaults. ++ * debian/tests/control: Add new test. ++ ++ [ Debian Janitor ] ++ * Set field Upstream-Contact in debian/copyright. ++ * Remove obsolete fields Contact, Name from debian/upstream/metadata ++ (already present in machine-readable debian/copyright). ++ ++ [ Pirate Praveen ] ++ * Remove debian-branch option from debian/gbp.conf ++ * Reupload to unstable ++ ++ -- Pirate Praveen Mon, 03 Aug 2020 15:37:16 +0530 ++ ++puma (4.3.3-1) experimental; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ - Fixes CVE-2020-5247 (closes: #952766). ++ - Fixes CVE-2020-5249 (closes: #953122). ++ * d/control (Section): Change to web. ++ (Vcs-Git): Indicate branch name via -b debian/experimental. ++ (Homepage): Use secure URL. ++ (Depends): Use ${ruby:Depends}. ++ * d/copyright (Source): Use secure URL. ++ * d/rules: Add override to install upstream changelog. ++ * d/watch: Use package name for tarball. ++ ++ -- Daniel Leidert Thu, 05 Mar 2020 01:34:17 +0100 ++ ++puma (4.3.1-1) experimental; urgency=medium ++ ++ * Team upload. ++ * New upstream release ++ - Fixes CVE-2019-16770 Keepalive thread overload/DoS (closes: #946312). ++ * d/control (Rules-Requires-Root): Set to binary-targets. ++ (Build-Depends, Depends): Add ruby-nio4r. ++ (Build-Depends): Add curl for test/test_integration_single.rb. ++ * d/ruby-tests.rake: Disable test/test_puma_server_ssl.rb. ++ * d/README.source: Add to explain tests which have been disabled. ++ * d/patches/0004-puma.gemspec-drop-git-usage.patch: Refresh patch. ++ * d/patches/0011-disable-minitest-extensions.patch: Add patch. ++ - Disable unavailable minitest extensions (retry and proveit). ++ * d/patches/0012-disable-cli-ssl-tests.patch: Add patch. ++ - Disable CLI SSL tests. ++ * d/patches/0013-fix-test-term-not-accepts-new-connections.patch: Add. ++ - Fix test_term_not_accepts_new_connections to be locale independent. ++ * d/patches/0002-test_integration-disable-test-that-fails-randomly.patch, ++ d/patches/0003-test_cli-disable-test-that-rails-randomly.patch, ++ d/patches/0005-test_puma_server-disable-test-that-fails-randomly.patch, ++ d/patches/0006-test-helper.rb-drop-bundler-usage.patch, ++ d/patches/0007-test-test_cli.rb-disable-test-that-fails-randomly.patch, ++ d/patches/0008-fix-ssl-tests.patch, ++ d/patches/0009-disable-tests-failing-in-single-cpu.patch, ++ d/patches/0010-fix-cluster-exit-for-ruby27.patch: Remove obsolete patches. ++ * d/patches/series: Adjust. ++ ++ -- Daniel Leidert Thu, 06 Feb 2020 11:45:11 +0100 ++ ++puma (3.12.4-1) unstable; urgency=medium ++ ++ * Team upload. ++ * New upstream release. ++ - Fixes CVE-2020-5247 (closes: #952766). ++ - Fixes CVE-2020-5249 (closes: #953122). ++ * d/control (Section): Changed to web. ++ (Homepage): Use secure URL. ++ (Depends): Add ${ruby:Depends}. ++ * d/copyright (Source): Use secure URL. ++ * d/ruby-tests.rake: Disable test/test_puma_server_ssl.rb for the moment. ++ These tests fail due to openssl being configured to use SECLEVEL2 ++ (https://github.com/puma/puma/issues/2147). ++ * d/rules: Add override to install upstream changelog. ++ * d/watch: Rename downloaded tarball to include package name. ++ * d/patches/0008-fix-ssl-tests.patch: Remove patch. Applied upstream. ++ * d/patches/CVE-2019-16770.patch: Ditto. ++ * d/patches/*.patch: Refresh patches. ++ * d/patches/series: Adjust. ++ ++ -- Daniel Leidert Wed, 04 Mar 2020 23:09:16 +0100 ++ ++puma (3.12.0-4) unstable; urgency=medium ++ ++ * Team upload. ++ * d/control (Rules-Requires-Root): Set to binary-targets. ++ * d/patches/0011-disable-minitest-extensions.patch: Add patch. ++ - Disable unavailable minitest retry extension. ++ * d/patches/CVE-2019-16770.patch: Add patch. ++ - Backport fix for CVE-2019-16770 from upstream (closes: #946312). ++ * d/patches/series: Add patch. ++ ++ -- Daniel Leidert Thu, 06 Feb 2020 12:54:59 +0100 ++ ++puma (3.12.0-3) unstable; urgency=medium ++ ++ * Team upload. ++ * d/compat: Remove obsolete file. ++ * d/control: Add Rules-Requires-Root field. ++ (Build-Depends): Use debhelper-compat. ++ (Standards-Version): Bump to 4.5.0. ++ (Depends): Drop ruby-interpreter. ++ * d/copyright (Format): Fix insecure-copyright-format-uri and add myself. ++ * d/puma.1, d/pumactl.1: Add manual pages. ++ * d/puma.manpages: Install manual pages. ++ * d/ruby-tests.rake: Set verbose mode. ++ * d/patches/0010-fix-cluster-exit-for-ruby27.patch: Add patch. ++ - Fix hang with Ruby >= 2.6 when shutting down workers. ++ * d/patches/series: Enable new patch. ++ * d/upstream/metadata: Add metadata. ++ * d/upstream/metadata: Add metadata. ++ ++ -- Daniel Leidert Wed, 05 Feb 2020 18:20:58 +0100 ++ ++puma (3.12.0-2) unstable; urgency=medium ++ ++ * Disable tests failing in single cpu (Closes: #921931) ++ ++ -- Pirate Praveen Sun, 10 Feb 2019 18:56:47 +0530 ++ ++puma (3.12.0-1) unstable; urgency=medium ++ ++ [ Balint Reczey ] ++ * New upstream version 3.12.0 ++ * Refresh patches ++ ++ [ Pirate Praveen ] ++ * Fix OpenSSL 1.1.1 test failures with upstream patch (Closes: #900156) ++ * Bump Standards-Version to 4.3.0 (no changes needed) ++ * Add myself to uploaders ++ ++ -- Pirate Praveen Sun, 10 Feb 2019 10:56:59 +0530 ++ ++puma (3.11.3-1) unstable; urgency=medium ++ ++ * Team upload ++ * Remove myself from Uploaders: ++ * New upstream version 3.11.3 ++ * Build against libssl-dev instead of libssl1.0-dev (Closes: #859542) ++ * Refresh packaging files with `dh-make-ruby -wo .` ++ * Bump debhelper compat to 11 ++ * Change Vcs-* to point to salsa.debian.org ++ * Use standard debian/ruby-tests.rake ++ * drop build-dependency on ruby-hoe ++ * Refresh patches ++ * New patches: ++ - 0006-test-helper.rb-drop-bundler-usage.patch ++ - 0007-test-test_cli.rb-disable-test-that-fails-randomly.patch ++ * Replace 0001-test_puma_server_ssl-update-for-newer-versions-of-Op.patch ++ with 0001-test_puma_server_ssl-disable-test-that-takes-too-lon.patch ++ ++ ++ -- Antonio Terceiro Wed, 28 Mar 2018 18:53:22 -0300 ++ ++puma (3.6.0-1) unstable; urgency=medium ++ ++ * Initial release (Closes: #720336) ++ ++ -- Antonio Terceiro Thu, 10 Nov 2016 16:47:06 -0200 diff --cc debian/clean index 0000000,0000000..4535125 new file mode 100644 --- /dev/null +++ b/debian/clean @@@ -1,0 -1,0 +1,1 @@@ ++tmp/restart.txt diff --cc debian/control index 0000000,0000000..c1fcb57 new file mode 100644 --- /dev/null +++ b/debian/control @@@ -1,0 -1,0 +1,32 @@@ ++Source: puma ++Section: web ++Priority: optional ++Maintainer: Debian Ruby Team ++Uploaders: Pirate Praveen , ++ Lucas Kanashiro ++Build-Depends: curl, ++ debhelper-compat (= 13), ++ gem2deb (>= 1.6), ++ libssl-dev, ++ rake, ++ ruby-localhost, ++ ruby-minitest-stub-const, ++ ruby-nio4r (>= 2), ++ ruby-rack (<< 3), ++ ruby-sd-notify, ++ procps ++Standards-Version: 4.7.0 ++Vcs-Git: https://salsa.debian.org/ruby-team/puma.git -b debian/experimental ++Vcs-Browser: https://salsa.debian.org/ruby-team/puma ++Homepage: https://puma.io ++Testsuite: autopkgtest-pkg-ruby ++Rules-Requires-Root: binary-targets ++ ++Package: puma ++Architecture: any ++Breaks: rails (<< 2:6.1.7.3+dfsg-3~) ++Depends: ruby, ${misc:Depends}, ${ruby:Depends}, ${shlibs:Depends} ++Description: threaded HTTP 1.1 server for Ruby/Rack applications ++ Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for ++ Ruby/Rack applications. Puma is intended for use in both development and ++ production environments. diff --cc debian/copyright index 0000000,0000000..70590cd new file mode 100644 --- /dev/null +++ b/debian/copyright @@@ -1,0 -1,0 +1,42 @@@ ++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ ++Upstream-Name: puma ++Upstream-Contact: https://github.com/puma/puma/issues ++Source: https://github.com/puma/puma ++ ++Files: * ++Copyright: 2005, Zed Shaw ++ 2011, Evan Phoenix ++License: BSD-3-clause ++ ++Files: debian/* ++Copyright: 2016 Antonio Terceiro ++ 2020,2023 Daniel Leidert ++ 2023 Debian Ruby Extras Maintainers ++License: BSD-3-clause ++Comment: The Debian packaging is licensed under the same terms as the source. ++ ++License: BSD-3-clause ++ All rights reserved. ++ . ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions are met: ++ . ++ * Redistributions of source code must retain the above copyright notice, this ++ list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above copyright notice ++ this list of conditions and the following disclaimer in the documentation ++ and/or other materials provided with the distribution. ++ * Neither the name of the Evan Phoenix nor the names of its contributors ++ may be used to endorse or promote products derived from this software ++ without specific prior written permission. ++ . ++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ++ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE ++ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ++ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER ++ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --cc debian/gbp.conf index 0000000,0000000..da9f191 new file mode 100644 --- /dev/null +++ b/debian/gbp.conf @@@ -1,0 -1,0 +1,4 @@@ ++[DEFAULT] ++pristine-tar = true ++sign-tags = true ++verbose = true diff --cc debian/patches/0004-puma.gemspec-drop-git-usage.patch index 0000000,0000000..3c0205c new file mode 100644 --- /dev/null +++ b/debian/patches/0004-puma.gemspec-drop-git-usage.patch @@@ -1,0 -1,0 +1,23 @@@ ++From: Antonio Terceiro ++Date: Wed, 5 Feb 2020 21:36:05 +0100 ++Subject: Drop git usage from gemspec ++ ++Forwarded: not-needed ++--- ++ puma.gemspec | 3 +-- ++ 1 file changed, 1 insertion(+), 2 deletions(-) ++ ++diff --git a/puma.gemspec b/puma.gemspec ++index f5e01c2..9ff86a3 100644 ++--- a/puma.gemspec +++++ b/puma.gemspec ++@@ -13,8 +13,7 @@ Gem::Specification.new do |s| ++ if RbConfig::CONFIG['ruby_version'] >= '2.5' ++ s.metadata["msys2_mingw_dependencies"] = "openssl" ++ end ++- s.files = `git ls-files -- bin docs ext lib tools`.split("\n") + ++- %w[History.md LICENSE README.md] +++ s.files = Dir.glob('**/*').reject { |f| f =~ /^debian\//} ++ s.homepage = "https://puma.io" ++ ++ if s.respond_to?(:metadata=) diff --cc debian/patches/0009-CI-update-chain-certs-example-files-3426.patch index 0000000,0000000..d7b0bd0 new file mode 100644 --- /dev/null +++ b/debian/patches/0009-CI-update-chain-certs-example-files-3426.patch @@@ -1,0 -1,0 +1,521 @@@ ++From: Patrik Ragnarsson ++Date: Sun, 14 Jul 2024 18:44:29 +0200 ++Subject: CI: update chain certs example files (#3426) ++ ++Ran "ruby examples/puma/chain_cert/generate_chain_test.rb" ++ ++examples/puma/chain_cert/cert.crt expired June 5, 2024 before this change, causing test failures. ++ ++Origin: upstream, https://github.com/puma/puma/commit/11e5d6dcbf0f6bfb170f38c5713d5851399a55dd ++--- ++ examples/puma/chain_cert/ca.crt | 33 +++++---- ++ examples/puma/chain_cert/ca.key | 50 ++++++------- ++ examples/puma/chain_cert/ca_chain.pem | 65 +++++++++-------- ++ examples/puma/chain_cert/cert.crt | 32 ++++---- ++ examples/puma/chain_cert/cert.key | 50 ++++++------- ++ examples/puma/chain_cert/cert_chain.pem | 97 +++++++++++++------------ ++ examples/puma/chain_cert/generate_chain_test.rb | 5 +- ++ examples/puma/chain_cert/intermediate.crt | 32 ++++---- ++ examples/puma/chain_cert/intermediate.key | 50 ++++++------- ++ 9 files changed, 207 insertions(+), 207 deletions(-) ++ ++diff --git a/examples/puma/chain_cert/ca.crt b/examples/puma/chain_cert/ca.crt ++index a5ae2d7..3247c10 100644 ++--- a/examples/puma/chain_cert/ca.crt +++++ b/examples/puma/chain_cert/ca.crt ++@@ -1,19 +1,20 @@ ++ -----BEGIN CERTIFICATE----- ++-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 +++Srj3l9ghFLwEImIBPw== ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/ca.key b/examples/puma/chain_cert/ca.key ++index 4d4369a..c228706 100644 ++--- a/examples/puma/chain_cert/ca.key +++++ b/examples/puma/chain_cert/ca.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/chain_cert/ca_chain.pem b/examples/puma/chain_cert/ca_chain.pem ++index 5d77a44..785fc82 100644 ++--- a/examples/puma/chain_cert/ca_chain.pem +++++ b/examples/puma/chain_cert/ca_chain.pem ++@@ -1,39 +1,40 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yMzA2MDEwMDAwMDBaFw0yNzA2MDEwMDAwMDBaMCYx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx ++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI ++-hvcNAQEBBQADggEPADCCAQoCggEBAOHKwUnnX7QXvewBtH5XAtRbhhgAIQQ14pxs ++-9w3WBWY6B7zKZdkRnu/bULwP4QGHPc/YAtWSMN+1aWWm/6od3xn0AfFrzWxzMXVT ++-ZTnI6aQ3emxIec3gc5Xa4+oF0SUmVZiY3U9l4Apk1d4xNnV81UzE7KpdSUqYXdS/ ++-Ja7T9QXFbE0/5L7Ci9luVQLyUYNiW2CmaiiC1YE9292kfZTujsKKf4Og/65U4qgF ++-mfSTnIBSAHTkiF5Qo8QTx+qz55A0ue2NX3QXVZOYJMtjt8OQEWkGKP2iPFnGnd3i ++-TW57THaNNzVan0A96IZv3hGVNqqlUto6L0tni+QD+3d14FDRLKMCAwEAAaN1MHMw ++-HQYDVR0OBBYEFPsAsa4SCE1WrZvYs/3TKSllpTUbMA4GA1UdDwEB/wQEAwICBDAT ++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFIDE ++-rrQrGbYkUaWL+93VfSqFj3fWMA0GCSqGSIb3DQEBDQUAA4IBAQCCEJymTKz93kmQ ++-Bfgj1UkVo1MC4GQAwVDJJTdEk80a3AFPuwmuwcl50rq2w4UBN9vkleKWz9ysWSrQ ++-Qs5RoM08ggca1dqgzIKHH95ft0BFZixEfkAhfAcrEiBNT6H5lgJ+EcFNq1n1T435 ++-ow3r9P3u4FlBP4BmfpffnOFlY1cTYsEOFtDSGmBe8mNJkx2z37OAiLtSKPtkfpeq ++-84haUFAvfJX/93JLsuHbrhZXTjXVGDsbITxheiqmxaN5HiFacG0Ju2USPtHAge8H ++-Rz3fbPlN2Txn83ejbaHetj2zrbsd+QobPusfDRZKUcDG/CSXV7lc65+Lp0iPbCd/ ++-KG6q1Yf+ +++hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF +++cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc +++T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD +++szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne +++exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG +++8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw +++HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT +++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk +++Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy +++aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk +++c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo +++4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ ++++UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0 +++Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq +++g3cTPG2b ++ -----END CERTIFICATE----- ++ -----BEGIN CERTIFICATE----- ++-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 +++Srj3l9ghFLwEImIBPw== ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/cert.crt b/examples/puma/chain_cert/cert.crt ++index 5c8dbce..8df6d84 100644 ++--- a/examples/puma/chain_cert/cert.crt +++++ b/examples/puma/chain_cert/cert.crt ++@@ -1,20 +1,20 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDLjCCAhagAwIBAgIBbzANBgkqhkiG9w0BAQ0FADAmMSQwIgYDVQQDDBtpbnRl ++-cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjMwNjA1MDAwMDAwWhcNMjQwNjA1 +++cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjQwNzE0MDAwMDAwWhcNMjUwNzE0 ++ MDAwMDAwWjAeMRwwGgYDVQQDDBN0ZXN0LnB1bWEubG9jYWxob3N0MIIBIjANBgkq ++-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1iY3+/B0oIXUChZFnXVQvZ2PfYJ8UVeW ++-3Oq9a6zQTP95aSwtv/rAt1jYA1H18p6npa254ODZcdWp+EtvUIiTFIII9X0B6WH/ ++-rDm8D6mDkMGi/L3DlJ1vJaOVbXe9NL33zJJznAZ0T2lcg9qXN6wbUIhcChRSMsFw ++-xR0pPnvZv34NBvefxNWnJpFKqyXEi64ONHwjil4/Sk7lunmguwLAPano3wp81qsp ++-rv8KTiqJUfF78CrtwY1LMWvC3AcbPBLlyBrr7mPfAoVuxu+s6tXqpcOsp/FoKa9Y ++-lIxS82po1aKLnXkAMc75rlT5WVXrPVeRWgDucxUDOXFpl955pNSQRQIDAQABo28w ++-bTAdBgNVHQ4EFgQU3FVgqa85bI7/5jVEfOh/w1RfvH4wCwYDVR0PBAQDAgbAMBMG ++-A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAU+wCxrhII ++-TVatm9iz/dMpKWWlNRswDQYJKoZIhvcNAQENBQADggEBAG0gjxN6U8EaUhaJJj8C ++-Av/5A+F5SPDotbpj4T/1ciSn8wQf3aotBaNCzv7mC2mWtl4PIrOZ8bH42dZ0sWEU ++-Ft1h4HVLQADv5QU0RKNuKXoDRvVXB6IDNAIWB+8NQwYwj+WvYH+BLoc53yBfHQGK ++-B+y8SVeEcQVjzmcZ2TUT2/b5XEsiV+ugLce294lUPIlSmWK043Oe3UfMRuurPwyj ++-Qjn/pwl7S22BRDCorQ5NThb+/lsO54J/8zpCxHmhgm152mXcCYBNjYLwd5SYvawN ++-Q5EDcE/31xqtZkGtBDb/ZqwUSbmwLb3qFRjgM/t+H2eUMyZUxbvmxzlZdAO7xAOC ++-fho= +++hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA18r/nJpmqPzoMawvn7qt6Dtz3Jx5332M +++BnBxXf+dlwZo+YkXGCmtXGXi8UtNZh+CnvlBf4+nauxYwzEHrIbMafH+Zt63OUvA +++jb5uwDDaVOMal4vtwkoGzLJxINzvaxEzsSzX89maxkWyaRnaM9ac5/v0WvH0Kz+Z +++JhzFQAIpUdxwb235BKtIwyMkKqYQb8+0mxSIIEKP9dqsrWNFXiUY1YbY786Yz76N +++xAg/KFSUGdAPJlqMQEVaroTU6zNX5aa6WO8ynnBIvPdS9FbrfIupoXoTQ8WHnmeh +++N09auierVy//KtZIHFyd7pMaeiqgyWn91fRz9RluEhWT8IfuOofViQIDAQABo28w +++bTAdBgNVHQ4EFgQUBvBG+wQNE+xNksBRCuzO04bhs2kwCwYDVR0PBAQDAgbAMBMG +++A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUHrcqkw8h +++mKqxtzRdSG4QNeE+pSIwDQYJKoZIhvcNAQENBQADggEBAKO8XfzNct6uwxSh4FVe +++xDcPbIOOGJv3lD2sA1xDRzw/djMITd2eRqG1iLim8whRfd1LqsXb7nHgPJIKIifR +++oqSg0LxmsmZ2+tocFpmVNppKWUggVAuH/yel1s9JWzEkB1NXyoRONQCZIuXTmInu +++RdrdERwy+1VZRSFL7IBZfg45ZzwH+/7Vaz5kY5FjkyBk0xwhIDRUXprO6ZhTokUC +++152UBWdAiK4IHRxLY+h2cjIsR8szSTUzS8erwqQmt+NIeiUEJYtuVS9rQ3zXNBKV +++l9X5G9FwHjWQL3j95ze60sa2xzObCqZ+w7f05O6ZiJ9dqdk+oIPe3+xWeQgVyYn0 +++SLg= ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/cert.key b/examples/puma/chain_cert/cert.key ++index d6e70d8..411bdc8 100644 ++--- a/examples/puma/chain_cert/cert.key +++++ b/examples/puma/chain_cert/cert.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/chain_cert/cert_chain.pem b/examples/puma/chain_cert/cert_chain.pem ++index b60ece6..134ea32 100644 ++--- a/examples/puma/chain_cert/cert_chain.pem +++++ b/examples/puma/chain_cert/cert_chain.pem ++@@ -1,59 +1,60 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDLjCCAhagAwIBAgIBbzANBgkqhkiG9w0BAQ0FADAmMSQwIgYDVQQDDBtpbnRl ++-cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjMwNjA1MDAwMDAwWhcNMjQwNjA1 +++cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjQwNzE0MDAwMDAwWhcNMjUwNzE0 ++ MDAwMDAwWjAeMRwwGgYDVQQDDBN0ZXN0LnB1bWEubG9jYWxob3N0MIIBIjANBgkq ++-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1iY3+/B0oIXUChZFnXVQvZ2PfYJ8UVeW ++-3Oq9a6zQTP95aSwtv/rAt1jYA1H18p6npa254ODZcdWp+EtvUIiTFIII9X0B6WH/ ++-rDm8D6mDkMGi/L3DlJ1vJaOVbXe9NL33zJJznAZ0T2lcg9qXN6wbUIhcChRSMsFw ++-xR0pPnvZv34NBvefxNWnJpFKqyXEi64ONHwjil4/Sk7lunmguwLAPano3wp81qsp ++-rv8KTiqJUfF78CrtwY1LMWvC3AcbPBLlyBrr7mPfAoVuxu+s6tXqpcOsp/FoKa9Y ++-lIxS82po1aKLnXkAMc75rlT5WVXrPVeRWgDucxUDOXFpl955pNSQRQIDAQABo28w ++-bTAdBgNVHQ4EFgQU3FVgqa85bI7/5jVEfOh/w1RfvH4wCwYDVR0PBAQDAgbAMBMG ++-A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAU+wCxrhII ++-TVatm9iz/dMpKWWlNRswDQYJKoZIhvcNAQENBQADggEBAG0gjxN6U8EaUhaJJj8C ++-Av/5A+F5SPDotbpj4T/1ciSn8wQf3aotBaNCzv7mC2mWtl4PIrOZ8bH42dZ0sWEU ++-Ft1h4HVLQADv5QU0RKNuKXoDRvVXB6IDNAIWB+8NQwYwj+WvYH+BLoc53yBfHQGK ++-B+y8SVeEcQVjzmcZ2TUT2/b5XEsiV+ugLce294lUPIlSmWK043Oe3UfMRuurPwyj ++-Qjn/pwl7S22BRDCorQ5NThb+/lsO54J/8zpCxHmhgm152mXcCYBNjYLwd5SYvawN ++-Q5EDcE/31xqtZkGtBDb/ZqwUSbmwLb3qFRjgM/t+H2eUMyZUxbvmxzlZdAO7xAOC ++-fho= +++hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA18r/nJpmqPzoMawvn7qt6Dtz3Jx5332M +++BnBxXf+dlwZo+YkXGCmtXGXi8UtNZh+CnvlBf4+nauxYwzEHrIbMafH+Zt63OUvA +++jb5uwDDaVOMal4vtwkoGzLJxINzvaxEzsSzX89maxkWyaRnaM9ac5/v0WvH0Kz+Z +++JhzFQAIpUdxwb235BKtIwyMkKqYQb8+0mxSIIEKP9dqsrWNFXiUY1YbY786Yz76N +++xAg/KFSUGdAPJlqMQEVaroTU6zNX5aa6WO8ynnBIvPdS9FbrfIupoXoTQ8WHnmeh +++N09auierVy//KtZIHFyd7pMaeiqgyWn91fRz9RluEhWT8IfuOofViQIDAQABo28w +++bTAdBgNVHQ4EFgQUBvBG+wQNE+xNksBRCuzO04bhs2kwCwYDVR0PBAQDAgbAMBMG +++A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUHrcqkw8h +++mKqxtzRdSG4QNeE+pSIwDQYJKoZIhvcNAQENBQADggEBAKO8XfzNct6uwxSh4FVe +++xDcPbIOOGJv3lD2sA1xDRzw/djMITd2eRqG1iLim8whRfd1LqsXb7nHgPJIKIifR +++oqSg0LxmsmZ2+tocFpmVNppKWUggVAuH/yel1s9JWzEkB1NXyoRONQCZIuXTmInu +++RdrdERwy+1VZRSFL7IBZfg45ZzwH+/7Vaz5kY5FjkyBk0xwhIDRUXprO6ZhTokUC +++152UBWdAiK4IHRxLY+h2cjIsR8szSTUzS8erwqQmt+NIeiUEJYtuVS9rQ3zXNBKV +++l9X5G9FwHjWQL3j95ze60sa2xzObCqZ+w7f05O6ZiJ9dqdk+oIPe3+xWeQgVyYn0 +++SLg= ++ -----END CERTIFICATE----- ++ -----BEGIN CERTIFICATE----- ++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yMzA2MDEwMDAwMDBaFw0yNzA2MDEwMDAwMDBaMCYx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx ++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI ++-hvcNAQEBBQADggEPADCCAQoCggEBAOHKwUnnX7QXvewBtH5XAtRbhhgAIQQ14pxs ++-9w3WBWY6B7zKZdkRnu/bULwP4QGHPc/YAtWSMN+1aWWm/6od3xn0AfFrzWxzMXVT ++-ZTnI6aQ3emxIec3gc5Xa4+oF0SUmVZiY3U9l4Apk1d4xNnV81UzE7KpdSUqYXdS/ ++-Ja7T9QXFbE0/5L7Ci9luVQLyUYNiW2CmaiiC1YE9292kfZTujsKKf4Og/65U4qgF ++-mfSTnIBSAHTkiF5Qo8QTx+qz55A0ue2NX3QXVZOYJMtjt8OQEWkGKP2iPFnGnd3i ++-TW57THaNNzVan0A96IZv3hGVNqqlUto6L0tni+QD+3d14FDRLKMCAwEAAaN1MHMw ++-HQYDVR0OBBYEFPsAsa4SCE1WrZvYs/3TKSllpTUbMA4GA1UdDwEB/wQEAwICBDAT ++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFIDE ++-rrQrGbYkUaWL+93VfSqFj3fWMA0GCSqGSIb3DQEBDQUAA4IBAQCCEJymTKz93kmQ ++-Bfgj1UkVo1MC4GQAwVDJJTdEk80a3AFPuwmuwcl50rq2w4UBN9vkleKWz9ysWSrQ ++-Qs5RoM08ggca1dqgzIKHH95ft0BFZixEfkAhfAcrEiBNT6H5lgJ+EcFNq1n1T435 ++-ow3r9P3u4FlBP4BmfpffnOFlY1cTYsEOFtDSGmBe8mNJkx2z37OAiLtSKPtkfpeq ++-84haUFAvfJX/93JLsuHbrhZXTjXVGDsbITxheiqmxaN5HiFacG0Ju2USPtHAge8H ++-Rz3fbPlN2Txn83ejbaHetj2zrbsd+QobPusfDRZKUcDG/CSXV7lc65+Lp0iPbCd/ ++-KG6q1Yf+ +++hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF +++cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc +++T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD +++szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne +++exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG +++8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw +++HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT +++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk +++Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy +++aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk +++c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo +++4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ ++++UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0 +++Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq +++g3cTPG2b ++ -----END CERTIFICATE----- ++ -----BEGIN CERTIFICATE----- ++-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 +++Srj3l9ghFLwEImIBPw== ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/generate_chain_test.rb b/examples/puma/chain_cert/generate_chain_test.rb ++index 31c215e..0e6b0d8 100644 ++--- a/examples/puma/chain_cert/generate_chain_test.rb +++++ b/examples/puma/chain_cert/generate_chain_test.rb ++@@ -14,10 +14,7 @@ expires in 4 years ++ =end ++ ++ require 'bundler/inline' ++- ++- ++-require 'certificate_authority' ++-gemfile do +++gemfile(true) do ++ source 'https://rubygems.org' ++ gem 'certificate_authority' ++ end ++diff --git a/examples/puma/chain_cert/intermediate.crt b/examples/puma/chain_cert/intermediate.crt ++index 8194028..f26fb01 100644 ++--- a/examples/puma/chain_cert/intermediate.crt +++++ b/examples/puma/chain_cert/intermediate.crt ++@@ -1,20 +1,20 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yMzA2MDEwMDAwMDBaFw0yNzA2MDEwMDAwMDBaMCYx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx ++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI ++-hvcNAQEBBQADggEPADCCAQoCggEBAOHKwUnnX7QXvewBtH5XAtRbhhgAIQQ14pxs ++-9w3WBWY6B7zKZdkRnu/bULwP4QGHPc/YAtWSMN+1aWWm/6od3xn0AfFrzWxzMXVT ++-ZTnI6aQ3emxIec3gc5Xa4+oF0SUmVZiY3U9l4Apk1d4xNnV81UzE7KpdSUqYXdS/ ++-Ja7T9QXFbE0/5L7Ci9luVQLyUYNiW2CmaiiC1YE9292kfZTujsKKf4Og/65U4qgF ++-mfSTnIBSAHTkiF5Qo8QTx+qz55A0ue2NX3QXVZOYJMtjt8OQEWkGKP2iPFnGnd3i ++-TW57THaNNzVan0A96IZv3hGVNqqlUto6L0tni+QD+3d14FDRLKMCAwEAAaN1MHMw ++-HQYDVR0OBBYEFPsAsa4SCE1WrZvYs/3TKSllpTUbMA4GA1UdDwEB/wQEAwICBDAT ++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFIDE ++-rrQrGbYkUaWL+93VfSqFj3fWMA0GCSqGSIb3DQEBDQUAA4IBAQCCEJymTKz93kmQ ++-Bfgj1UkVo1MC4GQAwVDJJTdEk80a3AFPuwmuwcl50rq2w4UBN9vkleKWz9ysWSrQ ++-Qs5RoM08ggca1dqgzIKHH95ft0BFZixEfkAhfAcrEiBNT6H5lgJ+EcFNq1n1T435 ++-ow3r9P3u4FlBP4BmfpffnOFlY1cTYsEOFtDSGmBe8mNJkx2z37OAiLtSKPtkfpeq ++-84haUFAvfJX/93JLsuHbrhZXTjXVGDsbITxheiqmxaN5HiFacG0Ju2USPtHAge8H ++-Rz3fbPlN2Txn83ejbaHetj2zrbsd+QobPusfDRZKUcDG/CSXV7lc65+Lp0iPbCd/ ++-KG6q1Yf+ +++hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF +++cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc +++T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD +++szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne +++exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG +++8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw +++HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT +++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk +++Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy +++aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk +++c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo +++4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ ++++UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0 +++Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq +++g3cTPG2b ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/intermediate.key b/examples/puma/chain_cert/intermediate.key ++index 53a547b..bb63df7 100644 ++--- a/examples/puma/chain_cert/intermediate.key +++++ b/examples/puma/chain_cert/intermediate.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- diff --cc debian/patches/0010-Update-all-certs.patch index 0000000,0000000..53b4d00 new file mode 100644 --- /dev/null +++ b/debian/patches/0010-Update-all-certs.patch @@@ -1,0 -1,0 +1,1114 @@@ ++From: MSP-Greg ++Date: Sun, 11 Aug 2024 14:29:44 -0500 ++Subject: Update all certs ++ ++Origin: upstream, https://github.com/puma/puma/commit/6db7c28b069710419cc ++Debian-Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1078640 ++--- ++ examples/puma/cert_puma.pem | 30 ++++---- ++ examples/puma/chain_cert/ca.crt | 30 ++++---- ++ examples/puma/chain_cert/ca.key | 50 +++++++------- ++ examples/puma/chain_cert/ca_chain.pem | 62 ++++++++--------- ++ examples/puma/chain_cert/cert.crt | 32 ++++----- ++ examples/puma/chain_cert/cert.key | 50 +++++++------- ++ examples/puma/chain_cert/cert_chain.pem | 94 +++++++++++++------------- ++ examples/puma/chain_cert/intermediate.crt | 32 ++++----- ++ examples/puma/chain_cert/intermediate.key | 50 +++++++------- ++ examples/puma/client_certs/ca.crt | 19 ++++++ ++ examples/puma/client_certs/ca.key | 27 ++++++++ ++ examples/puma/client_certs/client.crt | 19 ++++++ ++ examples/puma/client_certs/client.key | 27 ++++++++ ++ examples/puma/client_certs/client_expired.crt | 19 ++++++ ++ examples/puma/client_certs/client_expired.key | 27 ++++++++ ++ examples/puma/client_certs/client_unknown.crt | 19 ++++++ ++ examples/puma/client_certs/client_unknown.key | 27 ++++++++ ++ examples/puma/client_certs/server.crt | 19 ++++++ ++ examples/puma/client_certs/server.key | 27 ++++++++ ++ examples/puma/client_certs/unknown_ca.crt | 19 ++++++ ++ examples/puma/client_certs/unknown_ca.key | 27 ++++++++ ++ examples/puma/encrypted_puma_keypair.pem | 60 ++++++++-------- ++ examples/puma/keystore.jks | Bin 2253 -> 2253 bytes ++ examples/puma/puma_keypair.pem | 50 +++++++------- ++ examples/puma/server.p12 | Bin 2550 -> 2700 bytes ++ 25 files changed, 546 insertions(+), 270 deletions(-) ++ create mode 100644 examples/puma/client_certs/ca.crt ++ create mode 100644 examples/puma/client_certs/ca.key ++ create mode 100644 examples/puma/client_certs/client.crt ++ create mode 100644 examples/puma/client_certs/client.key ++ create mode 100644 examples/puma/client_certs/client_expired.crt ++ create mode 100644 examples/puma/client_certs/client_expired.key ++ create mode 100644 examples/puma/client_certs/client_unknown.crt ++ create mode 100644 examples/puma/client_certs/client_unknown.key ++ create mode 100644 examples/puma/client_certs/server.crt ++ create mode 100644 examples/puma/client_certs/server.key ++ create mode 100644 examples/puma/client_certs/unknown_ca.crt ++ create mode 100644 examples/puma/client_certs/unknown_ca.key ++ ++diff --git a/examples/puma/cert_puma.pem b/examples/puma/cert_puma.pem ++index a073099..6cbb9c1 100644 ++--- a/examples/puma/cert_puma.pem +++++ b/examples/puma/cert_puma.pem ++@@ -1,21 +1,21 @@ ++ -----BEGIN CERTIFICATE----- ++ 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 ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/ca.crt b/examples/puma/chain_cert/ca.crt ++index 3247c10..9acfe79 100644 ++--- a/examples/puma/chain_cert/ca.crt +++++ b/examples/puma/chain_cert/ca.crt ++@@ -1,20 +1,20 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMBwx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA4MDEwMDAwMDBaFw0yODA4MDEwMDAwMDBaMBwx ++ GjAYBgNVBAMMEWNhLnB1bWEubG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOC ++-AQ8AMIIBCgKCAQEAwsnMX57iy7q+UmP57mn6VQYnG/MFL0BvC4NcV/OpS4BkOHHi ++-pvp5tJxZ7N/OSg/zkYSTEPEvzLbtIORmaAMUse5rmlth/y+yMtNOc3wIJt0+Dyz8 ++-804gkDhb5Mq3Cslo899IAJ/6aBbCElLq7GC6vMtIvUvHtXHynnl7R21j/+Q6CZJj ++-bj9UuZQ3Zqxnw300E/ePrO/UlDpuihG6H2MwxncE8P6TxNkKF7H9nG5e68qeZIeF ++-R/LqQQjoZJDVlIxL3DLoiVUmC/75NWCJwDo2bJcE1T8tkN5lcXKo1z5XcHsUx70d ++-e78LVy7SIKLI2YvC1VhJIy53f2XL+9iOWqsdyQIDAQABo4GFMIGCMB0GA1UdDgQW ++-BBS1ZBYd6u9kYpn8Mgq1zMUoduXFFjAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAww +++AQ8AMIIBCgKCAQEAuKZ43p+68AFTSVno4p8rxk2Ixngw9CR9K5/11LCS+nM9jPph +++E0aWluwRAdWNs0CLN9A9ZKqJq+G67Y6CAw87g4RfUaZUkBkClwH76WUYzMTo9P3e +++UMpwzVtdrijW2Y/9MnxMCyt14WVfoY0itjEyfeGT3FbP8yKuk2qYoz3YecrhiRGu +++xv5gFZOd0hxIL0HkRe0lrpgWDj4MrvsBqUnb4aeqDgjz4lPUWo/GSvgU7xcV5Q6c +++Ti8FB9k3HZfphb2JHydZfxIqCCeflZlAQBBKNevWbSxhfsfjzqHmC64M9ELoJ/1J +++JFoX+zdlv9DqOn2k67N4rZcfptoEKPQThPmX+wIDAQABo4GFMIGCMB0GA1UdDgQW +++BBQuEpl4C66N1A3ZvoVOcO8k6G21nTAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAww ++ CgYIKwYBBQUHAwEwDAYDVR0TBAUwAwEB/zAuBgNVHSMEJzAloSCkHjAcMRowGAYD ++-VQQDDBFjYS5wdW1hLmxvY2FsaG9zdIIBATANBgkqhkiG9w0BAQ0FAAOCAQEAMsHU ++-XdW0ykvbK5jeisKcVmHfiete8UF0ftNfaIBU44u0wF3gvmpXz6hVBRaxhcD2nTgJ ++-bYHUqSMmA0zD9RS3puPZpKj5k4x51WJVPQc9OSpKbNCdsaNtus6frLSuBrVypu9L ++-7GEnTe2bS5j61XQXL9txKbECpFfP9tZiBoQ6a3aZS1eN8UUucbWQTweMrmRohFBa ++-VG695OlN05QLGoyAdCHYWA63FSjHo/uWTHVoZ2QI8PJ8WE724kB6rhrkLEYzj9sk ++-jhd5r+z3HuMtDx8OhTMreaByAyox+Rh2pGbKFtoGWpXsTz7Bf/ZBmosRw+fbxiJl ++-Srj3l9ghFLwEImIBPw== +++VQQDDBFjYS5wdW1hLmxvY2FsaG9zdIIBATANBgkqhkiG9w0BAQ0FAAOCAQEAOy3A +++9GPAQvTeqbmvMlkJh8jtTRUOKmcGUNPFQqJ4aTx/BXh8x415zjW9ZSjLN7ZSNxjJ +++nFm1XeD9I1EB1JjXwnkNTgC7zUn+kyuIMBxEvfsM0Pfdumr8VOrlidIJeTLBs029 +++tYd/kVlaZfoDS/cSu8ezS7urwY/usHRuku6MUCs4L1WZlDptweGUCWsESpIEGF7d +++ZJC8f6C8rwQimOyhhouVSlOh1NxC338TvQSflhRtWiP4lIgDVNMmb4MRDAUzbkrg +++SH4+Oho7EeoK2VSmgqSAyIpOTBBhIcdEgib7Hz+Uq+Y6KekuD8Y8SslbXitBqgS3 +++8uByucqDNovFjYNMKw== ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/ca.key b/examples/puma/chain_cert/ca.key ++index c228706..c884487 100644 ++--- a/examples/puma/chain_cert/ca.key +++++ b/examples/puma/chain_cert/ca.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/chain_cert/ca_chain.pem b/examples/puma/chain_cert/ca_chain.pem ++index 785fc82..7d500ef 100644 ++--- a/examples/puma/chain_cert/ca_chain.pem +++++ b/examples/puma/chain_cert/ca_chain.pem ++@@ -1,40 +1,40 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA4MDEwMDAwMDBaFw0yODA4MDEwMDAwMDBaMCYx ++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI ++-hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF ++-cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc ++-T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD ++-szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne ++-exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG ++-8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw ++-HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT ++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk ++-Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy ++-aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk ++-c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo ++-4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ ++-+UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0 ++-Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq ++-g3cTPG2b +++hvcNAQEBBQADggEPADCCAQoCggEBAKe0Vb0OyhNyWi4/u1jwLOkDYGx7+aXOJJyN +++5ExJNS0goWy8+OQKVBwFgZZ5jqqfrXlLheOpAEpRm7TIJVTIwD1/gi/zrNN1ec3D +++uJMBvlTzNVozfBncQ9EJ62JRC3I/56W1xYMekCIG2SjzSnAfNSojyN6SLxGmtT89 +++xN6parFq/GcvEtssDRVVUm6pyIOgpDOgTuUcqT3qUgOkN9w+5ZgjKWAc1BuMipR9 +++f8wwjuhXx2XlH2lodVWl94xo4ipY7sd2frF/oil9SXDC3ZrwGdkt9TQaCMYlt74V +++yNxPAX5XwRH8b2OAsIGkPNh7TvIkKR33JkKcXXpZbxlRP6PDWR0CAwEAAaN1MHMw +++HQYDVR0OBBYEFNVfAg8SLxqTN54wYWiWfxVic+iHMA4GA1UdDwEB/wQEAwICBDAT +++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFC4S +++mXgLro3UDdm+hU5w7yTobbWdMA0GCSqGSIb3DQEBDQUAA4IBAQAOdOtD3py2k4OO +++0Q5KvmvyybaeSlFPM6/iXNakmqJY3lELnJgjWYgBXlOK91M7F2xG8YRFoBrUipXd +++rMAburoWjnKvMoPaGZqbpligfkPIueo+ON/Q27UhvH2EYFzTOGjfnCiSCzpekesC +++32MhK7mB9Uzu9yxDgtRu0IRqCk9WbU35qDzx7mUEZwCHe11T6tV4k9ZHAvhqEvaq +++sqAgA+OoXBev6wx1tWgiqf40vuKZBRutWUSTHgGIXqain2l5b7Jv6TkCNI4HttHN +++43oME4M6P1/iH+l99Y7fZBkLGnkGYPiWXQH9NyydQVHOBm3dN26QJzAmV06ZLxEm +++iX6YKGNd ++ -----END CERTIFICATE----- ++ -----BEGIN CERTIFICATE----- ++ MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMBwx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA4MDEwMDAwMDBaFw0yODA4MDEwMDAwMDBaMBwx ++ GjAYBgNVBAMMEWNhLnB1bWEubG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOC ++-AQ8AMIIBCgKCAQEAwsnMX57iy7q+UmP57mn6VQYnG/MFL0BvC4NcV/OpS4BkOHHi ++-pvp5tJxZ7N/OSg/zkYSTEPEvzLbtIORmaAMUse5rmlth/y+yMtNOc3wIJt0+Dyz8 ++-804gkDhb5Mq3Cslo899IAJ/6aBbCElLq7GC6vMtIvUvHtXHynnl7R21j/+Q6CZJj ++-bj9UuZQ3Zqxnw300E/ePrO/UlDpuihG6H2MwxncE8P6TxNkKF7H9nG5e68qeZIeF ++-R/LqQQjoZJDVlIxL3DLoiVUmC/75NWCJwDo2bJcE1T8tkN5lcXKo1z5XcHsUx70d ++-e78LVy7SIKLI2YvC1VhJIy53f2XL+9iOWqsdyQIDAQABo4GFMIGCMB0GA1UdDgQW ++-BBS1ZBYd6u9kYpn8Mgq1zMUoduXFFjAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAww +++AQ8AMIIBCgKCAQEAuKZ43p+68AFTSVno4p8rxk2Ixngw9CR9K5/11LCS+nM9jPph +++E0aWluwRAdWNs0CLN9A9ZKqJq+G67Y6CAw87g4RfUaZUkBkClwH76WUYzMTo9P3e +++UMpwzVtdrijW2Y/9MnxMCyt14WVfoY0itjEyfeGT3FbP8yKuk2qYoz3YecrhiRGu +++xv5gFZOd0hxIL0HkRe0lrpgWDj4MrvsBqUnb4aeqDgjz4lPUWo/GSvgU7xcV5Q6c +++Ti8FB9k3HZfphb2JHydZfxIqCCeflZlAQBBKNevWbSxhfsfjzqHmC64M9ELoJ/1J +++JFoX+zdlv9DqOn2k67N4rZcfptoEKPQThPmX+wIDAQABo4GFMIGCMB0GA1UdDgQW +++BBQuEpl4C66N1A3ZvoVOcO8k6G21nTAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAww ++ CgYIKwYBBQUHAwEwDAYDVR0TBAUwAwEB/zAuBgNVHSMEJzAloSCkHjAcMRowGAYD ++-VQQDDBFjYS5wdW1hLmxvY2FsaG9zdIIBATANBgkqhkiG9w0BAQ0FAAOCAQEAMsHU ++-XdW0ykvbK5jeisKcVmHfiete8UF0ftNfaIBU44u0wF3gvmpXz6hVBRaxhcD2nTgJ ++-bYHUqSMmA0zD9RS3puPZpKj5k4x51WJVPQc9OSpKbNCdsaNtus6frLSuBrVypu9L ++-7GEnTe2bS5j61XQXL9txKbECpFfP9tZiBoQ6a3aZS1eN8UUucbWQTweMrmRohFBa ++-VG695OlN05QLGoyAdCHYWA63FSjHo/uWTHVoZ2QI8PJ8WE724kB6rhrkLEYzj9sk ++-jhd5r+z3HuMtDx8OhTMreaByAyox+Rh2pGbKFtoGWpXsTz7Bf/ZBmosRw+fbxiJl ++-Srj3l9ghFLwEImIBPw== +++VQQDDBFjYS5wdW1hLmxvY2FsaG9zdIIBATANBgkqhkiG9w0BAQ0FAAOCAQEAOy3A +++9GPAQvTeqbmvMlkJh8jtTRUOKmcGUNPFQqJ4aTx/BXh8x415zjW9ZSjLN7ZSNxjJ +++nFm1XeD9I1EB1JjXwnkNTgC7zUn+kyuIMBxEvfsM0Pfdumr8VOrlidIJeTLBs029 +++tYd/kVlaZfoDS/cSu8ezS7urwY/usHRuku6MUCs4L1WZlDptweGUCWsESpIEGF7d +++ZJC8f6C8rwQimOyhhouVSlOh1NxC338TvQSflhRtWiP4lIgDVNMmb4MRDAUzbkrg +++SH4+Oho7EeoK2VSmgqSAyIpOTBBhIcdEgib7Hz+Uq+Y6KekuD8Y8SslbXitBqgS3 +++8uByucqDNovFjYNMKw== ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/cert.crt b/examples/puma/chain_cert/cert.crt ++index 8df6d84..8467b47 100644 ++--- a/examples/puma/chain_cert/cert.crt +++++ b/examples/puma/chain_cert/cert.crt ++@@ -1,20 +1,20 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDLjCCAhagAwIBAgIBbzANBgkqhkiG9w0BAQ0FADAmMSQwIgYDVQQDDBtpbnRl ++-cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjQwNzE0MDAwMDAwWhcNMjUwNzE0 +++cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjQwODExMDAwMDAwWhcNMjUwODEx ++ MDAwMDAwWjAeMRwwGgYDVQQDDBN0ZXN0LnB1bWEubG9jYWxob3N0MIIBIjANBgkq ++-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA18r/nJpmqPzoMawvn7qt6Dtz3Jx5332M ++-BnBxXf+dlwZo+YkXGCmtXGXi8UtNZh+CnvlBf4+nauxYwzEHrIbMafH+Zt63OUvA ++-jb5uwDDaVOMal4vtwkoGzLJxINzvaxEzsSzX89maxkWyaRnaM9ac5/v0WvH0Kz+Z ++-JhzFQAIpUdxwb235BKtIwyMkKqYQb8+0mxSIIEKP9dqsrWNFXiUY1YbY786Yz76N ++-xAg/KFSUGdAPJlqMQEVaroTU6zNX5aa6WO8ynnBIvPdS9FbrfIupoXoTQ8WHnmeh ++-N09auierVy//KtZIHFyd7pMaeiqgyWn91fRz9RluEhWT8IfuOofViQIDAQABo28w ++-bTAdBgNVHQ4EFgQUBvBG+wQNE+xNksBRCuzO04bhs2kwCwYDVR0PBAQDAgbAMBMG ++-A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUHrcqkw8h ++-mKqxtzRdSG4QNeE+pSIwDQYJKoZIhvcNAQENBQADggEBAKO8XfzNct6uwxSh4FVe ++-xDcPbIOOGJv3lD2sA1xDRzw/djMITd2eRqG1iLim8whRfd1LqsXb7nHgPJIKIifR ++-oqSg0LxmsmZ2+tocFpmVNppKWUggVAuH/yel1s9JWzEkB1NXyoRONQCZIuXTmInu ++-RdrdERwy+1VZRSFL7IBZfg45ZzwH+/7Vaz5kY5FjkyBk0xwhIDRUXprO6ZhTokUC ++-152UBWdAiK4IHRxLY+h2cjIsR8szSTUzS8erwqQmt+NIeiUEJYtuVS9rQ3zXNBKV ++-l9X5G9FwHjWQL3j95ze60sa2xzObCqZ+w7f05O6ZiJ9dqdk+oIPe3+xWeQgVyYn0 ++-SLg= +++hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkH1hQqC0EFwYxi5+Ihqat9Yqebpk0A9x +++ZzdO68eBSw4glnhh/+8VNB238q3nVD+0oL5oOBFVPAA34jUrrngS3LSl7tx4y1tj +++jqn2LwKkdjAaaQn7uNKf/Ow6JX8dsaFpEUmabOzQBbhQtUDdbHmX1jgJYy8siSdU +++ExXtNHAA+kqlif0Hcj1Xx8dlXQlLiDgdO1I5h84rjfdX+TUGwnJO5MkIZ5X5r6tE +++hk8s/2dvbrU2AKcP+pTY4jw/fyDNd9q8OdW186RlBdS+uyX3D2hh+8aVLONQIJOx +++wRyQaImYzHPWMDO6MuQ5/5LAxFFYWCGSLvUTdrillB0Snmppe9uGhwIDAQABo28w +++bTAdBgNVHQ4EFgQUQT/iPOTx/zDEIgWHiraGJdrud74wCwYDVR0PBAQDAgbAMBMG +++A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAU1V8CDxIv +++GpM3njBhaJZ/FWJz6IcwDQYJKoZIhvcNAQENBQADggEBADHQ75un1UtxDI9oluXu +++wEJL0515nIAKjaWFCl0Z/CGaAWkkJERk0JBxTe9J/MrYY68NYCCAusRoUoRbvcA2 +++GQ8vKae5V6/md+npZpKQznmUk+nZMzNKr+QoMY/nvtLA5tZ85fsU40H4nbvb23EY +++3o6IiEbLD0G3FbIFtkgQ7+j9w6bvvMwd+3Ed0jSjRl4wKi4cXgD1UIyce/MVzAzT +++bXW2SLWjfRzcTsrAnrbno5S3g+KMD1w9zGNppYiFH0zydpatKjJW18r/6XgJqoim +++Rl5OGVnMNgIAw+S8/G3+/IIPXWHFE29R3j3oXjm/F8570TpQTYyx8wOmEr+zJPv0 +++8gU= ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/cert.key b/examples/puma/chain_cert/cert.key ++index 411bdc8..ed2bd0d 100644 ++--- a/examples/puma/chain_cert/cert.key +++++ b/examples/puma/chain_cert/cert.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/chain_cert/cert_chain.pem b/examples/puma/chain_cert/cert_chain.pem ++index 134ea32..5f391f3 100644 ++--- a/examples/puma/chain_cert/cert_chain.pem +++++ b/examples/puma/chain_cert/cert_chain.pem ++@@ -1,60 +1,60 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDLjCCAhagAwIBAgIBbzANBgkqhkiG9w0BAQ0FADAmMSQwIgYDVQQDDBtpbnRl ++-cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjQwNzE0MDAwMDAwWhcNMjUwNzE0 +++cm1lZGlhdGUucHVtYS5sb2NhbGhvc3QwHhcNMjQwODExMDAwMDAwWhcNMjUwODEx ++ MDAwMDAwWjAeMRwwGgYDVQQDDBN0ZXN0LnB1bWEubG9jYWxob3N0MIIBIjANBgkq ++-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA18r/nJpmqPzoMawvn7qt6Dtz3Jx5332M ++-BnBxXf+dlwZo+YkXGCmtXGXi8UtNZh+CnvlBf4+nauxYwzEHrIbMafH+Zt63OUvA ++-jb5uwDDaVOMal4vtwkoGzLJxINzvaxEzsSzX89maxkWyaRnaM9ac5/v0WvH0Kz+Z ++-JhzFQAIpUdxwb235BKtIwyMkKqYQb8+0mxSIIEKP9dqsrWNFXiUY1YbY786Yz76N ++-xAg/KFSUGdAPJlqMQEVaroTU6zNX5aa6WO8ynnBIvPdS9FbrfIupoXoTQ8WHnmeh ++-N09auierVy//KtZIHFyd7pMaeiqgyWn91fRz9RluEhWT8IfuOofViQIDAQABo28w ++-bTAdBgNVHQ4EFgQUBvBG+wQNE+xNksBRCuzO04bhs2kwCwYDVR0PBAQDAgbAMBMG ++-A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUHrcqkw8h ++-mKqxtzRdSG4QNeE+pSIwDQYJKoZIhvcNAQENBQADggEBAKO8XfzNct6uwxSh4FVe ++-xDcPbIOOGJv3lD2sA1xDRzw/djMITd2eRqG1iLim8whRfd1LqsXb7nHgPJIKIifR ++-oqSg0LxmsmZ2+tocFpmVNppKWUggVAuH/yel1s9JWzEkB1NXyoRONQCZIuXTmInu ++-RdrdERwy+1VZRSFL7IBZfg45ZzwH+/7Vaz5kY5FjkyBk0xwhIDRUXprO6ZhTokUC ++-152UBWdAiK4IHRxLY+h2cjIsR8szSTUzS8erwqQmt+NIeiUEJYtuVS9rQ3zXNBKV ++-l9X5G9FwHjWQL3j95ze60sa2xzObCqZ+w7f05O6ZiJ9dqdk+oIPe3+xWeQgVyYn0 ++-SLg= +++hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkH1hQqC0EFwYxi5+Ihqat9Yqebpk0A9x +++ZzdO68eBSw4glnhh/+8VNB238q3nVD+0oL5oOBFVPAA34jUrrngS3LSl7tx4y1tj +++jqn2LwKkdjAaaQn7uNKf/Ow6JX8dsaFpEUmabOzQBbhQtUDdbHmX1jgJYy8siSdU +++ExXtNHAA+kqlif0Hcj1Xx8dlXQlLiDgdO1I5h84rjfdX+TUGwnJO5MkIZ5X5r6tE +++hk8s/2dvbrU2AKcP+pTY4jw/fyDNd9q8OdW186RlBdS+uyX3D2hh+8aVLONQIJOx +++wRyQaImYzHPWMDO6MuQ5/5LAxFFYWCGSLvUTdrillB0Snmppe9uGhwIDAQABo28w +++bTAdBgNVHQ4EFgQUQT/iPOTx/zDEIgWHiraGJdrud74wCwYDVR0PBAQDAgbAMBMG +++A1UdJQQMMAoGCCsGAQUFBwMBMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAU1V8CDxIv +++GpM3njBhaJZ/FWJz6IcwDQYJKoZIhvcNAQENBQADggEBADHQ75un1UtxDI9oluXu +++wEJL0515nIAKjaWFCl0Z/CGaAWkkJERk0JBxTe9J/MrYY68NYCCAusRoUoRbvcA2 +++GQ8vKae5V6/md+npZpKQznmUk+nZMzNKr+QoMY/nvtLA5tZ85fsU40H4nbvb23EY +++3o6IiEbLD0G3FbIFtkgQ7+j9w6bvvMwd+3Ed0jSjRl4wKi4cXgD1UIyce/MVzAzT +++bXW2SLWjfRzcTsrAnrbno5S3g+KMD1w9zGNppYiFH0zydpatKjJW18r/6XgJqoim +++Rl5OGVnMNgIAw+S8/G3+/IIPXWHFE29R3j3oXjm/F8570TpQTYyx8wOmEr+zJPv0 +++8gU= ++ -----END CERTIFICATE----- ++ -----BEGIN CERTIFICATE----- ++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA4MDEwMDAwMDBaFw0yODA4MDEwMDAwMDBaMCYx ++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI ++-hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF ++-cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc ++-T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD ++-szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne ++-exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG ++-8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw ++-HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT ++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk ++-Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy ++-aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk ++-c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo ++-4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ ++-+UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0 ++-Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq ++-g3cTPG2b +++hvcNAQEBBQADggEPADCCAQoCggEBAKe0Vb0OyhNyWi4/u1jwLOkDYGx7+aXOJJyN +++5ExJNS0goWy8+OQKVBwFgZZ5jqqfrXlLheOpAEpRm7TIJVTIwD1/gi/zrNN1ec3D +++uJMBvlTzNVozfBncQ9EJ62JRC3I/56W1xYMekCIG2SjzSnAfNSojyN6SLxGmtT89 +++xN6parFq/GcvEtssDRVVUm6pyIOgpDOgTuUcqT3qUgOkN9w+5ZgjKWAc1BuMipR9 +++f8wwjuhXx2XlH2lodVWl94xo4ipY7sd2frF/oil9SXDC3ZrwGdkt9TQaCMYlt74V +++yNxPAX5XwRH8b2OAsIGkPNh7TvIkKR33JkKcXXpZbxlRP6PDWR0CAwEAAaN1MHMw +++HQYDVR0OBBYEFNVfAg8SLxqTN54wYWiWfxVic+iHMA4GA1UdDwEB/wQEAwICBDAT +++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFC4S +++mXgLro3UDdm+hU5w7yTobbWdMA0GCSqGSIb3DQEBDQUAA4IBAQAOdOtD3py2k4OO +++0Q5KvmvyybaeSlFPM6/iXNakmqJY3lELnJgjWYgBXlOK91M7F2xG8YRFoBrUipXd +++rMAburoWjnKvMoPaGZqbpligfkPIueo+ON/Q27UhvH2EYFzTOGjfnCiSCzpekesC +++32MhK7mB9Uzu9yxDgtRu0IRqCk9WbU35qDzx7mUEZwCHe11T6tV4k9ZHAvhqEvaq +++sqAgA+OoXBev6wx1tWgiqf40vuKZBRutWUSTHgGIXqain2l5b7Jv6TkCNI4HttHN +++43oME4M6P1/iH+l99Y7fZBkLGnkGYPiWXQH9NyydQVHOBm3dN26QJzAmV06ZLxEm +++iX6YKGNd ++ -----END CERTIFICATE----- ++ -----BEGIN CERTIFICATE----- ++ MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMBwx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA4MDEwMDAwMDBaFw0yODA4MDEwMDAwMDBaMBwx ++ GjAYBgNVBAMMEWNhLnB1bWEubG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOC ++-AQ8AMIIBCgKCAQEAwsnMX57iy7q+UmP57mn6VQYnG/MFL0BvC4NcV/OpS4BkOHHi ++-pvp5tJxZ7N/OSg/zkYSTEPEvzLbtIORmaAMUse5rmlth/y+yMtNOc3wIJt0+Dyz8 ++-804gkDhb5Mq3Cslo899IAJ/6aBbCElLq7GC6vMtIvUvHtXHynnl7R21j/+Q6CZJj ++-bj9UuZQ3Zqxnw300E/ePrO/UlDpuihG6H2MwxncE8P6TxNkKF7H9nG5e68qeZIeF ++-R/LqQQjoZJDVlIxL3DLoiVUmC/75NWCJwDo2bJcE1T8tkN5lcXKo1z5XcHsUx70d ++-e78LVy7SIKLI2YvC1VhJIy53f2XL+9iOWqsdyQIDAQABo4GFMIGCMB0GA1UdDgQW ++-BBS1ZBYd6u9kYpn8Mgq1zMUoduXFFjAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAww +++AQ8AMIIBCgKCAQEAuKZ43p+68AFTSVno4p8rxk2Ixngw9CR9K5/11LCS+nM9jPph +++E0aWluwRAdWNs0CLN9A9ZKqJq+G67Y6CAw87g4RfUaZUkBkClwH76WUYzMTo9P3e +++UMpwzVtdrijW2Y/9MnxMCyt14WVfoY0itjEyfeGT3FbP8yKuk2qYoz3YecrhiRGu +++xv5gFZOd0hxIL0HkRe0lrpgWDj4MrvsBqUnb4aeqDgjz4lPUWo/GSvgU7xcV5Q6c +++Ti8FB9k3HZfphb2JHydZfxIqCCeflZlAQBBKNevWbSxhfsfjzqHmC64M9ELoJ/1J +++JFoX+zdlv9DqOn2k67N4rZcfptoEKPQThPmX+wIDAQABo4GFMIGCMB0GA1UdDgQW +++BBQuEpl4C66N1A3ZvoVOcO8k6G21nTAOBgNVHQ8BAf8EBAMCAgQwEwYDVR0lBAww ++ CgYIKwYBBQUHAwEwDAYDVR0TBAUwAwEB/zAuBgNVHSMEJzAloSCkHjAcMRowGAYD ++-VQQDDBFjYS5wdW1hLmxvY2FsaG9zdIIBATANBgkqhkiG9w0BAQ0FAAOCAQEAMsHU ++-XdW0ykvbK5jeisKcVmHfiete8UF0ftNfaIBU44u0wF3gvmpXz6hVBRaxhcD2nTgJ ++-bYHUqSMmA0zD9RS3puPZpKj5k4x51WJVPQc9OSpKbNCdsaNtus6frLSuBrVypu9L ++-7GEnTe2bS5j61XQXL9txKbECpFfP9tZiBoQ6a3aZS1eN8UUucbWQTweMrmRohFBa ++-VG695OlN05QLGoyAdCHYWA63FSjHo/uWTHVoZ2QI8PJ8WE724kB6rhrkLEYzj9sk ++-jhd5r+z3HuMtDx8OhTMreaByAyox+Rh2pGbKFtoGWpXsTz7Bf/ZBmosRw+fbxiJl ++-Srj3l9ghFLwEImIBPw== +++VQQDDBFjYS5wdW1hLmxvY2FsaG9zdIIBATANBgkqhkiG9w0BAQ0FAAOCAQEAOy3A +++9GPAQvTeqbmvMlkJh8jtTRUOKmcGUNPFQqJ4aTx/BXh8x415zjW9ZSjLN7ZSNxjJ +++nFm1XeD9I1EB1JjXwnkNTgC7zUn+kyuIMBxEvfsM0Pfdumr8VOrlidIJeTLBs029 +++tYd/kVlaZfoDS/cSu8ezS7urwY/usHRuku6MUCs4L1WZlDptweGUCWsESpIEGF7d +++ZJC8f6C8rwQimOyhhouVSlOh1NxC338TvQSflhRtWiP4lIgDVNMmb4MRDAUzbkrg +++SH4+Oho7EeoK2VSmgqSAyIpOTBBhIcdEgib7Hz+Uq+Y6KekuD8Y8SslbXitBqgS3 +++8uByucqDNovFjYNMKw== ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/intermediate.crt b/examples/puma/chain_cert/intermediate.crt ++index f26fb01..cc9895e 100644 ++--- a/examples/puma/chain_cert/intermediate.crt +++++ b/examples/puma/chain_cert/intermediate.crt ++@@ -1,20 +1,20 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDMjCCAhqgAwIBAgIBCzANBgkqhkiG9w0BAQ0FADAcMRowGAYDVQQDDBFjYS5w ++-dW1hLmxvY2FsaG9zdDAeFw0yNDA3MDEwMDAwMDBaFw0yODA3MDEwMDAwMDBaMCYx +++dW1hLmxvY2FsaG9zdDAeFw0yNDA4MDEwMDAwMDBaFw0yODA4MDEwMDAwMDBaMCYx ++ JDAiBgNVBAMMG2ludGVybWVkaWF0ZS5wdW1hLmxvY2FsaG9zdDCCASIwDQYJKoZI ++-hvcNAQEBBQADggEPADCCAQoCggEBANyc2QAnSAUwxbuaS2ps9JrZ3uu/z6T861kF ++-cuOQaGdkSkTrYuqwZx8XG4KNC9QxJlmjo6NuZE2HduimlU0Lt4c79VrOzuhktrLc ++-T1NL2fRX62qpvcznVGJEP8UhzhgvuhpLAvLr0/4wSt4mZOgZEFzJ5sTiapCie5GD ++-szRDsuh4FNAwUMpqUxJ+Ri+z942gUhfhb3K07idI5flVSBIBjlCUvYvOuW0yo7Ne ++-exdtbaqb7Ahe2vE7M+06Ld5X2KUhx60ueTgMrilm80tm+TontsF88uKUfZfmLMNG ++-8ms2E3cN91OSweBthRxg9FBz5eF3lDcySrxtTPjNhcLp2B9YnE8CAwEAAaN1MHMw ++-HQYDVR0OBBYEFB63KpMPIZiqsbc0XUhuEDXhPqUiMA4GA1UdDwEB/wQEAwICBDAT ++-BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFLVk ++-Fh3q72RimfwyCrXMxSh25cUWMA0GCSqGSIb3DQEBDQUAA4IBAQBmv1bfw7CLhGwy ++-aOzmBVINzfRJGCMZ7EXIMo0eBNsJ7V5DmQOIsOm/BU3FGvZ+6BcJZa98NkWQybYk ++-c9slDyMGgQBVjbSW7l/aaejqKNZxD0rnN79801lN7IXSXbHk03sX8vXdXKsZSzeo ++-4hKh4ZKDjKGBuGNM1nYHaTcX8EThe5VYbsydX/ShC0x3+XKHOH0BeUUjIFT2iscQ ++-+UDqpWeMq6G+pXWVS7klezHIT5V0zg8apLhIt8o7NzJNQgz5LW/y+8LgWLEmBdp0 ++-Xj7RihQi0fxWhAWLFMgqK7QasJZZRJVOqEHabfsvCsAMzztDsm4EFzJMd0/tZXHq ++-g3cTPG2b +++hvcNAQEBBQADggEPADCCAQoCggEBAKe0Vb0OyhNyWi4/u1jwLOkDYGx7+aXOJJyN +++5ExJNS0goWy8+OQKVBwFgZZ5jqqfrXlLheOpAEpRm7TIJVTIwD1/gi/zrNN1ec3D +++uJMBvlTzNVozfBncQ9EJ62JRC3I/56W1xYMekCIG2SjzSnAfNSojyN6SLxGmtT89 +++xN6parFq/GcvEtssDRVVUm6pyIOgpDOgTuUcqT3qUgOkN9w+5ZgjKWAc1BuMipR9 +++f8wwjuhXx2XlH2lodVWl94xo4ipY7sd2frF/oil9SXDC3ZrwGdkt9TQaCMYlt74V +++yNxPAX5XwRH8b2OAsIGkPNh7TvIkKR33JkKcXXpZbxlRP6PDWR0CAwEAAaN1MHMw +++HQYDVR0OBBYEFNVfAg8SLxqTN54wYWiWfxVic+iHMA4GA1UdDwEB/wQEAwICBDAT +++BgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMEBTADAQH/MB8GA1UdIwQYMBaAFC4S +++mXgLro3UDdm+hU5w7yTobbWdMA0GCSqGSIb3DQEBDQUAA4IBAQAOdOtD3py2k4OO +++0Q5KvmvyybaeSlFPM6/iXNakmqJY3lELnJgjWYgBXlOK91M7F2xG8YRFoBrUipXd +++rMAburoWjnKvMoPaGZqbpligfkPIueo+ON/Q27UhvH2EYFzTOGjfnCiSCzpekesC +++32MhK7mB9Uzu9yxDgtRu0IRqCk9WbU35qDzx7mUEZwCHe11T6tV4k9ZHAvhqEvaq +++sqAgA+OoXBev6wx1tWgiqf40vuKZBRutWUSTHgGIXqain2l5b7Jv6TkCNI4HttHN +++43oME4M6P1/iH+l99Y7fZBkLGnkGYPiWXQH9NyydQVHOBm3dN26QJzAmV06ZLxEm +++iX6YKGNd ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/chain_cert/intermediate.key b/examples/puma/chain_cert/intermediate.key ++index bb63df7..9269949 100644 ++--- a/examples/puma/chain_cert/intermediate.key +++++ b/examples/puma/chain_cert/intermediate.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/client_certs/ca.crt b/examples/puma/client_certs/ca.crt ++new file mode 100644 ++index 0000000..c3d39dc ++--- /dev/null +++++ b/examples/puma/client_certs/ca.crt ++@@ -0,0 +1,19 @@ +++-----BEGIN CERTIFICATE----- +++MIIDDjCCAfagAwIBAgIBAzANBgkqhkiG9w0BAQsFADA4MRMwEQYKCZImiZPyLGQB +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMjQw +++ODAxMDAwMDAwWhcNMjgwODAxMDAwMDAwWjA4MRMwEQYKCZImiZPyLGQBGRYDbmV0 +++MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwggEiMA0GCSqGSIb3 +++DQEBAQUAA4IBDwAwggEKAoIBAQDPVFa7U4cqfq2Nux7VuXIUhYtaiQwxEEZuDvGI +++tlSVzpENnqFLbqH0QsOuxGgIZofsrSf4BrCzh4AoL3qY+HgVRCmkD09FnoWjFTfT +++X6v7QaCtUsrb7RNASrrgyP7rB9y7sp9oc8FNJQA3gtJQxghffO9zGhnEvPt8EGGU +++axh29BYVxvQpX1Av0SkYjTgpRus1s7r50tpoDHXhKyAHP6WEEVaN/8x1p9eXqVCT +++XIhlJJ+dgwZz/Hfnb6gr97W5G16Ceo7ybS8syKBJf2D20DOL8kLAiNpjWm9spoJi +++oxHvFMdDB3nUqZyRO+QU8gSoQBVYYqRlEnOXvouzqslUVdbLAgMBAAGjIzAhMA8G +++A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IB +++AQC9iO5jvBDNgDmUq8+NfsAZngWLOG7IR+Ez5h3CzGU9yzcJgn8y6PMjzhgc20le +++WYzAHEG/KXFIfubUW/9iA8E6We0hm0LM1s9o7A9JAqsHcZ/pK2QmDW71JupU8o1z +++3Qcu7jRzPc7zYgNwaD4/ccpJTAPGg6keV3YGN2Z5RpWykOFzP7WswaMIcKQE869c +++Tyi8i71XkVrL+xx2pRiiNDOmfMkmm8TZ9tBP7n6BcRd556TTIxhjONvmamCraBQP +++msPnMtb8+H3/IsMsUw02/fQTJ91FVa3t914Y24+q5xmkasyrhinTNmsa/S939P6I +++JNNoAM6TUZrskKPtb/pMzaqn +++-----END CERTIFICATE----- ++diff --git a/examples/puma/client_certs/ca.key b/examples/puma/client_certs/ca.key ++new file mode 100644 ++index 0000000..c689bd4 ++--- /dev/null +++++ b/examples/puma/client_certs/ca.key ++@@ -0,0 +1,27 @@ +++-----BEGIN RSA PRIVATE KEY----- +++MIIEpAIBAAKCAQEAz1RWu1OHKn6tjbse1blyFIWLWokMMRBGbg7xiLZUlc6RDZ6h +++S26h9ELDrsRoCGaH7K0n+Aaws4eAKC96mPh4FUQppA9PRZ6FoxU301+r+0GgrVLK +++2+0TQEq64Mj+6wfcu7KfaHPBTSUAN4LSUMYIX3zvcxoZxLz7fBBhlGsYdvQWFcb0 +++KV9QL9EpGI04KUbrNbO6+dLaaAx14SsgBz+lhBFWjf/MdafXl6lQk1yIZSSfnYMG +++c/x352+oK/e1uRtegnqO8m0vLMigSX9g9tAzi/JCwIjaY1pvbKaCYqMR7xTHQwd5 +++1KmckTvkFPIEqEAVWGKkZRJzl76Ls6rJVFXWywIDAQABAoIBAEBT3K02l2OZ9mNZ +++QZHyffDcFoa6quu2LwQK4uoWGFx6wQrGwyjSZLGS3YAmNFkW5umKODJ+cOjjC+Js +++CM/Zl/iRM5JRpbjmHHSjKrUMpCHLFP1yCLr/7c8u4JjKBD4MLHKYU1lnQPyclFqk +++3nhtWT+3VdwSpxghwq2Vr5ELQYX2WoHBDKj67yb2+yRVewjrmWd0f3Lm3KrPYDy2 +++McOOOB6HcZNsyXDihPYviCOmthv0AEb+HUmEwYn5A/TcTL1IVpt8YG51/VrYWysl +++A4rD3t6L5yp3hTv05dezm+hU88hSv8w2M0CQDqrxVN6zMyQ7ixj4cCbTqBJwVjmj +++IxkWyzECgYEA2My20inP2nai+ANkY56QF+2Mvof1qEpZh9J7oPjzStG3jqfjqVWT +++ZkY25SLLGO7SB06XRAgFVrq5Xyb72pXENhV2KUzOHN+osERaAyZroFlRbJxfCL8s +++p24JKVN7oJPDOJnYYv/cEEKAT1/ocxKHbi6oDZb/tJA7UHfT3NBIuV0CgYEA9NFD +++uGuV53XfuyaGh/dHurGBKu8HBjt16COasSqMxH3U7rb4JRF56wB2pVAAE8AFivNd +++A2om4b0CQK/F7TJvQY6lBKUcy4lOshwoYR2Ga7x58BJNbS6Da1OTwmk12BKxt10x +++NgThGNjRL/A7x1M2r1CPvp9+WiJF9hdWWRy3RkcCgYBX1rGn+wrdD7490FoHRsJI +++/5VLyRhOJDmcHzq54MPqJ4hAg2NpQ2PiR0aMlglFw9VS4pPFG57WIfdjRw854/5I +++j299kkHcTv4w1LDHn/RxVl74K28Rwytbdui9Vra7O8MYFrUmf1XxPJByGIC8xuAa +++U0sBnpFh3iI6GyK6z6T3fQKBgQCWofvNCUVe+UQD3xx/pELaOEWFqTTlPMi7YMzZ +++nZinfdT6XFIqXKprUgmuhZ7GiCvg5wSgCTyLQMSWEJDz9UhHSgF27jDde0qUhIbD +++2mrO91T/xgMl3qy16OLNh/a9UCNQ82JIHpBxvVZY7LObXTQUgrkvTOttghER7iIP +++CoAqGQKBgQC+26VjLWtLGRqJvWnvDW5jS3/lFB/AZPvfeLNsSs4G9Fgrqx6qNoQu +++dVI39k/kMLSqLP1iMIR5cbujF5akpWTX0dJReoeOYXJuf9hkm1+kWNiHBbNTbfqN +++htxGidymslRrSsOv9zJys5zosfHvbcKbi1dPLlV+gPN1v4eXjtLOLw== +++-----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/client_certs/client.crt b/examples/puma/client_certs/client.crt ++new file mode 100644 ++index 0000000..79e7f6f ++--- /dev/null +++++ b/examples/puma/client_certs/client.crt ++@@ -0,0 +1,19 @@ +++-----BEGIN CERTIFICATE----- +++MIIDBDCCAeygAwIBAgIBCzANBgkqhkiG9w0BAQsFADA4MRMwEQYKCZImiZPyLGQB +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMjQw +++ODAxMDAwMDAwWhcNMjgwODAxMDAwMDAwWjA/MRMwEQYKCZImiZPyLGQBGRYDbmV0 +++MRQwEgYKCZImiZPyLGQBGRYEcHVtYTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjAN +++BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzl14vsZCU7E1qf/a4Yxs/SbIf/Pz +++PW3Thbhno3JAbsTUpf9zkdDRB8fCn+R8SnJVZhCRYhUA3lNdZIskQp1h2Ix9TZxj +++QSo29ixzik0fTd7nd4KC8WOpZUyDs0U2ugmqomJXP0e/AiFpN+3HmgTWJpDx2oET +++Lcdl70+wRBkF2FDRJU/5KvArUnaGXrqW645GH3iXMadQRpEWBxFP/+aiz0FXqd9Z +++IWSoobf03dY/tIaxCrFe2+yljBB6eI/oHWs7Y861JN+nRcJrtp4LmeCdDXzQN7/y +++xDg+NVQy0sEltIMTgMyoIsb1UPD+IkepT9GKd09M6p63BX0SXr5YPhz9iQIDAQAB +++oxIwEDAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcNAQELBQADggEBAHKYzIAjmllB +++n+CRjYjtwPrkVT8azecL9efdBvE90KkGnIvRzNe4vQdH0mT4R+RUOXO4mbhAT6tX +++zOpO2gPldBAQ1GAcjs1XJPGxSqKUO8B69Nv3mXqwR3FKR4ZGseC5MXjQb5dZc3An +++NJZy6t+7gO0nDfV361JJjXvNdHd0cfx0aCWdTgQWxt9RSnH3QxvVbdXLAPvYyb1g +++Ueao9M5PMMx5cAgq4ORM+TxPJxTRj2BuRj5coHsPn7R4dkwWP59+h6Vgdf0AmeUG +++Jmdrul5ESeACbs2GixZdtqLT9QUJhTAFaXpJd3IUYyML1V7qRk1FJqRvatYxhBxQ +++gjZp0ouJRCY= +++-----END CERTIFICATE----- ++diff --git a/examples/puma/client_certs/client.key b/examples/puma/client_certs/client.key ++new file mode 100644 ++index 0000000..371a4a1 ++--- /dev/null +++++ b/examples/puma/client_certs/client.key ++@@ -0,0 +1,27 @@ +++-----BEGIN RSA PRIVATE KEY----- +++MIIEowIBAAKCAQEAzl14vsZCU7E1qf/a4Yxs/SbIf/PzPW3Thbhno3JAbsTUpf9z +++kdDRB8fCn+R8SnJVZhCRYhUA3lNdZIskQp1h2Ix9TZxjQSo29ixzik0fTd7nd4KC +++8WOpZUyDs0U2ugmqomJXP0e/AiFpN+3HmgTWJpDx2oETLcdl70+wRBkF2FDRJU/5 +++KvArUnaGXrqW645GH3iXMadQRpEWBxFP/+aiz0FXqd9ZIWSoobf03dY/tIaxCrFe +++2+yljBB6eI/oHWs7Y861JN+nRcJrtp4LmeCdDXzQN7/yxDg+NVQy0sEltIMTgMyo +++Isb1UPD+IkepT9GKd09M6p63BX0SXr5YPhz9iQIDAQABAoIBAB+oJB0z4bnf/ej5 +++uFSQS6nb+Lb0L9S1E9U4ECH5JVw4spxSXyK3w1ErujX4AX8UIfiZwwumSC9S34lM +++dQAJD5j+GDy/KFS3Sp4h/IlzQkGaV6y0Jy0rijFhdvSZwgbw862cY2DwOyNzB6aO +++QeflJQreglNwKIaFx6PZ+CLCKezgVkSmRDSjYWv/qYkpZmdEjCsI7FrYgxwmkLYr +++fO7bisPaW7vYF6S48y9Lv/e9K7qlOz4W7aAHAUUWd72271o5dJQrN5jlj/tKgBww ++++rDV1MsKNi1oqxjZnQ7rrJ/AAsc3FkaWPmUluhy9XbaZKSFJIC+TSV86US/I5QVW +++Kets+9kCgYEA19mtBjbBeZFCvR/iaFtvhlslkLiS0hRcEKO+JaRQhTB7VWTqeIv2 +++Y1bEFh1t/8NinxtPCDi2Pl57M5ffKnauxl8QsggLebTFdwnj3kFmc9g0XFlpErYe +++xHUcJ4UXpubGZNdnau8GoUGby/zY/yWX7tGsbHBBjwwvS5AvkbYEhi0CgYEA9MAh +++473dsUynCMTzdvPC1tkC5MPLTGkJ89zoxnRgQbfAEtdTpBloNnDu+XAajEL0/YsN +++cxGohipESzBs+uM68M62m7BJEpDV9eRgRH80/4O2GBTPbutJAYxbJRMazvHzMA0p +++ed9Ss0HNcyFzTlgNpUEk6LCPB3Q6ZBCx9b06ak0CgYA2Hq3zUOdRw8ooAUaTQ9nC +++pjfVAXJOmiw7P9L9PSWzP2StFJB1iSJN5gNkSBy8dBDWM9KtDQskuCvL09hwnTFV +++K6DUApBeA6U/I4uuvlch1KPMQ97EgkVUnMhiYEx93H8B6cBUX3oaFIkrrEn8L0DY +++8Fl7FupZI4T4PT6wGiMoQQKBgFZZmxtQl3DATIZJhmRHaEyIz/6KHaXdwUcqf23V +++DUjiXX/IPJg+5oeenJGgvZ0S2oDBmIMqjbyYGPQ2J5z0ooznQYH4Vi+YrgRNCLHh +++937Wp14jqXPGy0Eild2kueadcmFXo3R+GB1qb+PYv2e6pUXSkAUQlcXZeehoA4Fh +++u8RZAoGBAMNlsWXiTAZkXCQnHy7hEt3rONumzHIwBhWrMoNRQAbZSM/WWEtZuMso +++QvhR9Fmz/fiaVvBcXzBui6ffkoSsyvyhigfaiF1AwhW1S1JMXttEiGaFO7pgysmw +++26goSWo9KKpTxUcAW33qKz1HBb6a51CeucpeO3PmQRUJ5CZmLG2Y +++-----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/client_certs/client_expired.crt b/examples/puma/client_certs/client_expired.crt ++new file mode 100644 ++index 0000000..6a6fefa ++--- /dev/null +++++ b/examples/puma/client_certs/client_expired.crt ++@@ -0,0 +1,19 @@ +++-----BEGIN CERTIFICATE----- +++MIIDBDCCAeygAwIBAgIBFzANBgkqhkiG9w0BAQsFADA4MRMwEQYKCZImiZPyLGQB +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMjMw +++ODAxMDAwMDAwWhcNMjQwODAxMDAwMDAwWjA/MRMwEQYKCZImiZPyLGQBGRYDbmV0 +++MRQwEgYKCZImiZPyLGQBGRYEcHVtYTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjAN +++BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzl14vsZCU7E1qf/a4Yxs/SbIf/Pz +++PW3Thbhno3JAbsTUpf9zkdDRB8fCn+R8SnJVZhCRYhUA3lNdZIskQp1h2Ix9TZxj +++QSo29ixzik0fTd7nd4KC8WOpZUyDs0U2ugmqomJXP0e/AiFpN+3HmgTWJpDx2oET +++Lcdl70+wRBkF2FDRJU/5KvArUnaGXrqW645GH3iXMadQRpEWBxFP/+aiz0FXqd9Z +++IWSoobf03dY/tIaxCrFe2+yljBB6eI/oHWs7Y861JN+nRcJrtp4LmeCdDXzQN7/y +++xDg+NVQy0sEltIMTgMyoIsb1UPD+IkepT9GKd09M6p63BX0SXr5YPhz9iQIDAQAB +++oxIwEDAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcNAQELBQADggEBAHclwiffmiFl +++uMlhnVbcw5UILFnZLhrT5Ufxg+dpPVpd0s6vZ/emw0QgQHSUwBfo0l4De3rA4ZfK +++wqXv87c38tA9fZ6Schj+0m/pGFbixX3ptw9jm05V79broPgzSflEUKpJiyYJmjnK +++3ZfN1JoxYsd3WUrcbxnoOhNEbHuImyFn6sd1Aw7o4+Zs7GcKvKfY5n+anATy42bL +++ODnB/XJf8sZtevb57ceiKGIoGbVzrdi62QY3uQS8Jv1CAVzGHogW8mAw1yjE94v0 +++vcV7U4/v2KNt2UqWLHjIpeefnN+7scbX4YAz+UXbBZ+1DwAgSZq+oyzrBn2RKggM +++LSUeS8vdfds= +++-----END CERTIFICATE----- ++diff --git a/examples/puma/client_certs/client_expired.key b/examples/puma/client_certs/client_expired.key ++new file mode 100644 ++index 0000000..371a4a1 ++--- /dev/null +++++ b/examples/puma/client_certs/client_expired.key ++@@ -0,0 +1,27 @@ +++-----BEGIN RSA PRIVATE KEY----- +++MIIEowIBAAKCAQEAzl14vsZCU7E1qf/a4Yxs/SbIf/PzPW3Thbhno3JAbsTUpf9z +++kdDRB8fCn+R8SnJVZhCRYhUA3lNdZIskQp1h2Ix9TZxjQSo29ixzik0fTd7nd4KC +++8WOpZUyDs0U2ugmqomJXP0e/AiFpN+3HmgTWJpDx2oETLcdl70+wRBkF2FDRJU/5 +++KvArUnaGXrqW645GH3iXMadQRpEWBxFP/+aiz0FXqd9ZIWSoobf03dY/tIaxCrFe +++2+yljBB6eI/oHWs7Y861JN+nRcJrtp4LmeCdDXzQN7/yxDg+NVQy0sEltIMTgMyo +++Isb1UPD+IkepT9GKd09M6p63BX0SXr5YPhz9iQIDAQABAoIBAB+oJB0z4bnf/ej5 +++uFSQS6nb+Lb0L9S1E9U4ECH5JVw4spxSXyK3w1ErujX4AX8UIfiZwwumSC9S34lM +++dQAJD5j+GDy/KFS3Sp4h/IlzQkGaV6y0Jy0rijFhdvSZwgbw862cY2DwOyNzB6aO +++QeflJQreglNwKIaFx6PZ+CLCKezgVkSmRDSjYWv/qYkpZmdEjCsI7FrYgxwmkLYr +++fO7bisPaW7vYF6S48y9Lv/e9K7qlOz4W7aAHAUUWd72271o5dJQrN5jlj/tKgBww ++++rDV1MsKNi1oqxjZnQ7rrJ/AAsc3FkaWPmUluhy9XbaZKSFJIC+TSV86US/I5QVW +++Kets+9kCgYEA19mtBjbBeZFCvR/iaFtvhlslkLiS0hRcEKO+JaRQhTB7VWTqeIv2 +++Y1bEFh1t/8NinxtPCDi2Pl57M5ffKnauxl8QsggLebTFdwnj3kFmc9g0XFlpErYe +++xHUcJ4UXpubGZNdnau8GoUGby/zY/yWX7tGsbHBBjwwvS5AvkbYEhi0CgYEA9MAh +++473dsUynCMTzdvPC1tkC5MPLTGkJ89zoxnRgQbfAEtdTpBloNnDu+XAajEL0/YsN +++cxGohipESzBs+uM68M62m7BJEpDV9eRgRH80/4O2GBTPbutJAYxbJRMazvHzMA0p +++ed9Ss0HNcyFzTlgNpUEk6LCPB3Q6ZBCx9b06ak0CgYA2Hq3zUOdRw8ooAUaTQ9nC +++pjfVAXJOmiw7P9L9PSWzP2StFJB1iSJN5gNkSBy8dBDWM9KtDQskuCvL09hwnTFV +++K6DUApBeA6U/I4uuvlch1KPMQ97EgkVUnMhiYEx93H8B6cBUX3oaFIkrrEn8L0DY +++8Fl7FupZI4T4PT6wGiMoQQKBgFZZmxtQl3DATIZJhmRHaEyIz/6KHaXdwUcqf23V +++DUjiXX/IPJg+5oeenJGgvZ0S2oDBmIMqjbyYGPQ2J5z0ooznQYH4Vi+YrgRNCLHh +++937Wp14jqXPGy0Eild2kueadcmFXo3R+GB1qb+PYv2e6pUXSkAUQlcXZeehoA4Fh +++u8RZAoGBAMNlsWXiTAZkXCQnHy7hEt3rONumzHIwBhWrMoNRQAbZSM/WWEtZuMso +++QvhR9Fmz/fiaVvBcXzBui6ffkoSsyvyhigfaiF1AwhW1S1JMXttEiGaFO7pgysmw +++26goSWo9KKpTxUcAW33qKz1HBb6a51CeucpeO3PmQRUJ5CZmLG2Y +++-----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/client_certs/client_unknown.crt b/examples/puma/client_certs/client_unknown.crt ++new file mode 100644 ++index 0000000..ed467f1 ++--- /dev/null +++++ b/examples/puma/client_certs/client_unknown.crt ++@@ -0,0 +1,19 @@ +++-----BEGIN CERTIFICATE----- +++MIIDBTCCAe2gAwIBAgIBEzANBgkqhkiG9w0BAQsFADA5MRMwEQYKCZImiZPyLGQB +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTEMMAoGA1UEAwwDQ0FVMB4XDTI0 +++MDgwMTAwMDAwMFoXDTI4MDgwMTAwMDAwMFowPzETMBEGCgmSJomT8ixkARkWA25l +++dDEUMBIGCgmSJomT8ixkARkWBHB1bWExEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIw +++DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALpCL06kbLE9BNknrrRVfW5YgkoJ +++ih7EaPNNNqmUgnIsLBjPcCZ7qlsMaUa2ft0mRFxniFkccdrHKox1oAZQ4WrOV5Ls +++pcLktNTESkuMG5oiobsASItz125YMoEs/q+cLhErf24EaUAhXjn3/ebvCwtza1il +++7bL1RS0iwfkCS68cQi8MI+tQlBebcSUoWazoitg5YituPKNj493tS1nO5pL3vZuG +++6tNmhLr8lW+3n4Fi8SElC/pBWiIvsUhaUZzRjrcyPeMS7H2+zdJXDgTj++RNyP0U +++TLZzFigeZJXNmHia3uneHw7o3d4fyZERuBl2d990iboLbtPh/9Pf82bBIU0CAwEA +++AaMSMBAwDgYDVR0PAQH/BAQDAgSwMA0GCSqGSIb3DQEBCwUAA4IBAQBO7O5IQJHh +++4ENYDw/kJFdye3l204JSDrFMP8uMIWQLd1RiI22CWjoyhUSfoyumrzykbPNhxf4w +++kj1E+z097/8Q491wxbbLbE1hfNdTtx35dnCUVGPb9lCP4YLK3v3swXw4OklVdsCb +++k/cf8s6BdNKVPdhO0zXRBdCbq2Z2PPpzQtaZ2qH739v2tX6CulB68hUO/hQeQINA +++eJGMck7mlR4FOE76IeHKYy4F2V4S9iNtkqvkf7M0wfdRwZFJqbdZBXTjRpOVMXgr +++XFGvANl9HByFudJJHk8t+NmkIFP6rj5xQSV4i31KQQHMGNr3hCKgkk7X6Wn95BH5 +++FSJcNlLR8BuJ +++-----END CERTIFICATE----- ++diff --git a/examples/puma/client_certs/client_unknown.key b/examples/puma/client_certs/client_unknown.key ++new file mode 100644 ++index 0000000..efa436f ++--- /dev/null +++++ b/examples/puma/client_certs/client_unknown.key ++@@ -0,0 +1,27 @@ +++-----BEGIN RSA PRIVATE KEY----- +++MIIEpQIBAAKCAQEAukIvTqRssT0E2SeutFV9bliCSgmKHsRo8002qZSCciwsGM9w +++JnuqWwxpRrZ+3SZEXGeIWRxx2scqjHWgBlDhas5XkuylwuS01MRKS4wbmiKhuwBI +++i3PXblgygSz+r5wuESt/bgRpQCFeOff95u8LC3NrWKXtsvVFLSLB+QJLrxxCLwwj +++61CUF5txJShZrOiK2DliK248o2Pj3e1LWc7mkve9m4bq02aEuvyVb7efgWLxISUL ++++kFaIi+xSFpRnNGOtzI94xLsfb7N0lcOBOP75E3I/RRMtnMWKB5klc2YeJre6d4f +++Dujd3h/JkRG4GXZ333SJugtu0+H/09/zZsEhTQIDAQABAoIBADYZfjsl6Aos8okO +++jSCFCkswOxu9HJimLOOqZDuqTp9R9Db6nZUX61nJx5RJ8pxSfp2mVsSnTeyhV9r3 +++WVUsTeUjbO1YficXHe0E3J2H4waIk5hI00lqCsNaq8S4aHtibkD/dOJkNpvxdTh6 +++Lw3SFc+sJRxZCasmsYKUK2ojwA7qs72mWAW8k4pZT9p2fn+1O5G0J7I4u77CsKNp +++3m2EYkYq70UuAPyESxah97QLynQxczxygyMkJyJjyrr7lnJRotu0UOw3cX4qOmP0 +++s2gmTwBqsZ7IpyBSJHyEY4E62yfgweSoUIXtS6wWUj4WBToyAiX0zMC6XTMN27iM +++2/mHkAMCgYEA57VRh2Hj48scDoj5tFhijcqSiJyizW2CouYtF47NUi10CG7U+ATP +++HGcCJhWxIf+kzxUKaP/sgwO4ynttNz6/KMRkVW8TRazDLZCwHXCb1NEhiDuP/9lZ +++HUnIAvvI01HYJr7/4ktb7Ktxt1rA6WKcnM7Gzyrs5NdZPr4XTjiCcx8CgYEAzckR +++TG3te1UqzDs6FZba8+cGRMjoJcSahAcRj74H5YY2Oz3g8TTS144ppfkI0R3gAQ8x +++oe1DIa8XWswdcCTENnGN/D4C3qc+Cnvv2luE8d6POiO4oToRVYNycP3uCXCl7drw +++x84ky5PD4xHK5V9HDapzOz93+Q8nJ4Rq0HdgqhMCgYEA3hlEC9P+ICRZQWl0iLTL +++ywPoj4As4WJd/Q1LHbCpCGM/PLIX+6CIcb4fJihWwLMN491UPC9MIo0XvSawGmtP +++yqDtV6L/wyKFd5Cf76g4BrdrP+1v6xsIO3W0fX+hEUX7PbCJD/2SIHp5pvobvdnj +++Kr9de8i2h+gPyH9nUXgDOpsCgYEAycG+og6M7YScx0uyMQSMeuEgdkP7xzuwuo0r +++nKCVoWUqun56kkJWDVymXMGC8XO28ZLx+G5kiRvfa/f/TLnfXfmLWal6qs2RuDm2 ++++YENIQ4xorDvDbOe1xZfF4T+4mZ9aGxl8Z+c17NyNKh3Itd9FFrvS0F44MkIfGgJ +++SYYhUd0CgYEA1S9NVhD4MVu75UxiFo01cZTMBw/MQpQcEE7YgjW4Af2MmPEnw49g +++KeNjinwOS/q2JmXwprHCbewv8AuVOqNENwARCUR+o+1S/X6WwW5xt8ZAYwrdm6HY +++G62HYnzYmRwSVpzMCMMTAG0BM5dxL3YalzVBY+NTx5EVjhrzhAERI30= +++-----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/client_certs/server.crt b/examples/puma/client_certs/server.crt ++new file mode 100644 ++index 0000000..1335881 ++--- /dev/null +++++ b/examples/puma/client_certs/server.crt ++@@ -0,0 +1,19 @@ +++-----BEGIN CERTIFICATE----- +++MIIDBDCCAeygAwIBAgIBBzANBgkqhkiG9w0BAQsFADA4MRMwEQYKCZImiZPyLGQB +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMjQw +++ODAxMDAwMDAwWhcNMjgwODAxMDAwMDAwWjA/MRMwEQYKCZImiZPyLGQBGRYDbmV0 +++MRQwEgYKCZImiZPyLGQBGRYEcHVtYTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjAN +++BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxqbRfVxcH5wKCTGfuZTVisUKUIWS +++TUOWkIoyIfBKVknREnVSN40aw72bs9GDh55F+R2IJ3y9F7TQXo0Y6PJ9tFXZqJMb +++2NHXYTfhQCSN/w5wqKIrWOR7wbA4JHjs6x/vHYnjFVbvbx43M+wceKsMBlQ1eDLz +++Ukr5vjLGASmdgzTq8AUd5bNKiNq+ERyAUTcuwXWC6ndXNdr3vdEgcYnzPWtgM7eo +++1SpewqCqrlSeA1dzXThB8vCFkCNy7DYrJbCuGIIxm1D2garE2814LXztE/rhwdIG +++zonh44/Zc43cFhzJQUhcJ/jOxFovgijHd5lvUfvqj6YoquC5yFVYEfsSwwIDAQAB +++oxIwEDAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcNAQELBQADggEBAK8iNpb7JRQ+ +++CNHl/dUV2DW9Js1TndISLs0YqAcAJHgzwtp5OPV8GHUV/BF7sf91sHU8y6ivety8 +++QsvG1ToZhWAVJXG+AStgJDM8Iw6g2xZbIY3wP3bBSuxAE5PGdcXM7nRfjwnAJM7i +++Q1gdPcntc5J3dZ1Kt5d9iofI7UMBTuf0Ws+LWG73i/NeRj0lef6+VErQ6M93Yi7/ +++knXVzvRkpK2664fRmUHlavXP2Alleuuibgg8kgJ9M1yjluwwx66LXUbhMClrS/OD +++hPM29fPZmO+XHJ1dtR79DhdmwqX+GOqjD78asYHIg2Yjy3yZsOX6chKvD0MWk6pc +++DyFSu5fEHQ0= +++-----END CERTIFICATE----- ++diff --git a/examples/puma/client_certs/server.key b/examples/puma/client_certs/server.key ++new file mode 100644 ++index 0000000..ea6f467 ++--- /dev/null +++++ b/examples/puma/client_certs/server.key ++@@ -0,0 +1,27 @@ +++-----BEGIN RSA PRIVATE KEY----- +++MIIEogIBAAKCAQEAxqbRfVxcH5wKCTGfuZTVisUKUIWSTUOWkIoyIfBKVknREnVS +++N40aw72bs9GDh55F+R2IJ3y9F7TQXo0Y6PJ9tFXZqJMb2NHXYTfhQCSN/w5wqKIr +++WOR7wbA4JHjs6x/vHYnjFVbvbx43M+wceKsMBlQ1eDLzUkr5vjLGASmdgzTq8AUd +++5bNKiNq+ERyAUTcuwXWC6ndXNdr3vdEgcYnzPWtgM7eo1SpewqCqrlSeA1dzXThB +++8vCFkCNy7DYrJbCuGIIxm1D2garE2814LXztE/rhwdIGzonh44/Zc43cFhzJQUhc +++J/jOxFovgijHd5lvUfvqj6YoquC5yFVYEfsSwwIDAQABAoIBAC1UQohLC4BxAD9B +++0hMsWZ/tP2HJYO19hz1bM35YEPZoqKsAF28ypRFWUlGxdMR9ArWKHhf4mENxEH0K +++0EzTjIiacGzNiLSsiWuXLzCORtKVDnMEckS5+l1joyP7bgBnDI6eeLFVYZRm/iy8 +++a3DDgx5sl7jiU3CLSDq05ka8osMd5/WcGSx0VaenhPNUY9m40h0tuTO8NJyz12rO +++Zdm/Uq94zEA3XdPuOgnZMUZVctZzy/2TGoqCWGT/MT1ko9PJ/9vwupyTo08gNqGG +++YQGDPk/GM4f5GarLD6Ap4l1RD+5RfCdoWRLLN7Q06cQ0Sxo1OQ27cPPBIeIDyv5b +++3lvfp0kCgYEA/mljvIyGVOlJclIuBiT8Mjb4yuJktPXZdbg+sI6Pm14yYvGR/1yg +++Kas8ZSPS4VEl8v/xC5vwKEeeAByVP1+cFW5EUvj1zNFgNvfytQumnyXFyrMA+Mib +++RfX2cL00V4Hvsy+kdzRjj/HpFCZDxGB5cwAnA4H24pNaxUDdUBF4OesCgYEAx+RP +++l2Hc+JFhv0gjyj46SZVM5D2yx+U33a5FNl/NwB6AdKJ4r7j9jZFKCzniCOjkvh0D +++a7AhnnB5fuMCR3qxcWMuTtdinrTydSQb6BFA5XbHgAsQvfp8AGJ+T1A9EAMFPA6R +++QKUSd8tEYo/OQZcddvdyELDq5T/eaCVDCXPzPIkCgYAT6BstvbElI7vjfhqr0GkL +++ZNHCzkQjBLmnRGtjVURXW9+FbnGGEbFWkVeAcnUlvDvD79LknacE/9WVHKdw9gI4 +++ixA9jc1t4VQt+Oi80dSPz1zSp38D+G5t4vkNiUB3OGuREcFEsoy3zq32LahPzVyz +++aueilqDCydToalLm2PcXUQKBgH0jTUB0H6XtPchGHUHLWyodsZlhlr7VnPfG1cWI +++jIItljVuUSeRJAqwXi5Q+lShmDH8b9vG1AUgXK825oJhKRzW/nKVHERG+1KiXGYY +++BwygI5zhUIXefiqvfmugy9luSqSiagSSUtF0C0e4x2MAe42ys1IHr8X9Cfsg+Kq+ +++UBQhAoGAEMLXpCq0PnwWRoUZYxwDDvLOoEyul0jghAspec8d31j0MBUNTn19YlmA +++jci2NHSY3TMywR/USSCN56aT6LstlMyRzmoJC5DYNJvEEkMHQam/BfFO9VT0rkMG +++n6BAyqoComrkP3mg4sn9dI262Rz4I83obXj4DyV0eayOuY2mhHU= +++-----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/client_certs/unknown_ca.crt b/examples/puma/client_certs/unknown_ca.crt ++new file mode 100644 ++index 0000000..5c50d8f ++--- /dev/null +++++ b/examples/puma/client_certs/unknown_ca.crt ++@@ -0,0 +1,19 @@ +++-----BEGIN CERTIFICATE----- +++MIIDEDCCAfigAwIBAgIBETANBgkqhkiG9w0BAQsFADA5MRMwEQYKCZImiZPyLGQB +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTEMMAoGA1UEAwwDQ0FVMB4XDTI0 +++MDgwMTAwMDAwMFoXDTI4MDgwMTAwMDAwMFowOTETMBEGCgmSJomT8ixkARkWA25l +++dDEUMBIGCgmSJomT8ixkARkWBHB1bWExDDAKBgNVBAMMA0NBVTCCASIwDQYJKoZI +++hvcNAQEBBQADggEPADCCAQoCggEBAKh5VmSGmeN97MEPb9Td++UYcWHhYVj+yxi9 +++leDzcLpAgqtd+z0yBYCS2ULRQqomf8uIYODEuWxaepVNjjRN5Y22Hzlodnp+kJ3G +++CXQva6GtwxbTIxyZ21Yn8APPgb7OTHZ/js1EhZpJUSjum19PnSS8rPfQRkr6m2eg +++HKDkzV3jrJXTpNdvUhTi2NVVo0vNzLYV5Kj45vqirlTEesLxdxHtDNx8vanYHaJY +++JY7OryIJhPsxKYplSbQ7ydJuHtpx5SiFjRckw9ddhRzGjYsAQFE2eVBPjhiYJnDL +++tmEnb2e+tgRNiru9ttffpfzN4EG3/d9qnyZV9nua03yn+tqe0sECAwEAAaMjMCEw +++DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQAD +++ggEBAAp+1M6+Z8T/CA+C0288CRF27tXKn5Kd5Iffrx1Dg7I5HrFGJl87tkzLRoZi +++MKj+FfpF7fJ/QSyQt+UZa53R2vmJig6JUEQwfzXc5Bp+fusJgmkGPZQ1A5tnbwCZ +++TTuyy8Sy9reCWdJkmdDWyK3ah55mjiuOwZ+woA3RAoC9vCRtIT4w08NqrISBYp2i +++NeQCv3gooiQrbJuCUuo56Qm73juJ4T7GXElRMF+SupmhC2SHwFVGAbu0/g6Yc+ye +++i6/T36t/GTT0fG3kKfGfFMq3NCvY3WI3vcPzYtK9fN8QYVy3LjdnsjcTV2L3SaxG +++3fYURa9nn7mrxlMBX88UWLUIPlc= +++-----END CERTIFICATE----- ++diff --git a/examples/puma/client_certs/unknown_ca.key b/examples/puma/client_certs/unknown_ca.key ++new file mode 100644 ++index 0000000..830cd91 ++--- /dev/null +++++ b/examples/puma/client_certs/unknown_ca.key ++@@ -0,0 +1,27 @@ +++-----BEGIN RSA PRIVATE KEY----- +++MIIEogIBAAKCAQEAqHlWZIaZ433swQ9v1N375RhxYeFhWP7LGL2V4PNwukCCq137 +++PTIFgJLZQtFCqiZ/y4hg4MS5bFp6lU2ONE3ljbYfOWh2en6QncYJdC9roa3DFtMj +++HJnbVifwA8+Bvs5Mdn+OzUSFmklRKO6bX0+dJLys99BGSvqbZ6AcoOTNXeOsldOk +++129SFOLY1VWjS83MthXkqPjm+qKuVMR6wvF3Ee0M3Hy9qdgdolgljs6vIgmE+zEp +++imVJtDvJ0m4e2nHlKIWNFyTD112FHMaNiwBAUTZ5UE+OGJgmcMu2YSdvZ762BE2K +++u72219+l/M3gQbf932qfJlX2e5rTfKf62p7SwQIDAQABAoIBAAzm9fnO4Rwt+aKz +++ZvIbaf4aiBxh4U2qfa1QX5kRq7Fn3Vn4YZRHL2qwVFkso3laZ3ET6a9tAXJN35Nt +++lBVnXcwjhXKlEGXDKZobn3+5XfnMz+MAmnDHS6fmeRghnSMas3pjvHD17XFqaf/D +++fjynYTZ+CJUV6zw0wxAFkAu2Wg/1jrHWey9I/sO+xgq+IhxVM6O4JQHHtcR4vrSE +++vnjNF5NhxPYHLot+3n2kQ4Pfld5nJ9RHS7E9sZsoK4aQ3J1JFs70W6v+NaYHRrrY +++jVNG+uTRcYwCOgUShXsv9jwxxRToxito0/l7e3vlI5V2WVVG69CoKCqJjDFjy22C +++lNMAfa0CgYEAueRrHrNZFGnh+hvJ6gmR0KHB+pfQuC6Bub+ewOJco4e9k2rpWV5G +++RT7IGuOkYwj4wd/8er58YSIKD4hINkPEOU+Qy2j6VilIJ38wrB0nkrwURW3xGSrl +++gzzMOXgBz3JAMreNSNrfIk5y1mhqblUkG8XWMsmh3/zdSDu376zq80cCgYEA6AM2 +++lnmQZezTLek6RjdNlU5VNBSw2fb/sLsfwkP2sB4I5W8ewy7iFCRg52qWFiJL3c+1 +++1PkH03ZOJ4HgyTZXxaeFyUMpK+vA9nmPjA2vJno8c8Wc8BfaMKh5N9ckO8yYN0qO +++0BFaX7nmb6hIx3sGYyrFMbh6aeSzz6Ms03M1PbcCgYBZDlI3WgqyGevV65w3EDCY +++N/Z7fGHU6wrhFykSFR/2hCBRUKXMV7roj6REJYzqmTC7iPgnQbzKuAkD2fFmdd66 +++6iBfIsLTpmFX8ro5qpn71TkM7hfUS9W6otTgL1sGrCCPa5o3Lgw6HkUr7MgYZZev +++6n6sxCZV7YmBgoKjQz8oHwKBgGxHo6BSl7uZ7W0N3i6K/OBjsIwf4/G1vttCWa4W +++ffjv64L4e0johoaT+83FBsrJstKQb/I3Txm3qv3xNXFytT//0QZ/G6Xt3x6o2P+q +++G0Y/4hq97WJ4H1J6LiiLddOaxqd3WnNsxdrLLeqKhXzjw7VgbqunxynInMqZAwCk +++UgK9AoGAUzFOXlnloBSpVCJYv9yR4BzJndK1ivULYI6J3UXKfgTO7F1J1GyLAL8o +++0LaRoB8aUKrh6wd2sB+5y68GxJ+pUJ+xAjY9hxWNMeuYKniBzWaA2vHOpicmkkYq +++IL0vHDK0GMuaZR4IaBPsm8Pb/Wbi8Ei0pcpYnQelRTrOdewy/iQ= +++-----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/encrypted_puma_keypair.pem b/examples/puma/encrypted_puma_keypair.pem ++index 0c1bd78..d876594 100644 ++--- a/examples/puma/encrypted_puma_keypair.pem +++++ b/examples/puma/encrypted_puma_keypair.pem ++@@ -1,30 +1,30 @@ ++------BEGIN RSA PRIVATE KEY----- ++-Proc-Type: 4,ENCRYPTED ++-DEK-Info: AES-256-CBC,90F30BF02BE2889D8DA5B8168E8BC346 ++- ++-QxHwMvAj+xu2Qxe3joiBRrTneQAnby1vpLZb+AnsPbwUWC1TuSeQJdRNs9qYlYwg ++-Ow4/plNp1cPPcjEY2TQlTNtr2ur/Exy11Bs0TLcPxkiQfm+pT/uok2+Y8Qs8WMDm ++-3MLqMPw0wiqnOoLa8j/oUDC2VsutItCtIsld04NgJYOyQTOdNhZ284x4WLp6vUUy ++-atWFOWWfRTDGMzXVKnpY8RQw09D/NcHxRzdmWYelVNQpZMfFAMYygNqofoWDrS3Z ++-XX04fOSxdQg3QwjPkpwD/XH8XT0hGkQaKaAXl5TbCdOOuPtagcDZgt0f4MQJUhEq ++-HqR2bHACS4MvLk/N6l1DvoqZErepAt5uVSRclREfxnqxgXhxvhMz9fe7z0uCJzQU ++-Panj8sg3ytP2oAOAg9kPFYfUr+weUOIBXwioHqEnA3K1j2ADJnZvByIqekQ863vl ++-2f0iweHMJp23gs6FFGA0brLDY78un2L8EPQC9wgPFSZpjFmXZU7ur05bm8fndnn6 ++-jGy/RLQ9N+fXBAALmwL+nj0Q5luxdQqx6ouCiDKB2ehz3LO/KMD3QI5ysT7GpY2F ++-2Out0Ud4e2XdS+5CDs28LCBnFejaxlIvJBxXu5PhtJ+7Plm4g1uIMdRspgO+Wukw ++-5/eNMgWm3Q7+1NGlA4kg3HW6K7GV/QIITYWKk7ETX06oD4Uj/XUxinrADT48IMYQ ++-iGcSECrs9uc3MNEGA3AHDqTvmCFsBZwjtx2JZX3HwwgXUxYSX52d07fctJJe3wYX ++-hQi9b4EEyGb2uOMWH3gMLzJaLDM89sgwRz0YNHlQK2wV7mfkmjjNHVGix6M+dfo6 ++-kbXZD+rertIqytuaE++uVQEjBHk/yMPK9Yn/jA4TJlHsxNyZwrbYnHYgeGs0//fK ++-fe+ez1A67pvdS1/xAvFBuicqcI+D/Ib1kY3FIZBcnEpoNOCSBjtdZR06JeCKiD7S ++-QL5yNLgb0I5LrrO0D0Rr3jjCHpwe6WSEvO0Og6ktzXMKCTldk7YiQP1/Oy4BZBbM ++-EQh2OyqVLXAQdpgQ+J8xTI62khyqnvDelorcn1xQZbBLH7oS7pturxuFgVTW4RXL ++-SHq9GLfD4dzzIDo+fSII7PjTYwJiKFYWUZKQGboWkPHhgx3LR3geB6i+4HjuRt70 ++-mRKA1aitwIZsKKkuiTtlUhBN8gLctGJpoP92yMcmADLDLmysWIDb1G/Ogo1a1qLI ++-2N5pbJUFDrjZ82j2xLtFiVEt17cQ+7x2mxMdb5DaxliZy05XhM6SbnOETBwhIm04 ++-qV5IjZCCIqY3eEOsgeLz6vdjiohn2P2eXbgokl1vRQnzSwYaCTo64pIN4spgl+jN ++-WNsD1kQBgyvQPXoQntiiwi5CLlmVlE9RY32DYZJs0RazxcN5mBC9qP9JAVHOhUGR ++-JhaQfPl2GVtKyzz1dkvvXYjPFu7TKkt3Qtu59YmRfDu85JSzZhSFbssKu7lzNJv1 ++-wno95r0fg2uG0dvCMB1MhSaRVBnReyubPvIzycU9PYkaS23I88ZzPsxCGMlJwxCC ++-A9AlbH46bfzrToF/UgbRTbpX7kNjDcDOFb01E47b2h2Tm8bYg7winVFS1qdWr6CG ++------END RSA PRIVATE KEY----- +++-----BEGIN ENCRYPTED PRIVATE KEY----- +++MIIFLTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQISBM1VRFFvlsCAggA +++MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBAKCsPjHKrhK1EnlPvxcBeWBIIE +++0DwRydTdGeqyWPblEhdZZYpjbCMtTEDucl9Non/a6yXAO+igJCSPRze5OxAp/Smt +++iGk4LFcGTj/OlQWghqP0rBN6PPctjWRogh1t6hLfASBkmALg9Rsy5pnm103rwvJ2 +++s9hDDwavJ5guGFm6KE9Gd3ijbD0pd6JXftu3qry2jajsLEn0pkBFfTTotj45nMNz +++ByONJcs9daHduSyKmn6LimemgzK4ylRwjaycwIqmByNbN9psrLDYvgSndeDCnOk5 +++x1IwDzzBJfprjgc/ldQ+XKX/7naVN4KXiQ40cUHCzZciZzzx1M1GPk5zJlJavSmT +++BZHbTbj0M+txYArnxExBjaaA4mc/fk2JMhgJ4eWU4UHJMeS2dE7l4rBLDusmRs/r +++lG4zLEeK1vlSb8pxMIOkbm699WZQJyzcSF/RmyvVUVUJFt3swm2duWQN/8U1U269 +++uqiORRShsPaIXtGbdyklhMEVRb9jAB9nkvx4H9SYwT/YQU4oebxGZGWP8LctXJMi +++aAfFAQWs3b1PWBJ0tZee+qjmzevsQ7CdDPfVfvMz2YHGtcNgHljQDnkehFsmrp/w +++ulPwSVe3pOh9ce2Y7pIejsm+V8a/AVdpmgPGslWqOjNPdUHwBbg3ckuGV1TpuCK3 +++ku6QR65Mpx1+MBBa+P49+7QhCJXQk63F8rAc1ms2ggIDAbvf7K19UCIngiqGGts/ +++srlZMRB3dd+2U5CZ9jr3FC6czeb4mqFuDD/TZFnupvQ6f27ho+6Wx8DhOLGjdZYt +++kwKMbvI6eHjId5buFApcShQdkkv6hQq9smrgvL9OpkVCjT2diYnxeyH0nznNDPyE +++OUwqZ1lcNT0BKtv1EAirt7oRM8uK1xKgJfWCB4FVBaz7yBAE+hW21hKaJxU2hm+w +++u6TKBtEg7YVCF7VPadT1tfcPUaO3MtGZ80iesjgi/2+zNC5gr7595KteKSJoC5pj +++pI+HM8Yx0YlKu/bYLkxcltQEdLoMqjk/Zk+EruNvS2j71pvNRpIQ1qhVBH9P11G5 +++xMebXxiG/oDF3XTdbM54+yX9orElyfIKmAk8lz/YmK+9OpW/SVmFv73owJEvEvxE +++fZgEZmyavG3G+WosaJBCBG5blSRY1f68DeaBrMqZdYyyw2YC8q22xZW9u/DyzkOI +++IPafwTStUDAl0CJnNMOZIG144QLUcR5YI5RBinNC7qAvcXd+bZPH0mhzP2nWt1A/ +++nB6n2ar71PkRh9/uv4j2ySD1L2hmd98QAXBZNDc6CGfgUYqY5LqUG+XfgHKAjKiH +++ysRzv5867WwqJoZ98YOVTqVpm895pCaJwg2BWTCX3N3nxuLkPDEUi1Jy5r5BsMRc +++cC1LDRZM+9+btOBU3DDMp/37V1EqGbh40waBJBJdRZ7V/yCwEgi4ioLc9Z5AGsJh +++gQptVJXGzbfjRrxyjlu7Lim5XJOq82ARTwIIyDwEJaI1B9UREFCH594fze+4AfKe +++ftFmibsBpqlaWBedYCpqBInK9KcRLjXf1L6cA2yRto3I4JP1jKo1vMSa4uVTMft0 +++hHa7L53vf6+jF0nS3EkTk80PcMET9WyC5LeafSGn5MqYa7XepVyu7BF+WlSH61uO +++aDJls27YgbLjkGRh9NNETCafXGRclSHag+qHNk92c1vC +++-----END ENCRYPTED PRIVATE KEY----- ++diff --git a/examples/puma/keystore.jks b/examples/puma/keystore.jks ++index f1909ec..e36f314 100644 ++--- a/examples/puma/keystore.jks +++++ b/examples/puma/keystore.jks ++@@ -1,17 +1,16 @@ ++-þíþí ++-+* ++-¤ïÓØoK(¾³½Y¾ž@%`–åÏûéIÌVéòŠŽ¼­ön¡ŽúM ++-iÚHBqº•^â¼açsØ!oj¦2þ&åNnjþ_LËä èT½oøÙ°\F½•ÃJ—e/Ø©¥M~/ߚÏÂâiŠÑð5 ++-jÕ wÄÜJsÎFi ++-Ï!Ç¼P*ϟ)![tŸ z‰7Ò=.FY;†à”¹åìùWbÎ#–¨ª¦,#;¡,çm#,ÐOçbϟÄj`j®œâêѯQ™Ùœ@d΍ÞC{(ª6 ÕÓ ˆì›¸¦kÓÐcµaҍêúsÝ$Èf‡7˜—2 WºÌQbñôÓƒ¯¦‰ 1ƒP=ÜX¬ex ++-/ZÒ12YfÌ~¥Ï=q¬ÖIT} ++-†=ú€ÐèlÇ7t¯×>uVڕcÇÚr¸JšÇÀßÒB^‰‚q¯¼Lx%K5“–NwEPy¾„EGèÝ}un‘¡/.ñéwê ð|[ׇÝü†{¤Çˆ.ML¸±h÷ é¹ô#͏›ã—hŸ#½:÷”X@áPlÔÃÕiÜU< ++-î `ýÔ§Z<Ùêi?D©ž’%+©êï"À3…[³W_骬òJ´xöÓù9ì¡P+?+çZùÔKÃF1öWÙ£o2§žD¹+h/ƒq~ƒH#‰(ˆ¯…ä©yñ›Ìrµ¿dJØ oÅUÞû1_2!?¨ í6û‰æÃëÒကڡÅ}9š°ÕqƒÑ\X ++- local1 0 U aero1 0 U CA0 200801000000Z 240801000000Z0H1 0 UUS10 U +++þíþí ++++* +++E,‚?hcSÔÒ±]yB WŠG äcİé;‡-u’:è6"#®Ò牤‚æØ<‚¼bôhbGŸd{fç„æ$Ì]zÃ|åH—–Ñ«ÍØt—´¥ eã'=?Õ:¼£6µJ[Š€»!ðSù³R2­êßp¡Ç±Ò²…ögê­íE›´iìzvv ÷¢:PAI#Ÿ–ژ˄U'£8›ç¶Ó¡lŠÈ*&ln@ÃÔî¡Æÿò«Ü"|^ èÏCmn´M$MKË1ôî®ØL¶‚OÆ Ó$VÌH¡2!²‘ˆ$8™u\“‹²¥£à!oa‰² œè2*OE‡;݃ÜVÙFád€¦ÎkS>¥46¢S‹Ü!ª—bè4þn­_ +++[•`¨ˆð ÃÀ ++\ No newline at end of file ++diff --git a/examples/puma/puma_keypair.pem b/examples/puma/puma_keypair.pem ++index c8057c8..1aded78 100644 ++--- a/examples/puma/puma_keypair.pem +++++ b/examples/puma/puma_keypair.pem ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/server.p12 b/examples/puma/server.p12 ++index f8ffc7f..d928a19 100644 ++--- a/examples/puma/server.p12 +++++ b/examples/puma/server.p12 ++@@ -1,17 +1,13 @@ ++-0‚ ò0‚ ¸ *†H†÷  ‚ ©‚ ¥0‚ ¡0‚? *†H†÷  ‚00‚, ++-*†H†÷  0GsÎ~è±3 ++-˜€mJ*'Ì< ã|^î荎!ÊAi¹V` ^ ++-ë²ÔGeÃTj ȶ€1áÆUñgí"ö;´,5"W¥SÌ>´ã;*Âx£ËM¶õ6u%shL§¶íKlpŒ·n¿¾º%ü|-÷¼×GëçiŽc6dÚ©Ú'¥E‹ÚE:ÓéGËg†á#Mtüï´ÒgJtñ I‡Ö×@ìQp¸žõ?·æ÷•8{U}_VŒÅja!°¢©ÿÓUÙqúž—–WP~UÔ­¯€¹™K¶JR9äÕI… b¶¹Y­©DŠ1ß§1`‰]ch;ãÀ‘¦µƒ4'ˆ/%VÞ6œ¯>…}­±¿É=¾’z’gÛ|Jž gSˆ4lUðÌͼPôÍ󟶨裟Všh+¥Õ§oHß|(púûº•ÃÈ¡CüÀ¦-¾uF÷¹:Mh„^8wÇCögÌiÅÔY‚vü_…M¼ ÃÀÞ'ƒw”¬ý߅b6òړՍbµ}{÷ìdõyµÀ_GBwl?¥!sE©ïª-›?í&X¼ü9TU|Ï6¡wüÀÄ-ö=ä$®ÉÐÁ\ÛU‰*É}xñ\Á¸ÆÀ™s¥ùë¡/æ'-=¡‹ONñÁzV/0©³"À)bÆùå¤Ð÷´.›½KÛhxÙanˆôEÅj[˜£"™¼×¬šˆ%0&†˜iP»uC·cäG,ݞºtÍ ++-iž¶: èdóº&xއ÷Ќ|ΌûÇÅîˆWx¹ÊÜ4ÝÓ¹ ôà[®´õ[ —³á…,•ÿS8󯘐£Ê·šÊ}ϙ~‚^;R¥•œû‘®N©™ÿßñz¶Gg–rHמ-uTP¬ã0Ó*Úø¬¹n"Kò<àåµ¥ ‚#ßù ~Æd¤öMʼáŽÇÿ# ++-§Üo^0„š°Wìɇñ…›Ó¹j¶1ºa¥ƒÆ˜'ÁØ«ÀD^Îıä4;qv·r®Š_ƒúÖØ¹û4G£åNÀaÖ9jg.ê0‚Z *†H†÷  ‚K‚G0‚C0‚? *†H†÷  ++- ‚î0‚ê0 ++-*†H†÷  0Hëqd2 ++-†¬Dá#•÷Êöø­(S ´üÞʝ§à]$¿‹PW‰DjT çÞY²@8Öߘб"4å líT>–P”Âè9$’²8ՔZ•œOÁÒó˜—nP¹XÿÏEzÉ¡wB¯$Šôfÿ´ƒ×5ýõi¸MD2V,3ýήÎñ,îmÓS*e”*K¦t|ÂU ++-œ³6ÔÜèļ€~Á©^ZPFÈoWDÞÝ\ ++-c[Š\»o‹ïp"…§|ØF|µôéO/°é‡³ ðçFŒežWcR÷¶¹ÿcV›<ŒBÓޔs¹Àøè æB ŸM%^ø¼-£'ã8I¸ ç±ÅkKï<Ž£‘cf0×þ €$ªÈaF4º ++-®„$é&hàÿü ++-+ Ó¶Ë·åL#=ÎutêÇ@B:A}ñ~è°}4k&ó>3ŹCŠ©›J¬ÐøŽBÇðh1Ì$…ÐñÔð˜€ÿÒdëÁ1»Ê÷Þÿ£÷® 1êbzÃi“ÊèŎÖŸúìBÁõøû%®Þd<%´ˆ¿<7 m ++-gèá›ÎœH²xœ‡snw‘b ++-¦ë¯¿°¨ù¡' ++-<¬äöO…ha£Ð ee?¨ £žÒXK æ—<]˜Yƒ>²ÖŒg^9ùÁ )©„$‹Îl!Tx«NcÿìTâ`h‹€‘5·W.›§\›²pU-2ËiÁv¶ƒ^ÜôÀ8ÆÔ• ++- ++\ No newline at end of file +++0‚ +++ˆ0‚ +++> *†H†÷  ‚ +++/‚ ++++0‚ +++'0‚‚ *†H†÷  ‚s0‚o +++† Y0‚ *†H†÷  ‚Ž‚Š0‚†0‚‚ *†H†÷  +++ ‚10‚-0W *†H†÷  0J0) *†H†÷  0‹R)?¼ù +++Ij,éð˜Öµ==¨æ±fñ¡Ö$/£`ÑAS¡Lm-úÕsŠ»¶jvÍß`€.ÓD{ý¨‘m=q1 +++4`G|O4áP=&ƒŸ¬ +++‰O‚®Ý·%M+ÿ7֟4ÔÊMË1èz/ÜÕ2Ö‚A™9žö‚ýâ¶^ʓ!©‰ö‰m€ƒ‰wÓއ —ê/«>å‚TCÃk$j'âÆÙŸæapDV'Ç Bœè«Û¿ý‘šÜf…¦)çù²•à­!oCë˧ñEð; 5ß³ø±ëQˌ]¼è ++Date: Thu, 19 Sep 2024 17:44:55 -0300 ++Subject: Fix path of certs useb by test_example_cert_expiration.rb ++ ++Forwarded: not-needed ++--- ++ test/test_example_cert_expiration.rb | 10 +++++----- ++ 1 file changed, 5 insertions(+), 5 deletions(-) ++ ++diff --git a/test/test_example_cert_expiration.rb b/test/test_example_cert_expiration.rb ++index 5e04d49..186d2f3 100644 ++--- a/test/test_example_cert_expiration.rb +++++ b/test/test_example_cert_expiration.rb ++@@ -14,11 +14,11 @@ class TestExampleCertExpiration < Minitest::Test ++ # Explicitly list the files to test ++ TEST_FILES = %w[ ++ puma/cert_puma.pem ++- puma/client-certs/client.crt ++- puma/client-certs/ca.crt ++- puma/client-certs/client_unknown.crt ++- puma/client-certs/server.crt ++- puma/client-certs/unknown_ca.crt +++ puma/client_certs/client.crt +++ puma/client_certs/ca.crt +++ puma/client_certs/client_unknown.crt +++ puma/client_certs/server.crt +++ puma/client_certs/unknown_ca.crt ++ puma/chain_cert/ca.crt ++ puma/chain_cert/cert.crt ++ puma/chain_cert/intermediate.crt diff --cc debian/patches/0011-disable-minitest-extensions.patch index 0000000,0000000..cf1d2c9 new file mode 100644 --- /dev/null +++ b/debian/patches/0011-disable-minitest-extensions.patch @@@ -1,0 -1,0 +1,41 @@@ ++From: Daniel Leidert ++Date: Wed, 5 Feb 2020 22:20:42 +0100 ++Subject: Disable unavailable minitest extensions ++ ++Forwarded: not-needed ++--- ++ test/helper.rb | 7 +------ ++ 1 file changed, 1 insertion(+), 6 deletions(-) ++ ++--- a/test/helper.rb +++++ b/test/helper.rb ++@@ -16,7 +16,6 @@ ++ require_relative "minitest/verbose" ++ require "minitest/autorun" ++ require "minitest/pride" ++-require "minitest/proveit" ++ require "minitest/stub_const" ++ require "net/http" ++ require_relative "helpers/apps" ++@@ -110,12 +109,9 @@ ++ Minitest::Test.prepend TimeoutEveryTestCase ++ ++ if ENV['CI'] ++- require 'minitest/retry' ++ ++ SUMMARY_FILE = ENV['GITHUB_STEP_SUMMARY'] ++ ++- Minitest::Retry.use! ++- ++ if SUMMARY_FILE && ENV['GITHUB_ACTIONS'] == 'true' ++ ++ GITHUB_STEP_SUMMARY_MUTEX = Mutex.new ++@@ -215,7 +211,7 @@ ++ PROJECT_ROOT = File.dirname(__dir__) ++ ++ def self.run(reporter, options = {}) # :nodoc: ++- prove_it! +++ #prove_it! ++ super ++ end ++ diff --cc debian/patches/0012-disable-cli-ssl-tests.patch index 0000000,0000000..889a8c4 new file mode 100644 --- /dev/null +++ b/debian/patches/0012-disable-cli-ssl-tests.patch @@@ -1,0 -1,0 +1,26 @@@ ++From: Daniel Leidert ++Date: Wed, 5 Feb 2020 23:18:37 +0100 ++Subject: Disable cli ssl tests ++ ++Forwarded: not-needed ++--- ++ test/test_pumactl.rb | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++--- a/test/test_pumactl.rb +++++ b/test/test_pumactl.rb ++@@ -255,12 +255,12 @@ ++ end ++ ++ ++- def test_control_ssl_ipv4 +++ def __test_control_ssl_ipv4 ++ skip_unless :ssl ++ control_ssl '127.0.0.1' ++ end ++ ++- def test_control_ssl_ipv6 +++ def __test_control_ssl_ipv6 ++ skip_unless :ssl ++ control_ssl '[::1]' ++ end diff --cc debian/patches/0013-fix-test-term-not-accepts-new-connections.patch index 0000000,0000000..4226609 new file mode 100644 --- /dev/null +++ b/debian/patches/0013-fix-test-term-not-accepts-new-connections.patch @@@ -1,0 -1,0 +1,22 @@@ ++From: Daniel Leidert ++Date: Thu, 6 Feb 2020 11:24:24 +0100 ++Subject: Fix test to read output locale independent ++ ++The test fails if run in a non-English environment. ++ ++Forwarded: https://github.com/puma/puma/issues/2149 ++--- ++ test/test_integration_single.rb | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++--- a/test/test_integration_single.rb +++++ b/test/test_integration_single.rb ++@@ -112,7 +112,7 @@ ++ assert wait_for_server_to_include('Gracefully stopping') # wait for server to begin graceful shutdown ++ ++ # Invoke a request which must be rejected ++- _stdin, _stdout, rejected_curl_stderr, rejected_curl_wait_thread = Open3.popen3("curl #{HOST}:#{@tcp_port}") +++ _stdin, _stdout, rejected_curl_stderr, rejected_curl_wait_thread = Open3.popen3({ "LC_ALL" => "C" }, "curl http://#{HOST}:#{@tcp_port}") ++ ++ assert nil != Process.getpgid(@server.pid) # ensure server is still running ++ assert nil != Process.getpgid(curl_wait_thread[:pid]) # ensure first curl invocation still in progress diff --cc debian/patches/0014-disable-test-failing-on-amd64.patch index 0000000,0000000..74906aa new file mode 100644 --- /dev/null +++ b/debian/patches/0014-disable-test-failing-on-amd64.patch @@@ -1,0 -1,0 +1,23 @@@ ++From: Pirate Praveen ++Date: Mon, 8 Mar 2021 23:03:21 +0530 ++Subject: Disable test that failied on amd64 buildd ++ ++This test failed on amd64 buildd ++https://buildd.debian.org/status/fetch.php?pkg=puma&arch=amd64&ver=5.2.2-1&stamp=1615133735&raw=0 ++ ++Forwarded: not-needed ++--- ++ test/test_puma_server.rb | 2 +- ++ 1 file changed, 1 insertion(+), 1 deletion(-) ++ ++--- a/test/test_puma_server.rb +++++ b/test/test_puma_server.rb ++@@ -1566,7 +1566,7 @@ ++ end ++ end ++ ++- def test_command_ignored_before_run +++ def __test_command_ignored_before_run ++ @server.stop # ignored ++ @server.run ++ @server.halt diff --cc debian/patches/0015-disable-different-output-test.patch index 0000000,0000000..7148472 new file mode 100644 --- /dev/null +++ b/debian/patches/0015-disable-different-output-test.patch @@@ -1,0 -1,0 +1,13 @@@ ++Output changed from 'OK' to '::Rack::URLMap is loaded' ++ ++--- a/test/test_url_map.rb +++++ b/test/test_url_map.rb ++@@ -9,7 +9,7 @@ ++ end ++ ++ # make sure the mapping defined in url_map_test/config.ru works ++- def test_basic_url_mapping +++ def __test_basic_url_mapping ++ skip_if :jruby ++ env = { "BUNDLE_GEMFILE" => "#{__dir__}/url_map_test/Gemfile" } ++ Dir.chdir("#{__dir__}/url_map_test") do diff --cc debian/patches/0016-disable-test-failing-on-arm64.patch index 0000000,0000000..7916853 new file mode 100644 --- /dev/null +++ b/debian/patches/0016-disable-test-failing-on-arm64.patch @@@ -1,0 -1,0 +1,13 @@@ ++this test is failing on arm64 buildd (sometimes on other archs as well) ++ ++--- a/test/test_plugin_systemd.rb +++++ b/test/test_plugin_systemd.rb ++@@ -32,7 +32,7 @@ ++ @sockaddr = nil ++ end ++ ++- def test_systemd_notify_usr1_phased_restart_cluster +++ def __test_systemd_notify_usr1_phased_restart_cluster ++ skip_unless :fork ++ assert_restarts_with_systemd :USR1 ++ end diff --cc debian/patches/0017-disable-test-failing-on-armhf.patch index 0000000,0000000..9e9c286 new file mode 100644 --- /dev/null +++ b/debian/patches/0017-disable-test-failing-on-armhf.patch @@@ -1,0 -1,0 +1,13 @@@ ++https://ci.debian.net/packages/p/puma/testing/armhf/42745746/ ++ ++--- a/test/test_integration_ssl_session.rb +++++ b/test/test_integration_ssl_session.rb ++@@ -122,7 +122,7 @@ ++ assert reused, 'session was not reused' ++ end ++ ++- def test_off_tls1_2 +++ def __test_off_tls1_2 ++ ssl_vers = Puma::MiniSSL::OPENSSL_LIBRARY_VERSION ++ old_ssl = ssl_vers.include?(' 1.0.') || ssl_vers.match?(/ 1\.1\.1[ a-e]/) ++ skip 'Requires 1.1.1f or later' if old_ssl diff --cc debian/patches/0018-disable-test-failing-with-ruby3.2.patch index 0000000,0000000..ead113c new file mode 100644 --- /dev/null +++ b/debian/patches/0018-disable-test-failing-with-ruby3.2.patch @@@ -1,0 -1,0 +1,192 @@@ ++From: Debian Ruby Team ++Date: Mon, 23 Dec 2024 19:26:53 -0300 ++Subject: Skip tests failing with ruby3.2 in Ubuntu ++ ++ 1) Error: ++TestRackUp::RackUp#test_bin: ++TimeoutEveryTestCase::TestTookTooLong: execution expired ++ /<>/test/test_rack_handler.rb:318:in `sysread' ++ /<>/test/test_rack_handler.rb:318:in `test_bin' ++ /<>/test/helper.rb:90:in `block (4 levels) in run' ++ /usr/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout' ++ /usr/lib/ruby/3.2.0/timeout.rb:196:in `timeout' ++ /<>/test/helper.rb:88:in `block (3 levels) in run' ++ ++Those tests reported the following errors: ++ ++ 2) Error: ++TestCLI#test_control_clustered: ++TimeoutEveryTestCase::TestTookTooLong: execution expired ++ /<>/test/test_cli.rb:136:in `join' ++ /<>/test/test_cli.rb:136:in `test_control_clustered' ++ /<>/test/helper.rb:90:in `block (4 levels) in run' ++ /usr/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout' ++ /usr/lib/ruby/3.2.0/timeout.rb:196:in `timeout' ++ /<>/test/helper.rb:88:in `block (3 levels) in run' ++ ++ 3) Error: ++TestPluginSystemd#test_systemd_notify_usr2_hot_restart_cluster: ++Errno::EPIPE: Broken pipe ++ /<>/test/test_plugin_systemd.rb:90:in `write' ++ /<>/test/test_plugin_systemd.rb:90:in `assert_restarts_with_systemd' ++ /<>/test/test_plugin_systemd.rb:42:in `test_systemd_notify_usr2_hot_restart_cluster' ++ /<>/test/helper.rb:90:in `block (4 levels) in run' ++ /usr/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout' ++ /usr/lib/ruby/3.2.0/timeout.rb:196:in `timeout' ++ /<>/test/helper.rb:88:in `block (3 levels) in run' ++ ++ 4) Error: ++TestIntegrationPumactl#test_halt_unix: ++Errno::ECHILD: No child processes ++ /<>/test/test_integration_pumactl.rb:55:in `wait2' ++ /<>/test/test_integration_pumactl.rb:55:in `ctl_unix' ++ /<>/test/test_integration_pumactl.rb:42:in `test_halt_unix' ++ /<>/test/helper.rb:90:in `block (4 levels) in run' ++ /usr/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout' ++ /usr/lib/ruby/3.2.0/timeout.rb:196:in `timeout' ++ /<>/test/helper.rb:88:in `block (3 levels) in run' ++ ++ 5) Error: ++TestIntegrationPumactl#test_stop_unix: ++Errno::ECHILD: No child processes ++ /<>/test/test_integration_pumactl.rb:55:in `wait2' ++ /<>/test/test_integration_pumactl.rb:55:in `ctl_unix' ++ /<>/test/test_integration_pumactl.rb:38:in `test_stop_unix' ++ /<>/test/helper.rb:90:in `block (4 levels) in run' ++ /usr/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout' ++ /usr/lib/ruby/3.2.0/timeout.rb:196:in `timeout' ++ /<>/test/helper.rb:88:in `block (3 levels) in run' ++ ++ 6) Error: ++TestPumaServer#test_timeout_in_data_phase: ++TimeoutEveryTestCase::TestTookTooLong: execution expired ++ /<>/debian/puma/usr/lib/x86_64-linux-gnu/rubygems-integration/3.2.0/gems/puma-6.4.2/lib/puma/server.rb:627:in `join' ++ /<>/debian/puma/usr/lib/x86_64-linux-gnu/rubygems-integration/3.2.0/gems/puma-6.4.2/lib/puma/server.rb:627:in `stop' ++ /<>/test/test_puma_server.rb:31:in `teardown' ++ /<>/test/helper.rb:96:in `block (5 levels) in run' ++ /<>/test/helper.rb:96:in `each' ++ /<>/test/helper.rb:96:in `block (4 levels) in run' ++ /usr/lib/ruby/3.2.0/timeout.rb:189:in `block in timeout' ++ /usr/lib/ruby/3.2.0/timeout.rb:196:in `timeout' ++ /<>/test/helper.rb:95:in `block (3 levels) in run' ++ . ++ Extra failure in Debian: ++ . ++ 1) Error: ++TestIntegrationSingle#test_puma_debug_loaded_exts: ++TimeoutEveryTestCase::TestTookTooLong: execution expired ++ /build/reproducible-path/puma-6.4.3/test/helpers/integration.rb:125:in `wait2' ++ /build/reproducible-path/puma-6.4.3/test/helpers/integration.rb:125:in `stop_server' ++ /build/reproducible-path/puma-6.4.3/test/helpers/integration.rb:39:in `teardown' ++ /build/reproducible-path/puma-6.4.3/test/helper.rb:96:in `block (5 levels) in run' ++ /build/reproducible-path/puma-6.4.3/test/helper.rb:96:in `each' ++ /build/reproducible-path/puma-6.4.3/test/helper.rb:96:in `block (4 levels) in run' ++ /usr/lib/ruby/3.3.0/timeout.rb:186:in `block in timeout' ++ /usr/lib/ruby/3.3.0/timeout.rb:193:in `timeout' ++ /build/reproducible-path/puma-6.4.3/test/helper.rb:95:in `block (3 levels) in run' ++ . ++ They do not seem real regressions, so skipping them for now. ++Author: Lucas Kanashiro ++Last-Updated: 2024-12-23 ++Forwarded: not-needed ++--- ++ test/test_cli.rb | 2 +- ++ test/test_integration_pumactl.rb | 4 ++-- ++ test/test_integration_single.rb | 2 +- ++ test/test_plugin_systemd.rb | 2 +- ++ test/test_puma_server.rb | 4 ++-- ++ test/test_rack_handler.rb | 2 +- ++ 6 files changed, 8 insertions(+), 8 deletions(-) ++ ++diff --git a/test/test_cli.rb b/test/test_cli.rb ++index 686f2ec..b20a9e5 100644 ++--- a/test/test_cli.rb +++++ b/test/test_cli.rb ++@@ -101,7 +101,7 @@ class TestCLI < Minitest::Test ++ t&.join ++ end ++ ++- def test_control_clustered +++ def __test_control_clustered ++ skip_unless :fork ++ skip_unless :unix ++ url = "unix://#{@tmp_path}" ++diff --git a/test/test_integration_pumactl.rb b/test/test_integration_pumactl.rb ++index e383764..fc4fdd4 100644 ++--- a/test/test_integration_pumactl.rb +++++ b/test/test_integration_pumactl.rb ++@@ -34,11 +34,11 @@ class TestIntegrationPumactl < TestIntegration ++ @server = nil ++ end ++ ++- def test_stop_unix +++ def __test_stop_unix ++ ctl_unix ++ end ++ ++- def test_halt_unix +++ def __test_halt_unix ++ ctl_unix 'halt' ++ end ++ ++diff --git a/test/test_integration_single.rb b/test/test_integration_single.rb ++index 226e8f4..a57cd73 100644 ++--- a/test/test_integration_single.rb +++++ b/test/test_integration_single.rb ++@@ -246,7 +246,7 @@ class TestIntegrationSingle < TestIntegration ++ assert true ++ end ++ ++- def test_puma_debug_loaded_exts +++ def _test_puma_debug_loaded_exts ++ cli_server "#{set_pumactl_args} test/rackup/hello.ru", puma_debug: true ++ ++ assert wait_for_server_to_include('Loaded Extensions:') ++diff --git a/test/test_plugin_systemd.rb b/test/test_plugin_systemd.rb ++index b9ded19..e813da0 100644 ++--- a/test/test_plugin_systemd.rb +++++ b/test/test_plugin_systemd.rb ++@@ -37,7 +37,7 @@ class TestPluginSystemd < TestIntegration ++ assert_restarts_with_systemd :USR1 ++ end ++ ++- def test_systemd_notify_usr2_hot_restart_cluster +++ def __test_systemd_notify_usr2_hot_restart_cluster ++ skip_unless :fork ++ assert_restarts_with_systemd :USR2 ++ end ++diff --git a/test/test_puma_server.rb b/test/test_puma_server.rb ++index 8c6f3f6..9ea0c47 100644 ++--- a/test/test_puma_server.rb +++++ b/test/test_puma_server.rb ++@@ -593,7 +593,7 @@ class TestPumaServer < Minitest::Test ++ assert_equal [:booting, :running, :stop, :done], states ++ end ++ ++- def test_timeout_in_data_phase(**options) +++ def __test_timeout_in_data_phase(**options) ++ server_run(first_data_timeout: 1, **options) ++ ++ socket = send_http "POST / HTTP/1.1\r\nHost: test.com\r\nContent-Type: text/plain\r\nContent-Length: 5\r\n\r\n" ++@@ -606,7 +606,7 @@ class TestPumaServer < Minitest::Test ++ assert_equal "HTTP/1.1 408 #{STATUS_CODES[408]}\r\n", data ++ end ++ ++- def test_timeout_data_no_queue +++ def __test_timeout_data_no_queue ++ test_timeout_in_data_phase(queue_requests: false) ++ end ++ ++diff --git a/test/test_rack_handler.rb b/test/test_rack_handler.rb ++index 59fbcd3..e93d41c 100644 ++--- a/test/test_rack_handler.rb +++++ b/test/test_rack_handler.rb ++@@ -308,7 +308,7 @@ module TestRackUp ++ FileUtils.rm 'config.ru' ++ end ++ ++- def test_bin +++ def __test_bin ++ pid = nil ++ # JRuby & TruffleRuby take a long time using IO.popen ++ skip_unless :mri diff --cc debian/patches/0018-update-certs-from-upstream.patch index 0000000,0000000..eeea700 new file mode 100644 --- /dev/null +++ b/debian/patches/0018-update-certs-from-upstream.patch @@@ -1,0 -1,0 +1,597 @@@ ++From 0b6b91080db31e7c51b2a430efee2c2827b050f8 Mon Sep 17 00:00:00 2001 ++From: Kartikey Tanna ++Date: Sat, 10 Aug 2024 21:01:12 +0530 ++Subject: [PATCH] CI: update client certs example files (#3440) ++ ++Certs regenerated with ++ ++ ruby examples/puma/client-certs/generate_client_test.rb ++--- ++ examples/puma/client-certs/ca.crt | 28 +++++------ ++ examples/puma/client-certs/ca.key | 50 +++++++++---------- ++ examples/puma/client-certs/client.crt | 30 +++++------ ++ examples/puma/client-certs/client.key | 50 +++++++++---------- ++ examples/puma/client-certs/client_expired.crt | 30 +++++------ ++ examples/puma/client-certs/client_expired.key | 50 +++++++++---------- ++ examples/puma/client-certs/client_unknown.crt | 30 +++++------ ++ examples/puma/client-certs/client_unknown.key | 50 +++++++++---------- ++ examples/puma/client-certs/server.crt | 30 +++++------ ++ examples/puma/client-certs/server.key | 50 +++++++++---------- ++ examples/puma/client-certs/unknown_ca.crt | 28 +++++------ ++ examples/puma/client-certs/unknown_ca.key | 50 +++++++++---------- ++ 12 files changed, 238 insertions(+), 238 deletions(-) ++ ++diff --git a/examples/puma/client-certs/ca.crt b/examples/puma/client-certs/ca.crt ++index a69ea6fb60..5ca5ad462a 100644 ++--- a/examples/puma/client-certs/ca.crt +++++ b/examples/puma/client-certs/ca.crt ++@@ -1,19 +1,19 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDDjCCAfagAwIBAgIBAzANBgkqhkiG9w0BAQsFADA4MRMwEQYKCZImiZPyLGQB ++-GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMjAw ++-ODAxMDAwMDAwWhcNMjQwODAxMDAwMDAwWjA4MRMwEQYKCZImiZPyLGQBGRYDbmV0 +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMjQw +++ODAxMDAwMDAwWhcNMjgwODAxMDAwMDAwWjA4MRMwEQYKCZImiZPyLGQBGRYDbmV0 ++ MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwggEiMA0GCSqGSIb3 ++-DQEBAQUAA4IBDwAwggEKAoIBAQDIHxrFcS2JkRQbXLFosb32unVkVuwHSPSt6Dpl ++-2jUQHP/bceAx/d9waHYf8rlbCFAIoduZDOc7XCJUidgcG5NfLJyQpkkWOU8CGWH+ ++-Ipl4AE8auYCcy/0T7BQqaRC41HPmrJG1CC40rqcY47lUO2haI+vj5TZFHNhAbRat ++-rR1iD1veis2gBZtrMzd4IlpvEHGv6ghfnSc20za4exmapjp/uAAIOXpeFX8QHumA ++-bty4dd+iHpKjDzUrhG9Qa5v28ii2K1AcbczUQ7FzSp2/GoRSjF+WY6i86N9Z1M97 ++-2PEgy0IG5l6JHu1P0/rd00hN0h0Owzv3V5ldMLZap7+pVFQTAgMBAAGjIzAhMA8G +++DQEBAQUAA4IBDwAwggEKAoIBAQDAvPDst3Kqf1OV6XPD2G/2t4r83772/mXpde4a +++dliadJSuOvbW+eQC/SNk/0Ghi4VZCmsnciV0tyUqjCZq6QR1KvdvWyIXlubYwGIG +++x/fwUbBFlh4W6uuxi6noJg+yOl5CF2LLIa6nEA7Nl29GjH6oFEzGUt4hIl3Ieb4+ +++BdD6CsOHPl82yg8dNDBE85YwXRGoTv/yWUouZMzAwFbXzOJJGTI08FxOZeNf//jk +++wnoWEybaLjwE0cliDHZWV5Ou9HIJMrzi7VGRyRwOzUeV0Jsx3IhAT3zSnJlQ+i0W +++W/qjuHXW/Y10ygV5w5VsP8CWPjgiFQbZRFrj2dmV3N1T1+9jAgMBAAGjIzAhMA8G ++ A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4IB ++-AQA3GWpy4bYLOHLENDTUBeclF6cDdYiautD6gxd1SDLMWOhAUF7ywwT87OAJdr1I ++-+W1TUv5BRG21rNm1QsZfLbStdKA1mpiET/9nYN7m1YauL5hI3yD49TGuO9/sxcE5 ++-zNW7D3VBVNq+pyT21/TvLAgxCNvjjm7byzyIOcoRUyZx8WhCf8nUT6cEShXqEg4Q ++-iUBSLI38tiQoZneuVzDRlXBY0PqoB19l2Kg9yThHjPTVhw5EAQSDKXCCvaxAbVw6 ++-ZPLNnOdK6DvqEZ3GC5WlaHQdmLxmN4OfV6AEtpgqgGY9u8K1ylTr3ET7xLK7bhcA ++-oZsggEVZr1Ifx9BWIazRNwlw +++AQAJDqGMwN7PWFvFkQFOXb6y474x29oVHjt7GdMTHeuowUZFn3fTSfWW5+yIkkyf +++qFXk/VFyi28YLA5hqfiMCy+rIJE99mbg4WV2EjtokmotXkytvGA2VAv2ZfGnFW4+ +++WoAYDIuFLs4SrLZ8bjZ9+HIlTBkDaa6e9I2rzsnk4jpO7Ed2X8elUFTSS6jNkSbF +++fspY2cJaomj3pVt3ba/qt1MiNgcwKieOirYt2rUGZVlveMLEzt7lyIa2C6sV3tP8 +++BO+7B7c2n2rU0rTdUiZRzC+wcv34zJrnq6Y9CoeWSeVyf6DN7TT0NEh94iIAYStU +++pr8/EoadU91J6bnCruGwWYuf ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/client-certs/ca.key b/examples/puma/client-certs/ca.key ++index 59bc391a20..47efb33baa 100644 ++--- a/examples/puma/client-certs/ca.key +++++ b/examples/puma/client-certs/ca.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/client-certs/client.crt b/examples/puma/client-certs/client.crt ++index 9703ebdbde..4284c64f9d 100644 ++--- a/examples/puma/client-certs/client.crt +++++ b/examples/puma/client-certs/client.crt ++@@ -1,19 +1,19 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDBDCCAeygAwIBAgIBCzANBgkqhkiG9w0BAQsFADA4MRMwEQYKCZImiZPyLGQB ++-GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMjAw ++-ODAxMDAwMDAwWhcNMjQwODAxMDAwMDAwWjA/MRMwEQYKCZImiZPyLGQBGRYDbmV0 +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMjQw +++ODAxMDAwMDAwWhcNMjgwODAxMDAwMDAwWjA/MRMwEQYKCZImiZPyLGQBGRYDbmV0 ++ MRQwEgYKCZImiZPyLGQBGRYEcHVtYTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjAN ++-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoywLJRT7wZM1P3Abg9NIT+NJ8TkS ++-IBz8ZgyyhSW1lU/tcsNEJakIl22XAeLEHfMknMzDqvU1G256hqM+/Tgohreat+yc ++-ofy+2OOu4un+44qIGX82i2PCt+afVvbGhPpHioyAJRDXZd9V4FtESH+6As7m+6MH ++-E4yX547E6XmmJ9lp8z9FnBMi1a6C01bI6mZhMuReLl2bS0FWjqrwNN3PpizBD+Vv ++-FbUIndC+UiD0kYPxTwSDCpEq/To0FrNCdAj94Y4oZVuvx8B1mHiqwkqmlOLUZslS ++-u7CFInqbswq5LnGFRIVSg3bu4bgCbCEmJhfqxp5MODT4VBXa2sCOnG7BBwIDAQAB ++-oxIwEDAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcNAQELBQADggEBAApaKvnGiRqs ++-Vz4B06f/mDLmN7gb0e/evEypB2S06fp9f/oWWHXHCxpx9bKbiHFNNiinoc97/Spb ++-GzylHV/n9j8GEtZmJMiSJZubN8vpn1Jg0Usz3ZtAy0fe9ephjBIXPpwrsGF6Oz3u ++-U/b2zTpJX3oJ3Eq6Q9hLplYU3bNHfrw6PAbzbB91zVTFsqZUTctKrMRgp68FA4fw ++-VWQkb4QwLK1UVJIT/nR3v7nJDktgpR4mfdrtWbWxOGm/ed2oOilpqVhVN99P+bUn ++-3cFkQ6PSYK8En9jJhBMe/zQqpSyy09Tfi/Zy6nzZv0ah53bpeCFLZFi+0CU8HwPr ++-MuD1XQN72zg= +++BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxZ0Nt+SANz6B1NevcV8DuKi9m5/j +++4/Clc5eqS5TkYjZ71SYjV2j0Cy7PtdDXcUZSUMdg8dTww9zbxS0GQUg2lUltbbkO +++nWcWgLp0COCPjunld1sHI+rZcMaLlG9qdVSxvKmzBjavaur+Eb3O1tA7gZLjV9kJ +++tDjUDN5Eur8HH9BdpjNkf+vv5VnGfrFplYcsGYOXdTYUlgrbDfxidHIBlebEaD47 +++acHzLxcWrdlmDdGhLZ5eir3reaRyeZwAQESO11pIN3sp0aS6IYcIPaRdA+saYNBu +++QCRr4j7EauGPdxwX+RhoJ3Yg09vz1Rj/jesvl3grU7Hk9oeG5JjPUDEYQwIDAQAB +++oxIwEDAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcNAQELBQADggEBAEFT7Qmph1wU +++seHb5nCXL4ZF76dJQWjqm18jWYnLZcW6hGrq8VPyVgE3znWlK58UKFVo0r70QQe2 +++H+vjtWL+9uw5l1pKsnwve3mz+cC5uhK7SjvDaE+nA6vKXbgL4ANodyHq4i+Kc2/k +++o4Y+drmfscTWAWbwp0KENMsQzr61pV27hIH1CUIo2/6DQuf8mTjIGd/bgWeUEq0X +++aoHgsjMiPXI4j1IezdEFLLE3s5QbFqgPPrA6JnMMiH4G1xB6Vx5B8Ho0qlzZyeWe +++pNA1jAsrsXYou5tv7nYwjnQPUEGhkOJ9rHbRod9MpTVCnZDyZz9miUQm6BrzdqUz +++ycTxmpjng7U= ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/client-certs/client.key b/examples/puma/client-certs/client.key ++index 15820eed73..39ee1cccea 100644 ++--- a/examples/puma/client-certs/client.key +++++ b/examples/puma/client-certs/client.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-MIIEowIBAAKCAQEAoywLJRT7wZM1P3Abg9NIT+NJ8TkSIBz8ZgyyhSW1lU/tcsNE ++-JakIl22XAeLEHfMknMzDqvU1G256hqM+/Tgohreat+ycofy+2OOu4un+44qIGX82 ++-i2PCt+afVvbGhPpHioyAJRDXZd9V4FtESH+6As7m+6MHE4yX547E6XmmJ9lp8z9F ++-nBMi1a6C01bI6mZhMuReLl2bS0FWjqrwNN3PpizBD+VvFbUIndC+UiD0kYPxTwSD ++-CpEq/To0FrNCdAj94Y4oZVuvx8B1mHiqwkqmlOLUZslSu7CFInqbswq5LnGFRIVS ++-g3bu4bgCbCEmJhfqxp5MODT4VBXa2sCOnG7BBwIDAQABAoIBAGsjyE2Y8ZWxKw10 ++-dxyf5qNOAoc5igU8Ax6ex7lVgV2BFdB9FooD63hCpRy/4TYpKKksam4eg7h3Wkx9 ++-dCagcTvD4vtRiadzZXzUQ0kLjCmsFKFpPk9YOcq2y3k2oDNAgykeCCZOYKCrfJ/M ++-TZGtDF47rL8d1M+pSTTqMbF8BvWyZ3hTKkB4dNbF4uNQ5EPD8fgkmPOMR9Ul5R3X ++-XvrzDWYJb0+qElbtP4Y570KQTmbBpTj2soFb2fLuPv4NpBTNx3xIja4fs7wYP46M ++-k1dI+wQnrC512rpacowOtWKlqx3yBrtKNjg39faPHQQpfPqkJNYZZPVA9rc255SG ++-l4B7y4ECgYEA1v+8z4r+lkrX/t0L2WmuHHjE6no+1c3C4RdHkkUYvgUWdE7fjRGH ++-fpcfZu/aTcnTj+LAkZpEty8gDZKqb8tpliMbpnkzx7Li4AYQof5QYcWQb9rJYihT ++-70fJgLN2QQCAD7VC00AuUam7D8r4o4uImmrOxa5jqZFHztphKXMU4p8CgYEAwkoc ++-vZ/LRcbiKm72/CJ8RI9YgkQanFye/6cYwsVyrydmaevxdCq68hcafPSHwJSraEK9 ++-zo2T6qaZZr1zdwdSFutsBfOw6g7MMPfxtUPtmHJnwoFsEBSjwSwddwi/RLXiZGUK ++-I31z1sRO4XoLzhvESZZP9aCURT3MSwqFTWsasJkCgYEApyKpoeHYpfdK0FsAciRA ++-cOvFkM41eLn7LEaPofrLEDUeTo5eJOkinttWUwxUdbJXH/zTXJ1Dm/Arh8Gjc0L7 ++-MvbZ8OE5yp2a1zJ/zZ7I2CjgbsPzV7YoAdSZpc5dOIzuAMgVSeoT1/INdGqCPYkk ++-SX6MfYpi+Zfx7bFAZRuMedsCgYA2Qrp6HumHSD8buLfTvNHV1+7RGrIP3zIslf8t ++-TjV0Q12v0UwytEhXmio0oZpUJ3Ejghg+Wn3n97U540kfAfVkH0Wg9+j9xTozpttj ++-U2BExhbCVKDYcNs29NoZx2CbkOx0O1+0f7HdVh/tisdHPav5HTihkcI3AEZQ4tRN ++-xc7DaQKBgFtj7G/nbhU1Rr1d7HJk8to88zHvUPPWI8AaqyQKDKD2nOSAysA0v9h6 ++-z7FG0SidXeCZF8NnlxRcR6+Zf/oDgx/akKGXGGGifgAIjkq53CQewNyg8iQda0cF ++-3wU8z+qAajPnhXEZ7T/OO1pRUUQRvM1obOLVORTzP+ZTD9/RZu4F +++MIIEogIBAAKCAQEAxZ0Nt+SANz6B1NevcV8DuKi9m5/j4/Clc5eqS5TkYjZ71SYj +++V2j0Cy7PtdDXcUZSUMdg8dTww9zbxS0GQUg2lUltbbkOnWcWgLp0COCPjunld1sH +++I+rZcMaLlG9qdVSxvKmzBjavaur+Eb3O1tA7gZLjV9kJtDjUDN5Eur8HH9BdpjNk +++f+vv5VnGfrFplYcsGYOXdTYUlgrbDfxidHIBlebEaD47acHzLxcWrdlmDdGhLZ5e +++ir3reaRyeZwAQESO11pIN3sp0aS6IYcIPaRdA+saYNBuQCRr4j7EauGPdxwX+Rho +++J3Yg09vz1Rj/jesvl3grU7Hk9oeG5JjPUDEYQwIDAQABAoIBAAdVbZxnp6slL+FL +++wzA5vqQcPbPS/7ybrNrjg9zmi4E/lLc+K+1DBlzh4bCALcv/jZoqLrqwKeKYRYmw +++Quf/pj2Xv4QPwZntfk7MXKELCxjaglBnJEEyJoatFPdZw9bTNqi8mC8WBCA7f1lT +++iiO7ukbz7L77stn+3+kTA0mg7EKYbWTO3UVk14Yhp5jPEvPLOUHrnu9i6VfaW8+Q +++DaYgdw/D+bgIC4E8/zMPuXS/WyZBmqk64uA156OrMMIKYXCN0CV/HpOWIKDd6uEt +++1o0Zv9cvHGU2gM4amicrlsVPAtC6vyW43xphetQVK0yzb69qJ3BYfZComScCSl78 +++xYIr2MECgYEAykpIlEVNhjEfjqQn7yKhwP160exPRaLFI6EN4S6gUY+n5K4JvxLV +++9XG8ahachAi9b8jcRJfr0ld1tpZfshQeOAjOEm6H7sRO95i6j9lRDIymgqsYPeAs +++HzniU93F26bW3FW+uxohG+ozXOxNxzh+9GbWm7v/JKcFbPWO6W9O6YMCgYEA+hTl +++GowuJgb5kSZNpdz+QN6B5r4E9SXclWsoF8CSE1yarSI0iNXOxYtdmhqQfAhVKX/S +++UTKcgOz53jq5SAWZd86bf+YIK+nS5pwFJNe5eK5Acbakc5rIXQgH4+erOS6/qJlL +++3uq2M3bgkB3RaDSrheL6KSUymr2PLucunXxlmkECgYAod0+piWuGqpD7gc8TQURG +++TO6iy7jX30W8aN1T7HXZmvkk/8OnW2c9oDDmr/tDVlQ+5llZx2I/Q4uiqNYf03Jw +++FyLSARZkJxT85qp7WCekcQZmIT/KMOvimzuxNy37UJauoOB0oTd6VBFOR18PuTd8 +++QI4xvRu/A0JMl5qtC70nbQKBgEyVtYupvkA7Bpai6kiPIvXurk1hh9cjXygLBt4v +++RQzU4TGANiJph8cLZQDafcDeNGZfFKN1ImSBLgwWY8Ngo50DEq/aXEpGcyXYReMA +++hXYltuqcCkS09AM5gGEVA2ShomQZfhioPGAKWb8IwqZs6tI3rnCHSbYFsyGj/qyP ++++fWBAoGAdXbQ70PKP2BZdjc45JnXZ//RAV2bNHOGH7FWpDna4TzLV0j/XgglBFGI ++++Nos1KXkgVkAg8GS8reKylDW0hogtRnQfwF0QWt+1A6G8YBYY2rgj41D2xADHAmW +++lKQpYW83b4WVUsNMVhXItsZbi63ASaHWPnrmFCNKmxK5Q2DYiDM= ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/client-certs/client_expired.crt b/examples/puma/client-certs/client_expired.crt ++index cd20e04895..e98ef7c173 100644 ++--- a/examples/puma/client-certs/client_expired.crt +++++ b/examples/puma/client-certs/client_expired.crt ++@@ -1,19 +1,19 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDBDCCAeygAwIBAgIBFzANBgkqhkiG9w0BAQsFADA4MRMwEQYKCZImiZPyLGQB ++-GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMTkw ++-ODAxMDAwMDAwWhcNMjAwODAxMDAwMDAwWjA/MRMwEQYKCZImiZPyLGQBGRYDbmV0 +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMjMw +++ODAxMDAwMDAwWhcNMjQwODAxMDAwMDAwWjA/MRMwEQYKCZImiZPyLGQBGRYDbmV0 ++ MRQwEgYKCZImiZPyLGQBGRYEcHVtYTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjAN ++-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoywLJRT7wZM1P3Abg9NIT+NJ8TkS ++-IBz8ZgyyhSW1lU/tcsNEJakIl22XAeLEHfMknMzDqvU1G256hqM+/Tgohreat+yc ++-ofy+2OOu4un+44qIGX82i2PCt+afVvbGhPpHioyAJRDXZd9V4FtESH+6As7m+6MH ++-E4yX547E6XmmJ9lp8z9FnBMi1a6C01bI6mZhMuReLl2bS0FWjqrwNN3PpizBD+Vv ++-FbUIndC+UiD0kYPxTwSDCpEq/To0FrNCdAj94Y4oZVuvx8B1mHiqwkqmlOLUZslS ++-u7CFInqbswq5LnGFRIVSg3bu4bgCbCEmJhfqxp5MODT4VBXa2sCOnG7BBwIDAQAB ++-oxIwEDAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcNAQELBQADggEBAHDfDovSTCmM ++-sxDCfTGQUYwnvOohTP0hjUHB6BzNAPVKYoBiq064m/JoDFmOGGtF3CqhWqtE2psl ++-eOK8fA/QomyFaIAowhx8qrswMP7T/rRldAG+9QHBYZGkPtbB8evK6XqrMEQTf2Ux ++-FlN3p7BZl9rhtuManMb+Wud3HfLYjXn2nTRvkOTi93MP05Vrho8KegZ9Kj4wY1rK ++-gOnkbI6bv+1r9yjsZuUKPH/OjFkpmAoOab5hX5R5CmEefGAet2KPCNrApuwfvRHT ++-x9jVwtOYBHq3DVcBDBu+O38L+WlKGeXvUK4AzvxQaVUysCG3DA1zrvyI3Y8Jy2Jk ++-KfmWZWlvXlM= +++BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxZ0Nt+SANz6B1NevcV8DuKi9m5/j +++4/Clc5eqS5TkYjZ71SYjV2j0Cy7PtdDXcUZSUMdg8dTww9zbxS0GQUg2lUltbbkO +++nWcWgLp0COCPjunld1sHI+rZcMaLlG9qdVSxvKmzBjavaur+Eb3O1tA7gZLjV9kJ +++tDjUDN5Eur8HH9BdpjNkf+vv5VnGfrFplYcsGYOXdTYUlgrbDfxidHIBlebEaD47 +++acHzLxcWrdlmDdGhLZ5eir3reaRyeZwAQESO11pIN3sp0aS6IYcIPaRdA+saYNBu +++QCRr4j7EauGPdxwX+RhoJ3Yg09vz1Rj/jesvl3grU7Hk9oeG5JjPUDEYQwIDAQAB +++oxIwEDAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcNAQELBQADggEBAGHuetf+9YQx +++KGemHFuRz4SLHMQ5+Mz0U2cpJ8wXMH4dRSK0M/7te+pVuAVY+AUDRq0AReimWT8n +++QFbZ3RPi+hij5Sf8McdDrV/wgepriUv96kH+hWzhyWW3QxsaTx7nj87szbZLBx4J +++bcvWPJvx9ci1EM8YQDZ/WjREUxUeD994A0z18JihJt+hOxSm+SS84f/+lxqn00Zz +++Yp3FpcZ9fxStviCtXgBZtUOgN2cINBrj4Y55aBBVPscyBmTwABk/Z+fMzegk/VZI +++0rMFRbmpXt/cdbjEnaZ+uOKxSdIYQy+CY6JRFD5VRPqPC6f6x9DGVakp95s2dWj6 +++CP427o/8ND4= ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/client-certs/client_expired.key b/examples/puma/client-certs/client_expired.key ++index 15820eed73..39ee1cccea 100644 ++--- a/examples/puma/client-certs/client_expired.key +++++ b/examples/puma/client-certs/client_expired.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/client-certs/client_unknown.crt b/examples/puma/client-certs/client_unknown.crt ++index 8cdfc87bb9..35aee5fe6c 100644 ++--- a/examples/puma/client-certs/client_unknown.crt +++++ b/examples/puma/client-certs/client_unknown.crt ++@@ -1,19 +1,19 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDBTCCAe2gAwIBAgIBEzANBgkqhkiG9w0BAQsFADA5MRMwEQYKCZImiZPyLGQB ++-GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTEMMAoGA1UEAwwDQ0FVMB4XDTIw ++-MDgwMTAwMDAwMFoXDTI0MDgwMTAwMDAwMFowPzETMBEGCgmSJomT8ixkARkWA25l +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTEMMAoGA1UEAwwDQ0FVMB4XDTI0 +++MDgwMTAwMDAwMFoXDTI4MDgwMTAwMDAwMFowPzETMBEGCgmSJomT8ixkARkWA25l ++ dDEUMBIGCgmSJomT8ixkARkWBHB1bWExEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIw ++-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKQo9ve3XI5fiKE5AKI3Qm7aeGwy ++-uIR5RBo58Na4saBSfCaKZvNwzuEimKN6S4ShUlV0egKwCs/KvzbhQJpIxVsLQCGs ++-AQDxdOGP1FyizQvzDhzL7BC2I/Dp3A5V6uXkxo1qTqoBdTYeJ/mdIVgZ7bgTnUdu ++-uY9KErU/ugR8MbqZyQel/04PSmkCTdhzP41w0xvmc7Jgab0vJ0oXU4knXIyKsLeq ++-BkL6fevPW4fdaU+ppXBvpsgWfACk/WZs+DyhPndcX7JNrcnYIIAJy75wivqw2RDB ++-m59XNhoDwbR21EkcZnlQL59pv4ASA7DrJs+tFoGqsCs7DyEioePNp6ZraSkCAwEA ++-AaMSMBAwDgYDVR0PAQH/BAQDAgSwMA0GCSqGSIb3DQEBCwUAA4IBAQBMbPmIekCi ++-TMLtclXtkhKUefb9hoALhABwRbTbzPjz+MGJX2BMwLt8bAs6AMY8jEazvfm9+G0m ++-1liBAGWFojSzAykNIq/zAG2tgDVolQp3x4JcyFDJ0cuR8DIdll2CCnLM2jP8Nek8 ++-wSyuWDsm1U5kmos/dP/ialCvvCLHULoSCBhsyBFKmH2ViXdW09Wg4jSQ4RIToBBn ++-w/VbObeKA8NBUW6/7w6MS1oeFL3PlZJ205zVrZ68nqm/ckYyaBAdlQNTmlThNSQ5 ++-eL7w2QgfYDM72Sk4/rjZsW0kH+V0ZqmIuyVBE6jo5EulGPLo2eQEfPmhEdbo5rFi ++-foV+QKM8z3K0 +++DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL8T32Ccdy9cqrIzBxQwpctfg3tq +++UACte2mIMahjwNCLLeH31XwjeiOvcoHTtCJdDmpWC5Dmw/1KhzHqlXBgdDxjtwdU +++8YTZyhd1veOTxzl0CSCMz6G+9Q5awB9lc8qX86cYpa/K2A5mUjHwFeHu+S6XPSVE +++MPOw1UIeQXg2l9XMpqLDPqCUXjFeedvlbT6o3adSsY0zEA5jXPb5OlX/HnrTH53M +++HrZ7xlQ4hC6WA0x7/ZD1HFW2kudypuRQyn0M5tQUnr/fzfuZjI0JJ5PdRXHKkbOE +++085EWXRoG8NEqrw9Z+vtmDLwQ5x6vuZ7d2mCRgEsWThd2wneQODCRNd6Nq8CAwEA +++AaMSMBAwDgYDVR0PAQH/BAQDAgSwMA0GCSqGSIb3DQEBCwUAA4IBAQAie8hC6sra +++yuXtn1MSVXORfcL5GbA9c3Q4nNYU5Wj9ok/UhDE65sphZ/wR/bIPMUJx2jGuvzPQ +++ljRVZrL36FcDugl1V9J+fyQPvUE1A4SBa4EwohfdqFhp5tu2oQxjIvpqOJUhkeTZ +++MdRrlQHJTbFnxx4glcnAdhm55MvSe5ZXWNMPkBniRVyenXnkzn931An6s3xWz129 +++JHRPbGW8d/9adrnX8VRAxOKkX9XHuVmfF8PHxCK6IVZyfgJRUxl7w/gAIPlfh65b +++K5UmxFhkMVQKN1a0YFHx2bFwvI6yEl5w7osVnpTcp7GKxc37GYnWbFD+XBLMAYB2 +++Zy+0Aoo1DPP0 ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/client-certs/client_unknown.key b/examples/puma/client-certs/client_unknown.key ++index 96b41acf9e..0fe340ba30 100644 ++--- a/examples/puma/client-certs/client_unknown.key +++++ b/examples/puma/client-certs/client_unknown.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/client-certs/server.crt b/examples/puma/client-certs/server.crt ++index 5c3c334edd..eb222dd12b 100644 ++--- a/examples/puma/client-certs/server.crt +++++ b/examples/puma/client-certs/server.crt ++@@ -1,19 +1,19 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDBDCCAeygAwIBAgIBBzANBgkqhkiG9w0BAQsFADA4MRMwEQYKCZImiZPyLGQB ++-GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMjAw ++-ODAxMDAwMDAwWhcNMjQwODAxMDAwMDAwWjA/MRMwEQYKCZImiZPyLGQBGRYDbmV0 +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTELMAkGA1UEAwwCQ0EwHhcNMjQw +++ODAxMDAwMDAwWhcNMjgwODAxMDAwMDAwWjA/MRMwEQYKCZImiZPyLGQBGRYDbmV0 ++ MRQwEgYKCZImiZPyLGQBGRYEcHVtYTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjAN ++-BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvXOg3gTrGJfVft9cSrfGRnEZezDB ++-L93fcLwJAoaXGxbEg1RW/fOrSpSNemuqOvbzczV7m5eYTf1lHPBJsndbYyijIR1+ ++-Fp4tjFDp76SC3hxCIc3uYXIz0qQwSOAi1z15zobS4xF29jlsXWtfBl9fivjzdj/f ++-pbZ+JPYOrlcJAf6Xmr3xh//13rOI0ytBMlWf51z/iAZBLm2wvbt+nR7B6koAdTgM ++-Coe+gOtcLWYY5ApJ4qB9knGdxWoF5p7guHHw2aGTM0jyhgBowfVkFRiE2JUmODae ++-g+dHsd8ogWbqhGyZTredJF/NRrLKU0h+t7ldKHvXEZy4qyqQlvKoTpODqQIDAQAB ++-oxIwEDAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcNAQELBQADggEBAI/bcQP4Hu9O ++-OtaaIjVxN8+9jXUOrMpSogmZ4bRKImispt9SA+sbxec7iOMM2pG3Py2yi0hWGzii ++-hSebWIsM1JuPj7ks9l8nGRxpGeInJwTkJorG4ZLEypoS2wW3fQZGx3o4da5V+U2Z ++-HEY0wQTbPBqqnyeZ16ZFNVCzw8y9l7y7CEFjvUO3sq0pne9r7Z+XVgjGyBdBYkJS ++-0kcqPBXFCMHrWH5UlacYlM5cqgoVztOp2STGmR3XR7a34oueeA10QSP+jzeYvWA1 ++-wTYA762uU2ReCdujfNbf8V1tZWAH36KldM3hhDNWeveAGxxj1h2R9T/k2kHl/a7D ++-I3VdS59vjJY= +++BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyRkU1+VG6T2kAEDtJ0jz8jXH84hF +++g/qTy6PqrSIimARWDso5n9F7tsuVCIGH/Sr+sLI1u6p2ceYCv2UxP0WriO00AN+6 +++0qHM4jtj2pvAOFcTWVmsk7VL+2k8mmP4VmxRbi7+qLh4b5iv7J3ySmlgEQ6NLT8M +++CpIxc9XRH85HW88ztaii5CsMqBC5Usc3SXqmrN7SC6P3eUjMvWk5WC1eDmWbm2Bj +++djLPJOGuAf/auWf7ElQ1wIkcBYAZPm5dr/km8wppevgX5swri86ISYgKHx5Uq2l0 +++dzjylJDxhTRPz7+zaqf2aiMrvJZnrwbTXW4WXNWW2yIx2wHXlH+ZYDUp9wIDAQAB +++oxIwEDAOBgNVHQ8BAf8EBAMCBLAwDQYJKoZIhvcNAQELBQADggEBAF+1r5JAnGRA +++z6wWGwERvh5fdYEfQix8Vqj0s7oIHJXd6N2JyF7EKO5mgtAzOo/V4huIn10fUrWf +++gn5Pbu9l8tZyj3Rz3jvPTW0RD3QbtlmC/el9MG88/MD2uAk8EjGRVeDEoTLBZIsR +++adxOyuitCFa9HT+HCxfhPU/UTOpwtzC0pGh2AcdY9Y7SYGn7W/5isGyYcFbItX8m +++n9ui2lppaoIfbsBnnJgG+WZbaDM/3ZRxWUkUwMZZE17g/hxYx7O5ohtbnFP0hSix +++033vjp/VzfffM5wS9kIeQUZBi1ADWjvXzNs49iYGzZNJoDSYmrkLmvn08820VE6Y +++EfY6tKvZ9oA= ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/client-certs/server.key b/examples/puma/client-certs/server.key ++index 75a358ff5c..e3998f7efe 100644 ++--- a/examples/puma/client-certs/server.key +++++ b/examples/puma/client-certs/server.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- ++diff --git a/examples/puma/client-certs/unknown_ca.crt b/examples/puma/client-certs/unknown_ca.crt ++index 419487f839..782a656688 100644 ++--- a/examples/puma/client-certs/unknown_ca.crt +++++ b/examples/puma/client-certs/unknown_ca.crt ++@@ -1,19 +1,19 @@ ++ -----BEGIN CERTIFICATE----- ++ MIIDEDCCAfigAwIBAgIBETANBgkqhkiG9w0BAQsFADA5MRMwEQYKCZImiZPyLGQB ++-GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTEMMAoGA1UEAwwDQ0FVMB4XDTIw ++-MDgwMTAwMDAwMFoXDTI0MDgwMTAwMDAwMFowOTETMBEGCgmSJomT8ixkARkWA25l +++GRYDbmV0MRQwEgYKCZImiZPyLGQBGRYEcHVtYTEMMAoGA1UEAwwDQ0FVMB4XDTI0 +++MDgwMTAwMDAwMFoXDTI4MDgwMTAwMDAwMFowOTETMBEGCgmSJomT8ixkARkWA25l ++ dDEUMBIGCgmSJomT8ixkARkWBHB1bWExDDAKBgNVBAMMA0NBVTCCASIwDQYJKoZI ++-hvcNAQEBBQADggEPADCCAQoCggEBAJXBTI7itz3JCkNRpR3Jdas/HK2+WLoy3cck ++-taH0OUHPxSEDteNCRlwR07cEWThl6QMQROHEJLCVPIjCLXmu2uwJ6SjPb7keRXJb ++-mOHWo0ZXyc0xnLIv8anWXFAlMconvtpSoYgyNUFwYQdhWTv3I9HrdqCrez70+DXy ++-q3gsTgvixwUIUm+/kWs6zfIHCtwiAusM2Xjrc9Aa/+5JTa3rsdXUXxyrakoKr2ED ++-0BrhWRmopM+xf7V42dNpwuFnrtqDfmyPKtzZbv5J8w6oq7BGC2+CL7MYo1fnonWP ++-kxRZCYzp/qtkhotHHypnpZuQh2puOwnisGykA8rSX/hltCklx5ECAwEAAaMjMCEw +++hvcNAQEBBQADggEPADCCAQoCggEBAJqExahUjGL5w22yAuI/XCu1QKap5xl4vbBj +++pU9SJI+TLKlEN5d86oLxSzBjZOB+ori7h6Pc6Act1nV0FytBn+NMrNnG/Y9U3Rad +++gwm78X+AxuxMIcM2HRFckHzbATRT9+7r37FKLSJPVFUkXd3V0zx4LaY8/Z+13Yjg +++B7E0SiCN0dQ4OF99wSOepQRbuEhtLfn5pe4OpUnoMTIMOGjAYCzx4W2qPQLwaYJy +++x1qiAMuDgoAqSbrUWwhPh3h84OOnIriN60xQoi5hUjlDenysKB8cEClf0lR5G9Az +++oTFSIRiLQVFScuNo6KOJpE2eV3dlon4ZSAy6cTWyoKwboYtTY5UCAwEAAaMjMCEw ++ DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQAD ++-ggEBAFH23fStJpmaYUwqIhuWfId4a75eJvp5zpedU4e9Adl+a87u+iNrppa34fPs ++-Ni1XhrGYbh4gTSRmy39R1JW3O5LUDJ6LlDkZOgduiMyLvVksmD70MPuyaBrPmIWE ++-mauOzk3TtvKI4+wBEzLAdYUhliAtMyRJaUN5Bbe+q3P9tL7Hsh9uKusJ5jyMetI7 ++-8lLZqKHvE4MDV3AqS6OLLlTC1WdTKR9fqdHYwyh8+DFMBm7PuZjFP9tjDiQwhfEX ++-zbj9J8ba94BA8jmh3Z8a/S0rzcF33KPn+DWyrnyLWWSWKTLHN9TpVHRlhQ4OEOYZ ++-LVu0+VBx8eIwdLZplDfQ9sGUjCs= +++ggEBABiF3rt8D2ylEVaSoeqeM/b+RGfRKEOBeGSNd+W1IY1w4Yf/t2jYibg5Aq/u +++9Z8HToevJVRIzAXci3KwHQGB0Qtw/YVtlaYHlbzHZyazcEU1oYKPThltInwuaXOJ +++WcEOVTOPDpqTcQfVP6ov0rQpVkbE/GAR/yqVnMmVa5wlvbLpuAoPddPBSQMI2vAQ +++njc9gxpaXQmfBj+WguGwUeDMuGA/LxgS14MB9Bqu1wK7rpUlsR/5THawW1ehvScc +++6YFpdL8qNW/cuo2LApqmaR63aRTirodXFYPOsbWcQGs4qsDXXqJmcm3wnezBS3NC +++iXteduNO8ov/lY6DBwd1+2r9PRc= ++ -----END CERTIFICATE----- ++diff --git a/examples/puma/client-certs/unknown_ca.key b/examples/puma/client-certs/unknown_ca.key ++index d9e3a62037..c947337287 100644 ++--- a/examples/puma/client-certs/unknown_ca.key +++++ b/examples/puma/client-certs/unknown_ca.key ++@@ -1,27 +1,27 @@ ++ -----BEGIN RSA PRIVATE KEY----- ++-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 ++ -----END RSA PRIVATE KEY----- diff --cc debian/patches/series index 0000000,0000000..e841531 new file mode 100644 --- /dev/null +++ b/debian/patches/series @@@ -1,0 -1,0 +1,13 @@@ ++0004-puma.gemspec-drop-git-usage.patch ++0011-disable-minitest-extensions.patch ++0012-disable-cli-ssl-tests.patch ++0013-fix-test-term-not-accepts-new-connections.patch ++0014-disable-test-failing-on-amd64.patch ++0015-disable-different-output-test.patch ++0016-disable-test-failing-on-arm64.patch ++0017-disable-test-failing-on-armhf.patch ++0009-CI-update-chain-certs-example-files-3426.patch ++0010-Update-all-certs.patch ++0011-Fix-path-of-certs-useb-by-test_example_cert_expirati.patch ++0018-update-certs-from-upstream.patch ++0018-disable-test-failing-with-ruby3.2.patch diff --cc debian/puma.1 index 0000000,0000000..47a94c3 new file mode 100644 --- /dev/null +++ b/debian/puma.1 @@@ -1,0 -1,0 +1,165 @@@ ++.TH PUMA "1" "January 2020" "PUMA 3.12" "User Commands" ++ ++.SH NAME ++puma \- fast, concurrent web server for ruby and rack ++ ++.SH USAGE ++.BI "puma [options...]" " [rackup file]" ++.PP ++.B puma [\-h | \-\-help | \-V | \-\-version] ++ ++.SH OPTIONS ++.PP ++The following options are available: ++.TP ++.BI "\-b, \-\-bind " URI ++URI to bind to (tcp://, unix://, ssl://). ++.TP ++.BI "\-C, \-\-config " PATH ++Load given path as a config file. ++.TP ++.BI "\-\-control " URL ++DEPRECATED alias for \fB\-\-control\-url\fR. ++.TP ++.BI "\-\-control\-token " TOKEN ++The \fITOKEN\fR to use as authentication for the control server. ++.TP ++.BI "\-\-control\-url " URL ++The bind \fIURL\fR to use for the control server and app. Use \fIauto\fR to ++use a temp unix server. This requires to use a \fB\-\-control\-token\fR, which ++needs to be given with every request to the control server (\fItoken=foo\fR). ++.TP ++.B \-d, \-\-daemon ++Demonize the server into the background. ++.TP ++.B \-\-debug ++Show low level debugging information. ++.TP ++.BI "\-\-dir " DIR ++Change to given directory before starting. ++.TP ++.BI "\-e, \-\-environment " ENVIRONMENT ++The environment to run the Rack app on. Default \fIdevelopment\fR. ++.TP ++.BI "\-I, \-\-include " PATH ++Specify \fB$LOAD_PATH\fR directories. ++.TP ++.BI "\-p, \-\-port " PORT ++Define the TCP port to bind to. Use \fB\-b\fR for more advanced options. ++.TP ++.BI "\-\-pidfile " PATH ++Use the given path as PID file. ++.TP ++.B \-\-preload ++Preload the application. This loads all the application code prior to forking. ++Preloading reduces total memory usage of an application and is only available ++in cluster mode. ++.TP ++.B \-\-prune\-bundler ++Prune out the bundler env if possible. ++.TP ++.B \-q, \-\-quiet ++Do not log requests internally. Default: \fItrue\fR. ++.TP ++.B \-v, \-\-log-requests ++Log requests as they occur. ++.TP ++.BI "\-R, \-\-restart\-cmd " CMD ++The \fBpuma\fR command to run during a hot restart. Default: \fIinferred\fR. ++.TP ++.BI "\-S, \-\-state " PATH ++Where to store the state details. ++.TP ++.BI "\-t, \-\-threads " INT ++Min:max threads to use. Puma will automatically scale the number of threads, ++from the minimum until it caps out at the maximum, based on how much traffic ++is present. Default: \fI0:16\fR. ++.TP ++.B \-\-tcp\-mode ++Run the app in raw TCP mode instead of HTTP mode. ++.TP ++.B \-\-early-hints ++Enable early hints support. ++.TP ++.BI "\-w, \-\-workers " COUNT ++Activate cluster mode and define number of worker processes to create. In this ++mode workers are forked from a master process. Each child process still has ++its own thread pool and the \fB\-t\fR setting is per worker. ++.TP ++.BI "\-\-tag " NAME ++Additional text to display in process listing. ++.TP ++.BI "\-\-redirect\-stdout " FILE ++Redirect \fBSTDOUT\fR to a specific file. ++.TP ++.BI "\-\-redirect\-stderr " FILE ++Redirect \fBSTDERR\fR to a specific file. ++.TP ++.B \-\-[no\-]redirect\-append ++Append to redirected files. ++.TP ++.B \-h, \-\-help ++Show help. ++.TP ++.B \-V, \-\-version ++Print the version information. ++ ++.SH EXAMPLES ++.PP ++The following examples show how to bind TCP or sockets: ++.PP ++Bind Puma to a socket with the -b (or --bind) flag: ++.RS ++.B puma -b tcp://127.0.0.1:9292 ++.RE ++.PP ++To use a UNIX Socket instead of TCP: ++.RS ++.B puma -b unix:///var/run/puma.sock ++.RE ++.PP ++To change the permissions of the UNIX socket, add a umask parameter: ++.RS ++.B puma -b 'unix:///var/run/puma.sock?umask=0111' ++.RE ++.PP ++In need of a bit of security use SSL sockets: ++.RS ++.B puma -b 'ssl://127.0.0.1:9292?key=path_to_key&cert=path_to_cert' ++.RE ++.PP ++The following example show how to Create a control server and use ++.BR pumactl (1) ++to interact with the control server to restart \fBpuma\fR. ++.RS ++.B puma --control-url tcp://127.0.0.1:9293 --control-token foo ++.br ++.B pumactl --control-url 'tcp://127.0.0.1:9293' --control-token foo restart ++.RE ++.PP ++ ++.SH "CONFIGURATION FILE" ++.B puma ++will look for a configuration file at \fIconfig/puma.rb\fR. If an environment ++is specified, either via the \fB\-e\fR and \fB\-\-environment\fR flags, or ++through the \fIRACK_ENV\fR or the \fIRAILS_ENV\fR environment variables, it ++looks for configuration at \fIconfig/puma/.rb\fR. ++.PP ++The \fB\-C\fR flag allows one to pass on a custom configuration location. If ++the value specified is a dash (\fI\-\fR) \fBpuma\fR won't look for any ++configuration file: ++.PP ++.RS ++.B puma -C \(dq\-\(dq ++.RE ++ ++.SH "SEE ALSO" ++.PP ++There is extensive documentation at <\%https://puma.io/puma/\%> and ++<\%https://github.com/puma/puma\%>. ++ ++.SH AUTHOR ++.PP ++This manual page was written by \fBDaniel Leidert\fP ++<\%dleidert@debian\.org\%>, for the Debian GNU/Linux system (but may be used by ++others). diff --cc debian/puma.docs index 0000000,0000000..b43bf86 new file mode 100644 --- /dev/null +++ b/debian/puma.docs @@@ -1,0 -1,0 +1,1 @@@ ++README.md diff --cc debian/puma.examples index 0000000,0000000..e39721e new file mode 100644 --- /dev/null +++ b/debian/puma.examples @@@ -1,0 -1,0 +1,1 @@@ ++examples/* diff --cc debian/puma.lintian-overrides index 0000000,0000000..e723424 new file mode 100644 --- /dev/null +++ b/debian/puma.lintian-overrides @@@ -1,0 -1,0 +1,4 @@@ ++# this is one of several sub-directories; no need to rename it ++repeated-path-segment puma [usr/share/doc/puma/examples/puma/] ++repeated-path-segment 3.1.0 [usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0/extensions/x86_64-linux/3.1.0/] ++repeated-path-segment lib [usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0/gems/puma-5.6.7/lib/] diff --cc debian/puma.manpages index 0000000,0000000..8c2d587 new file mode 100644 --- /dev/null +++ b/debian/puma.manpages @@@ -1,0 -1,0 +1,2 @@@ ++debian/puma.1 ++debian/pumactl.1 diff --cc debian/pumactl.1 index 0000000,0000000..67e70d6 new file mode 100644 --- /dev/null +++ b/debian/pumactl.1 @@@ -1,0 -1,0 +1,99 @@@ ++.TH PUMA "1" "January 2020" "PUMA 3.12" "User Commands" ++ ++.SH NAME ++pumactl \- command line client for puma ++ ++.SH USAGE ++.B pumactl [options...] [commands] ++.PP ++.B pumactl [\-h | \-\-help | \-V | \-\-version] ++ ++.SH COMMANDS ++.TP ++.B halt ++Halt the server. ++.TP ++.B restart ++Restart the server. ++.TP ++.B phased-restart ++Restart server but phase out old workers while starting new workers one at a ++time. ++.TP ++.B start ++Start the server. ++.TP ++.B stats ++Show stats about the server. ++.TP ++.B status ++Show server status. ++.TP ++.B stop ++Stop server. ++.TP ++.B reload-worker-directory ++Reload the worker directory. ++.TP ++.B gc ++Start garbage collector. ++.TP ++.B gc-stats ++Show information about garbage collector. ++ ++.SH OPTIONS ++.PP ++The following options are available: ++.TP ++.BI "\-F, \-\-config\-file " PATH ++Load given path as a config file. ++.TP ++.BI "\-T, \-\-control\-token " TOKEN ++The \fITOKEN\fR to use as authentication for the control server. ++.TP ++.BI "\-C, \-\-control\-url " URL ++The bind \fIURL\fR to use for the control server and app. Use \fIauto\fR to ++use a temp unix server. This requires to use a \fB\-\-control\-token\fR, which ++needs to be given with every request to the control server (\fItoken=foo\fR). ++.TP ++.BI "\-p, \-\-pid " PID ++Define the TCP port to bind to. Use \fB\-b\fR for more advanced options. ++.TP ++.BI "\-P, \-\-pidfile " PATH ++Use the given path as PID file. ++.TP ++.B \-Q, \-\-quiet ++Don't display messages. ++.TP ++.BI "\-S, \-\-state " PATH ++Where the state file is. ++.TP ++.B \-H, \-\-help ++Show help. ++.TP ++.B \-V, \-\-version ++Print the version information. ++ ++.SH EXAMPLES ++Create a control server and use ++.BR pumactl (1) ++to interact with the control server to restart \fBpuma\fR. ++.RS ++.B puma --control-url tcp://127.0.0.1:9293 --control-token foo ++.br ++.B pumactl --control-url 'tcp://127.0.0.1:9293' --control-token foo restart ++.RE ++.PP ++ ++.SH "SEE ALSO" ++.PP ++.BR puma (1) ++.PP ++There is extensive documentation at <\%https://puma.io/puma/\%> and ++<\%https://github.com/puma/puma\%>. ++ ++.SH AUTHOR ++.PP ++This manual page was written by \fBDaniel Leidert\fP ++<\%dleidert@debian\.org\%>, for the Debian GNU/Linux system (but may be used by ++others). diff --cc debian/ruby-tests.rake index 0000000,0000000..67a5a4a new file mode 100644 --- /dev/null +++ b/debian/ruby-tests.rake @@@ -1,0 -1,0 +1,22 @@@ ++require 'gem2deb/rake/testtask' ++ ++Gem2Deb::Rake::TestTask.new do |t| ++ t.libs = ['test'] ++ t.test_files = FileList['test/**/*_test.rb'] + FileList['test/**/test_*.rb'] - FileList[ ++ 'test/test_integration_cluster.rb', ++ 'test/test_worker_gem_independence.rb', ++ 'test/test_rack_version_restriction.rb', ++ 'test/test_preserve_bundler_env.rb', ++ ] ++ t.verbose = true ++end.tap do |t| ++ exclude = %w[ ++ test_application_logs_are_flushed_on_write ++ test_hot_restart_does_not_drop_connections ++ test_logs_all_localhost_bindings ++ test_multiple_requests_waiting_on_less_busy_worker ++ test_term_not_accepts_new_connections ++ test_prune_bundler_with_multiple_workers ++ ] ++ t.options << ' ' << "-e'/" << exclude.join('|') << "/'" ++end diff --cc debian/rules index 0000000,0000000..da15652 new file mode 100755 --- /dev/null +++ b/debian/rules @@@ -1,0 -1,0 +1,14 @@@ ++#!/usr/bin/make -f ++ ++export GEM2DEB_TEST_RUNNER = --check-dependencies ++export DH_RUBY = --gem-install ++export DH_RUBY_GEM_INSTALL_EXCLUDE = benchmarks/* docs/* win_gem_test/* tools/* bin/puma-wild ++export LANG = C.UTF-8 ++export LC_ALL = C.UTF-8 ++export TEST_CASE_TIMEOUT = 300 ++ ++%: ++ dh $@ --buildsystem=ruby --with ruby ++ ++override_dh_installchangelogs: ++ dh_installchangelogs History.md diff --cc debian/salsa-ci.yml index 0000000,0000000..33c3a64 new file mode 100644 --- /dev/null +++ b/debian/salsa-ci.yml @@@ -1,0 -1,0 +1,4 @@@ ++--- ++include: ++ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml ++ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml diff --cc debian/source/format index 0000000,0000000..163aaf8 new file mode 100644 --- /dev/null +++ b/debian/source/format @@@ -1,0 -1,0 +1,1 @@@ ++3.0 (quilt) diff --cc debian/source/lintian-overrides index 0000000,0000000..362d49e new file mode 100644 --- /dev/null +++ b/debian/source/lintian-overrides @@@ -1,0 -1,0 +1,2 @@@ ++# no signed tarballs by upstream ++puma source: debian-watch-does-not-check-gpg-signature diff --cc debian/upstream/metadata index 0000000,0000000..cbe22a2 new file mode 100644 --- /dev/null +++ b/debian/upstream/metadata @@@ -1,0 -1,0 +1,7 @@@ ++--- ++Archive: GitHub ++Bug-Database: https://github.com/puma/puma/issues ++Bug-Submit: https://github.com/puma/puma/issues/new ++Changelog: https://github.com/puma/puma/releases ++Repository: https://github.com/puma/puma.git ++Repository-Browse: https://github.com/puma/puma diff --cc debian/watch index 0000000,0000000..b06856f new file mode 100644 --- /dev/null +++ b/debian/watch @@@ -1,0 -1,0 +1,5 @@@ ++version=4 ++opts="searchmode=plain, \ ++ filenamemangle=s/.+\/v@ANY_VERSION@/@PACKAGE@-$1\.tar\.gz/" \ ++https://api.github.com/repos/puma/puma/tags \ ++https://api.github.com/repos/puma/puma/tarball/refs/tags/v@ANY_VERSION@