Skip to content

Update Post Quantum Cryptography (PQC) API#6216

Open
anavarr wants to merge 1 commit into
eclipse-vertx:masterfrom
anavarr:pqc_new_api
Open

Update Post Quantum Cryptography (PQC) API#6216
anavarr wants to merge 1 commit into
eclipse-vertx:masterfrom
anavarr:pqc_new_api

Conversation

@anavarr

@anavarr anavarr commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

The single useHybridKeyExchange is removed in favor of two properties:

  • key-exchange-groups: the user can specify which key exchange groups they want to use
  • pqc-enforcement-policy: the user can specify how PQC will be enforced by Vert.x. The policies are:
    • STRICT: only PQC can be used to establish secure connections. If no SSL engine supports it, application won't start. If clients don't support it, SSL handshake fails
    • CLIENT_NEGOTIATED: if no SSL engine supports PQC, application won't start. If clients don't support it, falls back to other key exchange group
    • RELAXED: no enforcement whatsoever, traditional TLS negotiation

When PQC is required (STRICT or CLIENT_NEGOTIATED), Vert.x auto-selects a PQC-capable engine (JDK or OpenSSL) if none is explicitly configured. If none is available, application fails to start with a VertxException ("PQC enforcement policy requires X25519MLKEM768 but neither JDK nor OpenSSL supports it".

The resolution of key exchange groups and PQC enforcement policy (selecting an available SSL engine, adding X25519MLKEM768 to the list of supported groups for CLIENT_NEGOTIATED or restricting the list of supported groups for STRICT) is performed once in SslContextManager.

- key exchange groups: the user can specify which key exchange groups
  they want to use
- pqc-enforcement-policy: the user can specify how pqc will be enforced
  by Vert.x. The policies are:
	- STRICT: only PQC can be used to establish secure connections.
	  If no ssl engine supports it, application won't start. If clients don't support it, SSL handshake fails
	- CLIENT_NEGOTIATED: if no ssl engine supports pqc, application won't
	  start. If clients don't support it, falls back to other key exchange group
	- RELAXED: no enforcement whatsoever, traditional tls
	  negociation
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.

1 participant