-
Notifications
You must be signed in to change notification settings - Fork 468
Add ML-DSA (FIPS 204) post-quantum signature support #3475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from 30 commits
Commits
Show all changes
31 commits
Select commit
Hold shift + click to select a range
2290bd6
Add ML-DSA (FIPS 204) post-quantum signature support
iNinja 7dd5b0d
Add ML-DSA test suite
iNinja 9b7f788
Add ML-DSA X.509 certificate support to X509SecurityKey
iNinja f30788c
Mark ML-DSA public API as [Experimental(SYSLIB5006)]
iNinja 93bf3c1
Add X509 ML-DSA certificate tests
iNinja 7a10a42
Minimize [Experimental] to only genuinely experimental API calls
iNinja 7058810
Use embedded PFX for cross-TFM X509 ML-DSA tests
iNinja 0b5efd8
Zero private key seed after import in MlDsaAdapter
iNinja 6dcbf34
Add ML-DSA test improvements and fix span-based signing
iNinja 18529da
Final review: fix span signing bug, optimize verify hot path, add cor…
iNinja bfd2d83
Add X509 ML-DSA end-to-end JWT tests
iNinja b24ebfe
Add E2E JWT tests for all three handler entry points
iNinja 625a4bd
Security hardening: algorithm/key enforcement, pub/priv validation, r…
iNinja af86d49
Add expected RFC 9964 reference alongside draft URL
iNinja 7ac0a0e
Add X509-to-JWK conversion for ML-DSA certificates (RFC 9881)
iNinja b682811
Suppress BCL TFM support warnings for net6.0
iNinja ce0fbf1
Final review fixes: x5c round-trip, seed zeroing, key disposal, defen…
iNinja 0e3b590
Clarify MLDsa ownership contract in doc comments
iNinja df722a1
Address PR review: platform safety, caching, and cleanup
iNinja bd465a4
Isolate ML-DSA test material for platform compatibility
iNinja 244e3da
Guard ML-DSA test data in AsymmetricSignatureTests for unsupported pl…
iNinja 478837b
Remove unrelated Telemetry-Cardinality-Analysis.md from PR scope
iNinja 2caaca5
Address PR review: log messages, null guards, alg/OID validation
iNinja e337206
Improve test coverage: sign/verify round-trip, thumbprint consistency…
iNinja 730504e
Address PR review: hot-path allocation, alg validation, shared helpers
iNinja a0759c2
Add IDX10723 for X509 private key extraction failure, validate AKP alg
iNinja 2334da7
Reject non-ML-DSA certs in AKP x5c, add IDX10724, fix indentation
iNinja bd23b6c
Update RepresentAsAsymmetricPublicJwk doc to note AKP alg requirement
iNinja 99492ef
Guard x5c round-trip assertion for platform compatibility
iNinja 26d94db
Thread safety for ML-DSA key init, null guards in X509 adapter path
iNinja a9a37e8
Fix PrivateKeyStatus ordering and make unsupported flag volatile
iNinja File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| <!-- Directory.Build.targets is imported after NuGet package .targets files, | ||
| so target overrides here take effect over package-defined InitialTargets. --> | ||
| <Project> | ||
|
|
||
| <!-- Microsoft.Bcl.Cryptography 10.0.2 and its transitive dependency System.Formats.Asn1 | ||
| emit TFM support warnings on net6.0. ML-DSA functionality is validated on net6.0 | ||
| via the compatibility package and covered by the cross-TFM test suite. | ||
| These overrides suppress only these specific package warnings — any new package | ||
| that introduces TFM warnings will still surface normally. | ||
| Note: Condition="false" applies unconditionally, but the package .targets files | ||
| only fire on unsupported TFMs (net6.0), so this has no effect on net8.0+. | ||
| Remove when net6.0 is dropped from SrcTargets. --> | ||
| <Target Name="NETStandardCompatError_Microsoft_Bcl_Cryptography_net8_0" | ||
| Condition="false" /> | ||
| <Target Name="NETStandardCompatError_System_Formats_Asn1_net8_0" | ||
| Condition="false" /> | ||
|
iNinja marked this conversation as resolved.
|
||
|
|
||
| </Project> | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.