-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Managed Composite ML-DSA + ECDSA for netfx #118356
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
Managed Composite ML-DSA + ECDSA for netfx #118356
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds managed composite ML-DSA + ECDSA support for .NET Framework (netfx). It builds upon previous work to provide composite cryptographic functionality that combines ML-DSA (post-quantum digital signature algorithm) with traditional ECDSA for backward compatibility and migration scenarios.
Key changes:
- Enables ECDSA component support for .NET Framework in composite ML-DSA algorithms
- Refactors ECC key blob encoding/decoding for code reuse across platforms
- Adds infrastructure for CNG provider operations and key management
- Consolidates signature format conversion utilities
Reviewed Changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
CngHelpers.cs |
Removed OpenStorageProvider method (moved elsewhere) |
AsymmetricAlgorithmHelpers.Der.cs |
Removed signature format conversion methods (moved elsewhere) |
System.Security.Cryptography.csproj |
Added reference to new ECCng import/export file |
CngExtensions.cs |
Added ExportKeyBlob method for key export operations |
Strings.resx |
Added error message for unsupported curves |
Microsoft.Bcl.Cryptography.csproj |
Added references to new files and interop components |
CompositeMLDsaFactoryTests.cs |
Updated test to use OID string instead of ECCurve object |
Oids.cs |
Added OID constants for brainpool curves |
ECCng.ImportExport.cs |
Refactored to use new encoding/decoding helpers |
ECCng.ImportExport.NamedCurve.cs |
New file with ECC key blob encoding/decoding utilities |
CompositeMLDsaManaged.cs |
Enhanced ECDsaAlgorithm class for .NET Framework support |
CompositeMLDsaManaged.ECDsa.cs |
Added .NET Framework implementation for ECDSA operations |
CngHelpers.cs (Common) |
Re-added OpenStorageProvider method and key export utilities |
AsymmetricAlgorithmHelpers.Der.cs (Common) |
Re-added signature format conversion methods |
Interop.Keys.cs |
Added overload for NCryptExportKey with Span parameter |
Interop.Blobs.cs |
Added Consume method overload for copying to destination span |
src/libraries/Common/src/System/Security/Cryptography/CompositeMLDsaManaged.ECDsa.cs
Outdated
Show resolved
Hide resolved
src/libraries/Common/src/System/Security/Cryptography/CompositeMLDsaManaged.ECDsa.cs
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <[email protected]>
Follow up to #118232
Contributes to #116998