@@ -42,7 +42,7 @@ informative:
4242 RFC5246 :
4343 RFC8446 :
4444 TLSIANA : I-D.ietf-tls-rfc8447bis
45- I-D.ietf-lamps-dilithium-certificates :
45+ MLDSACERTS : I-D.ietf-lamps-dilithium-certificates
4646
4747
4848
@@ -60,45 +60,46 @@ ML-DSA is a post-quantum module-lattice based digital signature algorothm
6060standardised by NIST in {{!FIPS204=DOI.10.6028/NIST.FIPS.204}}.
6161
6262This memo specifies how ML-DSA can be negotiated for authentication in TLS 1.3
63- via the " signature_algorithms" and " signature_algorithms_cert" extensions.
63+ via the ` signature_algorithms` and ` signature_algorithms_cert` extensions.
6464
6565# Conventions and Definitions
6666
6767{::boilerplate bcp14-tagged}
6868
69- # ML-DSA SignatureSchemes Types
69+ # ML-DSA SignatureScheme values
70+
7071As defined in {{RFC8446}}, the SignatureScheme namespace is used for
7172the negotiation of signature scheme for authentication via the
72- " signature_algorithms" and "signature_algorithms_cert" extensions.
73- This document adds three new SignatureSchemes
74- types for the three ML-DSA parameter sets as follows.
75-
76- ~~~
77- enum {
78- mldsa44(0x0904),
79- mldsa65(0x0905),
80- mldsa87(0x0906)
81- } SignatureScheme;
82- ~~~
83-
84- These correspond to ML-DSA-44, ML-DSA-65, and ML-DSA-87 defined
85- in {{FIPS204}} respectively. Note that these are different
86- from the HashML-DSA pre-hashed variants defined in Section 5.4 of {{FIPS204}}.
87-
88- If one of those SignatureSchemes values is used in a CertificateVerify message,
73+ ` signature_algorithms` and `signature_algorithms_cert` extensions.
74+ This document adds three new SignatureScheme values for the three
75+ ML-DSA parameter sets from {{FIPS204}} as follows.
76+
77+ | SignatureScheme | FIPS 204 | Certificate AlgorithmIdentifier |
78+ |-----------------|-----------|---------------------------------|
79+ | mldsa44(0x0904) | ML-DSA-44 | id-ML-DSA-44 |
80+ | mldsa65(0x0905) | ML-DSA-65 | id-ML-DSA-64 |
81+ | mldsa87(0x0906) | ML-DSA-87 | id-ML-DSA-87 |
82+ {: # schemes title="SignatureSchemes for ML-DSA" }
83+
84+ Note that these are different from the HashML-DSA pre-hashed
85+ variants defined in Section 5.4 of {{FIPS204}}.
86+
87+ # # Certificate chain
88+ For the purpose of signalling support for signatures on certificates
89+ as per {{Section 4.2.4 of RFC8446}}, these values indicate support
90+ for signing using the given AlgorithmIdentifier shown in {{schemes}}
91+ as defined in {{MLDSACERTS}}.
92+
93+ # # Handshake signature
94+ When one of those SignatureScheme values is used in a CertificateVerify message,
8995then the signature MUST be computed and verified as specified in
90- {{Section 4.4.3 of RFC8446}}, and the corresponding end-entity certificate MUST
91- use id-ML-DSA-44, id-ML-DSA-65, id-ML-DSA-87 respectively as
92- defined in {{I-D.ietf-lamps-dilithium-certificates}}.
96+ {{Section 4.4.3 of RFC8446}}, and the corresponding end-entity
97+ certificate MUST use the corresponding AlgorithmIdentifier from {{schemes}}.
9398
9499The context parameter defined in {{FIPS204}} Algorithm 2 and 3
95100MUST be the empty string.
96101
97- Presence of those schemes in "signature_algorithms_cert" or
98- " signature_algorithms" (when the former is not sent) indicates support
99- for certificates signed by those algorithms in the Certificate message,
100- as specified in {{Section 4.2.4 of RFC8446}}.
101-
102+ # # TLS 1.2
102103The schemes defined in this document MUST NOT be used in TLS 1.2 {{RFC5246}}.
103104A peer that receives ServerKeyExchange or CertificateVerify message in a TLS
1041051.2 connection with schemes defined in this document MUST abort the connection
0 commit comments