<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-cms-composite-sigs-03" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Composite ML-DSA CMS">Composite ML-DSA for use in Cryptographic Message Syntax (CMS)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-composite-sigs-03"/>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road – Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <author initials="J." surname="Gray" fullname="John Gray">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road – Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>john.gray@entrust.com</email>
      </address>
    </author>
    <author initials="J." surname="Klaussner" fullname="Jan Klaussner">
      <organization>Bundesdruckerei GmbH</organization>
      <address>
        <postal>
          <street>Kommandantenstr. 18</street>
          <city>Berlin</city>
          <code>10969</code>
          <country>Germany</country>
        </postal>
        <email>jan.klaussner@bdr.de</email>
      </address>
    </author>
    <author initials="D." surname="Van Geest" fullname="Daniel Van Geest">
      <organization>CryptoNext Security</organization>
      <address>
        <postal>
          <street>‍16, Boulevard Saint-Germain</street>
          <city>Paris</city>
          <code>75007</code>
          <country>France</country>
        </postal>
        <email>daniel.vangeest@cryptonext-security.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="05"/>
    <area>Security</area>
    <workgroup>LAMPS</workgroup>
    <keyword>cms</keyword>
    <keyword>composite ml-dsa</keyword>
    <abstract>
      <?line 73?>

<t>Composite ML-DSA defines combinations of ML-DSA with RSA, ECDSA, and EdDSA.
This document specifies the conventions for using Composite ML-DSA algorithms within the Cryptographic Message Syntax (CMS).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://lamps-wg.github.io/cms-composite-sigs/draft-ietf-lamps-cms-composite-sigs.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lamps-cms-composite-sigs/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        LAMPS Working Group mailing list (<eref target="mailto:spams@ietf.org"/>),
        which is archived at <eref target="https://datatracker.ietf.org/wg/lamps/about/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spams/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/lamps-wg/cms-composite-sigs"/>.</t>
    </note>
  </front>
  <middle>
    <?line 79?>

<section anchor="sec-intro">
      <name>Introduction</name>
      <t><xref target="I-D.ietf-lamps-pq-composite-sigs"/> defines a collection of signature algorithms, referred to as Composite ML-DSA, which combine ML-DSA <xref target="FIPS204"/> with traditional algorithms RSASSA-PKCS1-v1.5, RSASSA-PSS, ECDSA, Ed25519, and Ed448.
This document acts as a companion to <xref target="I-D.ietf-lamps-pq-composite-sigs"/> by providing conventions for using Composite ML-DSA algorithms within the Cryptographic Message Syntax (CMS) <xref target="RFC5652"/>.</t>
      <section anchor="sec-terminology">
        <name>Conventions and Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
These words may also appear in this document in
lower case as plain English words, absent their normative meanings.
<?line -8?>
        </t>
        <t>This document is consistent with the terminology defined in <xref target="RFC9794"/>.</t>
      </section>
    </section>
    <section anchor="algorithm-identifiers">
      <name>Composite ML-DSA Algorithm Identifiers</name>
      <t>The same AlgorithmIdentifier is used to identify a Composite ML-DSA public key and signature algorithm.
The object identifiers for Composite ML-DSA algorithms are defined in <xref target="I-D.ietf-lamps-pq-composite-sigs"/>, and are reproduced here for convenience.
The parameters field of the AlgorithmIdentifier for the Composite ML-DSA public key and signature algorithm MUST be absent.</t>
      <sourcecode type="asn.1"><![CDATA[
id-MLDSA44-RSA2048-PSS-SHA256 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 37 }
id-MLDSA44-RSA2048-PKCS15-SHA256 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 38 }
id-MLDSA44-Ed25519-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 39 }
id-MLDSA44-ECDSA-P256-SHA256 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 40 }
id-MLDSA65-RSA3072-PSS-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 41 }
id-MLDSA65-RSA3072-PKCS15-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 42 }
id-MLDSA65-RSA4096-PSS-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 43 }
id-MLDSA65-RSA4096-PKCS15-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 44 }
id-MLDSA65-ECDSA-P256-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 45 }
id-MLDSA65-ECDSA-P384-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 46 }
id-MLDSA65-ECDSA-brainpoolP256r1-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 47 }
id-MLDSA65-Ed25519-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 48 }
id-MLDSA87-ECDSA-P384-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 49 }
id-MLDSA87-ECDSA-brainpoolP384r1-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 50 }
id-MLDSA87-Ed448-SHAKE256 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 51 }
id-MLDSA87-RSA3072-PSS-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 52 }
id-MLDSA87-RSA4096-PSS-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 53 }
id-MLDSA87-ECDSA-P521-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5)
   pkix(7) alg(6) 54 }
]]></sourcecode>
    </section>
    <section anchor="signed-data-conventions">
      <name>Signed-Data Conventions</name>
      <section anchor="pre-hashing">
        <name>Pre-Hashing</name>
        <t><xref target="RFC5652"/> specifies that digital signatures for CMS are produced using a digest of the message to be signed and the signer's private key.
At the time RFC 5652 was published, all signature algorithms supported in the CMS required a message digest to be calculated externally to that algorithm, which would then be supplied to the algorithm implementation when calculating and verifying signatures.
Since then, EdDSA <xref target="RFC8032"/> and ML-DSA <xref target="FIPS204"/> have also been standardized, and these algorithms support both a "pure" and "pre-hash" mode, although their use in CMS has only been defined for "pure" mode.</t>
        <t>Composite ML-DSA operates only in a "pre-hash" mode. However, unlike RSA and ECDSA each Composite ML-DSA algorithm is defined to be used with a single digest algorithm which is identified in the Composite ML-DSA algorithm name.
For example, id-MLDSA87-ECDSA-P521-SHA512 uses SHA-512 as its pre-hash digest algorithm.</t>
        <t>When Composite ML-DSA is used in CMS, the digest algorithm used by CMS SHALL be the same pre-hash digest algorithm used by the Composite ML-DSA algorithm.  A Composite ML-DSA algorithm might use additional digest algorithms for the internal component algorithms, e.g., in the case of id-MLDSA87-ECDSA-P384-SHA512 the traditional component uses SHA-384. These internal digest algorithms are irrelevant to Composite ML-DSA's use in CMS.</t>
      </section>
      <section anchor="signeddata-digestalgorithms">
        <name>SignedData digestAlgorithms</name>
        <t>The SignedData digestAlgorithms field includes the identifiers of the message digest algorithms used by one or more signer.
