test: run showcase integration tests over TLS - #1331
Draft
torreypayne wants to merge 1 commit into
Draft
torreypayne wants to merge 1 commit into
torreypayne wants to merge 1 commit into
Conversation
torreypayne
force-pushed
the
pqc-tls-validation
branch
from
August 11, 2026 23:22
63f8df8 to
ca27b27
Compare
This was referenced Aug 26, 2026
torreypayne
marked this pull request as ready for review
August 26, 2026 11:05
torreypayne
marked this pull request as draft
August 26, 2026 11:12
torreypayne
force-pushed
the
pqc-tls-validation
branch
from
September 15, 2026 14:12
a1910fc to
7f38a11
Compare
torreypayne
force-pushed
the
pqc-tls-validation
branch
from
September 15, 2026 21:01
7f38a11 to
f8bf3ea
Compare
This was referenced Sep 15, 2026
torreypayne
force-pushed
the
pqc-tls-validation
branch
2 times, most recently
from
September 16, 2026 19:38
522f436 to
d251f79
Compare
torreypayne
added this pull request to stack #1353
September 16, 2026 20:00
torreypayne
force-pushed
the
pqc-tls-validation
branch
from
September 16, 2026 20:26
d251f79 to
23bbc42
Compare
Starts the local gapic-showcase server with --tls and routes every gRPC and REST test client through the encrypted endpoint, which is a prerequisite for validating post-quantum key exchange. Showcase generates its own serving certificate under --tls and publishes the signing CA through --ca-cert-output-file, so the harness does not have to operate a certificate authority of its own. Notes on the plumbing: - Startup waits for the CA file to parse as a certificate rather than probing the port. Showcase binds its listener roughly a second before it finishes writing the CA, so a port probe reports readiness while the trust root the clients need does not exist yet. - gRPC clients are handed GRPC::Core::ChannelCredentials built from that CA. The C core resolves GRPC_DEFAULT_SSL_ROOTS_FILE_PATH once per process, which cannot express a different CA per server now that every --tls server mints its own. - REST continues to rely on SSL_CERT_FILE, which Net::HTTP re-reads per connection. It is restored and the temporary directory removed on teardown.
torreypayne
force-pushed
the
pqc-tls-validation
branch
from
September 16, 2026 20:40
23bbc42 to
92064da
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Starts the local
gapic-showcaseserver with--tlsand routes every gRPC and REST test client through the encrypted endpoint. The suite previously connected over plaintext, so no test here ever exercised a real TLS handshake. No PQC assertions yet — this only establishes the transport #1351 asserts against.Showcase mints its own certificate under
--tlsand publishes the signing CA through--ca-cert-output-file, so the harness runs no certificate authority of its own.Reviewer notes
--tlsserver mints its own CA. gRPC gets explicitChannelCredentials, since the C-core resolvesGRPC_DEFAULT_SSL_ROOTS_FILE_PATHonce per process and cannot express a per-server root. REST usesSSL_CERT_FILE, whichNet::HTTPre-reads per connection. Both are restored on teardown.endpoint.gobinds before generating TLS material: over 40 boots on four cores the port accepted at ~0.01s, the CA at a median 1.4s, max 3.2s. A port probe reports ready seconds early, the race that flaked Rust (#6542, fixed in #6547). A fixed sleep is no substitute: 5% of boots need over 3s, and the suite starts three servers. It parses the file, since existence is briefly true mid-write.spawn_showcasereaps a child whose startup failed. Otherwise it survives holding:7469, the next run reuses it, and every TLS test fails opaquely.Sits on #1330 (fork-hosted, so GitHub excludes it from the stack) · Companion: ruby-core-libraries#73 raises the
gapic-commongrpc floor.Design: go/client-libraries:ruby-pqc · Parent: go/cloudsdk-pqc-ruby