impl(rest): use PQC algorithm when available#16253
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces support for Post-Quantum Cryptography (PQC) curves (specifically X25519MLKEM768) in the REST transport client by configuring CURLOPT_SSL_EC_CURVES in libcurl when supported. It adds platform-specific implementations to query available crypto groups on OpenSSL and Windows, along with integration tests to verify PQC negotiation. The review feedback identifies a critical buffer overflow in the Windows implementation of AvailableCryptoGroups, a potential null pointer dereference in the OpenSSL implementation, a missing <algorithm> header, and opportunities to optimize string copies and use more idiomatic move semantics.
3e7cca0 to
3676900
Compare
3676900 to
c8da154
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #16253 +/- ##
=======================================
Coverage 92.26% 92.26%
=======================================
Files 2214 2217 +3
Lines 206307 206398 +91
=======================================
+ Hits 190355 190440 +85
- Misses 15952 15958 +6 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
c8da154 to
dd1b155
Compare
This PR queries the underlying crypto library and configures libcurl to use a hybrid MLKEM algorithm if available. It also includes other non-PQC algorithms as a fallback in case the server does not support the same algorithm as the client.
This PR also introduces a new showcase build that spins up a gapic-showcase server to verify the hybrid MLKEM algorithm is being used.