When signing with a Composite ML-DSA algorithm, this list of identifiers SHOULD include the corresponding digest algorithm from <xref target="digest-algs"/>.</t>
      </section>
      <section anchor="signature-generation-and-verification">
        <name>Signature Generation and Verification</name>
        <t><xref target="RFC5652"/> describes the two methods that are used to calculate and verify signatures in the CMS.
One method is used when signed attributes are present in the signedAttrs field of the relevant SignerInfo, and another is used when signed attributes are absent.
Use of signed attributes is preferred, but the conventions for signed-data without signed attributes is also described below for completeness.</t>
        <t>When signed attributes are absent, Composite ML-DSA signatures are computed over the content of the signed-data.
As described in <xref section="5.4" sectionFormat="of" target="RFC5652"/>, the "content" of a signed-data is the value of the encapContentInfo eContent OCTET STRING.
The tag and length octets are not included.</t>
        <t>When signed attributes are included, Composite ML-DSA signatures are computed over the complete DER encoding of the SignedAttrs value contained in the SignerInfo's signedAttrs field.
As described in <xref section="5.4" sectionFormat="of" target="RFC5652"/>, this encoding includes the tag and length octets, but an EXPLICIT SET OF tag is used rather than the IMPLICIT [0] tag that appears in the final message.
At a minimum, the signedAttrs field MUST include a content-type attribute and a message-digest attribute.
The message-digest attribute contains a hash of the content of the signed-data, where the content is as described for the absent signed attributes case above.
Recalculation of the hash value by the recipient is an important step in signature verification.</t>
        <t>Composite ML-DSA has a context string input that can be used to ensure that different signatures are generated for different application contexts.
When using Composite ML-DSA as specified in this document, the context string is set to the empty string.</t>
      </section>
      <section anchor="signerinfo-content">
        <name>SignerInfo Content</name>
        <t>When using Composite ML-DSA, the fields of a SignerInfo are used as follows:</t>
        <dl>
          <dt>digestAlgorithm:</dt>
          <dd>
            <t>Per <xref section="5.3" sectionFormat="of" target="RFC5652"/>, the digestAlgorithm field identifies the message digest algorithm used by the signer and any associated parameters.
This MUST be the same digest algorithm used by the Composite ML-DSA algorithm.
Per <xref target="RFC8933"/>, if the signedAttrs field is present in the SignerInfo, then the same digest algorithm MUST be used to compute both the digest of the SignedData encapContentInfo eContent, which is carried in the message-digest attribute, and the digest of the DER-encoded signedAttrs, which is passed to the signature algorithm.
See <xref target="digest-algs"/> for exact algorithm mappings.</t>
          </dd>
          <dt/>
          <dd>
            <t><xref target="RFC5754"/> defines the use of SHA-256 <xref target="FIPS180"/> (id-sha256) and SHA-512 <xref target="FIPS180"/> (id-sha512) in CMS. <xref target="RFC8702"/> defines the use of SHAKE256 <xref target="FIPS202"/> in CMS (id-shake256).
