Skip to content

Support QuicheQuicSslEngine hostname identification algorithm.#16426

Merged
normanmaurer merged 2 commits into
netty:4.2from
vietj:quiche-ssl-engine-endpoint-identification-algo
Mar 11, 2026
Merged

Support QuicheQuicSslEngine hostname identification algorithm.#16426
normanmaurer merged 2 commits into
netty:4.2from
vietj:quiche-ssl-engine-endpoint-identification-algo

Conversation

@vietj
Copy link
Copy Markdown
Contributor

@vietj vietj commented Mar 8, 2026

Motivation:

QuicheQuicSslEngine does not currently support hostname identification algorithm.

Changes:

  • add configuration for hostname identification algorithm in QuicSslContextBuilder
  • configure QuicheQuicSslEngine ssl parameters, those parameters are used by X509ExtendedTrustManager#checkTrusted to enforce the algorithm, this is called by BoringSSLCertificateVerifyCallback

Results:

Hostname verificiation algorithm is configurable and enforced.

@vietj
Copy link
Copy Markdown
Contributor Author

vietj commented Mar 8, 2026

Note : as shown in the comment the default endpoint verification algorithm is not set like it is for regular context

We need to figure out what is best for obtain the relevant default.

@vietj
Copy link
Copy Markdown
Contributor Author

vietj commented Mar 10, 2026

PTAL @normanmaurer

@normanmaurer
Copy link
Copy Markdown
Member

@vietj please check the test-failures and ping me once ready

Motivation:

QuicheQuicSslEngine does not currently support hostname identification algorithm.

Changes:

- add configuration for hostname identification algorithm in QuicSslContextBuilder
- configure QuicheQuicSslEngine ssl parameters, those parameters are used by X509ExtendedTrustManager#checkTrusted to enforce the algorithm, this is called by BoringSSLCertificateVerifyCallback

Results:

Hostname verificiation algorithm is configurable and enforced.
@vietj vietj force-pushed the quiche-ssl-engine-endpoint-identification-algo branch from 3856bd5 to 217f780 Compare March 11, 2026 06:10
… the same default than SslContextBuilder

Motivation:

QuicSslContextBuilder#endpointIdentificationAlgorithm should be initialized with the same default than SslContextBuilder

Changes:

Use a Java visibility trick to make SslUtils#defaultEndpointVerificationAlgorithm visible to QuicSslContextBuilder.

Changes:

Move SslUtils#endpointIdentificationAlgorithm to SslContext as static package private so it can be referenced by QuicheQuicSslContext.
@vietj vietj force-pushed the quiche-ssl-engine-endpoint-identification-algo branch from 217f780 to 8f9b144 Compare March 11, 2026 08:04
@vietj
Copy link
Copy Markdown
Contributor Author

vietj commented Mar 11, 2026

@normanmaurer PTAL, actually now a QUIC test is subject to verification and failed because "HTTPS" is the new default algorithm. The test is modified to create an ssl engine specifying the peer host so verification can operate as expected.

@normanmaurer normanmaurer added this to the 4.2.11.Final milestone Mar 11, 2026
@normanmaurer normanmaurer added the needs-cherry-pick-5.0 This PR should be cherry-picked to 5.0 once merged. label Mar 11, 2026
@normanmaurer normanmaurer merged commit 994e887 into netty:4.2 Mar 11, 2026
19 of 21 checks passed
@normanmaurer
Copy link
Copy Markdown
Member

@vietj thanks a lot!

netty-project-bot pushed a commit that referenced this pull request Mar 11, 2026
Motivation:

QuicheQuicSslEngine does not currently support hostname identification
algorithm.

Changes:

- add configuration for hostname identification algorithm in
QuicSslContextBuilder
- configure QuicheQuicSslEngine ssl parameters, those parameters are
used by X509ExtendedTrustManager#checkTrusted to enforce the algorithm,
this is called by BoringSSLCertificateVerifyCallback

Results:

Hostname verificiation algorithm is configurable and enforced.

(cherry picked from commit 994e887)
@netty-project-bot
Copy link
Copy Markdown
Contributor

Auto-port PR for 5.0: #16434

@github-actions github-actions Bot removed the needs-cherry-pick-5.0 This PR should be cherry-picked to 5.0 once merged. label Mar 11, 2026
normanmaurer pushed a commit that referenced this pull request Mar 11, 2026
…gorithm. (#16434)

Auto-port of #16426 to 5.0
Cherry-picked commit: 994e887

---
Motivation:

QuicheQuicSslEngine does not currently support hostname identification
algorithm.

Changes:

- add configuration for hostname identification algorithm in
QuicSslContextBuilder
- configure QuicheQuicSslEngine ssl parameters, those parameters are
used by X509ExtendedTrustManager#checkTrusted to enforce the algorithm,
this is called by BoringSSLCertificateVerifyCallback

Results:

Hostname verificiation algorithm is configurable and enforced.

Co-authored-by: Julien Viet <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants