Skip to content

Commit 3768151

Browse files
authored
Document CompositeMLDsa update to draft-08 breaking change (#49609)
1 parent ca93180 commit 3768151

File tree

4 files changed

+49
-1
lines changed

4 files changed

+49
-1
lines changed

docs/core/compatibility/10.0.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af
6161

6262
| Title | Type of change | Introduced version |
6363
|-------|-------------------|--------------------|
64+
| [CompositeMLDsa updated to draft-08](cryptography/10.0/composite-mldsa-draft-08.md) | Behavioral change | 10.0.0 |
6465
| [CoseSigner.Key can be null](cryptography/10.0/cosesigner-key-null.md) | Behavioral/source incompatible change | Preview 7 |
6566
| [MLDsa and SlhDsa 'SecretKey' members renamed](cryptography/10.0/mldsa-slhdsa-secretkey-to-privatekey.md) | Source incompatible | RC 1 |
6667
| [OpenSSL cryptographic primitives aren't supported on macOS](cryptography/10.0/openssl-macos-unsupported.md) | Behavioral change | Preview 6 |
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
title: "Breaking change - CompositeMLDsa updated to draft-08"
3+
description: "Learn about the breaking change in .NET 10 where CompositeMLDsa was updated from draft-07 to draft-08 of the Composite ML-DSA for use in X.509 Public Key Infrastructure specification."
4+
ms.date: 11/04/2025
5+
ai-usage: ai-assisted
6+
ms.custom: https://github.com/dotnet/docs/issue/48901
7+
---
8+
9+
# CompositeMLDsa updated to draft-08
10+
11+
<xref:System.Security.Cryptography.CompositeMLDsa> has moved from draft-07 to draft-08 of the [Composite ML-DSA for use in X.509 Public Key Infrastructure](https://datatracker.ietf.org/doc/draft-ietf-lamps-pq-composite-sigs/) specification. The draft-08 format is not compatible with the draft-07 signatures, and key export/import formats are also incompatible across the draft-07/draft-08 boundary. draft-08 and draft-09 are compatible.
12+
13+
## Version introduced
14+
15+
.NET 10 GA
16+
17+
## Previous behavior
18+
19+
In preview and RC releases of .NET 10, signatures were generated and validated according to draft-07 of Composite ML-DSA for use in X.509 Public Key Infrastructure.
20+
21+
Public key and private key export and import used the format from draft-07 of Composite ML-DSA for use in X.509 Public Key Infrastructure.
22+
23+
## New behavior
24+
25+
Starting in the .NET 10 GA release, signatures are generated and validated according to draft-08 of Composite ML-DSA for use in X.509 Public Key Infrastructure.
26+
27+
Public key and private key export and import use the format from draft-08 of Composite ML-DSA for use in X.509 Public Key Infrastructure.
28+
29+
## Type of breaking change
30+
31+
This change is a [behavioral change](../../categories.md#behavioral-change).
32+
33+
## Reason for change
34+
35+
This change was made to stay current with the underlying specification.
36+
37+
## Recommended action
38+
39+
The <xref:System.Security.Cryptography.CompositeMLDsa> class is marked as `[Experimental]`, partly because the specification isn't yet complete. Do not depend on this class in production.
40+
41+
Discard any previously generated keys and signatures.
42+
43+
## Affected APIs
44+
45+
- <xref:System.Security.Cryptography.CompositeMLDsa?displayProperty=fullName>

docs/core/compatibility/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ items:
7070
href: core-libraries/10.0/ymm-embedded-rounding.md
7171
- name: Cryptography
7272
items:
73+
- name: CompositeMLDsa updated to draft-08
74+
href: cryptography/10.0/composite-mldsa-draft-08.md
7375
- name: CoseSigner.Key can be null
7476
href: cryptography/10.0/cosesigner-key-null.md
7577
- name: Environment variable renamed to DOTNET_OPENSSL_VERSION_OVERRIDE

docs/core/whats-new/dotnet-10/libraries.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ private static bool VerifyWithExternalMu(MLDsa verifyingKey, ReadOnlySpan<byte>
156156

157157
#### Composite ML-DSA
158158

159-
.NET 10 introduces new types to support [ietf-lamps-pq-composite-sigs](https://datatracker.ietf.org/doc/draft-ietf-lamps-pq-composite-sigs/) (currently at draft 7), including the <xref:System.Security.Cryptography.CompositeMLDsa> and <xref:System.Security.Cryptography.CompositeMLDsaAlgorithm> types, with implementation of the primitive methods for RSA variants.
159+
.NET 10 introduces new types to support [ietf-lamps-pq-composite-sigs](https://datatracker.ietf.org/doc/draft-ietf-lamps-pq-composite-sigs/) (at draft 8 as of .NET 10 GA), including the <xref:System.Security.Cryptography.CompositeMLDsa> and <xref:System.Security.Cryptography.CompositeMLDsaAlgorithm> types, with implementation of the primitive methods for RSA variants.
160160

161161
```csharp
162162
var algorithm = CompositeMLDsaAlgorithm.MLDsa65WithRSA4096Pss;

0 commit comments

Comments
 (0)