Skip to content

Add ML-DSA post-quantum signature support (RFC 9964)#384

Merged
simo5 merged 2 commits into
latchset:mainfrom
rjeffman:add-ml-dsa-rfc9964
Jul 20, 2026
Merged

Add ML-DSA post-quantum signature support (RFC 9964)#384
simo5 merged 2 commits into
latchset:mainfrom
rjeffman:add-ml-dsa-rfc9964

Conversation

@rjeffman

@rjeffman rjeffman commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Implement the AKP (Algorithm Key Pair) key type and ML-DSA-44, ML-DSA-65, ML-DSA-87 signing algorithms per IETF RFC 9964. Requires python-cryptography >= 49.0.0.

As python-cryptography 49+ requires Python 3.9+, the support for Python 3.8 in dropped, and tests for Python 3.12, 3,13 and 3,14 were added.

@rjeffman
rjeffman requested a review from simo5 July 20, 2026 14:16

@simo5 simo5 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some minor nitpicks but otherwise looks good overall.

Are there any test vectors in RFC 9964?
If so I would like to have them in the test suite, if not, we should find some to verify that the code does the right thing.

Comment thread jwcrypto/jwk.py Outdated
Comment thread jwcrypto/jwk.py Outdated
@rjeffman
rjeffman force-pushed the add-ml-dsa-rfc9964 branch from ca278eb to 1e3afdc Compare July 20, 2026 17:48
@rjeffman

Copy link
Copy Markdown
Collaborator Author

Due to the size of the test vectors, I moved all ML-DSA related tests to jwcrypto/tests_mldsa.py.

@rjeffman
rjeffman force-pushed the add-ml-dsa-rfc9964 branch from 1e3afdc to ba33672 Compare July 20, 2026 17:56
@rjeffman
rjeffman requested a review from simo5 July 20, 2026 17:58

@simo5 simo5 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a nit, otherwise this looks good to me.

Comment thread jwcrypto/jwk.py Outdated
rjeffman added 2 commits July 20, 2026 15:55
Implement the AKP (Algorithm Key Pair) key type and ML-DSA-44,
ML-DSA-65, ML-DSA-87 signing algorithms per IETF RFC 9964.
Requires python-cryptography >= 49.0.0.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Rafael Guterres Jeffman <rjeffman@redhat.com>
Python Cryptography 49+ requires Python 3.9 or later.

Assisted-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Rafael Guterres Jeffman <rjeffman@redhat.com>
@rjeffman
rjeffman force-pushed the add-ml-dsa-rfc9964 branch from ba33672 to e49cb16 Compare July 20, 2026 18:56
@simo5

simo5 commented Jul 20, 2026

Copy link
Copy Markdown
Member

Thanks!

@simo5
simo5 merged commit 094e746 into latchset:main Jul 20, 2026
16 checks passed
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.

2 participants