Skip to content
Theos Quantum Θ mark

COMPATIBILITY REFERENCE

Post-quantum support in public libraries, protocols and platforms

Every row is read from the project's own release notes, documentation or source headers, and carries the URL we read. Rows are grouped by kind, then ordered alphabetically by subject within each group. Where a version could not be verified the cell says so; we did not estimate one.

Read as of

This page is static and dated. It carries no live feed and no automatic refresh. The date changes only when every row has been read against its source again, and it is the one date on this page.

Legend

Six support states, one meaning each.

Read these before the table. The state column uses this vocabulary and nothing else, so a value means the same thing on every row.

Shippingshipping
Present in a released version and usable without a build option or runtime switch, according to the project's own notes.
Experimentalexperimental
Present, but the project states the code is for research or prototyping, or marks the API as unstable.
Behind a flagbehind-flag
Present in a release but inactive until a build option, runtime flag or client configuration selects it.
Announcedannounced
Specified or accepted for a future release, with no released version we can point at yet.
Not supportednone
The project's own documentation states the algorithm is not supported.No row in the table below carries this value, counted from the rows rendered there.
Unverifiedunverified
We could not establish the version from the project's own documentation. Read the source link, not this row.
Support table16 rows, grouped by kind in the order libraries, then toolchains, then platforms, then protocols, and ordered alphabetically by subject within each group, ignoring case. That order is fixed in the content module, so it does not change between renders. Every cell was read from the source linked in the final column on .
Libraries9 rows
Subject.NETAlgorithms
  • ML-KEM (FIPS 203)
  • ML-DSA (FIPS 204)
  • SLH-DSA (FIPS 205)
StateExperimentalVerified version10Detail

The .NET 10 libraries add MLKem, MLDsa and SlhDsa to System.Security.Cryptography, with MLDsa and SlhDsa marked as experimental under diagnostic SYSLIB5006. Availability depends on the host supplying OpenSSL 3.5 or newer, or Windows CNG with post-quantum support.

SourceWhat's new in .NET 10 libraries(opens in a new tab)
SubjectBoringSSLAlgorithms
  • ML-KEM (FIPS 203)
StateShippingVerified version[PLACEHOLDER: verify a commit — BoringSSL publishes no versioned releases]Detail

The public header include/openssl/mlkem.h implements ML-KEM-768 and ML-KEM-1024 and cites FIPS 203 directly. BoringSSL carries no release versions, so a deployment pins a commit rather than a version number.

SourceBoringSSL include/openssl/mlkem.h(opens in a new tab)
SubjectBotanAlgorithms
  • ML-KEM (FIPS 203)
  • ML-DSA (FIPS 204)
  • SLH-DSA (FIPS 205)
StateShippingVerified version3.6.0Detail

Botan 3.6.0, dated 2024-10-21 in the project release notes, added ML-KEM, ML-DSA and SLH-DSA under their standardised names, beside the pre-standard Kyber, Dilithium and SPHINCS+ code. Key establishment and signatures arrived in the same release.

SourceBotan release notes(opens in a new tab)
SubjectGo standard libraryAlgorithms
  • ML-KEM (FIPS 203)
StateShippingVerified version1.24Detail

Go 1.24 added the crypto/mlkem package for ML-KEM-768 and ML-KEM-1024, and enabled the hybrid X25519MLKEM768 key agreement in crypto/tls by default when Config.CurvePreferences is nil; the GODEBUG setting tlsmlkem=0 reverts that default. The release notes record key establishment, not signatures.

SourceGo 1.24 release notes(opens in a new tab)
SubjectJava (OpenJDK)Algorithms
  • ML-KEM (FIPS 203)
StateShippingVerified version24Detail

JDK 24 delivered JEP 496, exposing ML-KEM key generation, encapsulation and decapsulation through the KeyPairGenerator, KEM and KeyFactory APIs at all three parameter sets. These are primitives; hybrid key exchange for TLS 1.3 is a separate proposal, JEP 527, which was still at Candidate on the verification date.

SourceJEP 496: Quantum-Resistant Module-Lattice-Based KEM(opens in a new tab)
SubjectliboqsAlgorithms
  • ML-KEM (FIPS 203)
  • ML-DSA (FIPS 204)
  • SLH-DSA (FIPS 205)
StateExperimentalVerified version0.15.0Detail

liboqs 0.15.0, released 2025-11-14, integrated an SLH-DSA implementation and removed the pre-standard Dilithium code, with SPHINCS+ scheduled for removal in 0.16.0. The Open Quantum Safe project states the library is for research and prototyping and directs readers to its limitations on intended use.

Sourceliboqs RELEASE.md(opens in a new tab)
SubjectNSSAlgorithms
  • ML-KEM (FIPS 203)
StateUnverifiedVerified version[PLACEHOLDER: verify the NSS release that introduced mlkem768x25519]Detail

NSS release notes reference the hybrid mlkem768x25519 key agreement, so the implementation is present in the tree. We could not identify the release that introduced it from the published notes, so we record no version here.

SourceNSS release notes index(opens in a new tab)
SubjectOpenSSLAlgorithms
  • ML-KEM (FIPS 203)
  • ML-DSA (FIPS 204)
  • SLH-DSA (FIPS 205)
StateShippingVerified version3.5.0Detail

OpenSSL 3.5.0, released 2025-04-08, added ML-KEM, ML-DSA and SLH-DSA. The same release changed the default TLS key shares to offer the hybrid X25519MLKEM768 group beside X25519, and changed the default supported-groups list to prefer hybrid post-quantum KEM groups.

