Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package aws-c-io for openSUSE:Factory checked in at 2026-08-14 22:06:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/aws-c-io (Old) and /work/SRC/openSUSE:Factory/.aws-c-io.new.1258 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "aws-c-io" Fri Aug 14 22:06:20 2026 rev:43 rq:1371012 version:0.27.6 Changes: -------- --- /work/SRC/openSUSE:Factory/aws-c-io/aws-c-io.changes 2026-08-05 19:07:42.003717492 +0200 +++ /work/SRC/openSUSE:Factory/.aws-c-io.new.1258/aws-c-io.changes 2026-08-14 22:06:42.364413990 +0200 @@ -1,0 +2,9 @@ +Thu Aug 13 09:10:04 UTC 2026 - John Paul Adrian Glaubitz <[email protected]> + +- Update to version 0.27.6 + * Use latest as aws-crt-builder version by @sfod in (#817) + * Automate test cert renewal by @sfod in (#820) + * Fix read-window stall by gating window updates on the scarcest + slot by @TingDaoK in (#818) + +------------------------------------------------------------------- Old: ---- v0.27.5.tar.gz New: ---- v0.27.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ aws-c-io.spec ++++++ --- /var/tmp/diff_new_pack.vUMkgx/_old 2026-08-14 22:06:44.041473851 +0200 +++ /var/tmp/diff_new_pack.vUMkgx/_new 2026-08-14 22:06:44.047474065 +0200 @@ -21,7 +21,7 @@ %define library_version 1.0.0 %define library_soversion 0unstable Name: aws-c-io -Version: 0.27.5 +Version: 0.27.6 Release: 0 Summary: I/O and TLS package AWS SDK for C License: Apache-2.0 ++++++ v0.27.5.tar.gz -> v0.27.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/.github/workflows/cert-renewal.yml new/aws-c-io-0.27.6/.github/workflows/cert-renewal.yml --- old/aws-c-io-0.27.5/.github/workflows/cert-renewal.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/aws-c-io-0.27.6/.github/workflows/cert-renewal.yml 2026-08-11 00:37:41.000000000 +0200 @@ -0,0 +1,132 @@ +name: Certificate Renewal + +on: + schedule: + # Monthly at 11:37 UTC (03:37 PST) — quiet off-peak time for the US west coast. + # We check monthly and only regenerate when a certificate is close to expiring. + - cron: '37 11 1 * *' + workflow_dispatch: # Allow manual triggering + +permissions: + contents: write + pull-requests: write + +jobs: + check-and-renew-certificates: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Check certificate expiration + id: check-cert + working-directory: tests/resources + run: | + # generateCerts.sh regenerates every certificate in one run with the same + # 824-day lifetime, so they all expire together. Checking one is a reliable + # proxy for the whole set. + CERT_FILE="unittests.crt" + + if [ ! -f "$CERT_FILE" ]; then + echo "Certificate file $CERT_FILE not found!" + echo "needs_renewal=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + + CURRENT_EPOCH=$(date +%s) + EXPIRY_DATE=$(openssl x509 -enddate -noout -in "$CERT_FILE" | cut -d= -f2) + EXPIRY_EPOCH=$(date -d "$EXPIRY_DATE" +%s) + DAYS_UNTIL_EXPIRY=$(( (EXPIRY_EPOCH - CURRENT_EPOCH) / 86400 )) + echo "$CERT_FILE expires in $DAYS_UNTIL_EXPIRY days ($EXPIRY_DATE)" + + # Renew if less than 30 days until expiration. This gives buffer time before + # the 824-day lifetime (kept under Apple platforms' 825-day cap on TLS server + # certificate lifetimes) runs out. + if [ "$DAYS_UNTIL_EXPIRY" -lt 30 ]; then + echo "Certificates need renewal (less than 30 days until expiration)" + echo "needs_renewal=true" >> "$GITHUB_OUTPUT" + else + echo "Certificates are still valid" + echo "needs_renewal=false" >> "$GITHUB_OUTPUT" + fi + + - name: Install OpenSSL + if: steps.check-cert.outputs.needs_renewal == 'true' + run: | + sudo apt-get update + sudo apt-get install -y openssl + + - name: Regenerate certificates + if: steps.check-cert.outputs.needs_renewal == 'true' + working-directory: tests/resources + run: | + bash generateCerts.sh + + echo "New certificate details:" + openssl x509 -in unittests.crt -noout -dates -subject + + - name: Check for changes + if: steps.check-cert.outputs.needs_renewal == 'true' + id: check-changes + run: | + if git diff --quiet tests/resources; then + echo "No changes detected" + echo "has_changes=false" >> "$GITHUB_OUTPUT" + else + echo "Changes detected" + echo "has_changes=true" >> "$GITHUB_OUTPUT" + fi + + - name: Create Pull Request + if: steps.check-cert.outputs.needs_renewal == 'true' && steps.check-changes.outputs.has_changes == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # Configure git + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + + # Create branch + BRANCH_NAME="cert-renewal-${{ github.run_number }}" + git checkout -b "$BRANCH_NAME" + + # Stage and commit all regenerated test resources + git add tests/resources + git commit -m "chore: renew test certificates for 824 days + + Automatically regenerated test certificates via + tests/resources/generateCerts.sh. They use an 824-day lifetime to stay + under the 825-day cap Apple platforms enforce on TLS server certificates. + + Assisted by GenAI" + + # Push branch + git push origin "$BRANCH_NAME" + + # Create pull request using GitHub CLI + gh pr create \ + --title "chore: renew test certificates" \ + --body "## Certificate Renewal + + This PR automatically renews the test certificates in \`tests/resources/\`. + + ### Changes + Regenerated the full set of test certificates (RSA/EC self-signed certs, + the CA-signed server chain, mTLS root CAs with server/device certs, the + untrusted server CA, and the macOS trust settings plist) using + \`tests/resources/generateCerts.sh\`. + + ### Background + Apple platforms reject TLS server certificates with lifetimes over 825 days. These + certificates are used in unit tests that create TLS connections between a + localhost server and client. The PKCS#12 bundles are generated with + SHA1/3DES encryption so that macOS's Security Framework can parse them. + + ### Testing + Please verify that the unit tests pass with the new certificates before + merging. + + --- + This PR was automatically generated by the certificate renewal workflow." \ + --base main \ + --head "$BRANCH_NAME" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/.github/workflows/ci.yml new/aws-c-io-0.27.6/.github/workflows/ci.yml --- old/aws-c-io-0.27.5/.github/workflows/ci.yml 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/.github/workflows/ci.yml 2026-08-11 00:37:41.000000000 +0200 @@ -6,7 +6,7 @@ - 'main' env: - BUILDER_VERSION: v0.9.96 + BUILDER_VERSION: latest BUILDER_SOURCE: releases BUILDER_HOST: https://d19elf31gohf1l.cloudfront.net PACKAGE_NAME: aws-c-io diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/source/channel.c new/aws-c-io-0.27.6/source/channel.c --- old/aws-c-io-0.27.5/source/channel.c 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/source/channel.c 2026-08-11 00:37:41.000000000 +0200 @@ -78,6 +78,9 @@ bool is_channel_shut_down; } cross_thread_tasks; + /* Threshold at which a batched window update is emitted. Compared against the scarcest + * slot window, see s_window_update_needed(). Derivation of the value is at its assignment + * site. */ size_t window_update_batch_emit_threshold; struct aws_channel_task window_update_task; bool read_back_pressure_enabled; @@ -241,9 +244,11 @@ if (creation_args->enable_read_back_pressure) { channel->read_back_pressure_enabled = true; - /* we probably only need room for one fragment, but let's avoid potential deadlocks - * on things like tls that need extra head-room. */ - channel->window_update_batch_emit_threshold = g_aws_channel_max_fragment_size * 2; + /* TODO: the threshold is for the channel, ideally after the channel knows it's initial window size, the + * threshold should be half of that to be aligned with out http implementation. But, the channel can keep adding + * and changing slot. 4 * g_aws_channel_max_fragment_size is a reasonable numebr to avoid any blocking on the + * read. But, still fairly random. */ + channel->window_update_batch_emit_threshold = g_aws_channel_max_fragment_size * 4; } aws_task_init( @@ -767,6 +772,8 @@ return AWS_OP_SUCCESS; } +static void s_schedule_window_update_task_if_scarce(struct aws_channel_slot *slot); + int aws_channel_slot_send_message( struct aws_channel_slot *slot, struct aws_io_message *message, @@ -787,6 +794,10 @@ (void *)slot->adj_right, (void *)slot->adj_right->handler); slot->adj_right->window_size -= message->message_data.len; + /* This debit may have just made `adj_right` the scarcest slot. Nothing else on this + * path will re-examine the threshold: the slot was starved by data arriving, not by + * anyone asking for window, so there is no grant coming to trigger the check. */ + s_schedule_window_update_task_if_scarce(slot->adj_right); return aws_channel_handler_process_read_message(slot->adj_right->handler, slot->adj_right, message); } AWS_LOGF_ERROR( @@ -863,19 +874,70 @@ } } +/* Whether the batched window update needs to be emitted: some slot is holding a pending grant, and + * the scarcest slot window has fallen to the emit threshold. + * + * Both are channel-wide questions. The pending grant and the scarce window normally sit on + * DIFFERENT slots -- an http slot accumulates the grant while the tls slot below it runs dry -- so + * asking either question of one slot alone misses the case this exists to catch. + * + * Slots with no `adj_left` are excluded from both. The left-most slot's `window_size` is dead state + * (nothing upstream sends it read messages, so s_window_update_task never increments it and + * aws_channel_slot_send_message never debits it), and its batch is never drained, since the task + * stops at `adj_left == NULL`. Counting its window would pin the minimum at 0; counting its batch + * would leave the pending check permanently true. The slot passed in is folded into both, which + * covers a freshly created slot the walk would otherwise see before any data has moved through + * it. */ +static bool s_window_update_needed(const struct aws_channel_slot *slot) { + size_t min_window_size = slot->window_size; + bool update_pending = slot->current_window_update_batch_size > 0; + + for (const struct aws_channel_slot *slot_iter = slot->channel->first; slot_iter; slot_iter = slot_iter->adj_right) { + if (slot_iter->adj_left) { + min_window_size = aws_min_size(min_window_size, slot_iter->window_size); + update_pending = update_pending || slot_iter->current_window_update_batch_size > 0; + } + } + + return update_pending && min_window_size <= slot->channel->window_update_batch_emit_threshold; +} + +/* Schedule the batched window update if the scarcest slot has fallen to the emit threshold and + * there are batched pending updates. + * + * Gate on the scarcest slot, never the caller's. Slots drain at different rates -- a TLS slot + * drains ciphertext, the handler above it plaintext -- so gating on the caller lets the scarcest + * slot reach 0 while the caller sits far above the threshold, halting data flow and with it any + * further window requests. + * + * Call from both edges that lower the minimum: a grant, and a read-message debit. The debit edge + * is the one that carries liveness -- a slot starved by arriving data gets no follow-up grant. + * + * TODO: the window is really for the whole channel, but we manage it per slot. Consider + * refactoring flow control so slots cannot disagree and stall the channel. */ +static void s_schedule_window_update_task_if_scarce(struct aws_channel_slot *slot) { + struct aws_channel *channel = slot->channel; + + if (!channel->read_back_pressure_enabled || channel->channel_state >= AWS_CHANNEL_SHUT_DOWN) { + return; + } + + if (channel->window_update_scheduled || !s_window_update_needed(slot)) { + return; + } + + channel->window_update_scheduled = true; + aws_channel_task_init(&channel->window_update_task, s_window_update_task, channel, "window update task"); + aws_channel_schedule_task_now(channel, &channel->window_update_task); +} + int aws_channel_slot_increment_read_window(struct aws_channel_slot *slot, size_t window) { if (slot->channel->read_back_pressure_enabled && slot->channel->channel_state < AWS_CHANNEL_SHUT_DOWN) { slot->current_window_update_batch_size = aws_add_size_saturating(slot->current_window_update_batch_size, window); - if (!slot->channel->window_update_scheduled && - slot->window_size <= slot->channel->window_update_batch_emit_threshold) { - slot->channel->window_update_scheduled = true; - aws_channel_task_init( - &slot->channel->window_update_task, s_window_update_task, slot->channel, "window update task"); - aws_channel_schedule_task_now(slot->channel, &slot->channel->window_update_task); - } + s_schedule_window_update_task_if_scarce(slot); } return AWS_OP_SUCCESS; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/source/darwin/secure_transport_tls_channel_handler.c new/aws-c-io-0.27.6/source/darwin/secure_transport_tls_channel_handler.c --- old/aws-c-io-0.27.5/source/darwin/secure_transport_tls_channel_handler.c 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/source/darwin/secure_transport_tls_channel_handler.c 2026-08-11 00:37:41.000000000 +0200 @@ -812,7 +812,7 @@ AWS_LS_IO_TLS, "id=%p: increment read window message received %llu", (void *)handler, (unsigned long long)size); size_t downstream_size = aws_channel_slot_downstream_read_window(slot); - size_t current_window_size = slot->window_size; + size_t current_window_size = aws_add_size_saturating(slot->window_size, slot->current_window_update_batch_size); size_t likely_records_count = (size_t)ceil((double)(downstream_size) / (double)(MAX_RECORD_SIZE)); size_t offset_size = aws_mul_size_saturating(likely_records_count, EST_TLS_RECORD_OVERHEAD); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/source/s2n/s2n_tls_channel_handler.c new/aws-c-io-0.27.6/source/s2n/s2n_tls_channel_handler.c --- old/aws-c-io-0.27.5/source/s2n/s2n_tls_channel_handler.c 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/source/s2n/s2n_tls_channel_handler.c 2026-08-11 00:37:41.000000000 +0200 @@ -1217,7 +1217,7 @@ } size_t downstream_size = aws_channel_slot_downstream_read_window(slot); - size_t current_window_size = slot->window_size; + size_t current_window_size = aws_add_size_saturating(slot->window_size, slot->current_window_update_batch_size); AWS_LOGF_TRACE( AWS_LS_IO_TLS, "id=%p: Increment read window message received %llu", (void *)handler, (unsigned long long)size); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/source/windows/secure_channel_tls_handler.c new/aws-c-io-0.27.6/source/windows/secure_channel_tls_handler.c --- old/aws-c-io-0.27.5/source/windows/secure_channel_tls_handler.c 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/source/windows/secure_channel_tls_handler.c 2026-08-11 00:37:41.000000000 +0200 @@ -1739,7 +1739,7 @@ size_t total_desired_size = size; size_t downstream_size = aws_channel_slot_downstream_read_window(slot); - size_t current_window_size = slot->window_size; + size_t current_window_size = aws_add_size_saturating(slot->window_size, slot->current_window_update_batch_size); /* the only time this branch isn't taken is when a window update is propagated during tls negotiation. * in that case just pass it through. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/CMakeLists.txt new/aws-c-io-0.27.6/tests/CMakeLists.txt --- old/aws-c-io-0.27.5/tests/CMakeLists.txt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/CMakeLists.txt 2026-08-11 00:37:41.000000000 +0200 @@ -139,6 +139,9 @@ add_test_case(channel_rejects_post_shutdown_tasks) add_test_case(channel_cancels_pending_tasks) add_test_case(channel_duplicate_shutdown) +add_test_case(channel_window_update_gates_on_scarcest_slot) +add_test_case(channel_window_update_batches_while_all_slots_roomy) +add_test_case(channel_window_update_emitted_when_debit_starves_slot) add_test_case(channel_keeps_event_loop_group_alive) add_net_test_case(channel_connect_some_hosts_timeout) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/channel_test.c new/aws-c-io-0.27.6/tests/channel_test.c --- old/aws-c-io-0.27.5/tests/channel_test.c 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/channel_test.c 2026-08-11 00:37:41.000000000 +0200 @@ -14,6 +14,7 @@ #include <aws/io/private/event_loop_impl.h> #include <aws/io/socket.h> #include <aws/testing/aws_test_harness.h> +#include <aws/testing/io_testing_channel.h> #include "mock_dns_resolver.h" #include "read_write_test_handler.h" @@ -930,3 +931,205 @@ return AWS_OP_SUCCESS; } AWS_TEST_CASE(channel_keeps_event_loop_group_alive, s_test_channel_keeps_event_loop_group_alive) + +/* Builds a 3-slot read-back-pressure channel: left -> mid -> right. + * + * Three slots is the minimum that can tell the two gating rules apart. Only slots with an + * `adj_left` carry a live `window_size`, so in a 2-slot channel the sole live window belongs + * to the slot that asks for more -- the scarcest window and the caller's window are the same + * number, and either rule behaves identically. */ +static int s_window_gate_channel_init( + struct aws_allocator *allocator, + struct testing_channel *testing, + size_t mid_window, + size_t right_window, + struct aws_channel_slot **out_mid_slot, + struct aws_channel_slot **out_right_slot, + struct testing_channel_handler **out_mid_impl) { + + struct aws_testing_channel_options options = {.clock_fn = aws_high_res_clock_get_ticks}; + ASSERT_SUCCESS(testing_channel_init(testing, allocator, &options)); + + struct aws_channel_slot *mid_slot = aws_channel_slot_new(testing->channel); + ASSERT_NOT_NULL(mid_slot); + ASSERT_SUCCESS(aws_channel_slot_insert_right(testing->left_handler_slot, mid_slot)); + struct aws_channel_handler *mid_handler = s_new_testing_channel_handler(allocator, mid_window); + ASSERT_NOT_NULL(mid_handler); + struct testing_channel_handler *mid_impl = mid_handler->impl; + ASSERT_SUCCESS(aws_channel_slot_set_handler(mid_slot, mid_handler)); + + struct aws_channel_slot *right_slot = aws_channel_slot_new(testing->channel); + ASSERT_NOT_NULL(right_slot); + ASSERT_SUCCESS(aws_channel_slot_insert_right(mid_slot, right_slot)); + struct aws_channel_handler *right_handler = s_new_testing_channel_handler(allocator, right_window); + ASSERT_NOT_NULL(right_handler); + ASSERT_SUCCESS(aws_channel_slot_set_handler(right_slot, right_handler)); + + /* Let the initial grants from set_handler settle into window_size. */ + testing_channel_drain_queued_tasks(testing); + ASSERT_UINT_EQUALS(mid_window, mid_slot->window_size); + ASSERT_UINT_EQUALS(right_window, right_slot->window_size); + + /* Zero the observable so later assertions only see what this test provoked. */ + mid_impl->latest_window_update = 0; + + *out_mid_slot = mid_slot; + *out_right_slot = right_slot; + *out_mid_impl = mid_impl; + return AWS_OP_SUCCESS; +} + +/* The batched window update must be gated on the SCARCEST slot window, not on the window of + * whichever slot happens to be asking. + * + * `mid` sits below the emit threshold while `right` sits far above it -- the shape a tls slot + * draining ciphertext makes underneath an http slot draining plaintext, since tls sizes its own + * window by estimating record overhead and that estimate assumes the peer packs plaintext into + * full-size records. `right` is the only slot asking for window in steady state, so a gate that + * reads the caller's window never fires: the accumulated batch is never emitted, `mid` is never + * replenished, the upstream slot stops reading, no data reaches `right`, and nothing ever asks + * for window again. The channel wedges with a full batch pending. */ +static int s_test_channel_window_update_gates_on_scarcest_slot(struct aws_allocator *allocator, void *ctx) { + (void)ctx; + + const size_t threshold = g_aws_channel_max_fragment_size * 4; + const size_t scarce_window = g_aws_channel_max_fragment_size; + const size_t roomy_window = threshold * 4; + ASSERT_TRUE(scarce_window <= threshold); + ASSERT_TRUE(roomy_window > threshold); + + struct testing_channel testing; + struct aws_channel_slot *mid_slot = NULL; + struct aws_channel_slot *right_slot = NULL; + struct testing_channel_handler *mid_impl = NULL; + ASSERT_SUCCESS(s_window_gate_channel_init( + allocator, &testing, scarce_window, roomy_window, &mid_slot, &right_slot, &mid_impl)); + + /* `right` asks for more window. Gating on the caller declines to schedule the task because + * `right` is roomy; gating on the minimum must schedule it because `mid` is scarce. */ + const size_t grant = 1024; + ASSERT_SUCCESS(aws_channel_slot_increment_read_window(right_slot, grant)); + testing_channel_drain_queued_tasks(&testing); + + /* The batch was emitted: applied to the asking slot's window, drained, and propagated to + * the handler upstream of it. */ + ASSERT_UINT_EQUALS(roomy_window + grant, right_slot->window_size); + ASSERT_UINT_EQUALS(0, right_slot->current_window_update_batch_size); + ASSERT_UINT_EQUALS(grant, mid_impl->latest_window_update); + + ASSERT_SUCCESS(testing_channel_clean_up(&testing)); + return AWS_OP_SUCCESS; +} +AWS_TEST_CASE(channel_window_update_gates_on_scarcest_slot, s_test_channel_window_update_gates_on_scarcest_slot) + +/* The other direction: gating on the minimum must not degenerate into "always emit". While every + * slot is roomy the update stays batched, so a fix that simply drops the gate fails here. */ +static int s_test_channel_window_update_batches_while_all_slots_roomy(struct aws_allocator *allocator, void *ctx) { + (void)ctx; + + const size_t threshold = g_aws_channel_max_fragment_size * 4; + /* Roomy by exactly one fragment, so the debit below fits in a single pooled message. */ + const size_t roomy_window = threshold + g_aws_channel_max_fragment_size; + ASSERT_TRUE(roomy_window > threshold); + + struct testing_channel testing; + struct aws_channel_slot *mid_slot = NULL; + struct aws_channel_slot *right_slot = NULL; + struct testing_channel_handler *mid_impl = NULL; + ASSERT_SUCCESS( + s_window_gate_channel_init(allocator, &testing, roomy_window, roomy_window, &mid_slot, &right_slot, &mid_impl)); + + const size_t grant = 1024; + ASSERT_SUCCESS(aws_channel_slot_increment_read_window(right_slot, grant)); + testing_channel_drain_queued_tasks(&testing); + + /* Held, not emitted. */ + ASSERT_UINT_EQUALS(roomy_window, right_slot->window_size); + ASSERT_UINT_EQUALS(grant, right_slot->current_window_update_batch_size); + ASSERT_UINT_EQUALS(0, mid_impl->latest_window_update); + + /* Once the scarcest window falls to the threshold the held batch is emitted. Debiting `mid` + * with a read message is what a real upstream handler does when it forwards data. */ + const size_t debit = roomy_window - threshold; + struct aws_io_message *msg = + aws_channel_acquire_message_from_pool(testing.channel, AWS_IO_MESSAGE_APPLICATION_DATA, debit); + ASSERT_NOT_NULL(msg); + ASSERT_TRUE(msg->message_data.capacity >= debit); + msg->message_data.len = debit; + ASSERT_SUCCESS(aws_channel_slot_send_message(testing.left_handler_slot, msg, AWS_CHANNEL_DIR_READ)); + ASSERT_UINT_EQUALS(threshold, mid_slot->window_size); + + ASSERT_SUCCESS(aws_channel_slot_increment_read_window(right_slot, grant)); + testing_channel_drain_queued_tasks(&testing); + + ASSERT_UINT_EQUALS(roomy_window + (grant * 2), right_slot->window_size); + ASSERT_UINT_EQUALS(grant * 2, mid_impl->latest_window_update); + + ASSERT_SUCCESS(testing_channel_clean_up(&testing)); + return AWS_OP_SUCCESS; +} +AWS_TEST_CASE( + channel_window_update_batches_while_all_slots_roomy, + s_test_channel_window_update_batches_while_all_slots_roomy) + +/* The wedge as it actually occurs, in order. + * + * 1. Every slot is roomy, so `right`'s grant is accepted into its batch and correctly held back + * by the threshold. + * 2. `mid` then drains to 0. The harness handler queues read messages without forwarding them, + * which is what a tls handler does while it holds an incomplete record: it consumes a whole + * socket read and emits nothing downstream. + * 3. Because nothing reached `right`, `right` has no reason to ask for window again. + * + * The batch from step 1 is now the only thing that can replenish `mid`, and `mid` at 0 is what + * stops the upstream slot from reading. If nothing re-examines the threshold when a window is + * DEBITED, the channel is wedged: full batch pending, scarcest window at 0, no further calls + * coming. */ +static int s_test_channel_window_update_emitted_when_debit_starves_slot(struct aws_allocator *allocator, void *ctx) { + (void)ctx; + + const size_t threshold = g_aws_channel_max_fragment_size * 4; + /* Roomy, and an exact multiple of the fragment size so it drains to precisely 0. */ + const size_t roomy_window = g_aws_channel_max_fragment_size * 5; + ASSERT_TRUE(roomy_window > threshold); + + struct testing_channel testing; + struct aws_channel_slot *mid_slot = NULL; + struct aws_channel_slot *right_slot = NULL; + struct testing_channel_handler *mid_impl = NULL; + ASSERT_SUCCESS( + s_window_gate_channel_init(allocator, &testing, roomy_window, roomy_window, &mid_slot, &right_slot, &mid_impl)); + + /* Step 1: grant while everything is roomy. Must be held, not emitted. */ + const size_t grant = 1024; + ASSERT_SUCCESS(aws_channel_slot_increment_read_window(right_slot, grant)); + testing_channel_drain_queued_tasks(&testing); + ASSERT_UINT_EQUALS(grant, right_slot->current_window_update_batch_size); + ASSERT_UINT_EQUALS(roomy_window, right_slot->window_size); + + /* Step 2: drain `mid` to 0 one fragment at a time, forwarding nothing downstream. */ + const size_t fragment = g_aws_channel_max_fragment_size; + for (size_t remaining = roomy_window; remaining > 0; remaining -= fragment) { + struct aws_io_message *msg = + aws_channel_acquire_message_from_pool(testing.channel, AWS_IO_MESSAGE_APPLICATION_DATA, fragment); + ASSERT_NOT_NULL(msg); + ASSERT_TRUE(msg->message_data.capacity >= fragment); + msg->message_data.len = fragment; + ASSERT_SUCCESS(aws_channel_slot_send_message(testing.left_handler_slot, msg, AWS_CHANNEL_DIR_READ)); + } + ASSERT_UINT_EQUALS(0, mid_slot->window_size); + + /* Step 3: no further increment_read_window call. Draining tasks is all the channel gets. */ + testing_channel_drain_queued_tasks(&testing); + + /* The held batch must have been emitted, and `mid` replenished, or the channel is stuck. */ + ASSERT_UINT_EQUALS(grant, mid_impl->latest_window_update); + ASSERT_UINT_EQUALS(roomy_window + grant, right_slot->window_size); + ASSERT_UINT_EQUALS(0, right_slot->current_window_update_batch_size); + + ASSERT_SUCCESS(testing_channel_clean_up(&testing)); + return AWS_OP_SUCCESS; +} +AWS_TEST_CASE( + channel_window_update_emitted_when_debit_starves_slot, + s_test_channel_window_update_emitted_when_debit_starves_slot) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/README.md new/aws-c-io-0.27.6/tests/resources/README.md --- old/aws-c-io-0.27.5/tests/resources/README.md 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/README.md 2026-08-11 00:37:41.000000000 +0200 @@ -8,6 +8,20 @@ Generated files include RSA/EC self-signed certs, a CA-signed server cert chain, mTLS root CAs with server/device certs, an untrusted server CA, and the macOS trust settings plist for `mtls_server_root_ca`. See the script header for the full list. +The PKCS#12 bundles (`*.p12`) are exported with SHA1/3DES encryption (`-keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES +-macalg sha1`) rather than OpenSSL 3.x's modern AES-256/PBES2 defaults, which macOS's Security Framework +(`SecPKCS12Import`) cannot parse. + +Some certificates in this folder are intentionally *not* regenerated by the script (`testparse*.crt`, `testcert*.pem`, +`ecc-cert.pem`/`ecc-key.pem`, and `DigiCertGlobalRootCA.crt.pem`); see the script header for details. + +### Automated renewal + +The `.github/workflows/cert-renewal.yml` workflow runs `generateCerts.sh` on a monthly schedule (and on manual +dispatch). It checks the expiration of the generated certificates and, when the earliest one is within 30 days of +expiring, regenerates the full set and opens a pull request with the changes. Certificates are generated with an +824-day lifetime to stay under the 825-day cap Apple platforms enforce on TLS server certificate lifetimes. + ## import_custom_cert_to_keychain.sh macOS-only script used in CI to set up a temporary keychain with test certificates for keychain-related tests. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/ca_root.crt new/aws-c-io-0.27.6/tests/resources/ca_root.crt --- old/aws-c-io-0.27.5/tests/resources/ca_root.crt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/ca_root.crt 2026-08-11 00:37:41.000000000 +0200 @@ -3,22 +3,22 @@ EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxDzANBgNVBAoM BkFtYXpvbjENMAsGA1UECwwEU0RLczEUMBIGA1UEAwwLbG9jYWxob3N0Q0ExMDAu BgkqhkiG9w0BCQEWIWF3cy1zZGstY29tbW9uLXJ1bnRpbWVAYW1hem9uLmNvbTAe -Fw0yNDA1MDQxNzA3MDNaFw0yNjA4MDYxNzA3MDNaMIGcMQswCQYDVQQGEwJVUzET +Fw0yNjA4MDcxNzQzMDZaFw0yODExMDgxNzQzMDZaMIGcMQswCQYDVQQGEwJVUzET MBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEPMA0GA1UECgwG QW1hem9uMQ0wCwYDVQQLDARTREtzMRQwEgYDVQQDDAtsb2NhbGhvc3RDQTEwMC4G CSqGSIb3DQEJARYhYXdzLXNkay1jb21tb24tcnVudGltZUBhbWF6b24uY29tMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4lI7p1KbrjspVtn2gcHfg7iJ -zj+FJ3PxqfBW/peU3fT2SAyXlNH0NfP/NgU0vk60yL1lExX+a/jdD0o+WLVEMFPq -A4Mdd5H4PUSA+YK0tUNLbBOaezb2Td19y3VQ5zSi8ribjLlLii4Pn2mLuJvLBYRP -8kfnOJe07A+UWc5HCA283yjvBR6gl4YRGIRPnipQ12hoqRL5IB++lZ6PzhoxWOus -NMKcikt+YoXBOmrl0bC6KtqUY52IfBulSjq4FNUjPd30NaX9wMnb5LuNAi0DGaFm -632T8mwtfTAr3ZnHIr+Bw6lEVBg/b1JgyiM115n0GuTghJz9SRYuZnVz/iCEhQID -AQABo2MwYTAdBgNVHQ4EFgQUD85JN3uwSAuVVZs4ULtkFBQrBjwwHwYDVR0jBBgw -FoAUD85JN3uwSAuVVZs4ULtkFBQrBjwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B -Af8EBAMCAYYwDQYJKoZIhvcNAQELBQADggEBAHDNsWJ41LdAp9h25rCpTcowc6Sh -1fDRJWWxgKH0FKRclALapJascpZVbtR7tC6BlytzETnyDnxNXoUiYEBviThmfo1N -jJeU5VTUb0xNfx2wNAZeEFBpi4RGNOLWvSD8xrestMgSLsOM+GNk92WKHxKb6GPs -jOCmOPTqA9npiasalS5BVdi8muI9pzBkR4614mj1kyjzxh5a5bAtntwHJ75KqbVd -KQWIiNJVS+tCYm/1XrXotFoJUR5eQhgO/g0PrSDE+PaolgJBuYpr4yClXxlizRKe -UC4MRgc88DrbYLG9PhIBqRwwXpv0itmzEGl2cr/StaspzPoIlGo0iBuJgps= +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuaqmG1GbDpEkNqaNsTUuBIYh +t90RxBg2kL+FBrXcf1mUJUwxyngufFXirfi1jQVadklKycy1RiV4TBUaMqxJMtI2 +SqrH9vdBy3hXEM606KM6lh22fUSEBhJKFIIC1Vir6mvACAhnldP96YMxI3kQQp6B +7Sa0qczlmUwn+Y0/Y3z1m0dX6Zv+/oROJJEpDmiyhC6T7IFomFA5D7hJDcQE80j9 +vA/IqNUvz18fycAdLCcQuYi3MbximmGNWjBmodsqUk5YuvCA3ia788E8sWaqvyA7 +VBWuqoH7C5trgxnM57E+V98M2cXidwjNKdU1/zGEAS/LH22HywNuhac9Cg7ShQID +AQABo2MwYTAdBgNVHQ4EFgQUtq02oeG+H/IwJDLfNBhdjp3a7U4wHwYDVR0jBBgw +FoAUtq02oeG+H/IwJDLfNBhdjp3a7U4wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAYYwDQYJKoZIhvcNAQELBQADggEBALeqLlqRnB87WxEazhXZsRXYSl+M +Q0A83yqd6+tiZn5YRA3r+PgYr28AIeA5iHkB4/GjVd5oktoRBBVze6xaWX9k98vU +LHcFan2FUqTxG5g8XzgV8qRwQpK6a/m6m+TCpJVztVRqOBSls0wTCmGE0XGYSbei +zZlxyU04bQrqx9sCroCDrYzjprIXkiGZvUGxvhwWxL7Y/lYvCvw67sMWKHBGk8Vg +NhtST1gCuQRK5fOhOOBWtgpry/W/8pdLOMcJAYibWlr6tuuWEG3THVlFWNpg/XUY +CwycpX241WIcpz5OwZIGNsj9hMRmmstBCPFRCJxJu3YCpiwQMcBqvMVY9Bc= -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/ec_unittests.crt new/aws-c-io-0.27.6/tests/resources/ec_unittests.crt --- old/aws-c-io-0.27.5/tests/resources/ec_unittests.crt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/ec_unittests.crt 2026-08-11 00:37:41.000000000 +0200 @@ -1,15 +1,16 @@ -----BEGIN CERTIFICATE----- -MIICYDCCAgagAwIBAgIJANCMnBk7jwdGMAoGCCqGSM49BAMCMIGaMQswCQYDVQQG -EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEPMA0G -A1UECgwGQW1hem9uMQ0wCwYDVQQLDARTREtzMRIwEAYDVQQDDAlsb2NhbGhvc3Qx -MDAuBgkqhkiG9w0BCQEWIWF3cy1zZGstY29tbW9uLXJ1bnRpbWVAYW1hem9uLmNv -bTAeFw0yNDA1MDQxNzA3MDRaFw0yNjA4MDYxNzA3MDRaMIGaMQswCQYDVQQGEwJV -UzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEPMA0GA1UE -CgwGQW1hem9uMQ0wCwYDVQQLDARTREtzMRIwEAYDVQQDDAlsb2NhbGhvc3QxMDAu -BgkqhkiG9w0BCQEWIWF3cy1zZGstY29tbW9uLXJ1bnRpbWVAYW1hem9uLmNvbTBZ -MBMGByqGSM49AgEGCCqGSM49AwEHA0IABCOVOKo+/0+07kUwDp6BQ+6vqYcQhkgL -Lj1hnKyRgsK9Na62vyb48RR62eGVau8x/u4hRNUzcQFQZT+k3YGQdLijMzAxMBMG -A1UdJQQMMAoGCCsGAQUFBwMBMBoGA1UdEQQTMBGCCWxvY2FsaG9zdIcEfwAAATAK -BggqhkjOPQQDAgNIADBFAiA+E/faZjfK/QbdjMkcKI0iiepu/o6FluaVHNirepRn -dAIhAIVj2dZMgH5T6XrFQ+/8D0VTEoLCCJjaMhxZzElZs95l +MIICijCCAjCgAwIBAgIUIqEdneFmlx8qaPPL6/GiQydpPHgwCgYIKoZIzj0EAwIw +gZoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdT +ZWF0dGxlMQ8wDQYDVQQKDAZBbWF6b24xDTALBgNVBAsMBFNES3MxEjAQBgNVBAMM +CWxvY2FsaG9zdDEwMC4GCSqGSIb3DQEJARYhYXdzLXNkay1jb21tb24tcnVudGlt +ZUBhbWF6b24uY29tMB4XDTI2MDgwNzE3NDMwNloXDTI4MTEwODE3NDMwNlowgZox +CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0 +dGxlMQ8wDQYDVQQKDAZBbWF6b24xDTALBgNVBAsMBFNES3MxEjAQBgNVBAMMCWxv +Y2FsaG9zdDEwMC4GCSqGSIb3DQEJARYhYXdzLXNkay1jb21tb24tcnVudGltZUBh +bWF6b24uY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEI5U4qj7/T7TuRTAO +noFD7q+phxCGSAsuPWGcrJGCwr01rra/JvjxFHrZ4ZVq7zH+7iFE1TNxAVBlP6Td +gZB0uKNSMFAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGgYDVR0RBBMwEYIJbG9jYWxo +b3N0hwR/AAABMB0GA1UdDgQWBBS8k5qlgpgabdsjCnpqBq0vCpnJYDAKBggqhkjO +PQQDAgNIADBFAiEAvz5PcvlNSmNxIH6Az8/GeDHEVu9vONgB7Dn15cp7ugkCIDin +bLinUj37FFwTjFGE1tov1qO+UlS+GcY2jEyVE0jb -----END CERTIFICATE----- Binary files old/aws-c-io-0.27.5/tests/resources/ec_unittests.p12 and new/aws-c-io-0.27.6/tests/resources/ec_unittests.p12 differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/generateCerts.sh new/aws-c-io-0.27.6/tests/resources/generateCerts.sh --- old/aws-c-io-0.27.5/tests/resources/generateCerts.sh 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/generateCerts.sh 2026-08-11 00:37:41.000000000 +0200 @@ -31,6 +31,13 @@ # mtls_untrusted_server.key: private key for mtls_untrusted_server # mtls_server_root_ca_trust_settings.plist: macOS trust settings plist for mtls_server_root_ca +# Certificates in this folder that are intentionally NOT regenerated by this script +# (do NOT add them here): testparse.crt, testparse_crlf.crt, testcert0-7.pem, +# ecc-cert.pem/ecc-key.pem, and DigiCertGlobalRootCA.crt.pem. These are static test +# fixtures. The testparse*/testcert*/ecc-* certs are only used by PEM-parsing and certificate-import +# tests that assert against hardcoded byte content, so regenerating them would break those tests. +# DigiCertGlobalRootCA is a real public root CA used as a negative test case and is not ours to regenerate. + # Create directory for use with certificate generation mkdir -p certGeneration # Copy files needed to generate new certificates @@ -88,11 +95,16 @@ -in $base.key \ -nocrypt + # Use SHA1/3DES-based PBE instead of OpenSSL 3.x's modern AES-256/PBES2 defaults. + # macOS's Security Framework (SecPKCS12Import) cannot parse the modern defaults and + # fails with "MAC verification failed", and unittests.p12 is loaded by the Apple + # SecureTransport tests. See tests/resources/README.md. openssl pkcs12 -export \ -out $base.p12 \ -inkey $base.key \ -in $base.crt \ - -password pass:1234 + -password pass:1234 \ + -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg sha1 done # generate_trust_plist <cert_pem> <output_plist> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_device.key new/aws-c-io-0.27.6/tests/resources/mtls_device.key --- old/aws-c-io-0.27.5/tests/resources/mtls_device.key 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_device.key 2026-08-11 00:37:41.000000000 +0200 @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDnvqSRf9ScJxK4 -AJdB0hZHQrvMnSDq9b7hktvqZ02WfrnYvS0UKADP0luxBctBBzuvIleDS9YieUyY -z+wXnDmWXvjOy7k2L92XNREkk/EjIgjgaCLYWNEiDUc5ayp80JOWjinDkxdy0JH/ -KyjvRRk2aBTfLtOaNTU75x3Qp1CuUepvlwBlG4z6xw5ixIKcUItZP/5lgO2MgUEl -1YJVmGn49FAnpq8jzGTp+SKcQbMepNIdDKDE9yRvjVBGSnFhTFUGkCu4XVVbVCAg -9k0oti0/50pr/1KA/V1NBqKadAAFC/78CJCQANlBa3urNIQBNgDX4fX9OTkzAJXa -8EiPpBHFAgMBAAECggEAOF5p3y5Nw9HJPtJ9+DemzZyQ25tYt24hCPNU5LZN7A5V -HEAfp+h3EhXj0bJMFzwwK1BaIwieRHJmzEC+95s7crUVJg/ttB1+c9onmlMV82rC -5/rMhv1LmVHLgk7r3cJKM/POetDbgkTzTjLsWQ7grBgzA3p7Y+YPVcvIt8kK2euC -XyrmaeYzdgIi8kjcdeV/oIf2CI5fY/Fl98TLOEgJ8GvlJ+I/MJd+2Kaah3i3OhrI -up6e1LAfV+fWNYcAICirs3tfFBTW9vDqOjpMjHhJDJIQZLSVEb7DqY8nF9S2p3ds -R4MB+aAuuzzsxRJUfApRH29bTWBemTuk5jqUl3caYQKBgQD8OP2pHAZg0mF4c9bP -A6HUfIXOTnXBv5DcI1hNiV59BNxGE6M3ENLTWJ2ryptwKcFabYVoi+jpXN4ZueEN -U2KRmNMaoTg+oWjxCmrcwhLWIY5hvqcc0jyyBr7r1ZDVr/i3fhPnwsndV9oEWtFa -fTeXm4h+YoDsZPencmMf2m68CQKBgQDrNyQAwvp10W0yzx5I5yHmD03scLY3/AMS -p8Y+ZmP/SSVsaY32aiIgjoYM4AS+JlWu8F6llMleSlfAszkz4+Ox/GQzvSqYqjb2 -9XRJBwYtLJcK5yyYstF5+8zqKKqY1ToEp5ObD5GmDZQZgx3n6GIWiOVlOIoEi3MQ -hS1ifPlO3QKBgCgr04rJoeJt34RVvtK921qCcrVHHc47+pB1OK0wwdHbolGu8wHk -Ng/fP02LOXKF0/vZEbRzBCeW2PDz//olW7+gvY6yOskO4C3z4M1EQ8fDFHBQ80DN -40jfdi0NmMHQAycGd5kkFw6f3WNwK4PkCaSl6vlmKu57rk4HE+6Q1a4xAoGAWuvc -oeK8mBBVKp+/MCUQCHMABxZmiWuD8JEj43kGzGaE7cw7kPXjrTwKey2ZB7ufwViu -7Uh/MlCAbT+aLAG6QVGzlgBYV9zsFDg7NANgEtQ6qn9D0N7GdGWuBxGjKCK8I5J3 -TygMf+idx+LUC5HbYKSYL7FUQH97AfbI3Vo7sI0CgYAUxmQb6tfi5d3d6V0r43dq -AcsmQ8jSosmiysbjDZ7CXxGnUzuemDd3rHgllHVYH87gwaWilLPSSG6YfTAj/YWi -szU0C1e7/2uC79E1lMXMq+ZAUaKTu7EljR8K44kqLAKgy08OvgQOmq0XSrW7nhAn -cxYpAkkXPV2cioHqKm30+A== +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDo8VtqxvCYpKVy +jzC1frLgzmRxSuK3ZQzExf5Ys91DJ354U6AgIooIUQGAH9ZIuxTlvcEcQywHJxtY +IJ9Pb161DqAJNIIvJWpEv7Bn2HAdgNnH40O3SGc0IahNxIhj/kBAPW6OmZIKyuXs +jnjwIe8WNYb0oegFgeuV3rf3y9BwcTgKyBTaUS/mxrEwrRpWupO4x46uFP/E3iF+ +zhoFDC7FE9rHZ4y2eungXoLxSC8lWQv31tiMtbMLBPA6VD3zTW5/KW7zkHJPB49t +5hjG0H2gR3CFAGp9ys+qECm2zCk5pVQo9GwEwyLQLYEiYtjL5HodD6QaSEjo6cYo +zCANt2ClAgMBAAECggEAEp9K8uIVFWriNCKY3wWSONEfLARz0/v+1ZNLhl1YtLfp +TybGUBNazBfnwg2phJZ6MPSmxcLj9+1rLPQssD3DyT8yUZIST0ETOgxGBsNBkUY+ +AtIbFYGzCHKhYRgzXCUVD12p4zoJOBYo4+yu4+mekry0PYXdBeWxRwGvXN69GuP3 +Ld60W01//xUrP/d7o7EXB9hmIAT5qorrnKCfSW6XCbk8tmoVa2jPOl2STSJUy4/5 +sqMJ8VSkXUM5tweOAmk+GNUmGlEq6o+H4EQmwSBbomV3mBUVIatEApL6FKe6Bwk6 +g/CugAiwvurnJ3XA518+S6PNGULwW35ZNTcS4IpdMQKBgQD3ddrdX+vG8xVwEIjC +/MQax+BllZDLcuAH6V0mn/g/MHe/Zv55BF3q1yIrtSSuRxXixHL5WUDhVxJdnQAt +JzKrFsHsoHdfJ6mS1aCTHYu3gJt7l0IneRtVMeVxNNsIyF/+6V8J/du9xdydzBrk +Gx1GQansmz6Y7oN5ml5bIDBGNQKBgQDw+z/OiNRioenxRCqQ4Lmdv9x5MlwH4SRE +Ct6WxjvSJnlFgBt+BQuVG2XRAEa8f0kx5IcPkYkvYD4dSNhYYbhB2MAZVYpAjC8k +tUtSzohZd3vghsIM5DKBVIKwahtPYs6xk7bU87Q8GdWnmQfw7ApeCvWwaH+ZBCyV +TwdjAL4+sQKBgQC9AX9RZloncrMFDRvoEjeWXOO/syUMv4jtgghr3/M0EEjmIDxt +IjC5lee7inehxRmqQnGukcVEV8TnS2s/EZlZo+AqY8XJH/oc9J3Yv9BfMBORqk4U +6CNARwQAG2bQpnrrsEOu1f5oTB/dRm+jmjIZ3z1yQoDlPgedcZJv933noQKBgG8I +FJogyVq4p4WWltYx9NQONpNQ9L5cqc0ABRcLNzzYpT+0ivZBdNi6yurFadIoA52N +Yf12XPMLMRNlIOl3/OG58Ki7lPuwm3gaYB5DMuel+dm1vWsbKXoVajHGcdbd+8Yt +/SuZLg4TCTIzfEkxOIWkHxeszj2+gpw40Xp4OS/BAoGBAKEYBy7beuH4hqbFKDHF +zZaF4VGiLvwA0HcPbLCM0xgKEs36FGndYleNtfgvHUR/Df+0IMrWtyX1I1Y8N8KY +/+KLmkmyCQx8+UUl6kTywQi3foYM/xItfrdaGyQZJhks00d/juju2fcTdVz2Pf0V ++lggG89bqE2a2wo8DzoM44u1 -----END PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_device.pem.crt new/aws-c-io-0.27.6/tests/resources/mtls_device.pem.crt --- old/aws-c-io-0.27.5/tests/resources/mtls_device.pem.crt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_device.pem.crt 2026-08-11 00:37:41.000000000 +0200 @@ -1,24 +1,24 @@ -----BEGIN CERTIFICATE----- -MIIECDCCAvCgAwIBAgIUYwkuujGOHaD5Yije99tyifDyGQwwDQYJKoZIhvcNAQEL +MIIECDCCAvCgAwIBAgIUVnOHw5mkzVXDHb7Q5lNTIX6S+qswDQYJKoZIhvcNAQEL BQAwgZwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH DAdTZWF0dGxlMQ8wDQYDVQQKDAZBbWF6b24xDTALBgNVBAsMBFNES3MxFDASBgNV BAMMC2xvY2FsaG9zdENBMTAwLgYJKoZIhvcNAQkBFiFhd3Mtc2RrLWNvbW1vbi1y -dW50aW1lQGFtYXpvbi5jb20wHhcNMjYwNTAxMTg0MzE4WhcNMjgwODAyMTg0MzE4 +dW50aW1lQGFtYXpvbi5jb20wHhcNMjYwODA3MTc0MzA2WhcNMjgxMTA4MTc0MzA2 WjCBmjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcM B1NlYXR0bGUxDzANBgNVBAoMBkFtYXpvbjENMAsGA1UECwwEU0RLczESMBAGA1UE AwwJbG9jYWxob3N0MTAwLgYJKoZIhvcNAQkBFiFhd3Mtc2RrLWNvbW1vbi1ydW50 -aW1lQGFtYXpvbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDn -vqSRf9ScJxK4AJdB0hZHQrvMnSDq9b7hktvqZ02WfrnYvS0UKADP0luxBctBBzuv -IleDS9YieUyYz+wXnDmWXvjOy7k2L92XNREkk/EjIgjgaCLYWNEiDUc5ayp80JOW -jinDkxdy0JH/KyjvRRk2aBTfLtOaNTU75x3Qp1CuUepvlwBlG4z6xw5ixIKcUItZ -P/5lgO2MgUEl1YJVmGn49FAnpq8jzGTp+SKcQbMepNIdDKDE9yRvjVBGSnFhTFUG -kCu4XVVbVCAg9k0oti0/50pr/1KA/V1NBqKadAAFC/78CJCQANlBa3urNIQBNgDX -4fX9OTkzAJXa8EiPpBHFAgMBAAGjQjBAMB0GA1UdDgQWBBSGcgPgBT4BgHf5yP0t -2BqLLIqdKjAfBgNVHSMEGDAWgBRAQ4Zt5mjZiZor4DZ+88959lAnWzANBgkqhkiG -9w0BAQsFAAOCAQEABz+N51Vwqc3FKClKoKXuXyEAumhjiyi3eKepVLeJ8IkP9qfT -oBQrd5BLIYCtVBbBD8PlVlrSsdjG/Tv3K4jmCEJvqCUxPoZACz0PVQMo8wKUA+fE -2h6Hypnzmf6ORu7mLFK81Ne2He17mvcmvurXQZA0RI+Y+IpZQjVcYw+iiwTd5iJj -xju/RniNEcIrVqUX7xHdg+t7aQ1/7CaKNDBaXSIuKP3t6NKLxfdoCJejwtAm31EQ -lZIUvLcJ20EBcQfqDhEQZuR49jlrrcQL5NbcHrN3zHsKRPpQFtE2vZRFE864vef5 -puELIut+bhEsMHVuKwW83dBjfpe4BiBO1Zgvhw== +aW1lQGFtYXpvbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDo +8VtqxvCYpKVyjzC1frLgzmRxSuK3ZQzExf5Ys91DJ354U6AgIooIUQGAH9ZIuxTl +vcEcQywHJxtYIJ9Pb161DqAJNIIvJWpEv7Bn2HAdgNnH40O3SGc0IahNxIhj/kBA +PW6OmZIKyuXsjnjwIe8WNYb0oegFgeuV3rf3y9BwcTgKyBTaUS/mxrEwrRpWupO4 +x46uFP/E3iF+zhoFDC7FE9rHZ4y2eungXoLxSC8lWQv31tiMtbMLBPA6VD3zTW5/ +KW7zkHJPB49t5hjG0H2gR3CFAGp9ys+qECm2zCk5pVQo9GwEwyLQLYEiYtjL5Hod +D6QaSEjo6cYozCANt2ClAgMBAAGjQjBAMB0GA1UdDgQWBBRLuQZ4KSv9IjJjaLxO +yc6J4fF4FzAfBgNVHSMEGDAWgBS18BnepR7+GVvGmiwxW4dEGo2g1DANBgkqhkiG +9w0BAQsFAAOCAQEAfs4S9MFpNETnUezh+hq1yI42GGn10sT2RZ/ItVL33Kgpyt8g +95oU9PtLMZgE82E3GUvdEtAPhkKLiUqEb8/dr8gPrKYTAUD3CDz8m17EpGRdXxKl +i5Eclmt6C85ys7XA7I4cJI9itJP2vseoKhBFuzl3mjxXdmafcLn+l8QOKdELHYot +XaQO3m4P5JCK9JGqyeXdW+nkCTv6EgN/cgrVhrvFMHWmCFwU/FtSWpe5v0XCo2Ji +QARlQ/wUHQMxR+s1BMUnRsuRH7G9pE4UAsGlZTbAjqE+dIie6vo16gLiKJQpdF+D +X7wVJH3NSIxJu9ls/ib/wfXmMvrF4ESXIkYjkQ== -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_device_root_ca.key new/aws-c-io-0.27.6/tests/resources/mtls_device_root_ca.key --- old/aws-c-io-0.27.5/tests/resources/mtls_device_root_ca.key 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_device_root_ca.key 2026-08-11 00:37:41.000000000 +0200 @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCrTMZh3bANsqJ8 -b0vCEBhmwnecBT3eYGVVk8CFiPh/8VC1Jr4U6dUwU4O9wmO3GZIAOAiVaIxpEpYc -Yqith3cQ/dR/g2XiNttdLm4+zGioMWD4azIO7KUlH5W1nMlz7t6GmSECIc7OtAIe -5uHyvA/sEaqcDFqrGTG0Z0lr+OM8yAFWCJ2QKSG335EthZn8lt62NLWi6rod2VC/ -rINk0o6ZDsQMou+DBMC14MWXwElP09doJi3sd7NOwNAW8BBt5yipmlfnhbpovOXH -e0K0OaVWbqfR/WWpm/vqiIwcjNcDqq6lCuVGrvTn0umwko4+MPq/pB85F1jPCzFL -PnGNuyRpAgMBAAECggEAKhRTC0ls7QB7v7uLTaGsjNmqji4Pc6gUXIBOI79w4+UA -oW9h9Ds4voVVcHDnE9x5LAqXuTQUgd8p9tEZhH8pdYgVAjnh9j7phitYs558+wwe -OQgEJPxm2Qa4PQPFzO/ZxBCrth1d8xLvDm5DBODDvIbedTTntO4ccqeItrhOAejs -EYtVbSgnbL9P+JX4+hActWoVY65J6wumxdCXrlvHfURaMbAtbg9er/YpGOqmJv2F -vq/xFVAnKzHV+xLggPqjRfYGxyxfOJGqLvUGVwtENc3yLMHyrBLaJ8nH8HHm83KZ -UQQQnnaC1cZiJU5Rz+UI+IYNNEgrK+pmBYCgYG6ofQKBgQDtYcP/p8EkDbD6cDt4 -zcNlCUoJLdcRs/0EpnLlDeIoUnkw1rb2gxj9RwBNSodZr2L33m6kh5RRAPn/kM3s -66e1smyF01U8FEnX6fICU2jRQMaJu4aa3SPZgxzRIeK99GZxAMyKi8pcYIfebVeh -3fcpFFS+WET+h+2AouQ6k87RTwKBgQC4vDFL/ahNux8SxglOQ27ipkXrkxaXE1Ce -08LTWzmlDfYPBRkRV135CDv/p6is8OyTdhluPvmbVl0IxPZ+2ZPFdBz4FJ3LfETV -BexEHS0yZVpkCywEF4Q7W/0TTxrBJmUInad8WoLgLTUBcLuxVG3mICuvA279/9oP -wDXdl6aQxwKBgQDmO1tIuyCFYk4TKAVWbmMjvHW1H2OnxOUSvIlVBTkjGJJ4Ptfn -kVEMXe+6Bx3ta0DW3UJ8iw7b3dGbAIvpTMo1XN8KkOTrR1YzdrCFdvaDdYraDSpJ -S1A454RshawPxloRIdBAU8KqA+njXjOPR+QvUIu8rYoFQDqm99XZxn/h2wKBgCkb -P0DwjZ3WUIDF7lYq7Saj5xUXYsR1ONBOwKB1QSt4ItOOx9gy/6clbOxja0YoSgw6 -EEiW3MXy/rqv0UXCtn4Oa0/Mjpwz58EbE0rIz0DSir2OOtoiPXtT6cl9Ja/rEjpL -knQ6U7r8dDoA0tMPvXCiofXMpssAPo6Yr6PCVf8LAoGBAIHqK2HgB11VRpWeobRI -KzMyuBdO9Qzp/qMCXFAqr2IdYS679auJ/KhZ7DS4FNMswQIRUT47uSm31ynNh0C9 -yt8HcTTtIV/2eUDgi0Nls2ZsFbj8YzdZgkibT0faYt6NmZO2F587XgScXCvT56A9 -a71ZLj2j4NMcB0YwhJQj8+Cg +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCHVRjrMdluasgZ +LmfTC1/naS3eEWr8zMg7u8DI11jUmqmNtrN5NeE3DtbLyf0exlshoaKF7F/QBuIn +tuvM03NNoCQo/adODvev4yWddujt/JKExYnH1gvgI6yYLT9NdR+8DTx7In3LTlEG +lZiJlKKtbs/VtF9R+7+/cijARRHMqTsswrVyXnZ5hXLtpvwtFCdPwoga4qNeNubT +VARW/RxYXqkL+zLLsXdLf/4MZvGjXOGJ1pz/bk9LTqX1i9URjoxJsCTA6MFMleLd +HDy2hULwe2K5O66JPvzdPBYQx7sDpRPeR1pRCOE4acxlFTIRdSjQyPkKTRPR71H3 +0HX5Wj3xAgMBAAECggEAKll+aUdZt9xxjrO/aMMj+VooMNh5hu+cb1jjTNZa5Xka +uw6j3jf2qNCbdf1ZGPLQnNckcU1VdFdbGTt8UcYPzIhjGHK8EsjLSL7HzB1kaekC +fssEQUVhxPvU7HAoYZhX3HS16wCRpff1kh5pNBCP0b8eCc2ekJy71fCnAPf8SHNu +Yn67r5GWvtbeYqmLXiUmgQZz9+RkJ7C3X+DVZ5CaiylhhJgNnGRrLL/OhbXmlHtE +2YfbrnlXVYIo6VQLpX55+EUffeXI4dmcAQYrkg/BqZPWaN+1tLcYidl5nKaFTzFO +DDp/ELmFqV2hrXxhYEfA/XUJrPuTDdlxGZyyWghZqwKBgQC7UAYpGwyKq6BU0GiI +6zp4DhZ98SkDTM8wH+NOQkr2MExk0Y3ONS5Itc6Z8rf0GgLsuyU4jPu0efxWoozO +y0QU93aDG6P87e9j+broqYPxa9vfvLuC6QoKRpKRrrTI+4LlLPkbC/oKnd0bBLrX +GC4o51bt2+UQ9Z6NrJgrQ2oQuwKBgQC49W6SvayUGisuCRKpKT2X/JmVjvYCZ7Yt +vYemmojXuZBGwzRwOPE4xLpLQnpNxr4rPyPeL52KiTQFkhvg4EmcipOovEbiuDUE +lOy4fUhF7HwccFtQgBw3YyCiEku97TabcnR/GmjzqifLlQqZbba0DWUlwBNQ6lot +5wY8qJxHQwKBgFdoMlfALYwQJpMtZXpu+ivHtysx/Ad0MkKsvq9oM/7J7vwk5V1S +Z7S6Uhx4rOqVsMOzWN0YvOQtAFmVJMvjAnQePglUPqPqjAlFIbksUUu5HzM6qO2f +vXWqFP8yXV5kL2KuJ9g9MIL/w4u2G1IAEJo5ydDZCf1uAHzwC1o07Su9AoGAFF7j +qMG/KiifrNhO99aU9BJcD/7I1Yb6p5sCP7UxcSD85O5G7j03RBtWsUdHFR3YgAba +OnRgE4v88Mggzeml8dnJXYIvBHVpUXHdiIwz04+yM6ekRv91HByM0YzWTrq7ku9O +KVmNSZjp/SATJMbSoo3/H+NBvV2yRO/23eNsIuUCgYEAtCMFZVTeX+KxxQ5wSvMh +fnJHiDgCzV5kDLzqs4MNKdqk6yfticDRwgWkTAxGkgMEGrZSOd/jt7jNCZrXNedP +RiKpNwUEZfeJ/TNijWQyoFBmW2O1s8edadw70SKluA2pY785UsqDGj3+c8Qe0Il7 +1zMnGQAQllWPOrkYJPGEkxs= -----END PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_device_root_ca.pem.crt new/aws-c-io-0.27.6/tests/resources/mtls_device_root_ca.pem.crt --- old/aws-c-io-0.27.5/tests/resources/mtls_device_root_ca.pem.crt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_device_root_ca.pem.crt 2026-08-11 00:37:41.000000000 +0200 @@ -1,24 +1,24 @@ -----BEGIN CERTIFICATE----- -MIIEGzCCAwOgAwIBAgIUKhqfh2oq2Xi9huUfJpBlFBnvYR8wDQYJKoZIhvcNAQEL -BQAwgZwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH -DAdTZWF0dGxlMQ8wDQYDVQQKDAZBbWF6b24xDTALBgNVBAsMBFNES3MxFDASBgNV -BAMMC2xvY2FsaG9zdENBMTAwLgYJKoZIhvcNAQkBFiFhd3Mtc2RrLWNvbW1vbi1y -dW50aW1lQGFtYXpvbi5jb20wHhcNMjYwNTAxMTg0MzE3WhcNMjgwODAyMTg0MzE3 -WjCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcM +MIIEGjCCAwKgAwIBAgITJmPKLH8EPsMRtg5yJHlPQXPZbDANBgkqhkiG9w0BAQsF +ADCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcM B1NlYXR0bGUxDzANBgNVBAoMBkFtYXpvbjENMAsGA1UECwwEU0RLczEUMBIGA1UE AwwLbG9jYWxob3N0Q0ExMDAuBgkqhkiG9w0BCQEWIWF3cy1zZGstY29tbW9uLXJ1 -bnRpbWVAYW1hem9uLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AKtMxmHdsA2yonxvS8IQGGbCd5wFPd5gZVWTwIWI+H/xULUmvhTp1TBTg73CY7cZ -kgA4CJVojGkSlhxiqK2HdxD91H+DZeI2210ubj7MaKgxYPhrMg7spSUflbWcyXPu -3oaZIQIhzs60Ah7m4fK8D+wRqpwMWqsZMbRnSWv44zzIAVYInZApIbffkS2FmfyW -3rY0taLquh3ZUL+sg2TSjpkOxAyi74MEwLXgxZfASU/T12gmLex3s07A0BbwEG3n -KKmaV+eFumi85cd7QrQ5pVZup9H9Zamb++qIjByM1wOqrqUK5Uau9OfS6bCSjj4w -+r+kHzkXWM8LMUs+cY27JGkCAwEAAaNTMFEwHQYDVR0OBBYEFEBDhm3maNmJmivg -Nn7zz3n2UCdbMB8GA1UdIwQYMBaAFEBDhm3maNmJmivgNn7zz3n2UCdbMA8GA1Ud -EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAA9rRwxmwChYVT5yvUHDLz+C -ZlA4D51NpAMS+sIP/ilqzFcSn6pavtbLgXBVOxn2Zn4hlRm2Huo838s9+8IUL6sI -jVQcefVtNPBEJyEomwAjjrCqGj8z3sXKx6sxEgKmrh7y2UtDrUxQ+DSIIpt2AFHb -/Wx6Dn7sFCsJR5rldMcFeJfGlxaFBhMauuzzD2kOMl7Y3vA28J8//4i1alPjJdIC -IFTeprnYMECOpt3VbE19MusSkPiobDcPG4SsaPk0kCRLZYoCMsYfRRR0gRVL3GlT -DRdypHWq/iuYlgjFqaZ+2GgCA0ms6mwOX8/ucaMlTY3kig5+I9dG9PJsA5DotRo= +bnRpbWVAYW1hem9uLmNvbTAeFw0yNjA4MDcxNzQzMDZaFw0yODExMDgxNzQzMDZa +MIGcMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwH +U2VhdHRsZTEPMA0GA1UECgwGQW1hem9uMQ0wCwYDVQQLDARTREtzMRQwEgYDVQQD +DAtsb2NhbGhvc3RDQTEwMC4GCSqGSIb3DQEJARYhYXdzLXNkay1jb21tb24tcnVu +dGltZUBhbWF6b24uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA +h1UY6zHZbmrIGS5n0wtf52kt3hFq/MzIO7vAyNdY1JqpjbazeTXhNw7Wy8n9HsZb +IaGihexf0AbiJ7brzNNzTaAkKP2nTg73r+MlnXbo7fyShMWJx9YL4COsmC0/TXUf +vA08eyJ9y05RBpWYiZSirW7P1bRfUfu/v3IowEURzKk7LMK1cl52eYVy7ab8LRQn +T8KIGuKjXjbm01QEVv0cWF6pC/syy7F3S3/+DGbxo1zhidac/25PS06l9YvVEY6M +SbAkwOjBTJXi3Rw8toVC8HtiuTuuiT783TwWEMe7A6UT3kdaUQjhOGnMZRUyEXUo +0Mj5Ck0T0e9R99B1+Vo98QIDAQABo1MwUTAdBgNVHQ4EFgQUtfAZ3qUe/hlbxpos +MVuHRBqNoNQwHwYDVR0jBBgwFoAUtfAZ3qUe/hlbxposMVuHRBqNoNQwDwYDVR0T +AQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAX0rhdVv4CEDBasPAJk3JKNDA +6Et3NlfRuK0fp0eymIaEkGivJO9jhCJiFkzthaHOO9G3BWgjKo2dEqODMtrAoyjv +JltghgiuD8DjfTrxUSBPqwmdnGLNDl3xBGosD4VbG6LKPKU853OxDpwignRwlnOU +kVDvSeL/Tg0Ybu3oJ+ThZJMLr8Fv4QvjFJrMll5QFUd2khS1/ajjboOoHdE3pCNe +PPdceeO2N1e7/Aw6qKa+IiEeg0a0FcMxqc1Ps7F1PirGVkXCAIbgjhxsVeigESWR +OzlmAGMi1zTfM3iW23LyaRPNFzajX7PSDW6L4ohSEdZFESug+FVcJo7YjfU7Fg== -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_server.key new/aws-c-io-0.27.6/tests/resources/mtls_server.key --- old/aws-c-io-0.27.5/tests/resources/mtls_server.key 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_server.key 2026-08-11 00:37:41.000000000 +0200 @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDjKEJuI2iSDr2O -RbcxsszA9mfPvHrofTyG/xjx6CgYVJq/qtAcAPlPavpUjgQ1T5NKi38BUQo80H9M -MOdt8sWyB5eCK8SPb80DmuVR5keN2M61Sxch46DZAD0uWLYIH7aMcaQuNrWLtQQg -qMVvSS7kD9MBIOEe5OJ9aFdVdm70N2O3W4g/EOYFGdYU08w7eGSnD/okTIXLwgWp -uyfbgGRiNdx721WfXHEc4Pb8XzJ975Qpq/O3g1/i5eKO3PnHHF++kGt+3gTo195V -ll1dI69qu0PS1ehyrDEBJHC371Tt17leRlsl9ycz3KEEQewrX8IWXd5paCJwmUvz -LVPdFr+TAgMBAAECggEAL2PgTAr+D26c1DguKmOjfORLLxciyysJfB5vLVSiPMU1 -zaPMq/L2EEAAvrAsJ5UU5PnqQrON/7b9v776IUGDRgt4a9NGvCf2bPidO/NfXTPs -l/z09ACBt5Ppr6gZPeOj2XQB7RRD1sQqesfK/NcXPcQhYLxjyua0a7Zfdfhx2Gfr -MHQ+4Q/jRb8niCAw+3z6imWwRzQx/B1j+BKybniM5GUQ0pD9aPbqPuClSYor8uRX -xseXCrg1+qCBjLPM5nuy/58Jh0+aMWI0YV9cU9kP1C5zdK5XtKoPkFnT06YFS3dU -aSpf9Qv1G98tdJ5jKI05fgSm+DI5AT4KuY4UROlfbQKBgQD4DET1gboo48gGtKTT -lIHaz6BE8f77mfUJNINzHm+P1YuNYJLNJXRpGMfvYDMP/3pEzjHGL5c0/foF+bIa -ZCCV6/cojHopcSAcyWleNF1fkX7EKtf10GWBBDnER0bmaKE40SGuBWIwelD5cycD -JxidI+RQj0j9EI/bOWVgN/tC9wKBgQDqcIpTipLmtCIzJi6+nVvG666ILWXUjzAG -EFcpaYe839Y4rrVAt+nJk4hnl/0JE0mf2SmmhvQaShEvH03zForIH0WJHebKy2CV -NVcL4zML7Hqj3YurcjngS/rIMswx8KWx+2bhi7h4avTsKjsI8Rj/uEnFe6gr92+b -Xf3hG9AlRQKBgQDY/Uq6BlFHAfRywUZLfOeX9fe7OIOZsFXmRpUTeLWZevLIq4ng -gnpykeYdZudkgFaCqGpseCdriR5Wade/NIY5AKJHS5R2emrgI+XULjTcrJfbnass -c7DIC11Jchz45ODcpj4zUKxTwjzh6zVeka37kXFic+Yi04E1AuHHKVHZgwKBgG89 -kVVMpqHTjXrJvlpyHk9IG5vANtZiTv5BmKosydykNWjV9WlNGyCr4YiOROGehkvT -5oB+/qrOxFKgvwL+ikGlHQCP8Kf/UsfZ9IDOgLVCs3q3sANdAvtb8hY2jE+SCX1n -dgzFmHWDAs5gx3xZsmv8jPyozUZ3dTy6n7HF2cElAoGBAJZa1jRhS7D3uXsQzajy -r48MeUM6lcBkTHTtg+lwS/CY6TsaEXVFD0RU7OZfE0v/APEf4cZXh8aXRK3vm7cd -JkJsyXaDe9JAjoXm3u+4P83SN1HRRBnf5PSAvhlbGi8CjybJ4HZRqkdjqq7+FiiV -duem6msm+QuXasq3ClZ9SRBC +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCxAtNP/TJmOr4s +01QoU/vOPoioHjIV3m9iF8NTMDPA60r+eVfpdcqY/r5VHz8Nlh5NSVYMn//Qve8K +Qd7dG7LN5j7ccIvmhak7ilsiXVS9YZZxVcxrgrxN3EA4WzDzggRo12v5Kz3Dk/J6 +H0ZnVi2d5dF9LSTeVOiNpWFa6hJ+nkEGToyKJuDGrqUz2mnZJDwz8R+yRllfvQ0G +1cvOAT4g3cTalSwdYmjB4Cu7hnqj/j/xfsOq5rjMkskB6s5d1GdHSI7Mwi1GItQT +GpH5HOau5ZyIRCw2DcnE9Og7qqt77vvB17X53tPivjjf5yhf1PrrxAyMvNqe88xH +xnCSrYYjAgMBAAECggEAB0xEhhG8WDanzJVR7O+5fAFcBQJpsjkfgn3UUcO0/ok0 +6FT8aOWwWqp2EnBdWyQLT8hsQcz+8Q5Dorqgg6E2uAJ8KP6C5hgwqAHGTB5o9f3m +A/ozmWMkfFlOVIR9+iwsHl5zVyyPOVcKMjrD3lLRQqdNAcowsPHzPJPK9cKczJeM +F7YA4b/2WtjXr8rfzqXAKJVSLP70GAyIX/2SRSCztPKqNU9YRm5GMS51f50KRHtV +G8wZDiGn9BFhMDt1P/Xv1OPaGrrcpp8YeEj4yMnZ+SDG90DA1iID4+WJlg2HsrCR +7OZ19YEwutBGqhocpTvKKoJKoFKY/y7eEQJIMiqpkQKBgQDqtd+Sy2jFENJ5Jpr0 +rYVXtWfxucTOl+HvN6tqDy9HrFQx0fRk86VDBVCOgHk3hzidIHcmmw5o+o6KKp0M +o/E0Nu75hXAc4dwYJ5ffJLaQs6e3v1aUmUSzs2cLYcpcgvZ8YyL/Q+kSV/0pR5ex +MiSf5E95CEN9+szMwwK4zNkZdwKBgQDBESKOI3iORlOwcdBD8tDXY0x4mXcEVnti +WtMAqSBVCyVqGz2GYQSGnf3VH4ZbaY2WA4JSYaMOqYdxSC2Xtu7HKoeI6Br7N8U1 +oXkfbgPrNMaBrduVEKwXl8RLjTd/RX+8DoPu/gvncIJjsT/bSnM1GlxnTuwRPsnX +K0rmJ7bjtQKBgQCSjyzjQgbS/zUeF4AtBuk7ongclg6Rnn+jW5S67m5sh+wvC9Za +71Ujq37o7MpEZThxzSL5xVrTLJmzJvbYPMrR+vdwceVW86X2o0qPOSKS6svwzhan +RamDuKPAlLjC2bhGZbUlxmcUYEMh8qWDLTd3bB5ACmvyj5gwyBi8ApYR8wKBgQCh +2Vd6iMnbm6E03XSWQcxJg/jrcNuRS16MCU+x0hZEtN9coBFnwZUltPTB4Xek0kvb +Yn2xyiADfqMImFWARd7OIB0W7F0SFKLCXudHLdcjKk7vD2xw/lUGQjhQjcXkb8Kx +SAnaJCaeknb8U+8QSs1hywODp2nG2zghpS1Y3Bo5sQKBgQC58NrRU+v4xf0BazHH +rtWlzQFbcQiOv0hyOfgUAXDGrz4zTJis8POgIbpolj8ShGDiWYN1TDoP38H4gUqR +cJXGdYgnUtZXy44WF3NzWxOAnH4+ha2tROCWmZyDqmo34PneGrfj4TMrvHGl35yy +K+l2+DPx2pMX7/j692iWHIP8mg== -----END PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_server.pem.crt new/aws-c-io-0.27.6/tests/resources/mtls_server.pem.crt --- old/aws-c-io-0.27.5/tests/resources/mtls_server.pem.crt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_server.pem.crt 2026-08-11 00:37:41.000000000 +0200 @@ -1,24 +1,24 @@ -----BEGIN CERTIFICATE----- -MIIECDCCAvCgAwIBAgIUL3fS+w5iRXfy8Dz3GThbMAMV3oMwDQYJKoZIhvcNAQEL +MIIECDCCAvCgAwIBAgIUa2U6JeJaQmXxDfOb9/bnLOJE25AwDQYJKoZIhvcNAQEL BQAwgZwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH DAdTZWF0dGxlMQ8wDQYDVQQKDAZBbWF6b24xDTALBgNVBAsMBFNES3MxFDASBgNV BAMMC2xvY2FsaG9zdENBMTAwLgYJKoZIhvcNAQkBFiFhd3Mtc2RrLWNvbW1vbi1y -dW50aW1lQGFtYXpvbi5jb20wHhcNMjYwNTAxMTg0MzE3WhcNMjgwODAyMTg0MzE3 +dW50aW1lQGFtYXpvbi5jb20wHhcNMjYwODA3MTc0MzA2WhcNMjgxMTA4MTc0MzA2 WjCBmjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcM B1NlYXR0bGUxDzANBgNVBAoMBkFtYXpvbjENMAsGA1UECwwEU0RLczESMBAGA1UE AwwJbG9jYWxob3N0MTAwLgYJKoZIhvcNAQkBFiFhd3Mtc2RrLWNvbW1vbi1ydW50 -aW1lQGFtYXpvbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDj -KEJuI2iSDr2ORbcxsszA9mfPvHrofTyG/xjx6CgYVJq/qtAcAPlPavpUjgQ1T5NK -i38BUQo80H9MMOdt8sWyB5eCK8SPb80DmuVR5keN2M61Sxch46DZAD0uWLYIH7aM -caQuNrWLtQQgqMVvSS7kD9MBIOEe5OJ9aFdVdm70N2O3W4g/EOYFGdYU08w7eGSn -D/okTIXLwgWpuyfbgGRiNdx721WfXHEc4Pb8XzJ975Qpq/O3g1/i5eKO3PnHHF++ -kGt+3gTo195Vll1dI69qu0PS1ehyrDEBJHC371Tt17leRlsl9ycz3KEEQewrX8IW -Xd5paCJwmUvzLVPdFr+TAgMBAAGjQjBAMB0GA1UdDgQWBBS3vtFV0bRiFIw95k+d -+ViQeteyTTAfBgNVHSMEGDAWgBSxIkN7FTko60ZlywVLhQBqZypVvjANBgkqhkiG -9w0BAQsFAAOCAQEAP3kJ0liONDX4HOLUgSE+gBIJ4/TX2FmY7YUJLgECvSBaaEgJ -A85qo5BIdAtVYlPjk5RJDkouw2eEeMGHEINjrVxg67uG0hFK6d4mkQdbnWA1phpH -SoLcrN/0hIYW6EkyqYk3WkvV4O2h6VDSjh1qwarHad8Sc5k8ICzGiFP7tfPtvo2r -6OkpItMa5Y9jrZPoLTNBSRg/QqsvIOsjVUqY0zi+p++JjaDwnv9ARdIzeYNWEkID -oFyaqCSF0bJE1moKkANRmfkrJydNuLHVlQV4+osuNNYHycfPBxhivDMMspscwL2Z -5NJNfmpcJXmCSmjXApcuV2Y4/XAdrouNdTowCg== +aW1lQGFtYXpvbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx +AtNP/TJmOr4s01QoU/vOPoioHjIV3m9iF8NTMDPA60r+eVfpdcqY/r5VHz8Nlh5N +SVYMn//Qve8KQd7dG7LN5j7ccIvmhak7ilsiXVS9YZZxVcxrgrxN3EA4WzDzggRo +12v5Kz3Dk/J6H0ZnVi2d5dF9LSTeVOiNpWFa6hJ+nkEGToyKJuDGrqUz2mnZJDwz +8R+yRllfvQ0G1cvOAT4g3cTalSwdYmjB4Cu7hnqj/j/xfsOq5rjMkskB6s5d1GdH +SI7Mwi1GItQTGpH5HOau5ZyIRCw2DcnE9Og7qqt77vvB17X53tPivjjf5yhf1Prr +xAyMvNqe88xHxnCSrYYjAgMBAAGjQjBAMB0GA1UdDgQWBBROufByuLMzF+OiH6Hu +iJdxKEBUijAfBgNVHSMEGDAWgBQgOknRAiib19SwTqqW6AoX5o5VfDANBgkqhkiG +9w0BAQsFAAOCAQEAZHkHPa2o2vddmkhPjm0V+vFyhdmomTamzOzd8poT1FWRW7CB +ICzdAA+tC6X7XwvHOiiMMfdEjRlIeDqsV6+DgI3Yoc1DtkibTjmVy8VluA7UXDF2 +dfgVztOuSI7oZG/PiswvHbMXKzdLLhY8tVlthlNfA/eIxOqnmJTO7ffo37/Jaxsa +CUap6ed3+TB4a5gjOMBXmKytJd4ElRGKExClI8akMrHwdyUd6twDWJyyMFOXxlaW +na/uW3N8U2tx1rJ6trzqTk3MI8sUNioCNUpsx719wUFLcoI7G23DqBdqvHN5NVG+ +vx07gQxqCtSIXwzmuLjabqMxiCGYlzm9IhEn7A== -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_server_root_ca.key new/aws-c-io-0.27.6/tests/resources/mtls_server_root_ca.key --- old/aws-c-io-0.27.5/tests/resources/mtls_server_root_ca.key 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_server_root_ca.key 2026-08-11 00:37:41.000000000 +0200 @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCfU4p4pAS8iZ65 -VBCAjLhCLESkogFnGYwmOJPP7/vkYx8Dks3q9MhAw7bIp/pKeg8uOlDfiqxDTHSa -3t+sX27G9mvl89iLFoyH6gXr83wvfFBM8tBh0lmT9Ls4vyAsB2pLmSMzxTSp1biq -BZqHEwcorYXuGG+4qsoKD5m5lB3Kaup13yubwJZ/5Z3Tvdf6VSqjR7cteXfYh2MU -gxJ2sMehZ77bjG0PN9RZqKh9HIjsViH0xfYZJZIBIV6W5CAi260d2zD10sPdVXx0 -Dd+MEyml3MvwHZgQD+HK0pP4bm6A0uikUwl41sBU6xZno+l39ntGVan4DjcJsywY -9s9iWPD7AgMBAAECggEAGP1ve1tZQCvjG3UrXskI9Z11PtAHoaDeMfiEfARLjBey -pkrWcC3ouE/PpvVsoACOdP/B7kNqoDupER7ivRSoOXOD76jUTtdAlOjd+Oj954Im -I4ufp62TTfkAN0xdwsopn/tAYZRi8uiKHbuMm0x0E6tJQH57YjRXmvBgz5It11u3 -qU6f5SVKisdlXBE9mLuoGoNaD35v7XVrjPnJsSZycOF77Cl3QZU/k0mmHJZpHdhy -/XCA39/ytwXKAkELUdVkXxij1R5jcjb3CNRt5YB79B1XIvbhn/c7/312VNrh2SF/ -sYFN/MC141sSr0jkivHpshGHxUQcz8jK77idx0Q98QKBgQDPLhbcpk9jMpwwq6WQ -WRqFH8mez3TemC+4J2sQ1rj7DZLlemkEK5IAA2peFFGmltwg+eE7tZWp+FEdJNXk -9hqVxLpffitJPNYiFcvbgUPA6L3dNnqQzI1qvy8e+Z5gRtexFgqDHPbzxbk/tcR/ -ikP986YIkQEmg0q3xCLkr/bfnwKBgQDE3rqUw1acPz4IijP3Fv7SdBUATiIZi2Md -eetcc9nCEWam/5yPFT6hVge7XpoYeDQ7+RArhzikvD644rrULovXMvMWW9sAFSOf -xf1PwM026kgcF9/YwSfQatpZwjtTcZFFIOlrZPSJZiUerRGCTjtQi6L7q1M1t9P9 -cR0ZI1UBJQKBgQDHRUJSCliTRet62K3PMBTU9GUdrdZv/xru2mMdeBnFxyGCPQHj -M/EiuCZHxO1f+PxTb2SW5KnGKQQDrxlYNuoNIYJNNPJ3Z99iO2qvfx5m3rU3nx22 -RjjC8o5lEZymZ50wQ83qnCJfB8+NGsycC6YoDYCl/qqHm4JzTGBva1xdawKBgQCz -hOqc1tc2mVDG1sd2DIkHfYTdB2J+6qTR7ygY4SdzmQyDQdkQfG3lDp70U9qub4Yq -Hf6Jwr97MJD9ZPq6m0s3TCVwgQhdtekLO662t/gpmE9zFq4vaEsW+Sjs6nnQqGGw -qMdQ//khBXzZ0TWDHjVmSD6xwVOaS2vK0weWsapE5QKBgQCnLExnVJTxACyQ4hBv -xS0rnr8E57Gu6ljw3QGcbGGUxPVMGdPRNzVyAFAMLK2UO/oNnb9JzfNzc9fDEwsp -+5eYzvpITmqWp82FIch6Kwrp5LS5msu+6ayGjLOXKUGhYen77hjcL8RpwY+pkYb7 -hlynkcOMHEzICQ9Fs0ZbOFV0MQ== +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDDstDiPFLm0u7c +lW68wbrP4u50PX5k8N8/JiZE5hDNcFQE1YoF9VyK1+Ypq28zjXJfMoyhB+ZlGugf +jfwImD0MNLr8NeAVcDi744ITAS8/oGVU0llGKUO/4z9+ykb7Hks4iJPQI4IXiEGp +ZbkCqxAh63g2rNUjzhLB4+XZaEPAc65dobMR8BwOJhM1MdMHcFcYIkR1jd6JUpVc +WSRN9xyP1Grp6vsMNsTJXx4TJiHLNx84X+mbWmwCWJnAiYOIHdjjAGiCrw4LSlhA +aRvLZjGGGR5Bgrydl3ZEXtkcCsTvoUlqhLSvfKVQ96Lr4soV/D2Ep4gHmnfH6eR8 +ZDLgd1LFAgMBAAECggEAPnvQn/t8yMBejcWUluYQPKILWsfrnFUgIqyOmX8PrFiK +KwT3TdG6m4Y1seZP2hj2hJjCOAQqtutxY+nUp/XbwBLyBOc6xf2Pz8XjWSgOqvUO +hZen83PnctQfCN+S7EkO4V0SPOmpdtQFiw20lbqCqyHgvyxN3WHFsWyPjevxffei +T/ganzTrFVOgpiUXgASzfEGrIxX/ZpQedeS2BkVnSwcvQ2y1nfIaBAL+xcOWBy+K +hChfG7ymlgBoKzD2OjgdMpFryXKUD3tpYKGvGFnLyawbkhezAVKwK3SMf7S3G3Fg +6Bbnqae1vFje54BbqWYP/7Aec7uilF+lpzSgpou6HQKBgQDwYaO+Zwt/Pf+b8t1q +s+47Yp7jdFE8JQSkWGkQYnYmnOJxdCLIdYe6e1rv46S4XvFMJXxPRUuCx6jyQ7ke +6P2ee9XVAnaI4UQCfjVdHL85ifHUDClh2WxZTafn1nuF4GpV/SXsmi9J3hR+uRel +/JVM2XN11DovwqvQ4ib1IHK0iwKBgQDQafKYXoIsQXd39ZA/ywV4+5z0rJyINCHW +OO8jBGIAWuGA8jEOYTMMI3QZ6p9svb7P1d3M9beUYJZzJHgxGe2loIyarxXd5dml +Mc0tSnrsilDYrD/oAm6N2L6NfJk1DMlN0d0wI+SafaI5TDzFHblhnh+mirPZX+H3 +FiGX/9nv7wKBgQCnG7mxjAE6G+euik/S9fMP5ad/iEVRAosPlUa01T496aKiLJJh +uRL6WPcG/cJtSdOFlCmvEgVEjXitstbm3iIyIvSseGHfFnspIIQIjwuA/JzZRPsf +wv7Htmybh0en8jL6RFow+Z8WQwUMc7A0/DruidzydO9edH7tX8qlbkFPsQKBgCIO +PfMB9nlu1SvH96NE9Ib5boNYtVdYVXMg6IqrS6xNLW4ZpUR5Q5MnM/CMMzLcqpJh +mxXDzRS018DG49D6MKgQ3QjltUgGKBNjWOietAl07JMLSoIJ67DICxMpmgteJILP +2Tnlk5RfFSQRvhhjrAg0g21+WrcZgN4UQrcIur8HAoGBAIuDcMAjG9aUYKd6t19p +OKtwJ7xCTywT3ygyNyMpaoYQE03gsveZfhlOBxsfAnM+nQcUX2XPznU2USAsftKb +dhQmP8F/LRiQSjbwN45iaowO7M+sjHBoLBwS/fQdan4Mo/E9IHwqEUDwTb8gwh8h +MfcJEOhamY7sQYWstIwarlwu -----END PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_server_root_ca.pem.crt new/aws-c-io-0.27.6/tests/resources/mtls_server_root_ca.pem.crt --- old/aws-c-io-0.27.5/tests/resources/mtls_server_root_ca.pem.crt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_server_root_ca.pem.crt 2026-08-11 00:37:41.000000000 +0200 @@ -1,24 +1,24 @@ -----BEGIN CERTIFICATE----- -MIIEGzCCAwOgAwIBAgIURYSCRIWQTJESQLvtiT91g8kVhoUwDQYJKoZIhvcNAQEL +MIIEGzCCAwOgAwIBAgIUQ25UbQRKqwJJWaBNKy29cYBb5qswDQYJKoZIhvcNAQEL BQAwgZwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH DAdTZWF0dGxlMQ8wDQYDVQQKDAZBbWF6b24xDTALBgNVBAsMBFNES3MxFDASBgNV BAMMC2xvY2FsaG9zdENBMTAwLgYJKoZIhvcNAQkBFiFhd3Mtc2RrLWNvbW1vbi1y -dW50aW1lQGFtYXpvbi5jb20wHhcNMjYwNTAxMTg0MzE3WhcNMjgwODAyMTg0MzE3 +dW50aW1lQGFtYXpvbi5jb20wHhcNMjYwODA3MTc0MzA2WhcNMjgxMTA4MTc0MzA2 WjCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcM B1NlYXR0bGUxDzANBgNVBAoMBkFtYXpvbjENMAsGA1UECwwEU0RLczEUMBIGA1UE AwwLbG9jYWxob3N0Q0ExMDAuBgkqhkiG9w0BCQEWIWF3cy1zZGstY29tbW9uLXJ1 bnRpbWVAYW1hem9uLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AJ9TinikBLyJnrlUEICMuEIsRKSiAWcZjCY4k8/v++RjHwOSzer0yEDDtsin+kp6 -Dy46UN+KrENMdJre36xfbsb2a+Xz2IsWjIfqBevzfC98UEzy0GHSWZP0uzi/ICwH -akuZIzPFNKnVuKoFmocTByithe4Yb7iqygoPmbmUHcpq6nXfK5vAln/lndO91/pV -KqNHty15d9iHYxSDEnawx6FnvtuMbQ831FmoqH0ciOxWIfTF9hklkgEhXpbkICLb -rR3bMPXSw91VfHQN34wTKaXcy/AdmBAP4crSk/huboDS6KRTCXjWwFTrFmej6Xf2 -e0ZVqfgONwmzLBj2z2JY8PsCAwEAAaNTMFEwHQYDVR0OBBYEFLEiQ3sVOSjrRmXL -BUuFAGpnKlW+MB8GA1UdIwQYMBaAFLEiQ3sVOSjrRmXLBUuFAGpnKlW+MA8GA1Ud -EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAGMAezpGLNrMcYWZfUhoEKV2 -GVpKnGF7Q93XG+68Q8jxZi+BETm4o47RpmovwmsvjTAQiR9XHAxsg252jXoNP4sI -sD79ncNL35UKV/slYIbGb9V6x5a/xpxTr8B1RmBJmi47qqAUq/x2CNt2ldRtQ/nK -Ke1xvCc3/Sevj0DlIzoe3pKzTuWq5q3CjUAPArE5YSgCAIi/icaeCWHINK9JwDud -SZzPZAjphzVoORPT5LeH3BtvPlr5VGx/2Nj8pmf48xTnEGSoa15NgW6v7QrEydYq -WTmloqvPB6XFVPSgAn4mX67eKVct79xfqiugxmdxvuMuskuos1L32s0OtdtqaU4= +AMOy0OI8UubS7tyVbrzBus/i7nQ9fmTw3z8mJkTmEM1wVATVigX1XIrX5imrbzON +cl8yjKEH5mUa6B+N/AiYPQw0uvw14BVwOLvjghMBLz+gZVTSWUYpQ7/jP37KRvse +SziIk9AjgheIQalluQKrECHreDas1SPOEsHj5dloQ8Bzrl2hsxHwHA4mEzUx0wdw +VxgiRHWN3olSlVxZJE33HI/Uaunq+ww2xMlfHhMmIcs3Hzhf6ZtabAJYmcCJg4gd +2OMAaIKvDgtKWEBpG8tmMYYZHkGCvJ2XdkRe2RwKxO+hSWqEtK98pVD3ouviyhX8 +PYSniAead8fp5HxkMuB3UsUCAwEAAaNTMFEwHQYDVR0OBBYEFCA6SdECKJvX1LBO +qpboChfmjlV8MB8GA1UdIwQYMBaAFCA6SdECKJvX1LBOqpboChfmjlV8MA8GA1Ud +EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAK6WuUnHka950IEKhQelc2NS +XLq33yoWW8QKLLJYRmdmWfhE8F/PErjnTTMAhpS8yxVpNwgGpwZcH4tYLU2eEqHE +Z8OpshPak8rS606haqBfmjoILlUeEKtPAjCNi/iKRWmLCRl7aD6ZT02/8SfzolJ3 +Lb/1C587rLqQ6WnYOQ7Z/CKtqsIfpCyLQSn/lcuhUEh+pyByAWvvt2OFUD+7OsU/ +uLWVHnmPZKAUOhlmUhEpWkotG/dhnMCQLjiN88X+F5wctS+pXenfFz8m50m373Kc +q9I2gZnz3f+L7lo4sIFafCFFB1Q26hVrzyqxrhma1HPKag6bWHm3Z1CdXC6LRK4= -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_server_root_ca_trust_settings.plist new/aws-c-io-0.27.6/tests/resources/mtls_server_root_ca_trust_settings.plist --- old/aws-c-io-0.27.5/tests/resources/mtls_server_root_ca_trust_settings.plist 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_server_root_ca_trust_settings.plist 2026-08-11 00:37:41.000000000 +0200 @@ -4,17 +4,17 @@ <dict> <key>trustList</key> <dict> - <key>1F132B39ACC0E5114FDB9E31541E52FF48F49376</key> + <key>471EF2DA27473D24742D8D2901463DF2701D23E6</key> <dict> <key>issuerName</key> <data> MIGcMQswCQYDVQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEPMA0GA1UECgwGQW1hem9uMQ0wCwYDVQQLDARTREtzMRQwEgYDVQQDDAtsb2NhbGhvc3RDQTEwMC4GCSqGSIb3DQEJARYhYXdzLXNkay1jb21tb24tcnVudGltZUBhbWF6b24uY29t </data> <key>modDate</key> - <date>2026-05-01T18:43:18Z</date> + <date>2026-08-07T17:43:07Z</date> <key>serialNumber</key> <data> - RYSCRIWQTJESQLvtiT91g8kVhoU= + Q25UbQRKqwJJWaBNKy29cYBb5qs= </data> <key>trustSettings</key> <array> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_untrusted_server.key new/aws-c-io-0.27.6/tests/resources/mtls_untrusted_server.key --- old/aws-c-io-0.27.5/tests/resources/mtls_untrusted_server.key 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_untrusted_server.key 2026-08-11 00:37:41.000000000 +0200 @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCgxgDRt29Q8u4c -msqSSM6dFBeC80UmUVqAaaXu2oWbEoh1y/v/0o8DjefjQrL0mvazvBWiKQFeN0uZ -oiHeoBGz8einRIIOJVncYSbxna48kNYNns/tXDaMfdmmr+DRVNco3SKxGGnqEvmH -C8YLiRd2WlJUQz+kl65uoJc+ywf1H1CcxlvsZNzsDzjDB+nas/y6IH6OFpNuty0t -KP1I/9bve+tEsRQKqOX3QYcxVmMXHeN9poJt85SHMaFpxPrJLgP7w+/xAMi3jl3U -+t4fHXtaDtwvpM2SZM1AuXaxUCt/9lRWe1fVbG61B+ORsMLwWr9Ze0JyBIoHL/O4 -jX/nXOXHAgMBAAECggEAC3BrKIDLu8+9H23oEeZ6RPTkA145wlMxhEeAFfGYZgM4 -kGEWKgqaQF99a08YmozYFsvAIkyWm1SF3YWKsWNkPxBsRFJ8inMf5K1I7xIQDqEj -ic6N7s6L1w0xSknjTiGiOXcae81H4+67sF8nFTUI5VPh3br3MUfVkmt8t2wMweT+ -d8n6iJW8P09pfJiXlWoz3tZv8gh8l9nE/x0iBCXGFRaYDtTgJ6AYxw+EdNVYp/Yv -wgHLa/nl00hW7R7gHMafG3RscwLLZhVPsMvYlFEfgo7qcCEoR7fCHxwFn+YJgM24 -C1Ip+JcL+5x241qhecgOUsX6KeCjhQSJF7OIPNx2CQKBgQDhqSGrjlr0mAH3zmIv -dI8iqvyGdjw7cYCXehUILkC+ER0Eujy7RL9wjzlsUHJPdiCI3HyxlJhkINX1w7VJ -a1lZdfm5kad51CeTJLxAzaO6rEa2ZFI1RkgITXxPc5CjTjd/P7opiAFGrKuyQrkn -a2E7HDtHwYhkgY2c/9wZrW7uvQKBgQC2Y496zwI7D4ABp7pOTMqwm3LfasiTl6C3 -I+QTx0Eyu/dLst1fKz56HoEFnOFcFJA6SFv4nAPahqFh5HBcBAdKY1aZASBosriM -+YHKtjvjuQNUkRh86K+U3WF0+/8HkluUvlqOZDOCzTU9q8ZtGycT+kFM4hIcwb81 -0rx+Fhig0wKBgQDQrNKSDqZVoWvQeG2bbLIgYPX8ccHpRmCfsylX003TdYfcI0yd -8EkIEaoMW6gZiycy6JH2tW7myOaSylQOfNK3Q72WuPaiVmnyS/o6Au/xY/ZQHB1Z -XpCl/OGDp16NZXs0lP3WAgsMDAkKY2FM7qOPQeAfzvwN1S/bi09B/3uiEQKBgQCv -Z1JORhUcHYz6iobm1H09mVHBQV3Ca1k5p7+psb+m/hQW7d5trxX3taxZbIVi27fV -BU/F6KzgFQfRMDNKmuk0BhL7NJUpe292zGGhRN6V45ErXBsTzWdGoB0gt1SNwJho -lSRbuku7qIRiWfeLaEiNsufn+6Z1l3K/XXq/O5rV1wKBgD4Yo+25JNtOT4hX6yNE -tszDM+MKX9q2CWSNG+k9vF40Ov4HYJQovEgjZzl+bzsclcMmo1FiPMKozxHD1LSe -voMHxNXYOBs9H8ZRN+o42n9R3XHR7E2sR9Uxz7ooVaDKM2DcZ5Gca+IQim2486/P -F9CWJTwknPYTzbH/m8HFLepe +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDPGBDdArB+4M46 +HGtINsnGHLomijpK+uGWMXLDYCIbTJs6588jB6UH8PPscv5mKF60XoS6GAAMxrNO +KOm2/eX7PUrc5MCcjOWxREC3LuuH9L2ydkSwok3CBQ4eRhBrh4j44iRz+IsJGnKF +zsll8vEXjO5cNuWlUMZxRP3YetusY1yDlSNw4M6hlklh/XdPvRkE0tkse9/yw2M9 +X2+nBi7cg8M5I4O0rqAzk7YuLy1pVLqh7CLMWkW9w1VXwABCPoyqrwOi9SEpVshJ +EPWmvjUuReOaQ7afSujY+BqOUUeFs+T48QgJCOJRHUB7ALNaSvfA4N2HhEjxmf52 +bcc3TkhJAgMBAAECggEAD8FRFB1Wo9pyugtMMqLfbCPmmhTBTU/Dnodtx5UeVyUX +eK5mzO+Rk7Z2OjZ/6fH3jYGU16sIgvBRdxhn+nDbwKbHtaEuEaLq/RbYFQ+b4dyh +22xBus3oPELh8XXrXSDjL+sVcqC1pChHzuv92LSYOK5TOn7/LtnjtP2WkdP79yP3 +TilIqgS5dkzWG9EXjOwZoy0qCRLg//Pve4cN8KL0ohhq82Z4O2wfsUQMOh10G9U6 +6nMpMKk2lssxCxAGSMJjwTz6c0RFftNuYS0nmB+i9JpR2p8xb7KUdLcq51HVy5cl +JtmkemtUYvW5J0IgTkpR3/q4UFSKsXi97ZnOC0bIsQKBgQD/eOpqYRrtA4Fcpk91 +joe+JIE9su8C5Bqqn9dbKG0GcYlyTzjAYhTyVW5QUzP0mkZJI0RID7W1oZ63ZoBL +2iWKaURCfBDzvYyZblkNJUyRrJzRFKUfcxAccQ3KVUAMbsS5RyZ40cabtROloCo5 +NfmiGp3Q/bWGuzB7j9hEi3aB2QKBgQDPhZHMI9ki/2xMqDWq06pn4mo0HIYZ97Eg +NLVwS8w2je2mlfwcXe+KnLoA70xcfD7Ar2xRr9St/g2itflTLtu4qkO0DYJRzo5F +pWNs4M40DmISHuApXTmQkT3gs7551+42+/acBfVQKgHibkeu6NwwU1QPrJhMsiTr +Y7nCTyyD8QKBgBpGATW3juFZPvCcWgepBOTVNEV4JYSSmPt7PNavLac//fa3lwqS +C71wc8vnAqzhQOE8s0UF+JYZbQ1HiWJDqSC2+sIrqEKo99C/vIDRmTJSIj6OdPzr +BHkoV1a7tb6RlcHIQ3ihel+BG+gotK71khrNyfU4YnbcwXuzq3ZBMYrhAoGBALMB +IWF4rq1crDt3gUuIZ15S1I9850Pw/22rabKi/1UzmgJvL9f8Q0tKo7t4r2K7nZmx +9/qCdC9djL+Evrs9GTSyUdI3MOmGBf0Xi6r4Q4ZtvbSpw2yKyMPmNPzlrvEFDKuL +Lg8pqJBsm9GIlPbQUFazGjinBXxq0iPlku+EQf7RAoGBALvZC+O76tfYrAzfeKAV +9ytI8S6H/Oop34idwNLwRb7ToXCBxnBdjyb5xvvbUankuMV/38catzt2XwtrRbYF +1ccP6KPBmS7hdxgsdHlIWpjsaVMbnxtEpT32xfTNwZAzoTVnVF6jy40Vhe8cRk5V +Pld/kyPwJO0Fl2rJioKSLS04 -----END PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_untrusted_server.pem.crt new/aws-c-io-0.27.6/tests/resources/mtls_untrusted_server.pem.crt --- old/aws-c-io-0.27.5/tests/resources/mtls_untrusted_server.pem.crt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_untrusted_server.pem.crt 2026-08-11 00:37:41.000000000 +0200 @@ -1,24 +1,24 @@ -----BEGIN CERTIFICATE----- -MIIECDCCAvCgAwIBAgIUZ8aBwHVSCShDyEaix6mt9r9bPxgwDQYJKoZIhvcNAQEL +MIIECDCCAvCgAwIBAgIUIO1pjkA9GJV33pb41mW2CCLkzVkwDQYJKoZIhvcNAQEL BQAwgZwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH DAdTZWF0dGxlMQ8wDQYDVQQKDAZBbWF6b24xDTALBgNVBAsMBFNES3MxFDASBgNV BAMMC2xvY2FsaG9zdENBMTAwLgYJKoZIhvcNAQkBFiFhd3Mtc2RrLWNvbW1vbi1y -dW50aW1lQGFtYXpvbi5jb20wHhcNMjYwNTAxMTg0MzE4WhcNMjgwODAyMTg0MzE4 +dW50aW1lQGFtYXpvbi5jb20wHhcNMjYwODA3MTc0MzA3WhcNMjgxMTA4MTc0MzA3 WjCBmjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcM B1NlYXR0bGUxDzANBgNVBAoMBkFtYXpvbjENMAsGA1UECwwEU0RLczESMBAGA1UE AwwJbG9jYWxob3N0MTAwLgYJKoZIhvcNAQkBFiFhd3Mtc2RrLWNvbW1vbi1ydW50 -aW1lQGFtYXpvbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCg -xgDRt29Q8u4cmsqSSM6dFBeC80UmUVqAaaXu2oWbEoh1y/v/0o8DjefjQrL0mvaz -vBWiKQFeN0uZoiHeoBGz8einRIIOJVncYSbxna48kNYNns/tXDaMfdmmr+DRVNco -3SKxGGnqEvmHC8YLiRd2WlJUQz+kl65uoJc+ywf1H1CcxlvsZNzsDzjDB+nas/y6 -IH6OFpNuty0tKP1I/9bve+tEsRQKqOX3QYcxVmMXHeN9poJt85SHMaFpxPrJLgP7 -w+/xAMi3jl3U+t4fHXtaDtwvpM2SZM1AuXaxUCt/9lRWe1fVbG61B+ORsMLwWr9Z -e0JyBIoHL/O4jX/nXOXHAgMBAAGjQjBAMB0GA1UdDgQWBBQG1FI0N/289glJ4fO0 -t4HNO2qSmTAfBgNVHSMEGDAWgBRU+/pjvjlUWY0J2JEzKeMTBKIwYzANBgkqhkiG -9w0BAQsFAAOCAQEAG9SM6ogjqpAIb9MD5UH2dvbwpgo6ykv/u2wJpb7t/DnvqsLR -GEfGtAJmVdvXaV5Q437E7kBScq5yA4UeR9UWy36R6iTaSFC/yognqftJEOvaBlpu -ugs4g734MSp7+a+z14kyNFJHPkH723llnhKN06XxenItVXio/D5x1X900xR+kkzT -d2EMlIcepv7xtLVqUrJTMkwGv01XZTgGETgN7hC94hIexhf73kUjRKIHYZZu2xlL -0sRmNs7B4OjstT76ghjuY8d/QALHtuAfFeTkHPpqq0ullkbXNG/CBHfjgWhXGzyp -i5ryTc1mckULjdiRtwjQPfciaUquKMjfukxX7g== +aW1lQGFtYXpvbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP +GBDdArB+4M46HGtINsnGHLomijpK+uGWMXLDYCIbTJs6588jB6UH8PPscv5mKF60 +XoS6GAAMxrNOKOm2/eX7PUrc5MCcjOWxREC3LuuH9L2ydkSwok3CBQ4eRhBrh4j4 +4iRz+IsJGnKFzsll8vEXjO5cNuWlUMZxRP3YetusY1yDlSNw4M6hlklh/XdPvRkE +0tkse9/yw2M9X2+nBi7cg8M5I4O0rqAzk7YuLy1pVLqh7CLMWkW9w1VXwABCPoyq +rwOi9SEpVshJEPWmvjUuReOaQ7afSujY+BqOUUeFs+T48QgJCOJRHUB7ALNaSvfA +4N2HhEjxmf52bcc3TkhJAgMBAAGjQjBAMB0GA1UdDgQWBBTch11tbGy60MB+kqN0 +qzwkGjcj5jAfBgNVHSMEGDAWgBQwF8fQgIQeWH6PXWJHl82olAZRmDANBgkqhkiG +9w0BAQsFAAOCAQEAKS9lVakzpmQonlFDG4T+3x4c/kZVOHpsN1d4Gbkvdm7SaRy8 +lN8iX0yChKpSzeAMloar6XqI4Qc1khqnwCCjLaXkS8LBbFlTRdPzGebWnpvBy8ul +RXIX08eJwvfyGefQYh+1cqY4lQFTBf4TtFRiKeXyIxWH4LrcrQe0eps4WAJE6Yf4 +kbSM3VMXf+8FLfs/yYw6tpCvlbwKb47Rq8/kqxW8/L44tfEe24i/zT/sXNrwQ0Q4 +i7DIXlaee+yAzMxZrYkNznu/486gQ5q4lVgvhBj6IamLDerPAFwzJwhcIRcNHJzT +lMmtuawUDQxSott25kNUtomJZknP9WhHAK5ZJg== -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_untrusted_server_root_ca.key new/aws-c-io-0.27.6/tests/resources/mtls_untrusted_server_root_ca.key --- old/aws-c-io-0.27.5/tests/resources/mtls_untrusted_server_root_ca.key 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_untrusted_server_root_ca.key 2026-08-11 00:37:41.000000000 +0200 @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCT5A8afukB57wU -Uu+FpjdIfTzKSkQC5ZlYXJ7kQyG88AC/vMZzp9NPygPMhPOLsNpW8dgy/NCYBvFr -FwaW7yP+Rbin35KD0gBjovKkPUqPBp+7lmHsuTPcKFfi27xXGwAOJnZ12lKCPqHo -cVJ3YK3mRnQeByckLhTpZN4ok1kGNpxuqzVfI4FBT//cXTsX6WgTvEq33PHN2kFR -AJZBFVN15zLrotMQiPlMzG/pnafHF8ohmkFYV1tyy116+7albJ1ggjhyLeA6fqrb -ZV+zJMjut1MysxAyQ+4f5r5NXqJg616yIRzXnatNNkyxBNS4tlRP+PstPrh+/tFD -iznK0RMDAgMBAAECggEAJ9I0KOe8ONmbgIN2YC/J2fhy2mtV1cvZ1vuVgxP6bSPY -p8geTX0GfokALd0ssNPtbpTPKKd/STgxYCsCiLiaofhHCNi/3EO6/BkfqY6hWVKo -xvtuoa2ao7CvPXP6SiAIi0bbBc/EALL5qJt+34sGOCeHU6CMbwcDdXbGBPnr8ipw -WHqZzkdbUezkV6W5KKYaDac4oSgurjjbbwiDTlgXXIipjrQbf3aOFSywdI98Ob1y -DSWc7JUVTYHEvsUUpbmMIgndNSmzCmN92S5qCoE5Ra9S5P9K+ji/p43ZnCQ4UL18 -Z9RQdkQOCB5gMIhP5uQx3lDgfoLGQq7kZlqtsy11DQKBgQDMqQY/S1CMZtK45UaC -SSKVY/oBqldZImM10jYvza13ZXHFpafsgYXZS9Hq1UhQsnKpkIdZOOBTChITYFBO -H67hOFo6rYLhUiM96Uwv0qEMRZw+1osmhQ66rPiWxsAce3OCFGbS1EqACfpfxnvS -ZvwpcKBevuBhnRA3S+28gzJ69QKBgQC4/WOHrDY4VEudjOckLx84H7prHC1B8Liz -r2tWW3LcPI9dQI8szvHAh3LNxWESgI+hdDPJPd1TArr7r3MuDAm9aRU5Ba7YLB6U -SVkCBWq4/7RlnfNETWn6zS3WmvBdmJzCL9Nlj5RcFXcnUOAtE3fucV8OEwcapkqA -vFwVTVGLFwKBgG5JFyi8eSdvsVYZlylWJ+DBA1Qqau+JbFTwdmrENxoD/I85eYgl -M++ov/IABPwXbVqam5Uk5R1aa+stF5lB0YdkSpscLU8mZ/9Q3NFYe5iVWmEyU8Hq -KcnGtB7r81Jl5BTQ0agC5jKhLd62orr67B+YpZLo4Rk4/igOLopLWMSRAoGAPXyD -U3oK/4gNJg3KWf2Lm+T32lggNtWjHp5EyAxXThqW8EDgFd2m/v5GS1y6miK/GsP7 -3nzAjrHOoo87cmev6RP/aNeZuOJZO6Jxgjl4sorTVB8+10n/2svN25HeKM3r9KNe -2Vfy0PSViSzZhkH9T/TAynXKm7H/+3AgDziGzPsCgYBvoc3IwCs87VBJ1yHvp2a2 -ww+WwNudEIhM1aI4RahzWCbgkY5/tjE+0VLOOxRHvUy0SbIF6XyTaX85vBD3h9dX -WWN5bA/WV+dvUuDYIngzyk0JhKBG+44271wn6iWrqp6hFKBfxhAdMXmVn+rvXyZr -NuV4M2L921X8JhkiTKbaow== +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCBYoBB7GxxzOLt +qyK5388xUvHC0xMF811NlHlguvS3DdHMk+M4cFn7Iy5/342FwVW3BzhrcSZ2o5sF +aJDyKygCcaSrPpS3OYG1yC5SdBOuPvuMcFz8rpHeFoj1cX3anqKOorz+9ZcgSPxn +qFasAdAaMVU7utJ/9C25ZApRpJsABuFkECMzPcZw9xl5ywTSgGrtLiOUC+SzBLp/ +s709KbOddDPAKYXjlcSgX7LuUCApmuaTnv/8edSFobgqIvVvS/Ipipb9xcDGgtL0 +P0D7IIsOGsUYAmmVc5exobZXlP4jVFjC8afr0HLLMivFC+nwuDIKjYhvpkexUuxZ +WwjalbijAgMBAAECggEAPRclN/tJuPHktBN58gma6s8fF75R3R1rkJXqOaIMqeH8 +jXvGbX+e/NU/v2DukZkXv7PJD/H9F0doisU0qyN1YLIH7lM+JMUiWZKLTKNCJ6PV +YhorzaMffJ1nTXyoz/DXEEIGutt63+OWSdtSESVJ/RQOCoXLnl7MuBxkQuhVx0zM +gbCWOQ2NLFBYKGMZwMHHOCzdGXLpNBtjx+F30H5OREJec5s3gs+iGCS24q3isoyd +gsNuQAbE4KDuRLGbTQPMevoCXV6rNykNSqnAacOBfeahkfu5Ncj/VSHHQClroQw7 +4gGtNchdDLcJ2PLTwTaX0p+7ZpgpTk0VM5D/HCglAQKBgQC2b61sc4oPBmGFklP1 +ZB11n9p80yTJS/ARiHt9iPccxJk0kTw3cZHpw5FiPn0IV1O0l7mgY0J5ojZuEG7s +WE8L6sBQhTybPiLfBMbId8aczHyKzcg6S2HMBp/xs+BztOMyzXg+dVNYRnW0kWdy +BFQ0a5r4zRpkeEmqcChkZD1AxQKBgQC1jnx1zwaHBTX4kGfz3eCkV8AEav7pTzdo +V84XlILQidOPz/BkK4k9zz9/e+WUgjN4zlqCx6LMImDXbE1RX8w94hQooICaoVtq +X8r6EoqMjpbRx7wT4GvlXOaHu+xNdJkmGxZGUtXmMOnQSR0VRpR+vGcxmem8yFaI +D4iG973aRwKBgEHYkPmBwiSmIvC43cDF/7QCnDNNaguVcvKBFkE6/CXP95P3j4pb +XVTIF2MkNrCaBEY8NO1kpguMtqSHHeIEBZPBiOQHEtbdWGyyJqUYRgE19QWMPGZ9 +6rBe+7+bMrnQYehmLK4uXoSP+c/QY0vNsC6zX93I+Wul1sDDdnC1lT4ZAoGBAIcG +JQHoqc4Yzf7CRs1TIhKXQDMI7/PL+kUbqCZZSMCXAERgPUQCLNtPGsZQ+njsLCOY +NDA3EJgIqUUNQqNWP6t2S8+7LmnRvw7plydMSsYl9XymsvWFXjkCUmB4HlGseYmh +c3txd6rujbVd6sc76owmyghVk0PXKqOeCcd20DdZAoGBAIL/L7vHk6aJj8rEx4IL +bQUMsoODElcd1tgH78akY5WePGD0ya9JWFsNkKWew5ymzjszscvrl5QPPnkCZFKA +aJJ86Ea5YFBT8Pw4jSU/uxFc7yQLFOqLz7R25FOZHSj0UMBK3/YMrxhs0sSjo/kv +DOAHN3f/bzX0QZAam+SqA93v -----END PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/mtls_untrusted_server_root_ca.pem.crt new/aws-c-io-0.27.6/tests/resources/mtls_untrusted_server_root_ca.pem.crt --- old/aws-c-io-0.27.5/tests/resources/mtls_untrusted_server_root_ca.pem.crt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/mtls_untrusted_server_root_ca.pem.crt 2026-08-11 00:37:41.000000000 +0200 @@ -1,24 +1,24 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/server.crt new/aws-c-io-0.27.6/tests/resources/server.crt --- old/aws-c-io-0.27.5/tests/resources/server.crt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/server.crt 2026-08-11 00:37:41.000000000 +0200 @@ -3,27 +3,27 @@ MRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMQ8wDQYDVQQK DAZBbWF6b24xDTALBgNVBAsMBFNES3MxFDASBgNVBAMMC2xvY2FsaG9zdENBMTAw LgYJKoZIhvcNAQkBFiFhd3Mtc2RrLWNvbW1vbi1ydW50aW1lQGFtYXpvbi5jb20w -HhcNMjQwNTA0MTcwNzA0WhcNMjYwODA2MTcwNzA0WjCBiDELMAkGA1UEBhMCVVMx +HhcNMjYwODA3MTc0MzA2WhcNMjgxMTA4MTc0MzA2WjCBiDELMAkGA1UEBhMCVVMx EzARBgNVBAgMCldhc2hpbmd0b24xDzANBgNVBAoMBkFtYXpvbjENMAsGA1UECwwE U0RLczESMBAGA1UEAwwJbG9jYWxob3N0MTAwLgYJKoZIhvcNAQkBFiFhd3Mtc2Rr LWNvbW1vbi1ydW50aW1lQGFtYXpvbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDA4gNCnD4DAauoJAfJNX2iLnCvdpRvCtiFu8Vfnqwxa0T8kQpZ -DwHqpaCqEcb1AK5jnY9TaV/GyHBUVfoXyJp3j0KCC/3ulKcLsbiSHx5EiClpbqIC -IJPumgWnyEDwr+s1hdxv+owDgFTQa0fe76HIfHRruuHkQkSDICTmt9jYonuqne7B -ikros6/pMz3biPKHMFb8Y4huAhmJOBiNIx4R/oKPfsrGVDUwkuHFaTlKLKlwZJ2A -QnLjqwaZdB2TDfv2JgOMc3OI2B4F1t7lJ2I59olaE+qw7HU3jBOmYEv5HQRqvma0 -SV2aE/tO6sy6qv2Lrz8vAJdMVZbYiyON6ir3AgMBAAGjggFnMIIBYzAJBgNVHRME +DwAwggEKAoIBAQChmQny0qrZug778CqZJZEgo0ACYaRsF3PhHOLEc8y+ggMBR4xu +Nn3CJhRotaANE9o1lazt2B+9fvMzIbMVPqz/rXPqxNx2HRmuwTZxbq2GXD2JqzBA +7LfqCG6k6aBLdKO0M+G0aECfO7BqWKEiTznh6bfgb9qTdp2PkgTab1ATFrs5f9AP +hQai+TYffa8MEjb+x/4hcYjwKqHhVPnjcgnTOf021l2QANEwsrMOUZSA0E0QF9q0 +rQHj30HJPMZcpEjwRo0vWeqlUsJXobv7qyeAhsBUXsW9Z8IwY+pyaIl67TVTrM8u +XVydxsXmH+YX8ylNdxdKnRUiMNBbDB3ZYvjtAgMBAAGjggFnMIIBYzAJBgNVHRME AjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAzBglghkgBhvhCAQ0EJhYkT3BlblNTTCBH -ZW5lcmF0ZWQgU2VydmVyIENlcnRpZmljYXRlMB0GA1UdDgQWBBQYdhixVvjf0Bzm -3DgJvdkCxSqeOjCByQYDVR0jBIHBMIG+gBQPzkk3e7BIC5VVmzhQu2QUFCsGPKGB +ZW5lcmF0ZWQgU2VydmVyIENlcnRpZmljYXRlMB0GA1UdDgQWBBSeJVfMIqbrhiBn +noQMInbAubckfzCByQYDVR0jBIHBMIG+gBS2rTah4b4f8jAkMt80GF2OndrtTqGB oqSBnzCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNV BAcMB1NlYXR0bGUxDzANBgNVBAoMBkFtYXpvbjENMAsGA1UECwwEU0RLczEUMBIG A1UEAwwLbG9jYWxob3N0Q0ExMDAuBgkqhkiG9w0BCQEWIWF3cy1zZGstY29tbW9u LXJ1bnRpbWVAYW1hem9uLmNvbYIBADAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAww -CgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAFTb+KVZmypqVQIh63Q9RXbD -8CQ7At3eo+2ziQxzL3QNuauon8A76oJEFG6l4B3l5MCTqcI8+NQIs/sd+5CEtFn3 -KxrB2R1JPoHEqTuJFQb9DocCbuKXgoU733/fv5gjVviMNQQPvq2IJOhN/uZZb3zU -+MQ6+aEAHA+MjnLpusVrZ7xq1fTxAOLOnOrEMfX9lXdmLkqbgMtYwfU88WsMcf7G -m10Ch/7R8Pl3FJsmrjTchl0oMNiDL3eQHes7bwI/6+3So87jYgYPUVBb+VdRpyTw -zlAk7ulnr7iWi+A5kdnM+EOHLc+W8EhgfozeWYiy20y6A3C3MNVdgR/KE8AxkEk= +CgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAGi/zjDSytNYziQqpFCfnNLO +sFIH0I+/hiiysLaEwJrVhIodmofaNW8dwvncn8P+4dDzgQtQHEXeqs5nv6Yg+/rK +nqA4Zd4pWnBETOm4GY4V+sUiJ62kuApW7NyNrv7mmyF3TNll/y4W70+O9Cj57yXI +NexxMbsc0BUkY+5HVOjkHgYJrkO5VeAezmlgIvjXL7i+adIuLxD/w7yMn6Vb/0Ew +Zn4iVK9R7qytsMBGqJe2peXUxrNIcLhp2cW/5WaeNpvL2tl5v5kRNCBIBoah4GcR +EdLh6cNESG1pPbEG38AxcryD5ci/CxrK/d9ZbMKF2d5sWr+gQisDT6555hdQ1R8= -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/server.key new/aws-c-io-0.27.6/tests/resources/server.key --- old/aws-c-io-0.27.5/tests/resources/server.key 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/server.key 2026-08-11 00:37:41.000000000 +0200 @@ -1,27 +1,28 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEAwOIDQpw+AwGrqCQHyTV9oi5wr3aUbwrYhbvFX56sMWtE/JEK -WQ8B6qWgqhHG9QCuY52PU2lfxshwVFX6F8iad49Cggv97pSnC7G4kh8eRIgpaW6i -AiCT7poFp8hA8K/rNYXcb/qMA4BU0GtH3u+hyHx0a7rh5EJEgyAk5rfY2KJ7qp3u -wYpK6LOv6TM924jyhzBW/GOIbgIZiTgYjSMeEf6Cj37KxlQ1MJLhxWk5SiypcGSd -gEJy46sGmXQdkw379iYDjHNziNgeBdbe5SdiOfaJWhPqsOx1N4wTpmBL+R0Ear5m -tEldmhP7TurMuqr9i68/LwCXTFWW2Isjjeoq9wIDAQABAoIBAHlVM4vRUUj+4gaR -M7ykw3UkFYqq41C+19m4dr5hyBwGSI1Ah+vh/uima9zP9gHk/c54LNLhtHgNWmwS -8ZHIhTK0kbfQ51oPdM1sbJiurpGZvcMu7wa7i5NKnEghNoixgRpYLITcbPs+3RuG -gN2CjJjbgTjLhJHcBdEehVgFSolrBRS4j22y1l7T7qi38urtFBG74sKJy9zw1VY/ -gdkBIAkzBEOmY+bg9urRVARQwazU1bxAsiV0mu/BnCpQ+oLAWJzij+0VnDwV7dOn -xYxTzPql6BgashhEziadPmVKIPZ7TGerh4ZJ8P2JBUiBG6muJby9uSI2keaxfU8G -IK4aYlECgYEA4qHEySyemTvxnpI8GLEQVfjgYRn/LQ9ujgMMwVrJXIZJZ7vC7+Eh -hmUhJmjN9XLrtDG9MzpkdYxC5L+4tngcgEzwrg9I9nOhs0Cpe05a4GdBQZT5bHjz -xES6BxCLoWwJz67X06WbeqGJnOoZjeWvBfr7xxyYWlYItbO+1bz85hUCgYEA2eCp -VNXyXOCrSAr65eii3k+xvCToFiCDNjvVkm8M4uCTIPh0KTQt/VLWpXTLajTuAXI6 -lPg91vahvv4zV/rrv8+KINIXo+haVZkKm3zol3E/fZuUqTItrpR8pb/xBJzFfh0o -MNvTSSXohvIo1oq0jzZdttb1Jbe5FteA6G+Au9sCgYEAmEeidpqopsYEgEw6XUz8 -cQgdnKFfOOPZoUqjU3ixPJ5uzGj5fz2CzU8+ixR476gcgKO7QaTGw8VPXW0FrHXg -kMUiI5LZr9/akxurxdLMdWRsEKkNP7m18fdMGFsht4FkxkvxcaEha7EHSoxyR0pB -5H7UluG77VdJ2u3AGNY4CFECgYEAgqqB4ycMWzdCgcpT/l4ujzUsWrGnnt2Q042+ -4DtJdydIFZXr1Go+ypZLtJ7+/4sO0j83cvAN5kWza1/4WuNZT4egR164XsySoJNQ -EUAwHeMFOMd9uJsnWnQi7STX3vRGXQQPfn3XkR7y/Ttt0n0NHHZ2bZktHJm6n0BP -RxbYFdECgYEAkTcAVysCuc0Hmi75IKWovDJ+Bc33HFQBYjC7xuOvW91+yQEMLlgy -CelH//bFr/pcC0HOrJsvac5LFCQhNBXmN8GdV0yFzjSLeYPRk0OY2Ure4FQnI00h -qP+Gt7ajCgM7dLPguHoUDn0RF5ll0IadMyIGwpgaLdlLD7SwVPmqUWs= ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQChmQny0qrZug77 +8CqZJZEgo0ACYaRsF3PhHOLEc8y+ggMBR4xuNn3CJhRotaANE9o1lazt2B+9fvMz +IbMVPqz/rXPqxNx2HRmuwTZxbq2GXD2JqzBA7LfqCG6k6aBLdKO0M+G0aECfO7Bq +WKEiTznh6bfgb9qTdp2PkgTab1ATFrs5f9APhQai+TYffa8MEjb+x/4hcYjwKqHh +VPnjcgnTOf021l2QANEwsrMOUZSA0E0QF9q0rQHj30HJPMZcpEjwRo0vWeqlUsJX +obv7qyeAhsBUXsW9Z8IwY+pyaIl67TVTrM8uXVydxsXmH+YX8ylNdxdKnRUiMNBb +DB3ZYvjtAgMBAAECggEADPVH7DIS87MdBPxY+h9eUBrvJNG+HNHTn7tQftbXVfZ4 +dbeOTf8uHe2uSMg5rZrILnBSZd8lCm295D2BTgSQ3E7FIxAGqq0CNHZ3Xmi03veS +ErJIxAgHZmunLa+zRCG2B9r6MByFBA/GAX0abLUkK9axQTzO7vC9yTe5DmgLKICT +NEEUkBU4PiikjltXGLjGqur9q2LHMcUvfN8ATr5PlXeV0CKRXll73jxAJX6STWfh +lpUjL5Hk4AMp4A075yjJ3z+LVVEoAWIfPKifUfcgKX26nlelBW5lE1N66y8nrHY4 +Cg1c04WCyN7Bv6GhWzPbLarJINoyZMyduESGq2QhqQKBgQDYIb0yeKJ8Fm/EZVEx ++NlzDTQ4nSj9rNQ2Zp3JZxPl3LWsCqJODPDEcP4tJBlecTpcjfLli6uaWi34GL0D +VxxPvt90g+2PEiVWz9Vgq3qS7YxfXFiRGo38UH3z1jkVPW/RrjWFbi+H1/LNw99S +Q/6XLRA8qXeiNGlDVkrFonxbyQKBgQC/aBMMyy1M0ra8r0d9eVSu9pMlbUTZnahe +AeUtmY2oDCMlHPAFMFSdfUqHacCU25yphdkGaz1GkEdzpTd2Ig45tjkrBFNKj1XF +53QW5CvAZex0Ik6ArHnCSI5N3yyyTqqbcj+zOGxdLO1tpcvDidosjvVG6YSr1pRQ +2eykOSa+BQKBgQCanehfxvVWmCZ09ZZUjZXiPLvzFFtSvuVB1b9jaZ5OfspovWLH +O3Ky1bLAUGblrVL3C4WMuZKV5ZWlOu1dCmBynDX3gLnd9DlKFXysn4AcxFv7jHC/ +vaN9sYepfMNxcnYgJuSbA+x03gQRN+L3UzU6qT5IZ2PyYlQ7m+v53vfgIQKBgQC+ +t5/LrqMbmhW02l28e2nS0CP8Ne1VfI8n5HGLxyXr3PQj5bqPIQIezpm1Zb0bVdu6 +2oBNsgsjRV28sFIb5oEQJi6+Wxf3Ae0wPZhhusaRdb1uVkSsV68W1B7fHtG1dUbv +jp5EIKNxD/QfvgTTeIcowOVK3CFy62NrUElHtR6SVQKBgGXr5jyw/84OFP/0iI5o +TCpL8J4whEx1eUGHoCHmZzWbpcQWeQeAFOmSdq0bkJvoXkLvMtMBXdXvoAoCGzfo +c8CsQdI1naFtah3J+hbXrSIQLDFm8M+JfR+9p85qevmRe2wCm9Fo+XoBQ29HDSj8 +gEJJFoYjt987VxoZGZjeNzMI +-----END PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/server_chain.crt new/aws-c-io-0.27.6/tests/resources/server_chain.crt --- old/aws-c-io-0.27.5/tests/resources/server_chain.crt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/server_chain.crt 2026-08-11 00:37:41.000000000 +0200 @@ -3,51 +3,51 @@ MRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMQ8wDQYDVQQK DAZBbWF6b24xDTALBgNVBAsMBFNES3MxFDASBgNVBAMMC2xvY2FsaG9zdENBMTAw LgYJKoZIhvcNAQkBFiFhd3Mtc2RrLWNvbW1vbi1ydW50aW1lQGFtYXpvbi5jb20w -HhcNMjQwNTA0MTcwNzA0WhcNMjYwODA2MTcwNzA0WjCBiDELMAkGA1UEBhMCVVMx +HhcNMjYwODA3MTc0MzA2WhcNMjgxMTA4MTc0MzA2WjCBiDELMAkGA1UEBhMCVVMx EzARBgNVBAgMCldhc2hpbmd0b24xDzANBgNVBAoMBkFtYXpvbjENMAsGA1UECwwE U0RLczESMBAGA1UEAwwJbG9jYWxob3N0MTAwLgYJKoZIhvcNAQkBFiFhd3Mtc2Rr LWNvbW1vbi1ydW50aW1lQGFtYXpvbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDA4gNCnD4DAauoJAfJNX2iLnCvdpRvCtiFu8Vfnqwxa0T8kQpZ -DwHqpaCqEcb1AK5jnY9TaV/GyHBUVfoXyJp3j0KCC/3ulKcLsbiSHx5EiClpbqIC -IJPumgWnyEDwr+s1hdxv+owDgFTQa0fe76HIfHRruuHkQkSDICTmt9jYonuqne7B -ikros6/pMz3biPKHMFb8Y4huAhmJOBiNIx4R/oKPfsrGVDUwkuHFaTlKLKlwZJ2A -QnLjqwaZdB2TDfv2JgOMc3OI2B4F1t7lJ2I59olaE+qw7HU3jBOmYEv5HQRqvma0 -SV2aE/tO6sy6qv2Lrz8vAJdMVZbYiyON6ir3AgMBAAGjggFnMIIBYzAJBgNVHRME +DwAwggEKAoIBAQChmQny0qrZug778CqZJZEgo0ACYaRsF3PhHOLEc8y+ggMBR4xu +Nn3CJhRotaANE9o1lazt2B+9fvMzIbMVPqz/rXPqxNx2HRmuwTZxbq2GXD2JqzBA +7LfqCG6k6aBLdKO0M+G0aECfO7BqWKEiTznh6bfgb9qTdp2PkgTab1ATFrs5f9AP +hQai+TYffa8MEjb+x/4hcYjwKqHhVPnjcgnTOf021l2QANEwsrMOUZSA0E0QF9q0 +rQHj30HJPMZcpEjwRo0vWeqlUsJXobv7qyeAhsBUXsW9Z8IwY+pyaIl67TVTrM8u +XVydxsXmH+YX8ylNdxdKnRUiMNBbDB3ZYvjtAgMBAAGjggFnMIIBYzAJBgNVHRME AjAAMBEGCWCGSAGG+EIBAQQEAwIGQDAzBglghkgBhvhCAQ0EJhYkT3BlblNTTCBH -ZW5lcmF0ZWQgU2VydmVyIENlcnRpZmljYXRlMB0GA1UdDgQWBBQYdhixVvjf0Bzm -3DgJvdkCxSqeOjCByQYDVR0jBIHBMIG+gBQPzkk3e7BIC5VVmzhQu2QUFCsGPKGB +ZW5lcmF0ZWQgU2VydmVyIENlcnRpZmljYXRlMB0GA1UdDgQWBBSeJVfMIqbrhiBn +noQMInbAubckfzCByQYDVR0jBIHBMIG+gBS2rTah4b4f8jAkMt80GF2OndrtTqGB oqSBnzCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNV BAcMB1NlYXR0bGUxDzANBgNVBAoMBkFtYXpvbjENMAsGA1UECwwEU0RLczEUMBIG A1UEAwwLbG9jYWxob3N0Q0ExMDAuBgkqhkiG9w0BCQEWIWF3cy1zZGstY29tbW9u LXJ1bnRpbWVAYW1hem9uLmNvbYIBADAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAww -CgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAFTb+KVZmypqVQIh63Q9RXbD -8CQ7At3eo+2ziQxzL3QNuauon8A76oJEFG6l4B3l5MCTqcI8+NQIs/sd+5CEtFn3 -KxrB2R1JPoHEqTuJFQb9DocCbuKXgoU733/fv5gjVviMNQQPvq2IJOhN/uZZb3zU -+MQ6+aEAHA+MjnLpusVrZ7xq1fTxAOLOnOrEMfX9lXdmLkqbgMtYwfU88WsMcf7G -m10Ch/7R8Pl3FJsmrjTchl0oMNiDL3eQHes7bwI/6+3So87jYgYPUVBb+VdRpyTw -zlAk7ulnr7iWi+A5kdnM+EOHLc+W8EhgfozeWYiy20y6A3C3MNVdgR/KE8AxkEk= +CgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAGi/zjDSytNYziQqpFCfnNLO +sFIH0I+/hiiysLaEwJrVhIodmofaNW8dwvncn8P+4dDzgQtQHEXeqs5nv6Yg+/rK +nqA4Zd4pWnBETOm4GY4V+sUiJ62kuApW7NyNrv7mmyF3TNll/y4W70+O9Cj57yXI +NexxMbsc0BUkY+5HVOjkHgYJrkO5VeAezmlgIvjXL7i+adIuLxD/w7yMn6Vb/0Ew +Zn4iVK9R7qytsMBGqJe2peXUxrNIcLhp2cW/5WaeNpvL2tl5v5kRNCBIBoah4GcR +EdLh6cNESG1pPbEG38AxcryD5ci/CxrK/d9ZbMKF2d5sWr+gQisDT6555hdQ1R8= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEGDCCAwCgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBnDELMAkGA1UEBhMCVVMx EzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxDzANBgNVBAoM BkFtYXpvbjENMAsGA1UECwwEU0RLczEUMBIGA1UEAwwLbG9jYWxob3N0Q0ExMDAu BgkqhkiG9w0BCQEWIWF3cy1zZGstY29tbW9uLXJ1bnRpbWVAYW1hem9uLmNvbTAe -Fw0yNDA1MDQxNzA3MDNaFw0yNjA4MDYxNzA3MDNaMIGcMQswCQYDVQQGEwJVUzET +Fw0yNjA4MDcxNzQzMDZaFw0yODExMDgxNzQzMDZaMIGcMQswCQYDVQQGEwJVUzET MBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEPMA0GA1UECgwG QW1hem9uMQ0wCwYDVQQLDARTREtzMRQwEgYDVQQDDAtsb2NhbGhvc3RDQTEwMC4G CSqGSIb3DQEJARYhYXdzLXNkay1jb21tb24tcnVudGltZUBhbWF6b24uY29tMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4lI7p1KbrjspVtn2gcHfg7iJ -zj+FJ3PxqfBW/peU3fT2SAyXlNH0NfP/NgU0vk60yL1lExX+a/jdD0o+WLVEMFPq -A4Mdd5H4PUSA+YK0tUNLbBOaezb2Td19y3VQ5zSi8ribjLlLii4Pn2mLuJvLBYRP -8kfnOJe07A+UWc5HCA283yjvBR6gl4YRGIRPnipQ12hoqRL5IB++lZ6PzhoxWOus -NMKcikt+YoXBOmrl0bC6KtqUY52IfBulSjq4FNUjPd30NaX9wMnb5LuNAi0DGaFm -632T8mwtfTAr3ZnHIr+Bw6lEVBg/b1JgyiM115n0GuTghJz9SRYuZnVz/iCEhQID -AQABo2MwYTAdBgNVHQ4EFgQUD85JN3uwSAuVVZs4ULtkFBQrBjwwHwYDVR0jBBgw -FoAUD85JN3uwSAuVVZs4ULtkFBQrBjwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B -Af8EBAMCAYYwDQYJKoZIhvcNAQELBQADggEBAHDNsWJ41LdAp9h25rCpTcowc6Sh -1fDRJWWxgKH0FKRclALapJascpZVbtR7tC6BlytzETnyDnxNXoUiYEBviThmfo1N -jJeU5VTUb0xNfx2wNAZeEFBpi4RGNOLWvSD8xrestMgSLsOM+GNk92WKHxKb6GPs -jOCmOPTqA9npiasalS5BVdi8muI9pzBkR4614mj1kyjzxh5a5bAtntwHJ75KqbVd -KQWIiNJVS+tCYm/1XrXotFoJUR5eQhgO/g0PrSDE+PaolgJBuYpr4yClXxlizRKe -UC4MRgc88DrbYLG9PhIBqRwwXpv0itmzEGl2cr/StaspzPoIlGo0iBuJgps= +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuaqmG1GbDpEkNqaNsTUuBIYh +t90RxBg2kL+FBrXcf1mUJUwxyngufFXirfi1jQVadklKycy1RiV4TBUaMqxJMtI2 +SqrH9vdBy3hXEM606KM6lh22fUSEBhJKFIIC1Vir6mvACAhnldP96YMxI3kQQp6B +7Sa0qczlmUwn+Y0/Y3z1m0dX6Zv+/oROJJEpDmiyhC6T7IFomFA5D7hJDcQE80j9 +vA/IqNUvz18fycAdLCcQuYi3MbximmGNWjBmodsqUk5YuvCA3ia788E8sWaqvyA7 +VBWuqoH7C5trgxnM57E+V98M2cXidwjNKdU1/zGEAS/LH22HywNuhac9Cg7ShQID +AQABo2MwYTAdBgNVHQ4EFgQUtq02oeG+H/IwJDLfNBhdjp3a7U4wHwYDVR0jBBgw +FoAUtq02oeG+H/IwJDLfNBhdjp3a7U4wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAYYwDQYJKoZIhvcNAQELBQADggEBALeqLlqRnB87WxEazhXZsRXYSl+M +Q0A83yqd6+tiZn5YRA3r+PgYr28AIeA5iHkB4/GjVd5oktoRBBVze6xaWX9k98vU +LHcFan2FUqTxG5g8XzgV8qRwQpK6a/m6m+TCpJVztVRqOBSls0wTCmGE0XGYSbei +zZlxyU04bQrqx9sCroCDrYzjprIXkiGZvUGxvhwWxL7Y/lYvCvw67sMWKHBGk8Vg +NhtST1gCuQRK5fOhOOBWtgpry/W/8pdLOMcJAYibWlr6tuuWEG3THVlFWNpg/XUY +CwycpX241WIcpz5OwZIGNsj9hMRmmstBCPFRCJxJu3YCpiwQMcBqvMVY9Bc= -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-c-io-0.27.5/tests/resources/unittests.crt new/aws-c-io-0.27.6/tests/resources/unittests.crt --- old/aws-c-io-0.27.5/tests/resources/unittests.crt 2026-07-24 19:02:02.000000000 +0200 +++ new/aws-c-io-0.27.6/tests/resources/unittests.crt 2026-08-11 00:37:41.000000000 +0200 @@ -1,23 +1,24 @@ -----BEGIN CERTIFICATE----- -MIID7DCCAtSgAwIBAgIJAImKu7s/5C8pMA0GCSqGSIb3DQEBCwUAMIGaMQswCQYD -VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEP -MA0GA1UECgwGQW1hem9uMQ0wCwYDVQQLDARTREtzMRIwEAYDVQQDDAlsb2NhbGhv -c3QxMDAuBgkqhkiG9w0BCQEWIWF3cy1zZGstY29tbW9uLXJ1bnRpbWVAYW1hem9u -LmNvbTAeFw0yNDA1MDQxNzA3MDRaFw0yNjA4MDYxNzA3MDRaMIGaMQswCQYDVQQG -EwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEPMA0G -A1UECgwGQW1hem9uMQ0wCwYDVQQLDARTREtzMRIwEAYDVQQDDAlsb2NhbGhvc3Qx -MDAuBgkqhkiG9w0BCQEWIWF3cy1zZGstY29tbW9uLXJ1bnRpbWVAYW1hem9uLmNv -bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdqV0j4DkQDJULWEW8b -s/znGqK2p9wthY8o4btL7nEhGUsMQyae+UwUBDGn0qUhCgEC3g7e8bg0Q2J+dleF -BOnBfsU1obc7H+5oTf5R2gz3L0dgEjwBJM5IpfCgi2OHurU8UsEPe7KZTbhGdPfR -6CWE0yxWkXiH3dQ982dRGHEsPMPhmdksRFH2FEi9ghZiGEpEI55bCQiKQqBoA4gQ -D2yFCTtylgQ19CYBg28d1n941xv2Ok+tyz7DvgEttEQr3BBdBf65QyDcyORABztU -zhHfXyjrviQCtOj8NZu+wYDqxOxbbyBu5GDVbjhD3iJzh5Drqq8g4rAdT8IsjzSG -6nUCAwEAAaMzMDEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGgYDVR0RBBMwEYIJbG9j -YWxob3N0hwR/AAABMA0GCSqGSIb3DQEBCwUAA4IBAQBHu10+FekqSnAKE/cJeuWt -CKcsyEi6n8tjiJz8Xjm3MJ53kgPn4vzoyla8HMjIqbiYHWTaU+ctq8YjW2Vl/vgG -bWbh0mEAydhWPOMJCEneqgYdEIKJxphdhH5pv7Pw3EOPAvBB6vUaaWIAhosH7lZv -7MDDUFoKk3DeNDEkqH3jsP8Benl4IlHQDV0MKaDooDPSCQTIiF1xys7YxpFT03kY -OYI+hTLMkyHmF9KqQR9sHF3HwbrsVnG+u9/jtnkcq6R/7pG5NIk6ShSjGDWClbmk -69h+4CxPcdzz7qC0wUkKfkzLMdzxeE7ZL5b+59zNF3aahhLGsAXETZdIYZDe5M5r +MIIEFjCCAv6gAwIBAgIUOqSbNgisw4ShJskRi+YU6kltL4EwDQYJKoZIhvcNAQEL +BQAwgZoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQH +DAdTZWF0dGxlMQ8wDQYDVQQKDAZBbWF6b24xDTALBgNVBAsMBFNES3MxEjAQBgNV +BAMMCWxvY2FsaG9zdDEwMC4GCSqGSIb3DQEJARYhYXdzLXNkay1jb21tb24tcnVu +dGltZUBhbWF6b24uY29tMB4XDTI2MDgwNzE3NDMwNloXDTI4MTEwODE3NDMwNlow +gZoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdT +ZWF0dGxlMQ8wDQYDVQQKDAZBbWF6b24xDTALBgNVBAsMBFNES3MxEjAQBgNVBAMM +CWxvY2FsaG9zdDEwMC4GCSqGSIb3DQEJARYhYXdzLXNkay1jb21tb24tcnVudGlt +ZUBhbWF6b24uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA12pX +SPgORAMlQtYRbxuz/Ocaoran3C2Fjyjhu0vucSEZSwxDJp75TBQEMafSpSEKAQLe +Dt7xuDRDYn52V4UE6cF+xTWhtzsf7mhN/lHaDPcvR2ASPAEkzkil8KCLY4e6tTxS +wQ97splNuEZ099HoJYTTLFaReIfd1D3zZ1EYcSw8w+GZ2SxEUfYUSL2CFmIYSkQj +nlsJCIpCoGgDiBAPbIUJO3KWBDX0JgGDbx3Wf3jXG/Y6T63LPsO+AS20RCvcEF0F +/rlDINzI5EAHO1TOEd9fKOu+JAK06Pw1m77BgOrE7FtvIG7kYNVuOEPeInOHkOuq +ryDisB1PwiyPNIbqdQIDAQABo1IwUDATBgNVHSUEDDAKBggrBgEFBQcDATAaBgNV +HREEEzARgglsb2NhbGhvc3SHBH8AAAEwHQYDVR0OBBYEFA1xMLFkbCGnUD5dfnF7 +5Wcuz9kUMA0GCSqGSIb3DQEBCwUAA4IBAQBAnmHH2maw3YtbW/oZ0NPHg0Nz5w7U +F4XKWFALtE1QBZjLWnoHrygCWvAkxQRy5oJWyyNC6ioWFZre7uJkiQYF1qDcdKS5 +eL7mfJMafXEo40844uDxz6/k9+K9H6dHOLOe868XsmeGJMm09aKk3aJrcZUVNQpN +v/XOHUJm/MxL9PcnlT9/IQm3Wh7oSzgwZQj7LWtPeCpIAqM1q2YAot7/AmouIjBT +7EtpsLyUldX3F6lsOP8E+eT25DPI0K/P3G3sqi5ySuqF+D6TlPFBvv3s3itaYFDO +fgUiL6n16qzgdKNLawE9MKtCvS5kbpS1qzYEbjlt7IEJ3CIVhyLGf6G2 -----END CERTIFICATE----- Binary files old/aws-c-io-0.27.5/tests/resources/unittests.p12 and new/aws-c-io-0.27.6/tests/resources/unittests.p12 differ