When id-sha256 or id-sha512 is used, the parameters field MUST be omitted.
When id-shake256 is used the parameters field MUST be omitted and the digest length MUST be 64 bytes.</t>
          </dd>
        </dl>
        <table anchor="digest-algs">
          <name>Digest Algorithms for Composite ML-DSA</name>
          <thead>
            <tr>
              <th align="left">Signature Algorithm</th>
              <th align="left">Digest Algorithms</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">id-MLDSA44-RSA2048-PSS-SHA256</td>
              <td align="left">id-sha256</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA44-RSA2048-PKCS15-SHA256</td>
              <td align="left">id-sha256</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA44-Ed25519-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA44-ECDSA-P256-SHA256</td>
              <td align="left">id-sha256</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-RSA3072-PSS-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-RSA3072-PKCS15-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-RSA4096-PSS-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-RSA4096-PKCS15-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-ECDSA-P256-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-ECDSA-P384-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-ECDSA-brainpoolP256r1-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-Ed25519-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-ECDSA-P384-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-ECDSA-brainpoolP384r1-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-Ed448-SHAKE256</td>
              <td align="left">id-shake256</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-RSA3072-PSS-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-RSA4096-PSS-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-ECDSA-P521-SHA512</td>
              <td align="left">id-sha512</td>
            </tr>
          </tbody>
        </table>
        <dl>
          <dt>signatureAlgorithm:</dt>
          <dd>
            <t>The signatureAlgorithm field MUST contain one of the Composite ML-DSA signature algorithm OIDs, and the parameters field MUST be absent. The algorithm OID MUST be one of the OIDs described in <xref target="algorithm-identifiers"/>.</t>
          </dd>
          <dt>signature:</dt>
          <dd>
            <t>The signature field contains the signature value resulting from the use of the Composite ML-DSA signature algorithm identified by the signatureAlgorithm field.
 The Composite ML-DSA signature-generation operation is specified in <xref section="4.2" sectionFormat="of" target="I-D.ietf-lamps-pq-composite-sigs"/>, and the signature-verification operation is specified in <xref section="4.3" sectionFormat="of" target="I-D.ietf-lamps-pq-composite-sigs"/>.
 Note that <xref section="5.6" sectionFormat="of" target="RFC5652"/> places further requirements on the successful verification of a signature.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="sec-asn1-module">
      <name>ASN.1 Module</name>
      <sourcecode type="asn.1"><![CDATA[
<CODE BEGINS>
Composite-MLDSA-CMS-2026
  { iso(1) identified-organization(3) dod(6) internet(1)
        security(5) mechanisms(5) pkix(7) id-mod(0)
        id-mod-composite-mldsa-cms-2026(TBDMOD) }

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS
  SIGNATURE-ALGORITHM, SMIME-CAPS
    FROM AlgorithmInformation-2009  -- [RFC5911]
      { iso(1) identified-organization(3) dod(6) internet(1)
        security(5) mechanisms(5) pkix(7) id-mod(0)
        id-mod-algorithmInformation-02(58) }

  sa-MLDSA44-RSA2048-PSS-SHA256, sa-MLDSA44-RSA2048-PKCS15-SHA256,
  sa-MLDSA44-Ed25519-SHA512, sa-MLDSA44-ECDSA-P256-SHA256,
  sa-MLDSA65-RSA3072-PSS-SHA512, sa-MLDSA65-RSA3072-PKCS15-SHA512,
  sa-MLDSA65-RSA4096-PSS-SHA512, sa-MLDSA65-RSA4096-PKCS15-SHA512,
  sa-MLDSA65-ECDSA-P256-SHA512, sa-MLDSA65-ECDSA-P384-SHA512,
  sa-MLDSA65-ECDSA-brainpoolP256r1-SHA512, sa-MLDSA65-Ed25519-SHA512,
  sa-MLDSA87-ECDSA-P384-SHA512,
  sa-MLDSA87-ECDSA-brainpoolP384r1-SHA512, sa-MLDSA87-Ed448-SHAKE256,
  sa-MLDSA87-RSA3072-PSS-SHA512, sa-MLDSA87-RSA4096-PSS-SHA512,
  sa-MLDSA87-ECDSA-P521-SHA512
   FROM Composite-MLDSA-2025
      { iso(1) identified-organization(3) dod(6) internet(1)
        security(5) mechanisms(5) pkix(7) id-mod(0)
        id-mod-composite-mldsa-2025(TBDCompositeMOD) }
;

--
-- Expand the signature algorithm set used by CMS [RFC5911]
--

SignatureAlgorithmSet SIGNATURE-ALGORITHM ::= {
  sa-MLDSA44-RSA2048-PSS-SHA256 |
  sa-MLDSA44-RSA2048-PKCS15-SHA256 |
  sa-MLDSA44-Ed25519-SHA512 |
  sa-MLDSA44-ECDSA-P256-SHA256 |
  sa-MLDSA65-RSA3072-PSS-SHA512 |
  sa-MLDSA65-RSA3072-PKCS15-SHA512 |
  sa-MLDSA65-RSA4096-PSS-SHA512 |
  sa-MLDSA65-RSA4096-PKCS15-SHA512 |
  sa-MLDSA65-ECDSA-P256-SHA512 |
  sa-MLDSA65-ECDSA-P384-SHA512 |
  sa-MLDSA65-ECDSA-brainpoolP256r1-SHA512 |
  sa-MLDSA65-Ed25519-SHA512 |
  sa-MLDSA87-ECDSA-P384-SHA512 |
  sa-MLDSA87-ECDSA-brainpoolP384r1-SHA512 |
  sa-MLDSA87-Ed448-SHAKE256 |
  sa-MLDSA87-RSA3072-PSS-SHA512 |
  sa-MLDSA87-RSA4096-PSS-SHA512 |
  sa-MLDSA87-ECDSA-P521-SHA512,
  ... }

--
-- Expand the S/MIME capabilities set used by CMS [RFC5911]
--

SMimeCaps SMIME-CAPS ::= {
  sa-MLDSA44-RSA2048-PSS-SHA256.&smimeCaps |
  sa-MLDSA44-RSA2048-PKCS15-SHA256.&smimeCaps |
  sa-MLDSA44-Ed25519-SHA512.&smimeCaps |
  sa-MLDSA44-ECDSA-P256-SHA256.&smimeCaps |
  sa-MLDSA65-RSA3072-PSS-SHA512.&smimeCaps |
  sa-MLDSA65-RSA3072-PKCS15-SHA512.&smimeCaps |
  sa-MLDSA65-RSA4096-PSS-SHA512.&smimeCaps |
  sa-MLDSA65-RSA4096-PKCS15-SHA512.&smimeCaps |
  sa-MLDSA65-ECDSA-P256-SHA512.&smimeCaps |
  sa-MLDSA65-ECDSA-P384-SHA512.&smimeCaps |
  sa-MLDSA65-ECDSA-brainpoolP256r1-SHA512.&smimeCaps |
  sa-MLDSA65-Ed25519-SHA512.&smimeCaps |
  sa-MLDSA87-ECDSA-P384-SHA512.&smimeCaps |
  sa-MLDSA87-ECDSA-brainpoolP384r1-SHA512.&smimeCaps |
  sa-MLDSA87-Ed448-SHAKE256.&smimeCaps |
  sa-MLDSA87-RSA3072-PSS-SHA512.&smimeCaps |
  sa-MLDSA87-RSA4096-PSS-SHA512.&smimeCaps |
  sa-MLDSA87-ECDSA-P521-SHA512.&smimeCaps,
  ... }

END
<CODE ENDS>
]]></sourcecode>
    </section>
    <section anchor="sec-iana">
      <name>IANA Considerations</name>
      <t>IANA is requested to allocate a value from the "SMI Security for PKIX Module Identifier" registry for the included ASN.1 module.</t>
      <ul spacing="normal">
        <li>
          <t>Decimal: IANA Assigned - <strong>Replace TBDCompositeMOD</strong></t>
        </li>
        <li>
          <t>Description: Composite-Signatures-CMS-2026 - id-mod-composite-mldsa-cms-2026</t>
        </li>
        <li>
          <t>References: This Document</t>
        </li>
      </ul>
      <!-- End of IANA Considerations section -->

</section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>All security considerations from <xref target="I-D.ietf-lamps-pq-composite-sigs"/> apply.</t>
      <t>Security of the Composite ML-DSA private key is critical.
Compromise of the private key will enable an adversary to forge arbitrary signatures.</t>
      <t>Composite ML-DSA depends on high-quality random numbers that are suitable for use in cryptography.