SourceOpenSSL 3.5 series release notes(opens in a new tab)
SubjectwolfSSLAlgorithms
  • ML-DSA (FIPS 204)
StateShippingVerified version5.8.0Detail

wolfSSL states that its Dilithium implementation was updated to ML-DSA and is fully supported in release 5.8.0, dated 2025-04-28. That announcement gives no release number for ML-KEM (FIPS 203), so this row records none.

SourcewolfSSL 5.8.0 release announcement(opens in a new tab)
Toolchains2 rows
SubjectOpenSSHAlgorithms
  • ML-KEM (FIPS 203)
StateShippingVerified version9.9Detail

OpenSSH 9.9 added the hybrid mlkem768x25519-sha256 key agreement and OpenSSH 10.0, April 2025, made it the default. The project states that every post-quantum algorithm it implements is a hybrid pairing a post-quantum scheme with a classical one; key agreement has been on by default since 9.0, April 2022, initially with sntrup761x25519-sha512, which is not a NIST-standardised scheme.

SourceOpenSSH: Post-Quantum Cryptography(opens in a new tab)
Subjectoqs-providerAlgorithms
  • ML-KEM (FIPS 203)
  • ML-DSA (FIPS 204)
StateExperimentalVerified version0.11.0Detail

oqs-provider exposes post-quantum key encapsulation and signature algorithms to OpenSSL 3 through the provider interface, including hybrids such as X25519 with ML-KEM-768 and SecP384r1 with ML-KEM-1024. The project documentation states the code is not meant to be used in productive deployments.

Sourceoqs-provider RELEASE.md(opens in a new tab)
Platforms4 rows
SubjectAWS KMS TLS endpointsAlgorithms
  • ML-KEM (FIPS 203)
StateBehind a flagVerified version[PLACEHOLDER: verify — AWS publishes no version number for KMS TLS endpoints]Detail

AWS documents hybrid TLS to KMS endpoints via s2n-tls, combining ECDH with ML-KEM, and states the hybrid suites are implemented for key exchange only and not for data encryption under a KMS key. The client has to be configured to prefer post-quantum TLS, so the behaviour is opt-in.

SourceUsing hybrid post-quantum TLS with AWS KMS(opens in a new tab)
SubjectCloudflare edge (inbound TLS)Algorithms
  • ML-KEM (FIPS 203)
StateShippingVerified version[PLACEHOLDER: verify — Cloudflare publishes no version number for its edge TLS terminator]Detail

Cloudflare documents X25519MLKEM768, TLS group 0x11ec, for inbound connections and marks the earlier X25519Kyber768Draft00 group as obsolete. The same documentation states that post-quantum authentication from the visitor to the edge is still under development, so this row is key agreement only.

SourceCloudflare post-quantum cryptography documentation(opens in a new tab)
SubjectGoogle ChromeAlgorithms
  • ML-KEM (FIPS 203)
StateShippingVerified version131Detail

Chrome 131 dropped the hybrid Kyber768 codepoint 0x6399 and offers hybrid ML-KEM at codepoint 0x11ec for TLS key agreement. Chrome pairs X25519 with ML-KEM rather than offering ML-KEM on its own.

SourceA new path for Kyber on the web (Google Security Blog)(opens in a new tab)
SubjectGoogle Cloud KMSAlgorithms
  • ML-DSA (FIPS 204)
  • SLH-DSA (FIPS 205)
StateExperimentalVerified version[PLACEHOLDER: verify current launch stage — Preview at the 2025-02-21 announcement]Detail

Cloud KMS offers ML-DSA-65 and SLH-DSA-SHA2-128S for digital signatures, announced at Preview launch stage on 2025-02-21. This row covers signatures, not key establishment.

SourceAnnouncing quantum-safe digital signatures in Cloud KMS(opens in a new tab)
Protocols1 row
SubjectHybrid key exchange in TLS 1.3Algorithms
  • ML-KEM (FIPS 203)
StateAnnouncedVerified versiondraft-ietf-tls-hybrid-design-16Detail

The draft specifies how a post-quantum key encapsulation mechanism is combined with a classical key exchange inside one TLS 1.3 key share, which is the construction the hybrid groups elsewhere in this table implement. On the verification date it sat in the RFC Editor queue at revision 16, dated 2025-09-07, with no RFC number assigned.

SourceIETF: Hybrid key exchange in TLS 1.3(opens in a new tab)

What this table is not

  • We do not build, run or test any of these releases. Every cell is read from the project's own release notes, documentation, source header or standards-body page, and from nothing else.
  • Support in a library is not support in your deployment. A release that carries ML-KEM (FIPS 203) can still be compiled without it, configured away from it, or fronted by a middlebox that drops the larger handshake.
  • A version number here is the earliest release in which we could verify the support. It is not a recommendation, and it is not a minimum for your estate.
  • This is a reading aid, not a procurement decision. Nothing here has been checked against your support contracts, your change windows or your regulator's expectations.
  • We do not state that any implementation listed here is FIPS-validated. Implementing an algorithm and holding a validation certificate for it are two different claims, and only the project or the certificate can make the second one.
  • The standards themselves are not the subject of this table. FIPS 203, FIPS 204 and FIPS 205 and their status are tracked under Exposure Signals at /threat-radar.
  • Rows we could not source were deleted rather than estimated. A subject missing from this table means we found no upstream statement to read, not that the subject lacks support.

The standards themselves

This table describes implementations, not standards.

FIPS 203, FIPS 204 and FIPS 205, their publication status and the regulatory deadlines that reference them are tracked separately under Exposure Signals. A row here says only what a project has published about its own release.