From 3da4b9bbce97757c865e81e41db0127efe0b4441 Mon Sep 17 00:00:00 2001 From: Cas Donoghue Date: Mon, 23 Dec 2024 11:56:03 -0800 Subject: [PATCH 1/6] Remove deprecated ssl setting (#11) * Mark ssl as obsolete plugin config This commit marks the ssl configuration as obsolete. The docs have been updated as well as the tests. This change will be rolled out in a 2.0.0 release which has also been prepped in this work. * Update based on review Add a note on where to look for obsolete options, fix whitespace. --- CHANGELOG.md | 6 +++++ docs/index.asciidoc | 27 ++++++++++--------- .../inputs/elastic_serverless_forwarder.rb | 13 +++------ ...input-elastic_serverless_forwarder.gemspec | 2 +- .../elastic_serverless_forwarder_spec.rb | 21 ++++----------- 5 files changed, 30 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 97b311e..e85d02c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 2.0.0 + - SSL settings that were marked deprecated in version `0.1.3` are now marked obsolete, and will prevent the plugin from starting. + - These settings are: + - `ssl`, which should be replaced by `ssl_enabled` + - [#11](https://github.com/logstash-plugins/logstash-input-elastic_serverless_forwarder/pull/11) + ## 1.0.0 - Promote from technical preview to GA [#10](https://github.com/logstash-plugins/logstash-input-elastic_serverless_forwarder/pull/10) diff --git a/docs/index.asciidoc b/docs/index.asciidoc index 3f6e0ab..0f0649b 100644 --- a/docs/index.asciidoc +++ b/docs/index.asciidoc @@ -159,6 +159,9 @@ filter { This plugin supports the following configuration options plus the <> described later. +NOTE: As of version `2.0.0` of this plugin, a previously deprecated SSL setting has been removed. +Please check out <> for details. + [cols="<,<,<",options="header",] |======================================================================= |Setting |Input type|Required @@ -166,7 +169,6 @@ This plugin supports the following configuration options plus the <> |<>|No | <> |<>|No | <> |<>|No -| <> |<>|__Deprecated__ | <> |a valid filesystem path|No | <> |<>|No | <> |<>, one of `["none", "optional", "required"]`|No @@ -218,17 +220,6 @@ The host or ip to bind The TCP port to bind to -[id="plugins-{type}s-{plugin}-ssl"] -===== `ssl` -deprecated[0.1.3, Replaced by <>] - -* Value type is <> -* Default value is `true` - -Events are by default sent over SSL, which requires configuring this plugin to present an identity certificate using <> and key using <>. - -You can disable SSL with `+ssl => false+`. - [id="plugins-{type}s-{plugin}-ssl_certificate"] ===== `ssl_certificate` @@ -355,6 +346,18 @@ When <> causes a client to p NOTE: Client identity is not typically validated using SSL because the receiving server only has access to the client's outbound-ip, which is not always constant and is frequently not represented in the certificate's subject or subjectAltNames extensions. For more information, see https://www.rfc-editor.org/rfc/rfc2818#section-3.1[RFC2818 ยง 3.2 (HTTP over TLS -- Client Identity)] +[id="plugins-{type}s-{plugin}-obsolete-options"] +==== Elasticsearch Output Obsolete Configuration Options + +WARNING: As of version `2.0.0` of this plugin, some configuration options have been replaced. +The plugin will fail to start if it contains any of these obsolete options. + +[cols="<,<",options="header",] +|======================================================================= +|Setting|Replaced by +| ssl | <> +|======================================================================= + [id="plugins-{type}s-{plugin}-common-options"] include::{include_path}/{type}.asciidoc[] diff --git a/lib/logstash/inputs/elastic_serverless_forwarder.rb b/lib/logstash/inputs/elastic_serverless_forwarder.rb index 5016165..e2bcde5 100644 --- a/lib/logstash/inputs/elastic_serverless_forwarder.rb +++ b/lib/logstash/inputs/elastic_serverless_forwarder.rb @@ -10,7 +10,6 @@ class LogStash::Inputs::ElasticServerlessForwarder < LogStash::Inputs::Base include LogStash::PluginMixins::PluginFactorySupport - include LogStash::PluginMixins::NormalizeConfigSupport config_name "elastic_serverless_forwarder" @@ -23,7 +22,6 @@ class LogStash::Inputs::ElasticServerlessForwarder < LogStash::Inputs::Base config :auth_basic_password, :validate => :password # ssl-config - config :ssl, :validate => :boolean, :default => true, :deprecated => "Use 'ssl_enabled' instead." config :ssl_enabled, :validate => :boolean, :default => true # ssl-identity @@ -41,11 +39,12 @@ class LogStash::Inputs::ElasticServerlessForwarder < LogStash::Inputs::Base config :ssl_supported_protocols, :validate => :string, :list => true config :ssl_handshake_timeout, :validate => :number, :default => 10_000 + # obsolete config + config :ssl, :obsolete => "Use 'ssl_enabled' instead." + def initialize(*a) super - normalize_ssl_configs! - if original_params.include?('codec') fail LogStash::ConfigurationError, 'The `elastic_serverless_forwarder` input does not have an externally-configurable `codec`' end @@ -155,12 +154,6 @@ def inner_json_lines_codec_options } end - def normalize_ssl_configs! - @ssl_enabled = normalize_config(:ssl_enabled) do |normalizer| - normalizer.with_deprecated_alias(:ssl) - end - end - class QueueWrapper def initialize(wrapped_queue) @wrapped_queue = wrapped_queue diff --git a/logstash-input-elastic_serverless_forwarder.gemspec b/logstash-input-elastic_serverless_forwarder.gemspec index 9919257..31aa33a 100644 --- a/logstash-input-elastic_serverless_forwarder.gemspec +++ b/logstash-input-elastic_serverless_forwarder.gemspec @@ -2,7 +2,7 @@ Gem::Specification.new do |s| s.name = 'logstash-input-elastic_serverless_forwarder' - s.version = '1.0.0' + s.version = '2.0.0' s.licenses = ['Apache License (2.0)'] s.summary = "Receives events from Elastic Serverless Forwarder over HTTP or HTTPS" s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program" diff --git a/spec/inputs/elastic_serverless_forwarder_spec.rb b/spec/inputs/elastic_serverless_forwarder_spec.rb index ee547c1..c1f59db 100644 --- a/spec/inputs/elastic_serverless_forwarder_spec.rb +++ b/spec/inputs/elastic_serverless_forwarder_spec.rb @@ -32,7 +32,7 @@ let(:scheme) { 'http' } it_behaves_like "an interruptible input plugin" do - let(:config) { { "port" => port, "ssl" => false } } + let(:config) { { "port" => port, "ssl_enabled" => false } } end after :each do @@ -322,22 +322,11 @@ def pop_with_timeout(queue, timeout) end end - describe 'deprecated SSL options' do - let(:config) do - super().merge({ - 'ssl_certificate' => generated_certs_directory.join('server_from_root.crt').to_path, - 'ssl_key' => generated_certs_directory.join('server_from_root.key.pkcs8').to_path, - }) - end - - [true, false].each do |enabled| - context "when `ssl => #{enabled}`" do - let(:config) { super().merge('ssl' => enabled) } + describe 'removed SSL options' do + let(:config) { super().merge('ssl' => true) } - it "sets @ssl_enabled to `#{enabled}`" do - expect(esf_input.instance_variable_get(:@ssl_enabled)).to be enabled - end - end + it "fails with message indicating ssl configuration option is obsolete" do + expect { described_class.new(config) }.to raise_error(LogStash::ConfigurationError, /Use 'ssl_enabled' instead/) end end end From 20b057b67c17cd97a9d9d576c26d5bb1138574ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lex=20C=C3=A1mara?= Date: Fri, 8 May 2026 11:51:50 +0200 Subject: [PATCH 2/6] [skip ci] Add version file, update gemspec, and add Changelog & Version Update workflow trigger --- .../workflows/changelog-version-update.yml | 38 +++++++++++++++++++ ...input-elastic_serverless_forwarder.gemspec | 2 +- version | 1 + 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/changelog-version-update.yml create mode 100644 version diff --git a/.github/workflows/changelog-version-update.yml b/.github/workflows/changelog-version-update.yml new file mode 100644 index 0000000..49db876 --- /dev/null +++ b/.github/workflows/changelog-version-update.yml @@ -0,0 +1,38 @@ +# This workflow automates changelog entry updates and version bumps for pull requests +# in logstash-plugins repositories. It is triggered when a PR is opened or merged, +# and delegates to the reusable pr-prepare workflow which reads /pr_prepare comments +# to determine the type of changelog entry and the appropriate version bump. +# Can also be triggered manually via workflow_dispatch for missed or late updates. + +name: Changelog & Version Update + +on: + pull_request_target: + types: [opened, closed] + workflow_dispatch: + inputs: + command: + description: 'Type of update' + required: true + type: choice + options: + - release:patch + - release:minor + - release:major + - changelog:add + pr_number: + description: 'PR number to link in the changelog entry' + required: true + type: string + changelog_entry: + description: 'Custom changelog entry (defaults to PR title if omitted)' + required: false + type: string + +jobs: + changelog: + uses: logstash-plugins/.github/.github/workflows/pr-prepare.yml@main + with: + command: ${{ inputs.command }} + pr_number: ${{ inputs.pr_number }} + changelog_entry: ${{ inputs.changelog_entry }} diff --git a/logstash-input-elastic_serverless_forwarder.gemspec b/logstash-input-elastic_serverless_forwarder.gemspec index 31aa33a..3c54c71 100644 --- a/logstash-input-elastic_serverless_forwarder.gemspec +++ b/logstash-input-elastic_serverless_forwarder.gemspec @@ -2,7 +2,7 @@ Gem::Specification.new do |s| s.name = 'logstash-input-elastic_serverless_forwarder' - s.version = '2.0.0' + s.version = ::File.read('version').split("\n").first s.licenses = ['Apache License (2.0)'] s.summary = "Receives events from Elastic Serverless Forwarder over HTTP or HTTPS" s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program" diff --git a/version b/version new file mode 100644 index 0000000..227cea2 --- /dev/null +++ b/version @@ -0,0 +1 @@ +2.0.0 From 5633b5102983a019acf8165d11059eebc9bf57cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lex=20C=C3=A1mara?= Date: Tue, 16 Jun 2026 11:55:34 +0200 Subject: [PATCH 3/6] [skip ci] add lowercase 'version' to s.files for case-sensitive filesystems --- logstash-input-elastic_serverless_forwarder.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/logstash-input-elastic_serverless_forwarder.gemspec b/logstash-input-elastic_serverless_forwarder.gemspec index 3c54c71..62009a5 100644 --- a/logstash-input-elastic_serverless_forwarder.gemspec +++ b/logstash-input-elastic_serverless_forwarder.gemspec @@ -12,7 +12,7 @@ Gem::Specification.new do |s| s.require_paths = ["lib", "vendor/jar-dependencies"] # Files - s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "VERSION", "docs/**/*"] + s.files = Dir["lib/**/*","spec/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "VERSION", "version", "docs/**/*"] # Tests s.test_files = s.files.grep(%r{^(test|spec|features)/}) From d3e61d3eca7ddbea3a5fb0aa9f3b5cca64dae9fd Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 5 Aug 2026 16:17:21 -0700 Subject: [PATCH 4/6] Migrate CI from Travis to GitHub Actions (main branch) (#16) * Initial plan * Migrate CI from Travis to GitHub Actions (main branch) * regenerate certs and extend ttl * update for different test expectation --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: donoghuc --- .github/workflows/unit-tests.yml | 41 +++++++ .travis.yml | 2 - README.md | 2 +- spec/fixtures/certs/generate.sh | 12 +- .../certs/generated/client_from_root.crt | 64 +++++------ .../certs/generated/client_from_root.jks | Bin 4557 -> 4572 bytes .../certs/generated/client_from_root.key | 103 +++++++++--------- .../generated/client_from_root.key.pkcs8 | 100 ++++++++--------- .../certs/generated/client_from_root.p12 | Bin 4390 -> 4572 bytes .../generated/client_no_matching_subject.crt | 64 +++++------ .../generated/client_no_matching_subject.key | 103 +++++++++--------- .../generated/client_no_matching_subject.p12 | Bin 4450 -> 4624 bytes .../certs/generated/client_self_signed.crt | 58 +++++----- .../certs/generated/client_self_signed.key | 100 ++++++++--------- .../certs/generated/client_self_signed.p12 | Bin 4166 -> 4444 bytes spec/fixtures/certs/generated/root.crt | 60 +++++----- spec/fixtures/certs/generated/root.key | 103 +++++++++--------- .../certs/generated/server_from_root.crt | 67 ++++++------ .../certs/generated/server_from_root.key | 103 +++++++++--------- .../generated/server_from_root.key.pkcs8 | 100 ++++++++--------- .../generated/server_from_root.pkcs8.key | 100 ++++++++--------- .../elastic_serverless_forwarder_spec.rb | 7 +- 22 files changed, 619 insertions(+), 570 deletions(-) create mode 100644 .github/workflows/unit-tests.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml new file mode 100644 index 0000000..e37d7ed --- /dev/null +++ b/.github/workflows/unit-tests.yml @@ -0,0 +1,41 @@ +name: Unit Tests + +on: + push: + branches: ['1.x', main] + pull_request: + branches: ['1.x', main] + schedule: + # Daily run that fans out across every active branch via the matrix + # job below. GitHub only fires `schedule:` from the workflow file on + # the default branch (main); copies of this file on + # non-default branches keep the block for symmetry but it is dormant + # there. + - cron: '0 8 * * *' + workflow_dispatch: + +jobs: + tests: + if: github.event_name != 'schedule' + uses: logstash-plugins/.ci/.github/workflows/unit-tests.yml@1.x + # Forward org/repo secrets (e.g. SLACK_BOT_TOKEN used by the reusable's + # failure-notification step). The reusable does not declare a + # workflow_call.secrets block, so `inherit` is required. + secrets: inherit + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/1.x' && github.ref != 'refs/heads/main' }} + with: + timeout-minutes: 60 + + scheduled: + if: github.event_name == 'schedule' + strategy: + fail-fast: false + matrix: + branch: ['1.x', main] + uses: logstash-plugins/.ci/.github/workflows/unit-tests.yml@1.x + secrets: inherit + with: + ref: ${{ matrix.branch }} + timeout-minutes: 60 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a50fc73..0000000 --- a/.travis.yml +++ /dev/null @@ -1,2 +0,0 @@ -import: -- logstash-plugins/.ci:travis/travis.yml@1.x \ No newline at end of file diff --git a/README.md b/README.md index 656aaf6..4252b02 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Logstash Plugin -[![Travis Build Status](https://travis-ci.com/logstash-plugins/logstash-input-http.svg)](https://travis-ci.com/logstash-plugins/logstash-input-http) +[![Unit Tests](https://github.com/logstash-plugins/logstash-input-elastic_serverless_forwarder/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/logstash-plugins/logstash-input-elastic_serverless_forwarder/actions/workflows/unit-tests.yml) This is a plugin for [Logstash](https://github.com/elastic/logstash). diff --git a/spec/fixtures/certs/generate.sh b/spec/fixtures/certs/generate.sh index d1e1152..5becdcc 100755 --- a/spec/fixtures/certs/generate.sh +++ b/spec/fixtures/certs/generate.sh @@ -11,28 +11,28 @@ echo "DO NOT USE THESE CERTIFICATES IN PRODUCTION" >> ./README.txt # certificate authority openssl genrsa -out root.key 4096 -openssl req -new -x509 -days 1826 -extensions ca -key root.key -out root.crt -subj "/C=LS/ST=NA/L=Http Input/O=Logstash/CN=root" -config ../openssl.cnf +openssl req -new -x509 -days 36500 -extensions ca -key root.key -out root.crt -subj "/C=LS/ST=NA/L=Http Input/O=Logstash/CN=root" -config ../openssl.cnf # server certificate from root openssl genrsa -out server_from_root.key 4096 openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in server_from_root.key -out server_from_root.pkcs8.key openssl req -new -key server_from_root.key -out server_from_root.csr -subj "/C=LS/ST=NA/L=Http Input/O=Logstash/CN=server" -config ../openssl.cnf -openssl x509 -req -extensions server_cert -extfile ../openssl.cnf -days 1096 -in server_from_root.csr -CA root.crt -CAkey root.key -set_serial 03 -out server_from_root.crt -sha256 +openssl x509 -req -extensions server_cert -extfile ../openssl.cnf -days 36500 -in server_from_root.csr -CA root.crt -CAkey root.key -set_serial 03 -out server_from_root.crt -sha256 # client certificate from root openssl genrsa -out client_from_root.key 4096 openssl req -new -key client_from_root.key -out client_from_root.csr -subj "/C=LS/ST=NA/L=Http Input/O=Logstash/CN=client" -config ../openssl.cnf -openssl x509 -req -extensions client_cert -extfile ../openssl.cnf -days 1096 -in client_from_root.csr -CA root.crt -CAkey root.key -set_serial 04 -out client_from_root.crt -sha256 +openssl x509 -req -extensions client_cert -extfile ../openssl.cnf -days 36500 -in client_from_root.csr -CA root.crt -CAkey root.key -set_serial 04 -out client_from_root.crt -sha256 # self-signed for testing -openssl req -newkey rsa:4096 -nodes -keyout client_self_signed.key -x509 -days 365 -out client_self_signed.crt -subj "/C=LS/ST=NA/L=Http Input/O=Logstash/CN=self" +openssl req -newkey rsa:4096 -nodes -keyout client_self_signed.key -x509 -days 36500 -out client_self_signed.crt -subj "/C=LS/ST=NA/L=Http Input/O=Logstash/CN=self" #openssl genrsa -out client_self_signed.key 4096 -#openssl req -new -x509 -days 1826 -extensions client_cert -key client_self_signed.key -out client_self_signed.crt -subj "/C=LS/ST=NA/L=Http Input/O=Logstash/CN=self" -config ../openssl.cnf +#openssl req -new -x509 -days 36500 -extensions client_cert -key client_self_signed.key -out client_self_signed.crt -subj "/C=LS/ST=NA/L=Http Input/O=Logstash/CN=self" -config ../openssl.cnf ## client with invalid subject openssl genrsa -out client_no_matching_subject.key 4096 openssl req -new -key client_no_matching_subject.key -out client_no_matching_subject.csr -subj "/C=LS/ST=NA/L=Http Input/O=Logstash/CN=client_no_matching_subject" -config ../openssl.cnf -openssl x509 -req -extensions client_cert_no_matching_subject -extfile ../openssl.cnf -days 1096 -in client_no_matching_subject.csr -CA root.crt -CAkey root.key -set_serial 04 -out client_no_matching_subject.crt +openssl x509 -req -extensions client_cert_no_matching_subject -extfile ../openssl.cnf -days 36500 -in client_no_matching_subject.csr -CA root.crt -CAkey root.key -set_serial 04 -out client_no_matching_subject.crt # verify :allthethings openssl verify -CAfile root.crt server_from_root.crt diff --git a/spec/fixtures/certs/generated/client_from_root.crt b/spec/fixtures/certs/generated/client_from_root.crt index ae74679..4be3013 100644 --- a/spec/fixtures/certs/generated/client_from_root.crt +++ b/spec/fixtures/certs/generated/client_from_root.crt @@ -1,35 +1,35 @@ -----BEGIN CERTIFICATE----- -MIIGATCCA+mgAwIBAgIBBDANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGEwJMUzEL +MIIGAzCCA+ugAwIBAgIBBDANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGEwJMUzEL MAkGA1UECAwCTkExEzARBgNVBAcMCkh0dHAgSW5wdXQxETAPBgNVBAoMCExvZ3N0 -YXNoMQ0wCwYDVQQDDARyb290MB4XDTIyMTExODA2MTA0OFoXDTI1MTExODA2MTA0 -OFowUzELMAkGA1UEBhMCTFMxCzAJBgNVBAgMAk5BMRMwEQYDVQQHDApIdHRwIElu -cHV0MREwDwYDVQQKDAhMb2dzdGFzaDEPMA0GA1UEAwwGY2xpZW50MIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA49LRvGg28z/chbygtYSEHILCOqkUgPom -M1K6Zity7oPHHfepVSJjIuvyAeT/c2wSay4VL4npZWQ2/AuNdtltGb58PviuYtB/ -1S2sX8WyC2rPcq3vVk85FA0c7xLsOPA+4Hp7hHLxgBfBkIkCNFBRXQOrMBiPrBM7 -RKrCKo1b254O83Hdy+kiUr6GZGXIWDPK3C3tkksKCAv++fxMQgucB9ERX4cigVAQ -+ZIBZGLrWU7Jm/LbI4+TlbFZj/3dQDflRuAhX01Kb5dktnhxrlQd/UkDcpHCv38+ -2/haBov4wmu9/93eKWfc5tqMx8SnnNPjq+ms3rq8WVQtxBUrh60cKhdEKO9nYhrX -KssHPIPXiM5V2R8yVddFygmgkEEUkxYIg9VYHFGlMCOQC5OoyXIoi08xs8h+GJbM -MdODsRF8ZhIPeCA7Va34MlySZrvXEzPavNwk3fq7NVUV4Um1lLWQPVwZ9yR9ii3y -yDa+xibvUWegs/3y04iFL9hhp4EM3u5ucQOdyQEMurxvXx9WrBi8VhMmJUN7dDq4 -emWe8BITVYG6+vVkX577dgm12FGjah4HCEqJuckudP/QGa1xmgJ+AjQ5Q7xzp0VA -5/llWSlGjzCcVms0V21wyHKGPm0p1sJ+cmcqLBCCgdFl2dnevoLXVjp18Xt6Oas9 -KI343tBSn7ECAwEAAaOB4TCB3jAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIF -oDAzBglghkgBhvhCAQ0EJhYkT3BlblNTTCBHZW5lcmF0ZWQgQ2xpZW50IENlcnRp -ZmljYXRlMB0GA1UdDgQWBBSsU4ZmryDNkeQXZHZ2zvYu7Xp6tTAfBgNVHSMEGDAW -gBTA8vgd/nWOBOCTxL+z67d+Am9lqjAOBgNVHQ8BAf8EBAMCBeAwHQYDVR0lBBYw -FAYIKwYBBQUHAwIGCCsGAQUFBwMEMBoGA1UdEQQTMBGCCWxvY2FsaG9zdIcEfwAA -ATANBgkqhkiG9w0BAQsFAAOCAgEAKfEdNhRpBfZgjZm8cFVLHEL+ML8zMlCubS2v -v8JL/Fg3Tlj11iCYa5XmwwHdprpDyrIChZOwsZK+1xWHgy+vGI5W93RbhCxx7o4C -DzcFkeI13qgjtdDvbzttZIHGNWSN8qaXLlc+rJBYn8uOUyQ95wXYJM+j+hH3E34c -60Iy8AcYPcBhtiDN94eHswKxiF1EgViHVlVraaTWTU7U0VCeFTHWebQb+Hdg9Fa8 -SjK1Mqcnowd4owgXEjPgbyyf6UOgBe6wScwJjyDPmh7tvDKsSeD4XibRK+Hmwinx -gtxnZtlM4472EOOENNfd7JGui6H8XxHU9dUMMDTH4YY6cakpHpAopMY5jKYqhEdH -bCNZX+EmP9XV8cfjQWOJOSck3O1FA8EL5Yekbyh8Rf60gneSu3lrvwvLE2msz00Y -vILeVMZvBXO3Ua3YitWFv9pxrgkGfpIt1U25H6Bg1pP2qSoEBSh5tCBqXbFqr1o2 -QiuE0Y+bv2DT0rtKZ3Gt1G2klqZg3KpL2pM7Udf5bxm0Bxgj+XA1SycNqNsciGtK -jPFuA1IsFwNzJd0AcDtDRWK6o0GhtUwQ+JMfP06V07knWg21aTPddhiaDrgpMTFJ -hD8TJvTs8kkjz4COiv/jTippc9lw0Fy4rneZ2iAt59JaiqmoXvBP0tvj3orBBnqW -n3C9qbA= +YXNoMQ0wCwYDVQQDDARyb290MCAXDTI2MDgwNTIyMDMzNloYDzIxMjYwNzEyMjIw +MzM2WjBTMQswCQYDVQQGEwJMUzELMAkGA1UECAwCTkExEzARBgNVBAcMCkh0dHAg +SW5wdXQxETAPBgNVBAoMCExvZ3N0YXNoMQ8wDQYDVQQDDAZjbGllbnQwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDnH0IF7sKU+mQmeA6S3q1WdgWgv3QO +5+oFwPdU5Mc4y/WNtPSpKKZwuKxhWfPZrjV6Kuq5iHEDM/nI93x5JJZhp6QFT5/8 +7pjq+qrNQmWxVs8naRWhDoAOnMGpqyiw79tvAdXV58/MkP/4oYeq/BuqFQIf4/hk +RHvQjQRGDy5I8uG2AUbN8FbVKSYvDbb8xk2c2Vg/wInvpwQdNkjxelObvOun/wgs +8QdTL5wWoaMjZ9U3c/BSAvDJcg/9unS31gfhbp8w5VMpmEQYZgUYrHG+zJRshY44 +hZYN52assBJsQDTNotGN2cnMzmYp+GpYvaJeOGUo3crH/0QdbdbX8I7g7EjbOfSj +94qoV0E6NaG+hdiZ6YMU59jWinddDONDAwxhrdhe6YEIC1gy8zwBhjsCUM5fWMBt +F95S9AetK1Uyr8s8yUwdMd3rp5thgUZxzh5LUCf+Hz++8AzTB/IqntXfFMqEx0JG +v9lsE04WAKLZSNEXVz4UKFEvGUenNQTk2cbGjrQPqQ81Xrcoll8Rlhzx2IPX/gxz +48M+bLwHF5+miLzwoJyRyseAX2p/DPySbi/P7SJ51VKK/Jp+0C1Hwj11UFqXw+Rx +xAGAibju05axhylicB/LmhTYEp8ld+ODPrmKE9ldDQRgUHmxZ0o1bm4fpnvGeMTb +Lodyz3HPKPgqNwIDAQABo4HhMIHeMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQD +AgWgMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBDbGllbnQgQ2Vy +dGlmaWNhdGUwHQYDVR0OBBYEFBS196ktsN/hhtBwhkkWMiZkS/OAMB8GA1UdIwQY +MBaAFMfSf7nYxJX0zHiwlStI0ohcPwcUMA4GA1UdDwEB/wQEAwIF4DAdBgNVHSUE +FjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwGgYDVR0RBBMwEYIJbG9jYWxob3N0hwR/ +AAABMA0GCSqGSIb3DQEBCwUAA4ICAQChr2caK6QjIaJEkHtVH9Ik9SnwwCnR3wxU +mbxyrBvMRrpxKNrTity8atG80yKrJM+va7et1EGaO4I2aEgZ8GAwP9YJiWzijO2C +zpG0b7QZNUnC/9sP8XNAStsE4hs3dYjAShgiKxSwBG0SDIZnjBqMCRZXhlMMsa3D +Lhtomwdzfbqu5udP8VnSbQSS/nlOowTY5IXp4sU0wtAqYKdi/LhxSN+0E3ZMqVpX +RN+d7RTy0GHXgoBEF/95YYjADLblXeUqF4vl5aiNoVNp/2v0V9b/IOStwTl5qVFK +gW1PCGiSEXKsLYnismlJN4Nv590i5hgOPWjGywTHBMFGg8xvhxGdACwZnYvRQXTu +zjztQOy9Omy8KS3pq50Pi50GYLUsFbP9aaLAgNcqL8WrgWDmz9nsxMN74aOZJLJy +bCpn0DJ+bIMLK3tqBdNHTA3xDRq/yGFkneZziLq/LQyC//6WO581I3FrRYjs8ngC +9nn5O95BBxbn3O9tFtJ9XcZeYXv18h92wKZ5j3iqwOU74mSQ0uNa3+qxjDbWlAtJ +6qFQMe0MJ2ZnUPncJUyTb0JEMPNh85Zhpxlor5LyBX4kVsns2V3c+zc5IpgaPVIt +MuVV5GMkF5Hqxd/KWFFbmKkdVtbsjY7/+qQ1ER6/lXVVmgd00w3+J/hLC86QWVSG +tJzjjgRQmw== -----END CERTIFICATE----- diff --git a/spec/fixtures/certs/generated/client_from_root.jks b/spec/fixtures/certs/generated/client_from_root.jks index 4e4ac23c997e9772100b71ea69f036c473a36aa7..722e4ea9c62e00afbb736e5f9192c3532a335df6 100644 GIT binary patch delta 4307 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 delta 4291 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 diff --git a/spec/fixtures/certs/generated/client_from_root.key b/spec/fixtures/certs/generated/client_from_root.key index 2a91538..ac9eec9 100644 --- a/spec/fixtures/certs/generated/client_from_root.key +++ b/spec/fixtures/certs/generated/client_from_root.key @@ -1,51 +1,52 @@ ------BEGIN RSA PRIVATE KEY----- -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 ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +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 +nOQCFDCyoNgDXCLZQXi8bq9GWS2qSQ== +-----END PRIVATE KEY----- diff --git a/spec/fixtures/certs/generated/client_from_root.key.pkcs8 b/spec/fixtures/certs/generated/client_from_root.key.pkcs8 index 5438295..ac9eec9 100644 --- a/spec/fixtures/certs/generated/client_from_root.key.pkcs8 +++ b/spec/fixtures/certs/generated/client_from_root.key.pkcs8 @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -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 -77ssEYdFL/m/xgst/9elgrMeiH2bE88= +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 +nOQCFDCyoNgDXCLZQXi8bq9GWS2qSQ== -----END PRIVATE KEY----- diff --git a/spec/fixtures/certs/generated/client_from_root.p12 b/spec/fixtures/certs/generated/client_from_root.p12 index 49ca4d7468ed88f43633ec46a957919a36d721f8..6dfc19a3f03d072ee82f792dd6d2e901188597a3 100644 GIT binary patch literal 4572 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 literal 4390 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 delta 4424 zcmY+Gbx_oeyT#cB7M7A00cnXvap@LCSW-Z`5owT?cmerRN(d}VNq4w(N-8C>bS~Y( zf>P2YT;G{{@9*9}o;fq;%z6I(oH(vE4gelPWex`6{}nC>6!t;+!x=e<2$T~-MMn@q zMfKMvhlfCJ{}VxSLLdi!tsO83@2_n9Cjr5kAte9(feZwJQxFip#j!}3W~%Lg!Nhn$ zA&|zE*@DU|+r4yuXVOuvTulddEU+H*=4JfwMS`Vhgd3}h{r%|?r^Cm}2IowtOvx8L z?@Yt-Q#&{_p0S-iT*^JC&V6|T|Koc`G{)XZ?(NmF4K84wxd^_`@vF&1=6jO?IjR{{ z`E~1Yqs;jyv3<5zqfTq*EN3SjHCDzo7jB+cHyet|VOdlzh5rQevj>a(Xe9#T)^&Z- zJf})e>vmhsOZe$&eYbu0c|Mb)6%*C%=v!ao1^!Xv>py9$3HV0!oNoBZwq?Drh{JU$ zr}!}L5zWz|(3^>#?v9@mz$<(ip5m%CIcqgmLEvec7iP2jkF+OEjoNIiE39n|ZBJjJY z49t3L0P7X{njcGig##|tf71&%pPfl!wY_lC**UoK{*L{)dcx=4W!^8#<24425UI0+ zY#+BeO16%AA!JiWRx8ir{Rss~eedWty)vB>=O5d>?dz>5`h-De1oK&h&5nBrb~uTB z2xf&WDQYg!oS^OEMtP2HmT;7-$if0dVCF$TdZR3RwoZY41W=jjbRdz~`l)ukyGRTK zT*;|zK3{U|q8^Sho=JWDZOy7p;oKV!rjVTp3zb48ER+xBIMsfG%~O(e@dr+orGC-s zAt$omq$L%X0aOSDdQ8ZN>JsYps}Zb7A#2wq7+!zZ94_ z^DO`LqT%M1BHGr_Oan7Io25?oi=U3#HwD4PxGf%taKFA9OgXelNqtAE^&>y!aT>|N zQ6WTD%PMZz&NSMk;MIDy?x23Y%}iosK%2`qMp#nWn(0*SN3QUYNIU?lModlZMAD^$o<>CqPb&S&m~U z-RNKm5pL8icZ2xY){@CE;$0(S4p)z{!ZJ3irjx5{R^*!kLy8BZU*yoyE@k$|vp)Cv z0Z^2=gip8dF_0*i#6bO~QW>wXa6(5nZpsIGolA3>;JCasG^^Xtt?R*KqGuKZs>p+8 zUbe(iX%P{)ii3_skylS$O;gMNmNeONXtgF=c4AkXx8Q`2m-Yymcf z=&{f*gBS6U-2KN4@Cldz7q{Viwv0J^dkz~tR_g70(D11Wy~fe7zVA@q4hb2F=tai9 zpD>%2L&gW`lBNV66EMJK3&;angu6e5AK<+d#wbiH>^k3!8#|J<7i z;`B94E@4EbY|7A=@)OF>8pGfrB#{4uy_^u}89@m22p$66|9ih6r2hj!5)k-r=!pp`|Wd>2J(j5Gshj@=8n|5=kCxu4q^Q^p=an`7Z#XCIAJ>DDXs$%gjixyq4g={ zaUth?Z#0g7bl2q2$Re$aQWw+xY%dKb7}kn7k9eEt`2irsO8sNGYCzxG=OD;*8qXMd5{2{liXpJWEGVS@FyV*!_WC~xnRbW zv23c~Lw~%R@hnAEkDb;?$B_Q>>&5uArrY8)5wyz30xzlYloeNYPr;Wme!U6<-Eccg z)!b2<$_4-)@!Nccjr@iLOTLNsQ1G&)DUO}s+tz?R zuD=gNT4)9e91iosL!>cgR{Kh>&6X1==14ywBDvidtf%-G>T2ogt_S+V)0gXP-6YQx z`UqDV`v&oqNy2DR|dv>GY>}@XOJhTm+AH zCgGbR#BaB0#UI%Po5)%v9Z+u~M;^-+CXdRMZ&LD#<9(}=;IVp3xO$61e&{aRCT#`Q z>LkGtHGY~z-Ma{v?!JZz0a^}u%S#H`agN#xR|D}hRK&1m5B190#E7yt1ufr${ZGdU zR0*unINA(KcMnAjQpoZ>O?1kn&ByXE{UMewH|A1G=#6d9YnsqOa`}91I?Q82$sTWu ztF&?x%3NGa?n*c7Rl`U|6r0nKPZ_`#K6j@IEVRfTTF}@3DYUlp>8f~iYw#Ns10u|0 zCF=0QKXv^m_uGfb0sCCGb&)A-=Lp5pob)fCduowd6K|dvI*Ydd5KJ-%%riI8k-DrW zUq*N^^cEq=3<)yc_z}6)T_yQfkBmrCg)vKQiMTr2EVW!Qq{mE$@4OrEk8l7=MjIF8 z_HJXJI;7#6MylRQS`N~oaK*@yfm$Jt<}e6yo;tI_uaG^y=mFW-S>0|}%9)2Og1_^` zWciY&20Y@aDRzS~{u~NBvH!-AMbubbN7m?IXD_ZddbcqLe{x@Ig5=M7!Z|%(#joV? z&N)H+#DU|$+3(C(xqc^@V{<^ofSoj-X9CmYu;Jx1k|qYAt9~%?xFAUlWKKYyl%%M%R(Tc0qm| zlPcf=)*lNNAf=rW!3^{-+H}4U>y~K<9 zlCQ?8S=x}Sg2v)`mkGoB)}`2`Jrw;7yIo+7Z_#8&gx0%ub9*c<-qW@`%u@XuZ${#F zJBOx~wfOh8_geXbB}PS~AD@A!CmJkmGpO!+RqF2cEl-i@w9vCKSvpvnZp_du$K1D3 zzqmNpG9ymE9q)FT;*ACLgbG<(=38I~Sd)Mau_SK2RQwBKZO;{7!?WyDntms_nl?(%uGrWlM zXU)k9SA~qojQMW1D&@?c7PhMHew=|y;=y#o10_4-Eti}eh4lfFu*%y}(J%Wl<0PT| zOR5nNY^=(L&G;QWGfTeTB(lxK6eBS=>|+ir=TybZWIlY`QF4AX7}xpw-Fb?XuH^IY zo$uDpExRU8?&WU3CYz+&IF7uVX)25S$l39=&YuNYly;$C;131=$u989g2ip3GxR=f*lo>dr*ZA;fYk>O)iP12DBPrIwCE4R29_u$x-9 z2;Uz?n!PF|9T6wgj?U^xO{kv7kA*H)vwn4i` zMCgQVJt}cT$hv8DX0H{mTZ#;;eV}q@dB$)4O)0Z&oHW0j0?(z(_xO>`l+Y>WxTsX5;6AvBkE86?6+193pX^ik%(;ujZfm%jk51 zeQulMR)FN&p!R{E{25a<%kj^bXd;t#AAj!&wayD9YY#5)DU*tg=VjCM%C6?i%!#|Z zu}Lne{1chD*^^e+R>xdW4E8fasu6#@QLqi8V-Dn*F7s%VqCkP+@pw1I?7znvhpDUT zs^3PFp*XK9n^>Y=rzrC*Ny-xm5HbwjNGI-tT>xoq_By&#d*OhjXia;HP6VLBtOdF} zzy+I2E1DA&ev|b!i~ahiA(}rAmrj2aW3lSpT$+Eyjpn?&B?}*CrD2~D|^f3fAAaMfJ{gfZ7L_-Q^ajA zSe+0=g%A>iv%{efLVgN-Fe4!z0WEvj1h7$$rQ4tI)B9k38k(#L}Zg1fsH4ek^z1&Xw|1`5F`?i2}92vCYU#d>g;;s=Vm)8bxS0>SO} z&iBnZkN08czc#aP``cMCjK~lb1q}=%0s=u?k*_1K@lY^P@?eD5=rFfFPAlCm)MFn91z;r;6MdWJ~C>lBn7dj!tJI2ilqB#4|-_jP@AJ`WH12U$kKlka6 zOD2?y3w|?(9Ibr7uO?2qM^+FVo!_mWsISPv4>%)X+LMVBu+$&U>(Yt64BF!s3!;p} zSfLUxeswYOMysmqwF!&6Fj8TA0nsS4QL$PrGF(KISf7&LWXHebl%bbOcn}S|t96EY?vzyMcAF50UQh@GwTe`)TM!t1$ zxz6{9V&f|Zw1`TGrPamoRNQ`@&|Mn1+j zE;&yHOs-X#ofECAboEA| zTlaz2(X~AVj=X$}&Q#rv)=r26IjDH6e%@77r0|G0P@rGp&fUF?Rrx^mK!ee7kLYYM z$?Q1E?w)@XXtH}x1hXC1x^FMC2i=5BASV>; z#n5*>PZ%={53=|7pk!AQQ)sXj#veXvw=AJ<&r|0aqI?{_gt0{=8PXeo+F~GEnij2B zAeVy#Pi=VaVPYNcpjixShZAXfz-Iq%Yq3S>UA>ijAcHwYZqoMW1bWw};SxR`B&JNW zdu!_J_|AJxwhVL>PsUKt=cee7yjH7WCvL=8Usm`S6ZM zRAX`E^3txsH5XA=JV$;?Om1USy>`TZMEHi^@_OrA3OBDhyTPd#!;?j|$$F(rQ*zEd zNmg0`&Gzf?6QjKqIXkS8(UqQ_Ws69R9lL6ghJbHUs&dDtPPxFO)8N4HL<`Qu*}VhJ z;;)5NV;9b`(jIh^6Bj?D<`KWw-@NcyFCRp?|4OCsva014D8j-W5;bVjt_a#`+v0{snFRsmhUAEBH78{xW%;^yvVJg)TX z+WBV~J0Ed`Jt&a-&HCMKZ`o3k#@gh}5MZ}d2XA8I`h4gTal9hZanbI#8i~;6^?&3(+KyvDsbaxc@`11r}+! zOSOer3xsvrszpUP+}=d!-rzYfFkG2=4_wluQb>|!G1QGP*M zbVKW`7#&jHge9*9c`(BGPE|a!$3li1wt$PLH(0+}P1R)t=jNj)xA~$q$}Co7?J4Id zLi5c|Zfn?Ob%}J#5m_257Zx|3Kp%JFsLA8&81(G$J1&=@vD%SCdDq zJvm)rroqJx5iiIySKRMorUb3zb0~l6ai=0zUqTs3c|41aTF)j-J0j6-%wF zJ?PX+oay1#=tHCz6MRRN*58I4zG~RbwpN-+@QV)*d zaqcl&6o?ItS58hNOz)a=hS4V&HuWr>%1gXM=IX2CIyfqaZE#5)fp?+V6W*me|3 z7_>sv3rgGsO5UTm6Oal zqsD1PV$!IgonM2aH7;ov-2;E7*m1!rU@U~BqI;o zR#Ku-vaM$W8TtK01NVonuH{iSO27W{!9y(Gx_0G&D0_Gvn8}@9!ttCUpwvf0BEy$M z`rEwdMw}cEgr|YQl3(8K2be(fm35BnN;hP>iTcfP29{RZnQ*z`O7GCZfFfPN7;a?Q zMsKs2N0Zi_f1b^OTD)r3+$wLj_duR1h8Qz~&XE|jeSe`_(%X(d&s1Led&X(Q#Y(tw zeCF0H(VFRUC3|QG>em);EBozd|DafO7zfTV{w1&GmeUaUllm#wTk4%1rF9|Ip-jb^ zI=|U-4?Le+713@E4ppuWHx`rsOVZ&HP8 zr_02Bt^6{PybZiDAr}z`m5sx7?mw@q@Wy*vea6v1GPL=Ye)4t(iZS~7#wm_zjqm2+ z;4m16K=#S2D-l@b*EUxdoB5_whEa3Jvo&Av70xrY4=Yj6Y<0hwQKWRovSq-$D0S)N z!c&`x#YmaY%PT$8u!{Q%)*aV^qVi`LYX;t>h2TiQR4pE&-*U!pVvP~NH*@sVjmE6D zEPEzSD$ob?7~P#&e>u8Ds$%l>zCOprj^Lz|kPBM;n6@VN^gV=6J&mXOSlCsmcczNs zx0m|$fnJQ<7@4k<)UcUi1I7^NiU5CCRbkataZ6gYRY5%&Egpt!F1=r7`p%GMRG&vz z`s(R#$L`~SmJNdUf7i=vP2Tc^wLZ2ilvMpNIMH1$L^*G6HzDVt3atBxZ{=Cre z*4_(7`U7{Kpc-{E%~9=~Uh89jnw!;0F$5kHjfA44F~Nr<{%X5}OKfsjG<_*&pAk#` zLx^otzAH`E3%!_GMR+oDY5QhGKL|dmD|d{p@s1EH_PTRFy2sj);K~W9LtqS*j;q_k z!Iw~$7NTEcj-Ofc@Gi|P>&i9N|!)pAfk`1SXNQ?z5V3Zp$ z!Yd~BJxZQ78@DAOR~p>2KH==@y<3Dw!{24@s5q_^?~wPb0qv)Kr%PrCgk zQ|I9-EAhbJH_Dh=p6^YOn_3BLBJO)(0-DJw%!o|e)-cII$q+*V{JAXC=_*a`*0lZ4 z?8E8z+$4s_9XazL#{ovE8G$R8ISq&9&(u6n`xr{JCG`<|Tybh4q}dZi`lUQJIsCg< zha*mir5sIO$gkHm@h61ndo2NSqk1)eXWa@{hw}efs2u3@)Tdfr+n}`%zGB`!+kV|M zmbuB^2hFkIgK3vGwt&Zp;6zLR<4SM3T(u*Aa#;FTQA&hfWr_x+lyXi4cB`(Hi~v|# zOM~Mfjh@?g+C1L{zu(m9?M*p%1rsBgjjZcS%uzpU{#j``lZNDTbQG_3k)U#=cn1Z1 zBY5H9WNxm5RiMfTSt0F<{^}t9UHLOWHpiwD%ya95rtR_#n$6If;Da=J90QVP?QjR6JAZ` zkGD^4lD<_xzsxWrWL$QiXTH($iEy+;oO89UAR5+zF2pgKJEk^M7lhwDkRHZTXbfQ( z?bQsakWf&@@w_gUd@1&Yay*VR$8>@pdGxN(Cxf`*6udtQAxN$2(*xeY;6l*6ijQuU zd+lj6cpp$xtV2w>(>1SHdC5i!T16aGJI^&wH6E#Uw!}>Aw1BtYpExC;`wDSY@HhnNG>n}Nl}NwAf)DArUzxt z*fI&;x-)_lBbEv+HC#gXe|LD|l-;SRy))*ZEjVWOv?YDT;7^ zkUK6<02%*L*f&|K??OK_`e9ZL-&DRA;}eg?}x;`v$SaDfm8#6KY&1-GP(xm;;#IHl%Qx+c*VHVTAZstJP9*@U6{ zG)i3!HJ`e}-Gdra>%;ELOsX|z&XP*zm&?vDg=DiGRxY+KymbRCXd$jgCN~Gimfrhf zvQVcEzu7e+8i%nXGkc%VPO^DYAVV3vOlJrJ1yIXdaS4ze7Rj>dU@1H*eDhdVw zoiXT%#Lkp#R6lgG-HPp^KO3hs_0~5a2DvBodx=6d@+&%_B#n3~_wU=bG@wqBlVQ90 Ie{aP90MyJ=(*OVf delta 4158 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 diff --git a/spec/fixtures/certs/generated/root.crt b/spec/fixtures/certs/generated/root.crt index 65d58ef..47f609e 100644 --- a/spec/fixtures/certs/generated/root.crt +++ b/spec/fixtures/certs/generated/root.crt @@ -1,32 +1,32 @@ -----BEGIN CERTIFICATE----- -MIIFiDCCA3CgAwIBAgIJAJCh5OjxT2kkMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNV -BAYTAkxTMQswCQYDVQQIDAJOQTETMBEGA1UEBwwKSHR0cCBJbnB1dDERMA8GA1UE -CgwITG9nc3Rhc2gxDTALBgNVBAMMBHJvb3QwHhcNMjIxMTE4MDYxMDQ2WhcNMjcx -MTE4MDYxMDQ2WjBRMQswCQYDVQQGEwJMUzELMAkGA1UECAwCTkExEzARBgNVBAcM -Ckh0dHAgSW5wdXQxETAPBgNVBAoMCExvZ3N0YXNoMQ0wCwYDVQQDDARyb290MIIC -IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAyNxGk4AN6CblKsvbnu8YQquw -azUbxZQMGyInLrrdN/5hXX/T+DRHAE1GBTIEc5xakRPaezqa+d8CU6qRSE4EiEPE -6Hcm0C9dXZ6WxC8MQxkwLR79c8T0Es5Pj8OKsOULPfJPv1Sr80iK2+TbAE+EraNy -jZ2FfYMu2i+VF2G4LDQmljW9xdthBQ+iEYe+T5uQCkKf6np8X/8wu0yG69dM9h0E -wIYq/aubxqt1obsRapuH/X28C9YlaFZ03sTuwiHarbINpAeIGifGJHzY5OPWzPv3 -vH2mZlWXxD+oXb9VFrHMmdrB94tijFiSLdMXt1JFU3uziUoOfJCqzKk4GAYOA4mI -IGw7p+cifYrdc4Lx2m8CsR2MRJGC2/MAqgt0/ul4booXHIJXyodgvZGl3FWxVkZN -bywazIKD7kH4SwyMrWFPxCbmaRMld0ln91O4TUi5YFkSvwT7IBwA7qTa76dWGNb8 -ypk7BREx5kARA55ib2Gj/RisCw92tG6rmnX25+UyAUCBugy5YXmK05Up4XsZmnz7 -UU3yggoBCJwi6exzhmyjUVGZH8FmsbetBuB66aOperTh3OBPG2lXEto0wOXhLv4K -YpJQNvUTAOOgXJ5ourH7taG9HwJj2ZFDxy4o+N1WRK8hpvb/KzkRhIj08643qsNp -VHvM+In4y3zXMfSnDuECAwEAAaNjMGEwHQYDVR0OBBYEFMDy+B3+dY4E4JPEv7Pr -t34Cb2WqMB8GA1UdIwQYMBaAFMDy+B3+dY4E4JPEv7Prt34Cb2WqMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQCGGzct -O+pIfMs90lz82X4IYOhg/D2qkAUcOsCKY95qcI2/XjHy3RfHTlwsw6pXAWtyLRBb -vV+wSQIxpsNCzw/vRiRP6UEKlQk8kKbIitXSlne0Cmzf55CWXXy4Bh0VGb1i69Dt -KHxWDKKpyo5rZbU9KdNv3gmoYxnsFOQayBD4qth5R8wjgSSOq1x8yS2siVJ95AV6 -1x+S5EuVdmlpc/tJcOpO8EJ48Z7LL1ah9btYK64VlVhT57PL7/GNsbJeb+tVO+jB -cAR1hECtZo29FzlRLEMGZAtAjN4U8K2mJd2oSXlt72QtoJOtCQ4Go0ediZo1yQfG -6snfup70IBO7lRHQ0c3dSYBZgAeLF1XtOP22FkrkMo0IDyl05xNZwWRUTf5I5VUX -Jv8GDXINjcyEZeeZlE5UjS2ZT2v97U5INfzh0cYDKAEFOEy2ciuZEZVLMuTITe+K -MVqqvZ3ongcgVDGIn/m/ldO/VOVNTX2JOXQX+ISYx6piDCafJqaEGRj2sPtdQ8dV -t3MErWGaSmulNM2TdeNUC753DzDVa8jtebblrrBUUf+oiRXN6cEk51tmp27/0x+W -SECgxZrfjjxF58yJ38Cd3QoH+eNpTc1sESplyhEt5aZnq6AeKzvN+OuWNArGMUEF -xSZuhCQLdbzR8ZCp+0zVuhRkyz8h8KAjMWChdA== +MIIFlTCCA32gAwIBAgIUIryHt4lqNYPPQmyI7uYPmUNFNPAwDQYJKoZIhvcNAQEL +BQAwUTELMAkGA1UEBhMCTFMxCzAJBgNVBAgMAk5BMRMwEQYDVQQHDApIdHRwIElu +cHV0MREwDwYDVQQKDAhMb2dzdGFzaDENMAsGA1UEAwwEcm9vdDAgFw0yNjA4MDUy +MjAzMzZaGA8yMTI2MDcxMjIyMDMzNlowUTELMAkGA1UEBhMCTFMxCzAJBgNVBAgM +Ak5BMRMwEQYDVQQHDApIdHRwIElucHV0MREwDwYDVQQKDAhMb2dzdGFzaDENMAsG +A1UEAwwEcm9vdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKSTGZci +pt6Bo9H7vIkS7lAo0zLfFNHrNYS5THujn3leXFU61dFtkZYhe/Inp2cIvIis+nir +tKBBn3a6647SMvYy+TJdJN34aiZDumDmKFUlkAXdQeNvG/N3IaKrP8dIby3MDJzD +gsFWmPaH0cln1GOIxLCqgXaBV2w0jXmkoqAbg3nt/K1DYH2hfNBYkentecuwVxU3 +rWlGujcpALfmiTswU99xsY9UMrkrzJtNtyoMs/uZCYvpnY69kJBSAHmToVsXKPbh +A1u28A1N+01uTvoqQgfa5Fnbh+76Mzyc5l8vYV9GQQ3/hviMO3OTHksiBDDuzUXf +UsFYsf39sQCuwuczfYj3RJkWt5J6q/2eQpttbT63Tc3CerVX13DujhfWVoHV0GsW +0g+AiEBn8/j4zun0j6FHxYaKUR0TyDUIPswSVmrCeEP6nSIsR7VjnImbjtqMijEd +ej4L4lijYeaBuFdxa6zeGF+9xQO3DAaDjkGdOUuhrAuQlZk+nbft4artLNaESd5v +n14MoInqe1vX6kigqlynWT7NhME+nLfKQViV5MBFzUV5+1C5C1b7j6ZfNxxVwwc8 +YCX+d9YKPF0+n0COd4NrARohZoPIz68N/cW5AnEWiskC3vUL5AKRQm2EvYTH4JLN +w8LKN5Nu1UZLT3drF2tTwU3hcVeZrYH3yCF5AgMBAAGjYzBhMB0GA1UdDgQWBBTH +0n+52MSV9Mx4sJUrSNKIXD8HFDAfBgNVHSMEGDAWgBTH0n+52MSV9Mx4sJUrSNKI +XD8HFDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0B +AQsFAAOCAgEAdPIHqfocHodM8CPo9jfMV79ZZvqgAhAyX0oRTw75+pl7nsAFlWyQ +g6H8FVz9Q+O+7ya9pN3q1lx5MD8PD8gL5Pnx+X7OaYszB+sTOxpbPlQHN6a68Xz1 +D2NXsTwaG3TA5kzZMG1A3/k+H3XAV25v3rOJMd2DyR0g2hCeMvSf8765fFwxPi3w +4y35i5dXGGYD3NKWtmP++JTn/lf3VQXAfdWkRlUrW3xVhoaCjKrUYdbNWYMH15ho +m0Hlj/GUjPCSxxmf5HyD3MX5vuUJPpbtenYbAvVickXj8bkuG1gti1dcLkgksaOl +2DfwhPtHlD4EcyN44ESuSWaZB+WTOHZvFlLfaDtgoqOjYziti/F568ncuNsvjRfw +adW5qUb2fDVn8Dhup9mWZumvp6gPUCz0rA6hvpmUb/Etr2G23uIUYZCs2AsOfeg4 +1ywZNPfbU4w+pTVxbp+jE2P3LsNgbcMJRE2jSKmsS2BQJBcnnM34tmsVKtzY6h7n +eeB1yYTazFdj5fg6E1bb/eKheH+sspNN3qDfhWZBnrvET9Cz5hp9haYm5ddg6+/v +get/gkK6luocspQgz8NXFrWSmgfWrgekB+GKjtuQoRLzxo9AeYG76KZGqXv4K/0c +uerxQsXOq6T02LTgq/lwoGMa0jWDZSHviVdrCGtOd7+vjeLRfqpzc3o= -----END CERTIFICATE----- diff --git a/spec/fixtures/certs/generated/root.key b/spec/fixtures/certs/generated/root.key index 83528d7..d791185 100644 --- a/spec/fixtures/certs/generated/root.key +++ b/spec/fixtures/certs/generated/root.key @@ -1,51 +1,52 @@ ------BEGIN RSA PRIVATE KEY----- -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 ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +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 +rgF1CITjJc850CfvxoC7gjL6/Gfn2w== +-----END PRIVATE KEY----- diff --git a/spec/fixtures/certs/generated/server_from_root.crt b/spec/fixtures/certs/generated/server_from_root.crt index d2eb441..5e7f02c 100644 --- a/spec/fixtures/certs/generated/server_from_root.crt +++ b/spec/fixtures/certs/generated/server_from_root.crt @@ -1,36 +1,37 @@ -----BEGIN CERTIFICATE----- -MIIGXDCCBESgAwIBAgIBAzANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJMUzEL +MIIGazCCBFOgAwIBAgIBAzANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGEwJMUzEL MAkGA1UECAwCTkExEzARBgNVBAcMCkh0dHAgSW5wdXQxETAPBgNVBAoMCExvZ3N0 -YXNoMQ0wCwYDVQQDDARyb290MB4XDTIyMTExODA2MTA0NloXDTI1MTExODA2MTA0 -NlowUzELMAkGA1UEBhMCTFMxCzAJBgNVBAgMAk5BMRMwEQYDVQQHDApIdHRwIElu -cHV0MREwDwYDVQQKDAhMb2dzdGFzaDEPMA0GA1UEAwwGc2VydmVyMIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwuiDEhm5zHcuzLD+5sBUThKJJ4nIDLOF -OrOqiTaLE8ttWhK05RJNUs5tKaNpMWeO5zXQ7rQZgEyJv9VDOh4Q/hZkyqbL1xpW -p3kg7ZdMUkym/jNv0Yp0WB4fyETQAfVdk+sQIl0e8IAIB1cFyFinC+rdUlZz5fic -doghw52BN5jnn/ZoaRVkstNKGSnYnwlOUvQc2/CF+uQUZLVX/625UD1cmWcIpqQG -sQKuWfZ3UBJFep8s/PrU/ix6MKC9k8Oqg1ZsdE6McgMyfIbPD0isX7tnGipR+Jpd -+vS1EDjKaW28zjHe8+jOPAp6FZMLRZavI0ZpFF57TZOqgYRtnqJ8WLt6IllOlfEs -ieRPUL+VFAoYq6M3ppOGy9v4GEASox/EUDC28y9DU8fC8cotteqz5YGHJZ0uJS4s -SQhKKwjGSEzirvptCMZ+NwJ2mY744mwziwuZclQiB5om7tFk6ePiQa+H2zL97tWu -EZGrlRlzh46YNY5gwfHVRbPK4m4pVzzOHF1KFemtynydds/8kvr4FvdgmARkFbzY -5qe4EaUS25sdFEU8VOAp6PpApORzGdThwfvzckvjPOxuvRm/O1cwpJ8xrxZOE4j4 -AjCq3aHU+JYVXfbdVXLJ6kaN3V9xXg4EeDw4BR0oAM8EWf8q/6vHcOEf9TabAD1D -hoEPe0SZKrUCAwEAAaOCATswggE3MAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQD -AgZAMDMGCWCGSAGG+EIBDQQmFiRPcGVuU1NMIEdlbmVyYXRlZCBTZXJ2ZXIgQ2Vy -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 +kG+EBmDw9jsoKdrcIUzf -----END CERTIFICATE----- diff --git a/spec/fixtures/certs/generated/server_from_root.key b/spec/fixtures/certs/generated/server_from_root.key index be37a84..80a8830 100644 --- a/spec/fixtures/certs/generated/server_from_root.key +++ b/spec/fixtures/certs/generated/server_from_root.key @@ -1,51 +1,52 @@ ------BEGIN RSA PRIVATE KEY----- -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 ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +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 +Guw4+xu8BOJziiptLfoiEldcCSjlfg== +-----END PRIVATE KEY----- diff --git a/spec/fixtures/certs/generated/server_from_root.key.pkcs8 b/spec/fixtures/certs/generated/server_from_root.key.pkcs8 index 7ed2d38..80a8830 100644 --- a/spec/fixtures/certs/generated/server_from_root.key.pkcs8 +++ b/spec/fixtures/certs/generated/server_from_root.key.pkcs8 @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -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 -BvFNJDUcR4oK4zo/O1idLaHDNrdFq1o= +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 +Guw4+xu8BOJziiptLfoiEldcCSjlfg== -----END PRIVATE KEY----- diff --git a/spec/fixtures/certs/generated/server_from_root.pkcs8.key b/spec/fixtures/certs/generated/server_from_root.pkcs8.key index 7ed2d38..80a8830 100644 --- a/spec/fixtures/certs/generated/server_from_root.pkcs8.key +++ b/spec/fixtures/certs/generated/server_from_root.pkcs8.key @@ -1,52 +1,52 @@ -----BEGIN PRIVATE KEY----- -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 -BvFNJDUcR4oK4zo/O1idLaHDNrdFq1o= +MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCfE3Opdv/Z2lfE +4iwR3z98UViDZ+TKbzwg/VuOSy15XpzrrlzBlT/nzLUKZEYPTweFnb8BZUzgGtUF +UZwPx07oV2wFIhnVyiXiosUB7CJgW1E/aCRzMTPJuToyC4ehG2HxWbLQkUeISFn3 +YNqyzoGVIKINx+sYOsv7IbM3mltaoYnsc6orar96e5aduPxazDqE+dOl+SDwZTUk +b8PM8cMkhOWCArlKTziPVaOhXjfs8AfcJ/mmr5uAoZHJXV8aWDb95WoAABg2lISV +64Et8bbOeSR4a2LyHXG59MkgMrDTsvvuozPB1cFVoG0jkm0IdChjQbSLsIegdRXB +kh0JN6e+iA8/VpzhJILtjB5ozLxhr5PDU/89Kt2U4YQth/Y5pMxrxFkA0nC4v0ny +HielMLbqAEKx/pzyfbGsTrNRFyawTBeBL6ZhLADZtaPPfcPeowIlB7HHkXDRWyNx +6DTBbo1g/kN6fdcoGdQyOTx9fzxX6XPM7fTKhbS2SGEIbZJTChxjIYGGtwAtB92R +9R3FOXoBMppDXrGL6QNYg6qOTO7ClMHdnMbVC7Wof5F7FJsBC21y44JxmagXmlnT +iDIKg1uWJfqpsfu0tiEfnzRBVChViP1y+2c3x+TiMowfnIm9MCvNgpZYjsz65cEb +OwTGAx9SRojytphxZVD7j4GslvCwHQIDAQABAoICAAo4bbii9KftPLEMTFiO8hKY +B1/UpQEnScMKLtUNmiEE0IAz9lxZrSlvdZJIBFhSHjbvflN7TAfPXDBjS0DtmpxC +7FByyHDRSW3Y7LTFlHqBuM6iGkrBtoTCFIMdSobcrjDw2mmcFpnNoY919uyAvW1K +E3S0i4jwU3q8cjn4U4uXJWK+a7Mua0RV/G9VxfZEzjMM+hQygB3x4rWHQ2/qIzzi +wlGAFfeNmiIGFo/08GhAuRXkBkjiBNOsOHmqOMSwi5f0eBhX6TZYhHboEqdTswhr +sB7XMhxBgrUNN9Q3GDVXIpNKg7YdzbYlVd3F4qDQaxKK04Fww3CuanTCtoAzxeCA +sbwyX8l4H/T9BiWRkwZ5YTJfbFhX5UrKMRBLgY/gVYCxoC6AoDjAHZ5G9B+pRzyj +Z4qRSYZP1uj5k2ubRPXJkQpMXa8Dbc1EXQKBVm35QpMMA6cX6mXuTedeaZI+bR+u +JYEyN1AJDNCe5x9iv7JQm0X2qVFxQh5Hn4awdU5ynOS58SHlSCuNegMKeOGgtjRx +W/fxnNneN+Ovx5ayzcYTHYZqhpcy5LOwqrFrSQvaSv2pOKHFv+q6jGQCQltrFVDN +wzI66VsMkSUZA3XXFsn76McllQjGHjH7yh9+F1u40Z9mOIKqel/OfOPU/vLqZWDZ +XyDY8LprxXeYwYlwyFPhAoIBAQDPhdyAJXj9/gyJ+bF9AD149qBG0UOu9BzeNtY+ +H83kRVWwX9f1Fw+wedIkh80bj5X7VmmvAetbSZadD7ZdsSnxb9TFUMDhKoLNmTUz +jpDaahHwI4j06DSamgYXHLRTt4Wepi1LUlzEzoKEIdwMknG46ITBf9zKhBtcaHFN +A+0pNNIY+hZPvMkbEm/YmC7Wqub0rgcjwX3G2PrtGKo8esOUzmeGk5JXHhNH3GlI +f5yb20aRhu6KGHfhJObg6cZjqRwH7UP2fxNgaGlj7nkSd05l4gjOh3uapk4Uh5hH +kuaGaZr4BrLKBTRAlWl2BcaIZuPcZXVbSXUPCtIVf8dClXyHAoIBAQDEPGb3It3c +VwKXHEo3YS9LYt3ygaWRdOXODU+2/7hSw6jbVmAZ5spGCSEoAlcGTgqTqmtxPdQk +ruKYFHRhOh8rD4ZPlZ+TgIgPyVV8aToF2FbygeVi4zXrl4FxDpudjIcxQUC6/9/m +evckVuJY8O13imVmtFB4/MCXeUKo0zTrueL6jdpei3yMozfjYF99aHyEledsGGAl +TRt1yHVY+gXBUBr3vXNqbLSBkuVVxA7KmFY3qM6MdX4DWk0zn07RWEJ7hOLZGbGs +h3xh/Lt0pHqR/y5JpAKCv6BRfKDF4AfG8OCDmFk5h8I3H+FSClowcq5ed3/Iz6xL +55lKb1xaP1s7AoIBAQCmS4mf8uda+crIghu1pIyeM1vKhATt3NaJR341OD1AUENT +W+ptj3ZWH7jC50P4cv5n8x4rTKlydKzJ3X5w4/hNbiUdnRGDHhLFeKFGWFdBf0Ay +o/cq8iy9OvHocWsbrvPXZyjis/R9DVNPWObB+FRDLai8ep7OdkCKs3MfmSbiH17A +/x8D9K9fD04rTgAyq675ob886t/EibnCZ0J7xpCV3TTehcD+KK6gpkKEAybXSkbp +dSwP432lIHIXB56f3DMHMx2EGN7JIcJafw3sO0jKofAWuEDXc68cCnB/4nryeQvi +91MsSjFOE6z4E7a9NV4hDfiWF25DiJNDASsG801fAoIBAAxHj1Xlq6ZvF21nSsme +XjxEaokTTc4FV6AGOzfDVsBvF/DpvcfBJmUtixKa2uE9HvJQlrqWWOEWxH0pwoKX +BX5HUWtHfJ3ZTCpYue24E/ZrrD0unbELcMNWTrZJaLl6IreVUryg6Fze0vpGKZHR +ObriQSglHmgDwPV5lA9GcChUEH0HRWPnLJsMV6H11OPfFvOhAcNE3zdWVOKQ8a7o +rlWDcryP8Vn2hXEaRRmR1C8fSz3eZVZqv8Dr9KrHTEJTWI2sKhnVvsWCEOl8zCon +ZLggFMBs7+9ImHqg5tqbA0GSryns7aBo+2FBsHLWzP/9HSYyKh/hxvFVA8WhpFDN +aCMCggEALfh3aBNu6+0EEKYXpc5Z2Nd0NQ+DbWwmKRaPM9S7NQ0OlF8uu+GKmbE4 +GFr6VwlHTPauBeIuEI1T1fFt37a1dz2iAaMftCpaxvzNBoVEW+d3DhSUejE0vzIM +jvAE86lLpZw2jFfj475BwIHxwa0Xga9RdxC46syB0e3h216AE8qDKvbQhgLsPL2r +fTTEgqa7YakRG2lpDvDiCMsjqj7ArK8Nb/KKQeJpTaZ7mXR7sxwTul9ydGl08MLt +NrpQ4Wr5m43OaFfBQixhfBbw5D7Jn5Fry35xT43m2pErU9kqjUdcJtPmE95+wuYE +Guw4+xu8BOJziiptLfoiEldcCSjlfg== -----END PRIVATE KEY----- diff --git a/spec/inputs/elastic_serverless_forwarder_spec.rb b/spec/inputs/elastic_serverless_forwarder_spec.rb index c1f59db..ffb391c 100644 --- a/spec/inputs/elastic_serverless_forwarder_spec.rb +++ b/spec/inputs/elastic_serverless_forwarder_spec.rb @@ -142,10 +142,13 @@ def pop_with_timeout(queue, timeout) shared_examples 'bad certificate request handling' do include_context 'basic request handling' describe 'connection' do - it 'rejects the connection with a bad_certificate error' do + # TLS 1.3 / BouncyCastle report a missing or untrusted required client + # certificate as `certificate_required` (alert 116) rather than the + # TLS 1.2 `bad_certificate` (alert 42); accept either fatal alert. + it 'rejects the connection with a bad_certificate or certificate_required error' do expect do client.post("#{scheme}://#{host}:#{port}/events", request_options.merge(body: ndjson_encoded_body)).call - end.to raise_exception(Manticore::ClientProtocolException, a_string_including('bad_certificate')) + end.to raise_exception(Manticore::ClientProtocolException, /bad_certificate|certificate_required/) end end end From 1da6d9aad6d5f35468f553b9f6f81cc8f7e0a9f4 Mon Sep 17 00:00:00 2001 From: Andrea Selva Date: Thu, 17 Sep 2026 10:03:29 +0200 Subject: [PATCH 5/6] [Test] Adds the catch of also SocketException for broken pipe, when the client doesn't provide its certificate (#18) In test specification adds the catch of also SocketException for broken pipe, when the client doesn't provide its certificate. --- spec/inputs/elastic_serverless_forwarder_spec.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spec/inputs/elastic_serverless_forwarder_spec.rb b/spec/inputs/elastic_serverless_forwarder_spec.rb index ffb391c..2ea272d 100644 --- a/spec/inputs/elastic_serverless_forwarder_spec.rb +++ b/spec/inputs/elastic_serverless_forwarder_spec.rb @@ -148,7 +148,10 @@ def pop_with_timeout(queue, timeout) it 'rejects the connection with a bad_certificate or certificate_required error' do expect do client.post("#{scheme}://#{host}:#{port}/events", request_options.merge(body: ndjson_encoded_body)).call - end.to raise_exception(Manticore::ClientProtocolException, /bad_certificate|certificate_required/) + end.to raise_error(satisfy { |e| + (e.is_a?(Manticore::ClientProtocolException) && e.message.match?(/bad_certificate|certificate_required/)) || + (e.is_a?(Manticore::SocketException) && e.message.include?("Broken pipe")) + }) end end end From bda2ca0a8c377bdc2d3a0ed492da6aa3a0653242 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 15 Oct 2026 22:38:58 +0000 Subject: [PATCH 6/6] Initial plan