The use of inadequate pseudo-random number generators (PRNGs) to generate such values can significantly undermine the security properties offered by a cryptographic algorithm.
For instance, an attacker may find it much easier to reproduce the PRNG environment that produced any private keys, searching the resulting small set of possibilities, rather than brute-force searching the whole key space.
The generation of random numbers of a sufficient level of quality for use in cryptography is difficult; see Section 3.6.1 of <xref target="FIPS204"/> for some additional information.</t>
      <t>To avoid algorithm substitution attacks, the CMSAlgorithmProtection attribute defined in <xref target="RFC6211"/> SHOULD be included in signed attributes.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS180">
          <front>
            <title>Secure hash standard</title>
            <author>
              <organization/>
            </author>
            <date year="2015"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.180-4"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <reference anchor="FIPS202">
          <front>
            <title>SHA-3 standard :: permutation-based hash and extendable-output functions</title>
            <author>
              <organization/>
            </author>
            <date year="2015"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.202"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <reference anchor="FIPS204">
          <front>
            <title>Module-lattice-based digital signature standard</title>
            <author>
              <organization/>
            </author>
            <date month="August" year="2024"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.204"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <reference anchor="I-D.ietf-lamps-pq-composite-sigs">
          <front>
            <title>Composite ML-DSA for use in X.509 Public Key Infrastructure</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust</organization>
            </author>
            <author fullname="Massimiliano Pala" initials="M." surname="Pala">
              <organization>OpenCA Labs</organization>
            </author>
            <author fullname="Jan Klaußner" initials="J." surname="Klaußner">
              <organization>Bundesdruckerei GmbH</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <date day="7" month="January" year="2026"/>
            <abstract>
              <t>   This document defines combinations of US NIST ML-DSA in hybrid with
   traditional algorithms RSASSA-PKCS1-v1.5, RSASSA-PSS, ECDSA, Ed25519,
   and Ed448.  These combinations are tailored to meet regulatory
   guidelines.  Composite ML-DSA is applicable in applications that uses
   X.509 or PKIX data structures that accept ML-DSA, but where the
   operator wants extra protection against breaks or catastrophic bugs
   in ML-DSA, and where EUF-CMA-level security is acceptable.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-pq-composite-sigs-14"/>
        </reference>
        <reference anchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8933">
          <front>
            <title>Update to the Cryptographic Message Syntax (CMS) for Algorithm Identifier Protection</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="October" year="2020"/>
            <abstract>
              <t>This document updates the Cryptographic Message Syntax (CMS) specified in RFC 5652 to ensure that algorithm identifiers in signed-data and authenticated-data content types are adequately protected.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8933"/>
          <seriesInfo name="DOI" value="10.17487/RFC8933"/>
        </reference>
        <reference anchor="RFC5754">
          <front>
            <title>Using SHA2 Algorithms with Cryptographic Message Syntax</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2010"/>
            <abstract>
              <t>This document describes the conventions for using the Secure Hash Algorithm (SHA) message digest algorithms (SHA-224, SHA-256, SHA-384, SHA-512) with the Cryptographic Message Syntax (CMS). It also describes the conventions for using these algorithms with the CMS and the Digital Signature Algorithm (DSA), Rivest Shamir Adleman (RSA), and Elliptic Curve DSA (ECDSA) signature algorithms. Further, it provides SMIMECapabilities attribute values for each algorithm. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5754"/>
          <seriesInfo name="DOI" value="10.17487/RFC5754"/>
        </reference>
        <reference anchor="RFC8702">
          <front>
            <title>Use of the SHAKE One-Way Hash Functions in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="Q. Dang" initials="Q." surname="Dang"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This document updates the "Cryptographic Message Syntax (CMS) Algorithms" (RFC 3370) and describes the conventions for using the SHAKE family of hash functions in the Cryptographic Message Syntax as one-way hash functions with the RSA Probabilistic Signature Scheme (RSASSA-PSS) and Elliptic Curve Digital Signature Algorithm (ECDSA). The conventions for the associated signer public keys in CMS are also described.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8702"/>
          <seriesInfo name="DOI" value="10.17487/RFC8702"/>
        </reference>
        <reference anchor="RFC6211">
          <front>
            <title>Cryptographic Message Syntax (CMS) Algorithm Identifier Protection Attribute</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="April" year="2011"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS), unlike X.509/PKIX certificates, is vulnerable to algorithm substitution attacks. In an algorithm substitution attack, the attacker changes either the algorithm being used or the parameters of the algorithm in order to change the result of a signature verification process. In X.509 certificates, the signature algorithm is protected because it is duplicated in the TBSCertificate.signature field with the proviso that the validator is to compare both fields as part of the signature validation process. This document defines a new attribute that contains a copy of the relevant algorithm identifiers so that they are protected by the signature or authentication process. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6211"/>
          <seriesInfo name="DOI" value="10.17487/RFC6211"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9794">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="F. Driscoll" initials="F." surname="Driscoll"/>
            <author fullname="M. Parsons" initials="M." surname="Parsons"/>
            <author fullname="B. Hale" initials="B." surname="Hale"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>One aspect of the transition to post-quantum algorithms in cryptographic protocols is the development of hybrid schemes that incorporate both post-quantum and traditional asymmetric algorithms. This document defines terminology for such schemes. It is intended to be used as a reference and, hopefully, to ensure consistency and clarity across different protocols, standards, and organisations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9794"/>
          <seriesInfo name="DOI" value="10.17487/RFC9794"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC9882">
          <front>
            <title>Use of the ML-DSA Signature Algorithm in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="B. Salter" initials="B." surname="Salter"/>
            <author fullname="A. Raine" initials="A." surname="Raine"/>
            <author fullname="D. Van Geest" initials="D." surname="Van Geest"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>The Module-Lattice-Based Digital Signature Algorithm (ML-DSA), as defined by NIST in FIPS 204, is a post-quantum digital signature scheme that aims to be secure against an adversary in possession of a Cryptographically Relevant Quantum Computer (CRQC). This document specifies the conventions for using the ML-DSA signature algorithm with the Cryptographic Message Syntax (CMS). In addition, the algorithm identifier syntax is provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9882"/>
          <seriesInfo name="DOI" value="10.17487/RFC9882"/>
        </reference>
        <reference anchor="RFC8411">
          <front>
            <title>IANA Registration for the Cryptographic Algorithm Object Identifier Range</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="R. Andrews" initials="R." surname="Andrews"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>When the Curdle Security Working Group was chartered, a range of object identifiers was donated by DigiCert, Inc. for the purpose of registering the Edwards Elliptic Curve key agreement and signature algorithms. This donated set of OIDs allowed for shorter values than would be possible using the existing S/MIME or PKIX arcs. This document describes the donated range and the identifiers that were assigned from that range, transfers control of that range to IANA, and establishes IANA allocation policies for any future assignments within that range.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8411"/>
          <seriesInfo name="DOI" value="10.17487/RFC8411"/>
        </reference>
      </references>
    </references>
    <?line 369?>

<section anchor="examples">
      <name>Examples</name>
      <t>This appendix contains an example signed-data encoding with the id-MLDSA65-ECDSA-P256-SHA512 signature algorithm.</t>
      <t>It can be verified using the example public keys and certificates specified in <xref section="E" sectionFormat="of" target="I-D.ietf-lamps-pq-composite-sigs"/>.
Specifically, the following example:</t>
      <ul spacing="normal">
        <li>
          <t>tcId: id-MLDSA65-ECDSA-P256-SHA512</t>
        </li>
        <li>
          <t>x5c: Base64 of the DER encoding of the certificate.  Wrap this in PEM headers and footers to get a PEM certificate.</t>
        </li>
      </ul>
      <t>To keep example size down, the signing certificate is not included in the CMS encoding.
