Skip to content

Conversation

@MasterKale
Copy link
Collaborator

@MasterKale MasterKale commented Sep 29, 2025

This PR adds support for use of public keys using ML-DSA 44, ML-DSA 65, and ML-DSA 87 PQC algorithms. This particular implementation uses the dilithium-py library when present. A new webauthn.helpers.exceptions.MLDSANotSupported exception will be raised if a response using these algorithms is passed in without dilithium-py installed.

Dilithium-py was chosen to facilitate a more timely collaboration. I tried to abstract its use enough to make it easier, in the future, to replace most of this with whatever PQC support ends up getting added to cryptography. This appears to be the parent task over there to track progress on adding ML-DSA support:

pyca/cryptography#12610

Unit tests exist locally that pass with this logic. The WebAuthn responses used for those tests cannot be included in this PR. The plan is to publish this change as an alpha build of v2.8.0, update webauthn.io to use it, then capture some new responses on webauthn.io that can then be backfilled here to properly incorporate testing around this PQC support.

Supersedes #258.

@MasterKale MasterKale added this to the v2.8.0-alpha1 milestone Sep 29, 2025
@MasterKale MasterKale merged commit 6668f52 into master Sep 29, 2025
5 checks passed
@MasterKale MasterKale deleted the mm/pqc-dilithium-alpha branch September 29, 2025 17:09
MasterKale added a commit that referenced this pull request Sep 30, 2025
MasterKale added a commit that referenced this pull request Sep 30, 2025
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