test: Add an integration test to google gax for testing post quantum encryption#8891
Open
danieljbruce wants to merge 25 commits into
Open
test: Add an integration test to google gax for testing post quantum encryption#8891danieljbruce wants to merge 25 commits into
danieljbruce wants to merge 25 commits into
Conversation
Adds gRPC and HTTP/REST Fallback post quantum cryptography safe integration tests to the test-application package. Configures ShowcaseServer to support TLS, specific ports, and CA certificate output files. Asserts that X25519MLKEM768 is correctly negotiated. Co-authored-by: danieljbruce <8935272+danieljbruce@users.noreply.github.com>
Adds gRPC and HTTP/REST Fallback post quantum cryptography safe integration tests to the test-application package. Configures ShowcaseServer to support TLS, specific ports, and CA certificate output files. Asserts that X25519MLKEM768 is correctly negotiated. Co-authored-by: danieljbruce <8935272+danieljbruce@users.noreply.github.com>
…into pqc-showcase-tests
Contributor
There was a problem hiding this comment.
Code Review
This pull request introduces Post Quantum Cryptography (PQC) compliance tests, including updates to the ShowcaseServer to support TLS and custom port configurations. The review highlights the need to await the asynchronous runPqcComplianceTests call in the main test application, suggests avoiding global state mutation by removing process.chdir() in favor of specifying cwd in execa, and recommends removing an unnecessary as any type assertion in the PQC test implementation to improve type safety.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…ogle-cloud-node into pqc-showcase-tests
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.
Description
Adds an integration test for the Gapic clients that only passes for Node versions 22.20 and up as those versions of Node are the only ones that use a lattice based algorithm that is quantum safe. The integration test checks that the algorithm used for network traffic encryption is safe from quantum based decryption methods. It does this by setting up the showcase server with a certificate to tell the server to use the quantum safe algorithm and using the grpc echo client to call the server much like the other test-application tests do.
As an added bonus to using the test in test-application, the test also is run in a new jest framework that we plan on integrating into our clients.
Impact
Ensures Gapic library traffic is safe from decryption after further advances in quantum computing technology.
Testing
You can run the test in isolation from the
test-applicationdirectory withnpm run test.The test fails for Node versions below 22.20 and passes for 22.20+ versions.
You can also run
npm run test-applicationfrom the gax directory to run the tests.