The example certificate from <xref target="I-D.ietf-lamps-pq-composite-sigs"/> used to sign the CMS content is self-signed.</t>
      <t>The following is an example of a signed-data with a single id-MLDSA65-ECDSA-P256-SHA512 signer, with signed attributes included:</t>
      <artwork><![CDATA[
-----BEGIN CMS-----
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
-----END CMS-----
]]></artwork>
      <artwork><![CDATA[
SEQUENCE {
  # signedData
  OBJECT_IDENTIFIER { 1.2.840.113549.1.7.2 }
  [0] {
    SEQUENCE {
      INTEGER { 1 }
      SET {
        SEQUENCE {
          # sha512
          OBJECT_IDENTIFIER { 2.16.840.1.101.3.4.2.3 }
        }
      }
      SEQUENCE {
        # data
        OBJECT_IDENTIFIER { 1.2.840.113549.1.7.1 }
        [0] {
          OCTET_STRING { "id-MLDSA65-ECDSA-P256-SHA512 signed-da
ta example with signed attributes" }
        }
      }
      SET {
        SEQUENCE {
          INTEGER { 1 }
          SEQUENCE {
            SEQUENCE {
              SET {
                SEQUENCE {
                  # organizationName
                  OBJECT_IDENTIFIER { 2.5.4.10 }
                  UTF8String { "IETF" }
                }
              }
              SET {
                SEQUENCE {
                  # organizationUnitName
                  OBJECT_IDENTIFIER { 2.5.4.11 }
                  UTF8String { "LAMPS" }
                }
              }
              SET {
                SEQUENCE {
                  # commonName
                  OBJECT_IDENTIFIER { 2.5.4.3 }
                  UTF8String { "id-MLDSA65-ECDSA-P256-SHA512" }
                }
              }
            }
            INTEGER { `5b43282ced27a7bfc2874f667c3231026f701f70`
 }
          }
          SEQUENCE {
            # sha512
            OBJECT_IDENTIFIER { 2.16.840.1.101.3.4.2.3 }
          }
          [0] {
            SEQUENCE {
              # contentType
              OBJECT_IDENTIFIER { 1.2.840.113549.1.9.3 }
              SET {
                # data
                OBJECT_IDENTIFIER { 1.2.840.113549.1.7.1 }
              }
            }
            SEQUENCE {
              # signingTime
              OBJECT_IDENTIFIER { 1.2.840.113549.1.9.5 }
              SET {
                UTCTime { "260121203920Z" }
              }
            }
            SEQUENCE {
              # messageDigest
              OBJECT_IDENTIFIER { 1.2.840.113549.1.9.4 }
              SET {
                OCTET_STRING { `88d87347f688afe2febdf4f37a2e1115
e14074925ee9611fcb7a8e22d252530ae846d6e71345b2744b6d523d3d874ebe
154ba8a6a8a1506b6d5bf18993c85f4d` }
              }
            }
          }
          SEQUENCE {
            OBJECT_IDENTIFIER { 1.3.6.1.5.5.7.6.45 }
          }
          OCTET_STRING { `12441c14b2fd180879fbaccd044403af8c4f26
34d98c483081fd04e645e234bb733c9d06333acbfdc509cfc2cc844126d4732d
2c359cdc93b0487e6ce56c8544d4abf6385b0dcc331c50dd7593b798014189b4
2985f79cfb25381390ad0f004a475c8bd2ce058c04363ee5d5a91a31072db3ed
fc421ab92c63a0bb6697acc72eb9bea9e44ca99cd8517c0fded8f95b3249e002
63edd9cd30d9d631080294f3aaa4e22b2e662e91de274d366f8b5d4ed55d5dae
c9653d9b2a5430b52c0e5673c43df56209b081925687d0af28a3e7c6b2de97ab
ebdde3557e5eb2e9acfc2779df24f5c93ccc966add87d55f36314f06e9063322
33268c721d1fb3eba6c5ed48b60159ddf279a48ed2862c3e8f679ced6ef0d5f9
ac5f317496d936c03c3121917c834a80887dd23b1ec6b3685f4276f457dce16e
33edd8d1e24cceeb4134f0bdd3e1c4341697cb8171ab0fc4e2031e78eb95cbde
821a575a0b52240566e300932b9e4f5c1b211368c5b5b702c705de9c2da976ce
1e1fc27eccdc1478bf554d983e97c5a45c7bda8bb68532569605264ad1f71e04
cfeb23000e3f580ba416aeac2afc9d1c5c8d5ece2950e8453fa61053c08e093a
120cb3f8dd4f9fcae3b18f3d6958b303bc886663d4f2a6c606404256825ba966
1a1c5635c12faa141f5d21d3972baaefab1d4f3b7c9a027f18cb54a0dd6a2089
ee66db786acac07e8fe1bf545c130557380d94c13da1c8eec3cb1200891955f8
b1a1a15a363bb946cae955d36715ab0665d44b79e46bb3956444606885e52013
580c43c0102963ea5e3f59785939c0351e59f1130bebfbfe17c935ae3aff6315
92f95bba9beec130ba0d7bc7bc4555de58647bd0b56922cc68002a3423ee8323
745d7bbdb9eb4e0a3008e5294a79428c9ad6cf9aacb77afc3278ebd26170bf56
2ff52d3a11c098eb606692cd1e1257f0c1902ff097b6215b5389d3dfb7b02d74
2835a39163cf84ec9f815b27faae71c6397b48371478d244c5dea56da74a8bf5
c90b80f4cf8a362d1f96524b403320db263783b8f941178d4b5b9eebf0368b4c
2c14b6912ce5ac2f217495955fd5574bc48d946b1c1040e4441dbf445c8e2681
5297efabf2aefb75b563bac9896c34f790e7e7f8422176292628eff1b2b1be9f
8ceb8b7d3d6cda6cac79f34d5522d7b1f18ce591a84a1d65daf7a242c2c4186a
90db66f5d480b3af39336c288cd522c50b8d7fe03afc77447f71208404090e1b
49b5ea51db92dd7a275ebd9b2b79981963cb7b39427458109a801729a29967ab
4ac8304bf37c3217a6ef541b33fd0264b1c85f1d47f7574e756f59a8b51f92ec
cdd51227a2e18d28f1bbb16f387925aaaf0735243e00292b3795943ea54805d8
30e5d382dce1937eaa3339953b2e6b1e46df2c217d3bd955a2892fbf6eedfff6
5adf6165136a73c35bb31908a59e070eb91c95227a8ff7f80bc7db84be667952
c7678765d99a15c5cbd018d140d8d40cc25737765684c11583af8333f2f4de04
436dd0fcdde5a5bab0b52e1b72967fde4e349163d2668ee7444c3c245ef209d2
fc0da0477b55a74f8156e25e0f40d5f2a1ad69949caed5eb795467bdb7927c4e
65c663b18e2d5467aacac7142ecd78ccf1b638d9f36a3a4b444573c23dec06fa
60587e8d0bf8cd6f766791a3860a7f27ba1ea795068541eee2330784e51a0152
308f9a2c4614f7e96f5f16e7f57c642aa8ff37192ea38aa2aaa9aa3bde45a708
5bf3a3a67c9434c69475774a37d1e1b2b1a8f4222eeee554f99e2da0242bdb96
02f6e904fc29f6cba6f11865babb45bb01fdc6ddf6576403056e4cd9115a6cb1
78bafc496b8eed4937a2402424a4c59f8cd753052b8072ce947d3191fb164ef6
411aa4cd38c91ce612de667b627237780209fad1d320c9b59667434e979d3183
04dbb59961e5d57dc6bebe09566662101c075b2b212fb81c5dfb2879b43be73b
6d40d7bf318f372b760cecf551c9eb24170884353588bbcb62ef0530074a9677
2a31170ed82dca829aa944c290ace9f04ae3ea3c77e214022e07681d5039f5a1
bffe5ea6785003519d91e65df9fe9f66c7f9e4fc11c119d578de2f215ec891d1
0d1d1a67213474a272540f5ae7af58c074184e92953043e9f51b6896434194c6
58a50c2fc21960d5172bcb8bfa59a99729a6a06ce737410e3c9cd7592325054e
21408463d178005ebb0553521145366d21ab3732ec02a8860e993e160b771ae4
7d1dd0d1b8cc66fb3aaea6b5ed5bf2cf142dd070e064224ef47fd7d41b0e0676
25a63727a14f162cf3ca80e13f35fbed8a9c7ca42d95e48ab9bfaba2ee31d9e8
6d53a1b235c7b6ab3889b9fa7474812e51ee05b1d541f87ac11a5460f190b3a4
4d5d64c70ab70734679762d4aee968775b0b56ed72fe654ffa0fee06af86de54
d68f8f3aad3542bea5a3f8fee265782c112a1bc7b90c365bc24de0da50f7407f
8c3450701ad2d047784907d0f8b3d3cfe26961c3d2e67ab644353a96371b1996
72faa8979e355f7117279a5d400ec3533fb6f8ac2abf370dc14efdf613a31e7c
4e5d6735f8158d556e0ce13fcbd98d3bf825bb29a2af1fa4eae37e1a59e0f456
17ee602562a16ec55cedb24bd6a6b02b8271ac3f9f149b326753105b7ae5c78b
a36daae7b4edba06d0092e6010264aa80daf73210ab3e81d0f1d47192ffd3b75
dff55a58bc468d5b935989bd38e00de05d165bab79dd376719c94a37145fd7c2
c7cf5eb6ab059ba0c70eef9db76674a90b6fd220e674f465765057d70ae5eea2
51f6d6477b3af8bbc63ea49b880d4340b339034b5dc9b083c8e06fbaf4d1b012
6a51ed770fdca9167a77aeeb752d675ff194b15d50b04155468f24f54bffc0b0
756f18d18543c583534edf977ed073d083fc72b5da674146ffd0430de23000f9
8711e6cfbe1b1882a6b8d9ac3cfb5cb3f22d7e6c68becba370f8301ec6a1f0a8
1d490bf6b2898af6dc7f05ae620bd9cbb66f0357704fa54c79e6cbf6de5bd53b
94fee4f1e5f9700a4d879d09506c11fb102b846531bb91c779051cef45286ba7
fef03312ac664c6afa6a55a602da322c9ed90c45eb4d92be10b76ea82bf02076
791e887a1f358b3f30e66be24c2b95ff0415692a806ed13bd097cc79f449f5f8
d61f1c515c9753228e44031c6941e7a2c1317b70c890e7ea21b9dac9094f374d
b058775780a02520bc1d7ae679f3f0b35506b74b9754d04210c5264994c60480
34530f2d2c15bdac16e495b044deafa753a7ca01213862adadfbd794e6b2e731
3e75c5fb975d5c4328f054d8cd173d824a545c1422a6b9297e1c26230d9dfba9
2151d9035257af3e6d5cd16652141c6ed325f6c58174f13ebcac009d3a010f72
5823af025112866fc9e4c492d3d3c3ec9a3cfd82a616252271954c8bb1a09bad
8cfcbd68af485067706c3684e629c2b9afc0dacaf897a195c7e544edc43dc509
608ecd447b7cb28495e09e8b86b0165978d024abbb0f5d8fe0a012b48ba5047b
320db566fd69ba9586d89c63925a287bcf132174d0d4d2dbe5b35c21a598377e
877a989e9cacd70fb4a5239a549ffcc1ab7ecb2dc16ecb88cc2f91eac0e47761
4cb03db59a7e5a6a89f4b4918533a45c5950c2764594ddd1515508cac61d1fca
a2fce8cd76f0e1d31a7b29a9dfd5b22ab8c4cf6e0e6c74934a09552360b676d5
a3f70f6bc70c35bd0ab37729c16077eb9051a12f59daf456025a2bc54d16d1fe
e6364e74fc908c91b2d86a78b79dc5b442de690b4d6666c298bd3bb844883bbf
00a035dd54df86deae7a3a8698be10243a35179ea4f1948c91a51ad9c9cc60df
2a98c0a46b3245ac128a96766aa1f33b089cd4c662c01da3e0e897ba58f529a4
da73153d16474c30a6a0d09d7b3af314de4ad11c9d07030aa33bdf4a4044916e
d4a9a84d537061b699015fbd9861c1cc616319348efbad85910e32fdf5cf6b31
0f4b46eca7606179283da331ff4d2e47a57a527c83ddc94d163501d2acd6f88e
bd0de3fe52e3b9e9fc078db43dbd2e78b252890afe75e8280be8cde2a3386ae0
b85becf0c716e74ef8925033cfc4a19220416b2eb42a55fc6a52b5c8fca601d4
a80b97c49ee29e741e8ff9f1961caf790ab8027c4152405f47100b2aa2a3d8f2
2546436fd09cf3918da7ad41f148214ea7e03917ae14077c76f5f3db464b7d3c
578219632abbff6d64528d51765fb84b8a13a268d409020c7ea455da7a187995
374572450c0f32d4d49f24b4bea6e9585c75187d7a7a2038b92faf80cce28ff5
8f8f1f2203c8babb585fe90abb15912f4f3ccbbc2c5389e96b08e4fba73c532e
eae0d76b86ec0c1357c1791cb52f1b0068c30ad8cf0e35322b88281b42725f10
de162f48abfa2a81c1be61cd72ea5c9971cf55a77ece5947d2f73a143587db08
7a285f15f3569e82e5174ab6a4c9c43202eff8c71bc7bc506450a33a39d64042
9e773b7d8ccf95f8daa5d674027597e77e09b602f9c258bc9ea880f81d3d7057
49af5b22ca152b684a68d5da9105c6d6067edab5dac0faf30d95cc1ce7d52c86
4b04ef6b48459f52a7b51a151978c08b5ed5f62de5ae0094c2b6e21fc4232dd6
d7e7001a6f7ea2baca1c6e8e96bdedf3436c9dd2ec061628484d393c557dddef
f400000000000000000000000000000000000000050c13181d243045022100ae
b6214771606e55ea5ca9ba644ad3b0ee780c19d7aa031e0fa56a0cb8e01d9002
205e91bd3cb5e7fe7a80e9830fbcd9c88bbcd00c0dee72ace017ba648cc37e0a
b6` }
        }
      }
    }
  }
}
]]></artwork>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors wish to thank Piotr Popis (Enigma) for his valuable feedback on this document.</t>
      <t>Thanks to the co-authors of <xref target="RFC9882"/>, Ben Salter and Adam Raine, this document borrows heavily
from that one. "Copying always makes things easier and less error prone" - <xref target="RFC8411"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
0TxbEuptaZ/bj/ODdruaz3SeOoNOqd7W9vlMeq2Wzwzq7b7c7j8XlvVcvZSR
+4XMfu+SYTvp9Q8FASIqja5cbEudXrsrt+vzvlIbNCpt3K1PK/2hVA9rTSlY
m4+5mWSvvHzlkFnZ+7Ka4RM/CePKpJIZ9vPZTCUfVkpP9ey0lOtuSt2Ko+bb
hafMcwEKXGxmC79k76Vsdl/YlzOvShcy7UWx3rZG+V5FqecLRyhpX39eHOvF
cN/bX1tnUaj3K4V2ZT52JU/xq4/+Y6RKgqWG20JnNGuXu93RdjkrW4kx92vd
/rJeNQrOUD80inHQqTmDit0a0+ZuNqhtqiQMB9nIGewOgj9pVUYSFDkdV6r7
cTbb7pezvlSYTiWpsGi7xVrNLmVm+p3x3MgW2vlIO7Se5r3JvDDdTz2pIOiL
kd+oJc+tJ6lUf45qj27/6dmq1WeFwkou15NafuiqT819t6zH+vBY7DS6kT2f
OXl3/1wu5qlAJ011lSlmfae9nnnMvTv2tYKeS/L7bLUjH2tSrBXnmbbS2o4G
m054yB6VZ9M75ErRIh4bOVOYrFl8OBr6bhMsetWVqxSLVt42x3eD+Nhlmdz4
Tp089/ITeV6oZNa9582m51eP+qq2LrMnSVIER0toLxnQETGfJj3FqS7b+6S7
bw6CVqHlDfyck8sulqQsVa0wvPNKcWKMNnc7qsmDu1FUWwtRa48ItBa2u7Ce
nyYbdewNRs/jQ2/vrLPzul8/kro7k7z4brs6MLmSTIsT1XvS1xWzO/P3d8Jc
Ya45NPeyt4pHz0VpmSyUfX5/qEyK1lTaZPyy2m0ezFKszLx24EgD+3nmzFuJ
0ij7vboZCe1eb7+jrdkh3x4urW3WJXHr0Kzky8E8Wro7Np2tR8Np0n3KDFba
Pter6noLcTcrKPNi4rg54bAfsSCnrGmssbL1dPfc2PdZzR70JtO7pTVcjMo7
4pukWF+SYbY7qUqey7L1x6iyzzRb8rQmrLNkG+UiK+gc3PnAbFYH+bDTu1sV
iq3MfLowCtPj811DbgVWNI/Hlk0G/nPGPFYmq1bf2jglIbvI5gbhk7MZjkm5
OJb33btNMWvTCm2Oqka02xzkVlM9kkxgjY9yd6oOw6nP9JWizjbHOAsl3pUe
B8V9Lztwtfykl22RcsWMW7XCNPdUGoy0mJRmw/nY3PadqjEY9SaHYZRdjfpd
NVgQszkQJoXOlFRGy0q2Mc4XWplCbjk3ltrjcDSbNN2MXF4Gh8J+F909aqNj
b7ht7ux5cVLTh+bGMePCXthOZfNgHooDqo8n5V07GS7859I0U52352ZYn9Oi
bO6cIOpNw32u2V93g2Vu/hQNn/VNnKiRJdRhLmlV3O/k8c7uSkbBzY0NJbta
xBIrLL39fpLZWU9MqQySnk9bXmJmEpqbyqFenD9rvVgItKLz9LjZuu5YZ9JU
LZbn3U59xNZDJeiGO/nY3mbs+l214UvecvlUa+frU+U4VqfmXG93WEPoyltm
PGYUX9rHxRrp1JrDuHaER04GnjygtUNF6ZPDvt1udgplxy6MKtpqOqiOTGN3
jHaJLCTDpnEcL+NGi7X1O09r+0Wl2h2H5mPpGDuGN29ua15PjpXVMWZeozHo
1kaxV6rrk1LYnclLQdkxvx3XCqXSpq0ojixXcs/R8+LZyfl1uVsr5jT5UctH
FpU6j243V8hmFs2StJKNZdlZJLIhPMmGvTom+iq7nB/VWG8HnXHhaZMpHlHv
D1nUjaf77mPDqs/YypTbTv1Ryk1q5croIJdtmTYFOrQnm1rfW2yfG3KnEoTb
UqPaKpnx0NJYd7iJ9q78lNcy1W6sLiftu3V/WlTy+aWk1Vxt0rgTNvO6vuzF
W3LQS+pxP/N6u8mAVJ9qpr01vUdlmNizSaexca2GEx8WlfVEK+ejhbvsPhnz
R08TcpbnzGr6ig1q5YlGl8okHBzcXbvUKGaURru+X7oqXZLCvjMEItefrV2P
ZQuNRGo9U50MDSGu9bcltTr0bL3ZeCrOpRVp6lKn3sp1mDUNurDwtKMmg7V0
lx1sn1heyg+sTSkhk64bJaNIYINOsHNY1yvoy8OqeZj7cn9iRNXDob19Hs3r
ljPWFK+xaS4S5J9WrsX2pbtVduyFUu2uLu8EumKdUBtXvSMzyhs2yCLlmNvK
c1brLUvTYrdeuSO1wrhv3y13o4MT2KPDorqZPzYOi22obXxhs1ltmrZeXO9n
jmU0V95TWzqsOzKVQlVicCYylyq+udUHPT3wlelTbucspzXFaPesqucAkXaF
8cTZmB0nzj66DrWXdJHZD7a9xqIzXB0PrBZZXUSx2V+o4SKzeKr2ioH2POrv
+9G0XGsKy7J0WHjxENbLlja9RrO+cPVZjU0ClP5zqmWmgSHR+vToDIcTqdFc
6tJhuu85yWQ50+nAFg6RcZcbTFbjWcbNynFU6d5p5aJqVssrqXnnmk4/P9o9
l1qNY6Lkm89y3w2ip6xbmeX7sl/b1YTx1irWM7S6DNxNveM2lZxana436069
2o6awb67bW1aZc8vZirbrDKl/Xwgh87j3Wgz0fqZRkcIJuXVyAvuAsUp37Ge
VXALE3k0Zwhpdnwqd/IdiUyOBYlWn46DjE10wx7vy+1xb10d1AuttWB3knC5
aGSX9cl43d7v9rPlVO6gutR2xpCsRlVCpk7TVdttzQoadFI59os9yDMrtTos
k2XCdj/o9WfFYmMlzTbP7tHMVMPZ1Ji0ZuMaPUQLr6O2JWden+xiI9oQ2Rzs
js+HdiKV89NJ7qkp2OXHkZyNm9lgvFzP3SDsW8Naq1WdNguPDW+X+OuDtc4p
A72y0XfG1jfn5YlRknuhU5EPJomEZmWl3wUdadrVO+Z0eJD7ZY3FBTIo5Q+L
WnPRG8iLw36jZp87wVKp9aPtMqRyXBts5ePjatAS7qaP2+zmrqQue8O5ZhlR
b5DbbYbzu5bpT0bTuNANnYO5qDeWu1yP5Um/RTOetpf65QyRkmxZYIVFWWr5
z5L16JNhOS9tJ0ayaMvN9VgtHVZDd7cJl7omj9TCCKyAtjNmvv98p9xV95vd
M3jivm/a9qw5LweH5mjoynfZYWMw1Opa77GmjCXzLjc0q6S6Kxu9jaZqZIiA
Hsy87Tg38MOhWRRGTeXYtckqzm1zLtk/BoeuU1/RXqGYGLrLaqGibHSzl2yn
TjvX1aeF3KS6ySg791ioxndTKuQBjqXuo91UR549WI93BdIY6o2J70iallGn
ow5CTQ1oQ3Enx36oFouPo33stUYRibKT7RQEw9wFDl3R6qLm2JWpHvSkyWjS
HthuVWeG3/ecYUeNjbvartTadB0/I+fbtbqekRJ6dHJ54djM7ra7XifOPm36
TFbz9nFdDNZqtE3k2pB61qR7GA1y+/ZgUJofe3L38TETlwe7UqNUbFvDPOi+
6S1Vs+3aufxjuSorK5rt7B7b7b3q1zN5fXYor55NzSlVqqttYxW3WokbP1YS
b3UId/F2Lrit6b4ck5lVndJue6fE4apqJ4fHLNH9nB3UkpWVH6jZ1rp/0PV4
p6jL3aCp9+70Vnl5N8pUhd6Y0dwgGxe8uF3VOsu6s+0c1EWx3LSL1dI2eNyh
YtgcVr1SZJDlcJVJwmPtyZzkC6OoN6neCYUa3W5yu32lPNHL4cwoPyMUnvMr
cvdUr+qjx2x2sK6G2a3U27WX1kG3C4F81xh75WLRXcp1X5gv2vlyaZnVjVq2
Pkr2x6d8YPglXYkXT71n2oiLM3Wg5aZP3ZxVHkUr5rX2sdwvJRLYdyObE1CG
rLqTXilbyUj9vZXUskM7yjqLpZMtqJu7oG941Uy3oI03SnJns74e1YJ6T5cP
3nY0GhzyQrWV7St1adRCdQO21q9siF4dae6TX28E3nZdGZQnGflpFD3ryahR
XPVnbddJ6ks7HmZpq3An7Kr7TNALs3n1aVwxrFy/Uy05VrA4PNV6ktWKV/Nn
e7oZD5+6T4dl/1iLSc6JxkiRQ3/XLWYDwS3tlVlzvN5Hq92+EVXvnths6XrL
TlMttFC9jCtmo1NOrDjsDrQnozaLMsPhaN5+qm7NvKy0BA0rTCrbZbYcH/PO
YPU4XBnLsTMOSs3u0J+Zz4f6jDbyfSnZLWN5P1tPpqoXUmP1ZLhRw20JSbU/
Xy273mO9FHlxnOyHZs2v73cLFmX0Mp31ahk7mazvhqvNk13rdma95mJURFUS
TIrLhtoR+oN+5RiPadna+I/NeYPu8jMkR2BA4MlOZbOt91rOVI/pU6OaG/Tn
49pEkUlLzSu7cj4/tIVc1FCrbnFK77btPinshjSSBtMnUrUGjWJSvtPnkyZt
Hdvzp9JRKa21RFeLSaHGSDtpTFZOTljVJHNb6FaappUJ8yM6aAAfN7rRDMl4
NwMlm/dHwaZ3WFaOnXUnmhzdw1Q9bsb7aieqL4axUAg3Q7razKznuBI0eqVx
nKHhXT5cmuux3V0tlKA+aHUm5V4+twobOcpAAosNvSp1jjS7r1eF8HnndRfZ
wmJo9jdk1uir2VmyXmRHpjIeu+X6eFifNCqmGY2Hnfy8ZtuuHdXbdq2zPQbj
UlEXqnllXvfsRm3Blmz5ZE1t9anXGcvIt7G885u7tjp/XNbmWxZYWU2RWo60
ZbWnrt+O7iibhkLubt7QNnWNbHPa8O55fwCN6e38bj/fah2qpW6lUIxqUXsz
8A6bfjSqPFbHWbk6rS2tLtPWuiSUw0fdmozdSF1Ut5knqz14yowkt507bvzQ
nh+f+pO8Y+dcSy811oactfrTWW/jTZsdti1mqCXQ3ehZkSYg1IfRdLacV6Pd
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

-->

</rfc>
