<?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-00" 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-00"/>
    <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="January" day="21"/>
    <area>Security</area>
    <workgroup>LAMPS</workgroup>
    <keyword>cms</keyword>
    <keyword>composite ml-dsa</keyword>
    <abstract>
      <?line 83?>

<t>Composite ML-DSA defines combinations of ML-DSA, as defined by NIST in FIPS 204, 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 89?>

<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>Many ASN.1 data structure types use the AlgorithmIdentifier type to identify cryptographic algorithms.
In the CMS, AlgorithmIdentifiers are used to identify Composite ML-DSA signatures in the signed-data content type.
They may also appear in X.509 certificates used to verify those signatures.
The same AlgorithmIdentifiers are used to identify Composite ML-DSA public keys and signature algorithms.
<xref target="I-D.ietf-lamps-pq-composite-sigs"/> describes the use of Composite ML-DSA in X.509 certificates.
The AlgorithmIdentifier type is defined as follows:</t>
      <sourcecode type="asn.1"><![CDATA[
AlgorithmIdentifier{ALGORITHM-TYPE, ALGORITHM-TYPE:AlgorithmSet} ::=
        SEQUENCE {
            algorithm   ALGORITHM-TYPE.&id({AlgorithmSet}),
            parameters  ALGORITHM-TYPE.
                   &Params({AlgorithmSet}{@algorithm}) OPTIONAL
        }
]]></sourcecode>
      <aside>
        <t>NOTE: The above syntax is from <xref target="RFC5911"/> and is compatible with the
  2021 ASN.1 syntax <xref target="X680"/>. See <xref target="RFC5280"/> for the 1988 ASN.1 syntax.</t>
      </aside>
      <t>The fields in the AlgorithmIdentifier type have the following meanings:</t>
      <dl>
        <dt>algorithm:</dt>
        <dd>
          <t>The algorithm field contains an OID that identifies the cryptographic algorithm in use.
The OIDs for Composite ML-DSA algorithms are described below.</t>
        </dd>
        <dt>parameters:</dt>
        <dd>
          <t>The parameters field contains parameter information for the algorithm identified by the OID in the algorithm field.
Each Composite ML-DSA parameter set is identified by its own algorithm OID, so there is no relevant information to include in this field.
As such, parameters MUST be omitted when encoding a Composite ML-DSA AlgorithmIdentifier.</t>
        </dd>
      </dl>
      <t>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.</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, these 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.
There MAY be any number of elements in the collection, including zero.
When signing with a Composite ML-DSA algorithm, the list of identifiers MAY include a digest algorithm from <xref target="digest-algs"/>.
The digest algorithm(s) included will depend on the Composite ML-DSA algorithm(s) used for signing.
If such a digest algorithm is present, the algorithm parameters field MUST be absent.</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 used 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="RFC5911">
          <front>
            <title>New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5911"/>
          <seriesInfo name="DOI" value="10.17487/RFC5911"/>
        </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="X680" target="https://www.itu.int/rec/T-REC-X.680">
          <front>
            <title>Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.680"/>
          <seriesInfo name="ISO/IEC" value="8824-1:2021"/>
        </reference>
        <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="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </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 413?>

<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 { `7013120c0ccae243aaf17470dace0125bc6d2ce0`
 }
          }
          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 { "251208175211Z" }
              }
            }
            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 { `ab1ac0484ac44f3abeaf2127a18841180d1cf9
039e26dd0a43a296fdbcf913fc496272ee522da050a73b0d0b007f38452a5ac8
b737db9aedfef0627eb0c87358561ec059d9cde4ff7048952c712154f0753b02
f72ffeb7492d03c501fe9fcec0a4ec590b99d5f27c9ee408c6bc20b130629bdc
feffec9f35c0832c2c98aececb9731522c3f9cee279fb781eae57d4c328f224a
31bdcf4566257e2fb14b1a644381d4d9b1492ea1b44f1ba62aecdba9c4dc3a2b
b2947c0b572657127ebe41411e57e938fdd8a437b67435927ea38780dd810d52
7547dff77f6b16fc359c35432c9e18a11fe854ba0537298289dfcd4ea81d968c
f8c896d11a335dcabb2ae7364cf64a07263f426aff2b91766082f983c0c9aec3
6bf09790ad27f708da802e419e678b0a8e2720e15e4451d6e062488e0750e0fd
3e6720e764cb8eef54506d9bc9374f5465143e79990c5441fafddee91afce0f2
cfb81259ea5a9b5dce113d8a3cec2019f37989f7cdb135baab6be9e058dd19d2
ecf5f633275d1b75de958c50b9a1b735008c3bc90568c44a347e31b9cb1c1a7b
3adba3f7151cfd4af93dcbb29fa8f3e5549b16be58a744f785afde498bae37e5
7d0d424c52a736234e17ddccd2b6351a3dac60171456a5b198e7cb9d2c724313
2c4a6fcbf820868aff43715ffffa3868b0dd4b61d81a60dd20ee902261ceacb7
f4ec7837df016d5e1516e8a999ffb79145368f757d3af219bc2ae57b63d6764f
8ea1e3079a0404112a2825c5607051a85fb5cc104f10b545aff64bd6b7773be5
be25a37b0e260fde5834f38fc1a93277eedb9fb94de161a3ae8c310823dd04a9
2b03bf9eea64ffc19a78e6e2311dd18d0441258f0b20dbc174f25bcfbbafc497
f4a4d856131871876da39e29268d82039556d2152f15ce0dacab3bb878e28414
73a68a503732d66b55fbecb3436487072d8d3716c4c8ed39fe16ca9f9f9d9905
56b6fa4001d1a7a587e846f6a604242f6a413fe9fb15a32cfe30dedfa2793661
110368536a1dff48f90505ac730f76c0ae1800dee7881cbf905cabce04cbe443
cff5a1a4ce8147345a37c9ed5bbe7d35a7a876019c756e2660516f30b403396f
b1b78fbbc376f9f3a553cad3ac3540e8013edf49b8c14cfdd9366e664f8fa979
08721198271a8369c65b737e8911a4869ad03aae7054174f5916f6895e305181
75259f71b458d2d4aa1945e526a08e4e2a2198a11f824b9c954b64f1b0d50bd0
e13b0fe8872a6e00bb96d566a7fec8dd1ca5cb14822b47719bea735b3e87da68
49dbfa0ab824f4e2de68a4072fb4507fb7605dda2aca933b0bacff2fbc767e97
3c1269d7cee5b7903ac331d20f870a31b8e021138cb4b9ab4efc1b9de9396f4a
649213156cf141631f22872fb50d4d0fb9945d3899a97da9c337c1c9bacac259
b66ac22c31acd8c9c03ec879c7d72c42292258a77d7d33f35a78b5c2614a1e29
adda5aa4878873570de22518f362697ea80a12d8da1a88bd97217405724593e9
1eadcd83f3fac4b64f4ed529a0791f1aeb39e728fb95c38e95d2d5a779beb9ba
665415541b9307e294bff586637721124c59cbdbb3af40f7fab601fc3503a07b
2d64817ada1d9a83b83a5dec4a4b2d141e43a03f90cdfee958fb9c6d5a046799
162cc29be17199a1f02b2077809adff990c1d68fe1560880ac5488dfaf4aad93
ffc8902dd7775b0bb4acc82bc1dc4b7cb79e53535d8637c7ee386e4c274d768c
eda1c32913b34cdcfa22ead0e1d397fb1934b4b85691bf4f982f0aaafcc5ddc5
0cce66b56924af5dab465121d89ff11dea9e3fe44eb6db204ea5442d5bdfac0f
928c2b3781e6859cb2cf08454573227b59e8c4c8f3145de33054aa6525b42cf3
66163c0c6cca3f5fec7de36708bd97498fc25099f54fe3649d0438fb62f66543
4577fe10bfa808a195450380cb598c2347c596e22907cc29f180e16f156bf91b
950348cf31ebbaabe8f4fcae76dede9e7e258d0ec98c84233d49a73919427f75
4e4040e34871cda436e16b5c66f4a3ecd2ec153caf83dbd5b1dfccda63ec00c4
92c9ae9b97a9efa589615515e2ee4fe210bf9207892a11ee9123343380c6cd3f
b576d23d1a8bc861ee3903eeea855838346cc384d5bd315bc6ecccbdb294a39f
47f8dbdacb85f431e96e0dd6b4cb797ef52eec2c7ac7dd18a5d699900b901c7d
edb31ad1dd8973d58f9f7d891ec51d9d75c66970519a3b2e862f2b51e86778ee
1ca965162ba08a086f0c3f69de1e3353fba021aa516dda612ff961e960b24c3f
5a750a09571bd1e2955aa1cda56dfa360eddc1dad3b171bc810c214ef6c2ef09
1a343fe1faf6b149eebcfbf1c7cb7c7ff98691830b542fbed6d0c824af958804
c944fab2c6399cd4649f235139369e1ba50ce834b135e7bc0149b7f706c88245
809281947d962e3607b75cf9177496d16e769dfeacd6098ef6e19651e9aa71bb
5c90a7b84553dd2e860a03090aec7ef6cc27dad7d57951788933b7884c4809d3
c39689e24666b40172653d155bf3d07bdde8c0a7a1967f3e636fb0817338c768
e6ca2ed9054128ea3ab5fc67cf85ec8e822c7bf44a330d7571f82d9a500e32ce
28702108bb0c2d15a8f34e64a6fe72923d62c6b2e9aefb2e56746c786bb62b01
28cefbf1dd65634a11c4dd497122fa429c31befc8ecd15b45b3a7acd0b909e42
39d98c4fe12e31f0daf1446a3a185a0ca1cdb1ffe654fa1d9c9942212086e9c0
29689367b314a122b0237c5f9633ef10ab1d9fbc79f6a78a9d47d7e1a4b05dd0
a1f8fba67e65c4da2a24ae379f2ad7c69f9c7f2f16cfe91ef738f7c165c3cd2e
e05ffe1475bd9a665ee433e6b62454cabdc36bafd1b68c6a51c4b4be879c68d8
7a1abe6799a9463962da4ecab7c662835d07998bcf3e8360ff46ca8a6c2b1434
c9e64a7940805440572484ad0c9849f0b4cd23a65c9b8a359e3ef338adbfad90
f7ba71f2093903671f3f1a7b2ea694f16b1ec227b3c8b10a61a07ad012158f3b
f79cf0cfa4f907901e295538d9974a4ad3760ecfef8dd312a6d1b0f142006f75
942a5e217eec43a35ace222b5259031c45ff0f940ec1b63837e2838a667c6994
67820202abfee2d754700e4ed78cf1a45ee8ee60b96d1d1dff67782389c286a7
1806d4fdc28a19d815bba3f09a04f6950e98b7335875999159689041048170a4
f32d94de74031d28fce347f312ed4747ed2378dedf943f46745c9ca565750270
9e4ae4f1fc93001a43ee3e65fa72e2177a80265fd8d318dff200239e350fe69c
24aacb580d6a7c70e937b42a2d52fc101f35a778cf3076c9001ee25d42ec5fa4
82146062fec810bd118fee32f7c5edd82ed2335a858a4dc538f265952384c169
f3c8548d8521ba98d7120235479ade3e6fa396be5531d8d7f644e3a2dd727202
b6a01c028eb8e003c7c4a7b41630f00f577fa1553437ed554c15c6e286715092
465bfe01c9a865968d90a766c87147b867df1fc6109fdee0162c75bfe8a44039
b295661a12773e20fe054d5e51374e78c945dbe7d2f3e0c59b3deec531c01742
e24f9120a0f57ce8184eb5efb30417a31bc23c121206f293236d4e173c1b4f53
68032141ad570ae6e4ed650a4411065f43283683d78f4793f5589edf80b11fbe
fc1a4c1442abe74f8939dc155b8716b6e951246e608776e916e0ae4331215933
47cde7ce9699a2231907125e480740fbf80099f79fb5bc9f48d5d246759d77d3
82b838e59cd440c3de938ebb46deb9de2f8a0f9871a7ddc6f5b32a93fa18d1cd
3e2ef9ab4565a77028e39849cfbba195584f7136bd96ff34fd17d6c3715cd9f6
38720419ee4c8bd86ec1ad1de54bfbc80817af35404610a0b0c78ce8dfcc0e87
c9a4df6f7f5a5a971515424dadc03a4d3a31d8eabdb56c9cd691724cc46ac279
869f8081202eec2afcdfb933cb6c16ee04eebca522db88a150d2f7ee87abd652
d5abb9d872853d81425d5f81a73662e8813bc123bcd45f80aba0a4f739a76257
8003f181778bcafaf8f9caf2ceeb97442e00457284d69c77d27d2bf493b1e497
4573b573980a0f2d71e42294eac806622790ebbe18412ce3a26f1dd60e25cb6a
a63e43e4fe022e4004992d362f8761a82c23de26174a06116ffbed60eb25d2fc
a62aced7a17e4fb60174b97f38973115aa4904a96168195eab7e3fb412d8b5e7
e055ed97a9824d2985a90a1f78715c40516822454703e0a6ff13fb2b60e5ca1f
c5e244edac517476fa14c24a33596496565b7006626da344b2f7c72f179b5eb3
1414ce2bec07b21553e77295b5c2c52a2233cfdb4f5e8b501f9739cfcd7608ea
f03be4648500ec1308b92e989b0e30f2e1e2a42d7d81c0d629ad002c9054cfa5
d4095dd527b57009dc048a331ed866647a71952e1136bec5dbc7641f96020083
6ebb951781a9b759c03a56d49dddfb8e4c4da4f8ef8730e8a4e37ade843b97b0
fca5fe8bf99f8d79590322a6525583c73bb3ec3aa35520eae0e3f44840955f6f
6f2dd10176d93e2bacc516de984fb5bca3ba72582a9aa8081b5c81ebe7aedabc
ff13418220aa668e1ecceb3db471c89c7aa8d8207eb0f93d06d02632f7177898
cb418894d5e3ee253739cddc2347579eb0d123414e547ba0e611203c4a5ab0ea
ff00000000000000000000000000000000000000040a0f151c2430450221008b
d2c7da2011f7941589966d8bd8201669d222af3a86ad5a43b654f7d811730d02
20382baaec17d94b4d313c0e6d2176900bcd9d23b1b9706464c76a66a1ca53b1
83` }
        }
      }
    }
  }
}
]]></artwork>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors wish to thank Piotr Popis 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:
H4sIAAAAAAAAA829aZbjSHYu+B+rgCLP0csUw52Yh5CqVJxJ5zwPejqSATCQ
4AQ6AI5RqfM28H71BnotvZS3kv4MIOmkOyMysnQ6qyOHcAIGs2t3+O53zQz0
p6cnLvKiJf3C5/zVxg+9iPL12lO+m+FdP+C3IeW9NZ8LjpvInwZkM/Nsvk7D
kEwp3z2uI3Lgf87Vu79wxLICunvQDe5yjm+vyQqDOAFxoyePRu7Tkqw24ZO9
wn+XR55Cbxo+CQLHhRFZO/9Blv4aD0XBlvI/8b2ZF/JLGoWQind83iVr+8iT
beQ/TemaBiTy/DXvu3xAXRrQtU1DztsE8fNhJAmCKUgcCSj5wnepvQ286Mjt
p1/4Wqbe6nI2ib7wYeRw4dZaeWGIvqLjBqNXCr0ij+HJMvS/8J+8tUM3FP9b
R58+85+o40V+4JEl+1DJZPEX1Pap0ukVP3ELetz7gfOF4/knHjNN/r4qaLV8
ckLC7eh6S1mbaeBvNxd5eD4ZfugHC2895UvsJq6uiLeEoBuyCv/C9PjsB1Nc
JoE9+8LPomgTfkmnHRKRKCD2ggbPl0bp/TQd6zxNLH8bpdmAXjTbWphUYgs0
+GiOT2i3JBENoZ5Pl/4v7Z+THp49/8GT6R8w9vMsWi0/cRysOPODWFH4j4fP
hV/4+jPf3K5DqDCaxVcTH6p7C/ruBqb3hS+sY0PzNW+F7p34xsUrz/fia2EU
UIrZSKog8F1/CU+L+I5PHP7//K//i+9umWlEOCFra8NJvvDNKCJ78plvwt8D
z0/u+Fv0iZs5siYOOV9zIF9VqvJySY2v0MRcK4j87F9E/gtNpHmGLu5n/PIM
O5PjzWRf/Nn67dr/3+c5h7TPgInjd6dYXZJtGCJib+dJ1u+ux3PNbhFpoRNs
mStTjy+trPLdgGT9vLg89hfLCZ4dejf5qr9aYeJkHdE1rj3zonEzBVEwNfNG
AVkaLL31/bxLNEAPx/tZ5J/5ASQuUXpWdjKLPFl7dPnuVjyRBEEb9BC9gc/N
PJz4wecdWU/Zc3+x4+ZrNH8Kz83Pqnyb2v/5X/9b1D7zWX+7pDsSOHyXeOvo
KZb3Ogk2Sx0OoN/MsgXjhveTLAYAU8px3NrH05G3iwGpWGl1RUPAvJqVZ1F4
1gTJSDcq3d4zu/OMW0/KuZkkSN9qhlvXRsq3GykY3Vu7t+OPNAweCwp/nLI5
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
dt0SAxJAvp+Ft2eSKzc6XaHGIfHraEyon3vZfL2Z/4XHhPKFYqVRYacbu281
fi9T6sYbd/H0OK4wajU7vS6fqdX+mePQjH3CaN1KqZHp9TuFp+s5y898t16p
F55ymfidPp4vdpr1mxNjb6fUntgbijz/9MT/2/kk5L+fJ/D30xh5JKcg/awa
sbLQN/kOv/v88PYtfft838V9ir17/AP7un30Ibv6/PD2LXn52MW7BPW+i4/8
510XHzjO5wd33xjAw6cfM5T7ju71dNPLI57x+ePdxyzifUd3hOGulwfavn/2
e7p8lMu5S2S8Bw7Ep/p3D4P3wMGEYqBxFfaMHv/MXkbCv3zhsPmQHG7SG1u3
ud2fewt4PM51P6S6Lto/wJbrWYLvRiF40OMWd3XUX78XiR/ufiiF/vpb0fjN
FnfVxMdG7ynjt1p8r5uPlcfjBjfU/GGDb9UO79p+W3UPq4CHDb5F878Xoe/v
/oYRHlPyx+K+BSqL8+fnZ4b+H1y9m2apjr1qRCxv6UVsJe83XL3urWiObMKb
LPljXv38j+Hq8uyPOPh32t8b7HsN37v9t9o+jIAfaXzrxd9v/85uP9L4Bzv/
EC2/3fbNm3+z7eMY+t5jP2SdR5H1m20fB9n3HruLt+80/HHrP4zC357lW0De
tL2JzUIjf2bk+Al8PD4axl6OzTTYuY01e/MlOL8FfH5HlqzJr1x8H+UKqxtQ
I59fa10ufTvetT5XeNe67hPC9vo+e1xFt6qV0aVgeHsd4hM6nHphFBxvjnyc
DwQkNUZSUaDoeOL5PEqlFVl+SaTNhOetpCf+n/6pQ+MCh3+XfP/pn5LnWIm7
SV6ZfiMS13waXssQ9PUbNQHrr3P9HpEvyZeP5M/7MVDlv/wDw751vAb8SKnh
uUB7evpzrPirku7bcVyGHWq73LTvOzkfsfiB99/YhtMR2rsO861q++bQXbwJ
gMao/5bPccWG4by3Sv22aXxqg64JexeLrHnioHIM2avscA9YdIqrgeVFAbt0
e6bt0Yvo7OhHXIzOvOns6XVLlkzgAFkEs02OvNycnQi3XhQPe/N1NDdvSB2T
rc7zAoO3Jg48l0m9CenW8Z/uur3s1/kY4OdWp1EKf2ETuOziJadKYhcP4+3A
+MQJq4/X0fLIs6+iYC+hnreQLpqG1jbsdUJ2pC3e/4tzHfnWa1zJcTFvzQ7q
2fHuCttrib+qJX430/XYy28Rv2KyUBLGr575b2/2xIMz2WGOnRf461Xyri3U
dT2VybbCbqwXgntT9gUxbE0m2Va9rNCEq/hQJY23dWCo0Ltk7s93W95WsIWz
wQQ2fdfXfuYvEx8JN8Q+7zy/+z6ee9Mm6wxbF4qNt3aXdEeX7OrFFb5h6fhg
n8ceg/D/DDEof1kGkZ81YAi6uD0ZGR8y8Vd3R9Bu3gpjr2gB23a+59xS860V
Rl60TQ7+xIZJDqAx9nIl5K3Aj85Dv+2q3721xbaNNCl+m/H8Arl1g3negzMY
l68ysDBkDBmF5EhheH5Dmp0sWDve4e4dwvOxw7uzJNejD9eXp7+7Cv9wY46r
XDfEkzWi61nfeLP5POr7F3jvXiF+t+KVuYhf+NEFr+u3biyXx8/vXro8S/CF
5YvIrjhfvjtHNDqo9hc+S0KqKTc7mB+OqtzM4Jnnh/C7ZCceU2gV6vyMAl+C
ZLKu78cLszGAsHMdrMHt87F/LSjd3FjpBDfx9+u3sx/xdyq8PZS8xRjdecrl
QPNF1iTELn3ePvzj+eKypcxEuA5wc7IjpEv3KXGq86uMb7r37jzvw1Gm+4O2
v+l67Jhv/MiDs19nJSRvW7PgeHqKV+CYtPEnrl6pNA/t8UvVn1RmO7uRads5
H9eieS6XDyq5TLtwyPcytex0OZ0tptlJu17ITOv7wTR5hjs/lPULi0JHWi5q
fbHeKTayjXk/6vQbhb5QiPr5itjwxF63UBDrvcrUlpZrazVY1IadGeeUCtPJ
aDazRtlw0s3KZNTxK+XGZiKpy0kuO3PKnSMZvohOaXCqjyvNTh6SLTJMsv1o
ni1x9bawz+3H+UG7Xc1nOi+dQadUbyv7fCa+VstnBvV2X2z3T4VlPVcvZcR+
IbPf22TYjnr9Q4GDiFKjKxbbQqfX7ort+rwv1QaNSht369NK387Wu/nMqaos
mq/GqLOXQiX7Yh2iWjPDBn7hxpVJJTPs57OZSt6vlF7q2Wkp130tdSuWnG8X
XjKnAhS4eJ0tvJK5F7LZfWFfzrwpncu0F8V62xjlexWmoD14p9zoVQ71gb/v
7W+tsyjU+5VCuzIf24IredW0lw5kgTNkf1vojGbtcrc72i5nZSPS5l6t21/W
q1rBGqqHRjFcd2rWoGK2xk5zNxvUXqvE9wfZwBrsDpw3aVVGAhQ5HVeq+3E2
2+6Xs55QmE4F4fUQZLqFoNA7vaaCY2Htj2fZUkawU+0mfYmEalurDrm0dVIL
6cPLeF3b9j1p2q/aer4dZtzTrFhdBpXo5FqrrZwySi+psD47DYtjui+uJyfa
S9sFb8DVyoXZoJUVm/uaXEtrcrcr5A/tcmpt6JlN8zDJqeuBsT5SNTMv7XK5
Q71UteSWntZfDHFfqYdc7cXbnsLtqD6ohC31tH1RU/KUBku3vz/Ojy/VOpp3
huOl66UO3cNm0VbKfckqvtReS0LvsF1x1e3JerV7dtPbHpflfW1wnIwKay3V
7hfoILVQ0o63aOgToTF5SfkKzcjjQqO/HpTltJMmB8vgGpO92D4eaalacLVi
V8v27M3UX7unvuaXJ6SeqntDoeOfRvarXt3aUq81qWaP43R7FaSralGCI9XU
qZF/CcJGYLzQdtB15VzjNVNblOhECatzz54qA7XQd6zpeOE1s2J+mu6p60rT
WRwVfccNitloZSzknthZFvOqumof+m03MOXtgqSb+eNJn3aHdENWotws9KRq
q7mfltyGClbQCHtDjXuVdhulOHdKTi003fHpRRQsx9EG82JO9S1bzFT2+rE9
8A8FX3DnJfV42BN6Ciw/bQ/KLbHKpXpyLdykfCM16K8OJDWsOgVTGe7kxaoW
zN2l2xZzvWJ13fAazaIp14VgLJbmUjjO2v3B6/DArZpubd09HNuHethdpWup
XK7k7cy8PUinU/OZHzbE2tiZknFDmOqbjDe2tTBK90Kad93MUKRcsWP5r5N1
OlKLxYZvim4vOJas/as6iubietKav5bnWdUvZLOF12puVByXs53XYko8ZbOt
Qm1Q5IL0pCYGjtxMDVMvpKHnvXFLXk4FQ0lnX3svsh5t3W1fno1JczvPFyoV
Uyi8dsP8TtVfJ610llut5ytlXnCEsVBod4et3DFv7Ue949BI6YHRHZnV3ngw
q4/tsRP5qrJ58aVcRh0MhVl/V7SVBhdUQ31bnnuzbOe08Tftxqk2JOJI12uN
/KRil2tjQS6GvYreW6eK4au7VqVJdkCk1CKTFQhdcrPUrGS+jgsvOfO13Utv
UofhvNZS9nKU8mhvMiu0G35f8p20MFez7WFo701pX1XGmYa+9rLHNLcoHoPT
tFdTC62WSUqLk18sN4q+fKSitVsL4kabSZnJQbS8ybQ/NPZRpq5aekme67u8
s1ufuM2gVRU0xENzmm1F5su2XqynnYVkrWABbanmypXOKmeTqbQuDeVGyuuU
FrNN0G6+qvtB1mlxw44leQNl3x8XxZeJeYiK864IIOzQ/sqvqM2qVxr7nVSu
qx4HXal3CBv9mtAs6PmUV66ulAy3Va3B5NVNHRuCvbHD/tSLyvZk92qLYWpm
bvyus9NywXRhNmuUVNvlmt5pu7ozHTn+63FT17mcdkrX9IPkbmyjsFqPTtuh
vMgH+bpTac32/mHbzMwKylFAudRMZ7eO1lvuuqtut3AYhEa/OOfKxyp67Td6
7ZS6LAoKagXz1a7Le3ulHcOXSbQKcrV8KZTq60wrnKkH0w7b3sJDzJhur3Xi
hmtP3K+K1bK3iqTl62KmzE6Dvey9dOan8WqZes34XanhE68mjSqjdtFeDHta
R4tO49YpFXYlrifogyrJquVDEDSp7afUUX6+GXVF4qi7YKVNlu3BILvtZVPV
/i49LI1le1ZYHCZHc3sKhLzMpYJxNp3v5/1yGE0qRU2aSWSqT7URPVS7R6Ff
XjSnLTXfSG+X45R6iIbTznrVGYf7zW5mT1YzzsiFU0fJETm9au8d0lIG48q0
euh7jdSu+yr10obXrjmOPNxvhaA+DfbOoebWKO2LDWc2d8ucPp9tezmn4fin
yLfrm4LeqMst39Oi/ExQXb3U6wrbIunshNS4tn99TddHzqF9ak6Cwealajrc
qzDpVFD3GB35dT1PL3qBZVUK2rKTEy1Z27cW/j5oKOXVbHI8nvazYmdU96i4
9g/1+alYlOdcvdh9nXSHQq3VWBXn+7pV99Oj1MFUJLuymzgvc+OlvXIHLUXq
Otn8XB/voFZhIKdnufRrxptxy34/P61Hk3muUT5MLK/adutVt5RRhsaApBfW
st2onE7lYPu6883WcetEOl2vleW8rb/MK+051+qv1s3OMufKg2a7kJ93yyBI
eWtGxMPKrLZCYbtHuKXykjk8yMaJjFP7zOGl9hJstqNXmlpy3rA4KNLatpeq
tHdqpex1/Y6+Kcwb+WbmEArpaGR1W53X2rFU3jbbra3mD8bNfCfcK73Brle0
uMP2VN9Z1b6vmuVUY0eOykio0+U27xDhKC9TZlcPa+WgLHe8pbhZtXNqxnap
dCpFZccbtQbcXDVNr6MXyxMRQi/3/Ymv1/zxriqW/Yk835ary2XR20696WyX
z5sbeaac+unttEI2HcvZzLhaejnThrljL28Sp+2/DA67jrIZEB9s0nJ9KR/J
WSlqHmzrmM3nik0zrO1yHV9opcqaGRRfOD046Ybt1txyWp1tSvmc2N7tIqt9
zHV3y/G0cOz3tDAcq+tGZ7E+NjrNHqElrV/X8t1Dg1KDy/RXsrm3KtPFMLPw
S313Mt42plQetRYj58XqWGvipF9Pw9xYl5TJpKORzWErHtsbfVbsm8KWm039
fK4dhO7Oqr+YwUgcLTu0sjhFygy18bq3V8mLspisokzxOOkJg2G61aam7O+r
dLZcGyluLKX201FdOUjz1dHTJ9l+wdfmr2K65LZm9NicegfdLPin/GhwSOUk
0s8ox5M321fanp7PCQPutdVoTqpWyt5UzHFIjhpBTllOBKs8QxUUZqt1XTcc
cTkW/M6hIb7Y3ZrW3uwPu92xeeoMBW542min9ra9XlRUaXxoKV3lYDSCQ6fk
a6WiX4c1DunUpJ+aSfaqX5lVKtZmn1v6C4meitWCx4W5hjFSxyf9kAvKk5RB
XbL2NmJZTJUWYVFu++5c36zV5aHhv75UFXl9DEaHTcp2j8bwlFpQzjzN5f1w
lD919ekorYAKSWSy1Bf1FJFeir0qaHIQmCVpXtp0DrVuCrDqS2Wf7FZ08tof
q9w42jSPgYvs0XCy6qp2Omn5ccssHf1NWD20hSOdVGk/lxkUsqOXSjfKv8xe
jFqvUdEm9krxRW4910/NqpQOJnl5uy4fc71FfnIw0qU1ezO0dyAHPfeityph
ezPzy0G7MBu2mmlqG/XUItWmba7sLQfNxmrUXQQ9Z6q3dEXuFV6tTtgq5jIl
U1zmNrQy0sO21iAnrxL0l4t8uTBK59V2c2+NFa6Rqua91cQgk856Oq3kXtO6
J4qdfX6hj+at0mK0nW/HtWVU7sjpiTwFbayWNodpSWzJOW+2HnNFawvU8gvm
pt9c1ezTsDycLAYwU6FQmI5yC+Mo9eV1O1/uzg1FcE+FrVjupIQ5bejuMm+W
OKd4tDfDgZhZ52h32zukX+qZ0qK1ba1Gmr2tjKifWY3Mea/USB8zuSZttNOr
NWqiozhtkPVhz2k9KlQ9sZvOZtwGcZTTKSsd2xmqLMWcXkwtprPOdLzTK4Wa
0JmnlKNpjCIpp3fr4mvRW8hFrtl6WS67zcJ+uD4di93GrFvSVg27m5kPyqtI
SVlac7hb9g9Sw5U6zaYnj16OmYBMy5lqE5k7zx2M7jrKjvdGxhyBrg8aeTca
9PeDw7Zasge5bme5S2XslT+ZkMai6qyO5WJ5W3LdsjFur019yhW9g7hLeYt2
fnVcDseksLZTlZZS7A3UTkNQlWN/ZKlm7aTUh1aL6sW6nRm1ty+tRTc3NUcn
nysVNFHX64WiVrf28323MLWOi2Mj6s1soySYPZKpz9rgfbmttdCH/WoHxTtg
12/4rdFcoD3OHHhUVnKHMqK2tNj326+7dU9ZqHJ2YM0ORNIGhYW1ypWd7WKo
VNV8vVuc1AXwfUMbrkhlzpXadne0mJbbrZ2SeVnLa31orIX5QFhMxPXI7U2D
qaJOTv12vUUXiqZ3Ik2VPXifOjtsTLnEmVb9dZH2x4ItpGq7VdAZDtd2bj5f
FdbIIqXBsGAeGoE0TJ96ZtG0wOJPE3M+O2az622vshtzVogUQQe1lDEFvTDE
dmHc9mv58rw5d08ZrXwkPdeSTTLc2INi/6UR2Bmt1/MPUvPVjIZHmxM3xWOv
3nndr1eltZLLVnJ6WN2d3G2vVbOy1jbb1IxNt4asiwJ/525n2m7Yj4bB1pkd
Zz0py7WXojsltjTeetmmUZjvGh13Wt1ONy1b3Ugvo2mmdZiOaO24C5SUHRxP
2+2ok1MynVG1IG4OMieshcB8aR7UF6do64PTKuO3aqPyorLpvR4zE+9FzQe7
2SxbgxdaB3mY90Y18jpOtVO9VMZTM1z2ZRE1vFR5TKZhxVRWRcEvFYZpXR/m
gxenZmy8oClqxVRPH2ed2jLdfLEPRbJ5yVaXM5JdUu5VVtJRtjaOqDsdUGn0
On5pVMfDTW5mKvbgkOkPp16nb+eVqpUupMNg3BxVy8bI6zSlsD/qSFxq1st1
543J5GUyHMqZ0nglzTu1mnw4GqOVqJ2K2V6zmtqXw9mgp8rVQWTXilUPpMWM
WiM/AqSptnoyRCnXDPbNVGcxa+fDwt5TaxvPys/zR4VWF7WRlN03xiD5mXBR
7LU2Tvtl5PTX0SjzwsmZbrV+0MeTVUezJ/1toUdSB2dXnmRTw8w0l7eC7aCo
lDaRuM40l1Z/7cj6fHFobFrz3eyU97lNs6HJfltf6nlj42q11CTVoINFvgLu
Nhi3yk29FTZfG4NKEz6d7lTaLwPXkoxIaBclqacEXFDvD+XNrBVZx/l2/TKu
bl79XDayp3S3DqJXI31oZKde7nWC2v/UDM2oXK6sy6+o3bKpsLUwuWyUWdV3
9oi+zGvtsdcXaWv70oNenP28I1IaNgrzdl/tUy2/KnQzRnf5utd2Rubyh8u8
+5OFIxU7+0W90M9V2rmaELqkki3Ly+zwZbmSaqgah8SpeMHptQS2m+eiZU+W
ssVTvl2ZNnPbVz3rTrqCcGhl1KgyIu2cITkVvaTapc7iIG1Wvr3pheP6n5Kl
wUIj/7YwGG94sv/dfaHiT+dVRvaSDD4m387xHzffzvGVF5+lZ+SMZ1GUVcV8
Fp/1Z/aFIzz/b8K/n7+U8cN3NFYavUIpeTpumjTq3XyH48OvdYQ08Ynlm0uP
JJKeRS0R6VkUxGf5WYGI8nUg/vrT29AfBvsp/i5T7nvDPJi4eDPI2/TPXbB3
UP8jeQcVT3/67YVetj7Msf2J88rx41XfT9+d2G/q9JEpvtn4m5ffD/WbzRMd
355Ga5AVfdDosYFV2FQU7gS+/On3ikY3eeMPWma/jOLTg3bvr7z//N+eTn/t
Rb9/SuIPTCn+dRd/2JzY96r/DcaRf2Ai34uA3z+/+09vbv2fuiDKogTCYtuE
SopMiCvqii44xKaCKKmWrTkSfvxP7q6PHwiGB3j0NyLS/XDvoeM7RvrpsgnV
O27eW+iHQMt8YKrHjvIOEn/XKPfQ+HHG7z99Z77nTcCe98Ejf3C+6g/Ot9/L
sUGYp0owsmCIuiqJ4uSja/6NMzm/QZq8XfO3zUX5wbm8Sz7/aRiOocuK7mqG
QVwqudRyXMWVdSJRURRVjoqKoCumpFJqaqLo2pZODCpJjqRKqiwQaiiao1Fd
lBXVknRFsTRHlWRHRr8KtSgnqopFDKLhP1EVNHbbckXDNGXbUF3F+c/focUf
CMXH+oqPOQCPVDig9qyo3+z1vX6IJRJbUAyF2ArUQixKXEmUdCIahiKKhuCI
tmtygmxSSXMcgQBWJFNzHQuXRdm1FVOTdIlSFSojgioQXbYER7AEQXdlQ1El
ohLb4Cxd1h3LJNRxqSvgEWoJNiyjGqomUltQTce0Haq4rg5pTFWydVGCal1B
V9GhxLm65MJ4zFSOINuqILrUdG08ShRqq6ZgmaajupJum5QqgmFrli0Jlihj
MNNybA7jutQ2XVm1BUOWbMk2DULRgWXqsgjxbdk1bUol3XQt3RApoaruKLYs
Ga4kKYSTRXTjKqqmSaoOT7JEBcrTFEU2REdxTHw2JUpEC4oULaJJ6N2xiGkr
jg2lWZwlmYpuC5aqS5qK6UEHVBGhZQxETdlwHceAfnVL0xVZNXGfyIYOEziG
KMDpOF1VdAcagjdboubaaIT/FEzGpCLcDyoxmDcKqqxLpiEZpuPajkIJBDQ1
AzowbMPUHFEksqw6NrEsCKnLmmK7mkIEyCW7iqQR15UsU9Q1TTAk1zRkpBSY
zpY5zXIFUzcF4kg6LGU4xBAkTMKkmm5YAoscXRKoqFJFUUXEDbSvGAaFFQUq
uA4noyEa6BjSMih1VQUxA93Zpqwr+KSpoiJT3TRNwVYVRXQJtILQFAlsLbgS
Z7sWqjHVpPAr08IkEMaIRSLDkpIgwr66aZiuDtUDPSxCLM2iJhVUw3FE05E4
aruqq8mypKuOaOF/1FQN+BOcEx9lVYDvyJBHUKExRSEADwrTm7Yl2iLRLU4m
sKrs6qKK0HAU4pqyY0OTpksMV6YqIAvWsahqEMCFqxsq5kAV07AIlXWqcroj
OIqk2IgN6F6SFSrqjmPbjmRpsgrbIGFrgqiL8DWiWqJpUB1eitytI6uLMifZ
CoH5LdcAWGvANRdeI6ou/sBjNBjCcYBTIvyGaPgZCqemIEmaaFMCgONchIxu
ICJdQQRewV6iRg0CrbvwfRMDy5rh6vB/mcEBzCOxaIB4jgbTuZwBP6eyoJtE
UAR4sEQkQ0KlrAm6gBkA+CzVtkUBkQB/V6ABOJjlaJauAx+gA4tKKoGrC4AV
+AWUJQN+DBcqNmEanVKghWuZikNFDSoBDtuyCHeUAUIKMTnJEmTLRawjAl08
ZhLdoBqVZFGEoQ00UuAmhitYkgCwAhFyGQNyLYsw0GI6IIrD0EcWDR3/ag5h
IGdKGlKGBMBTVdAlAIMrqnA92IRYsmUhIKkEaFQ4XSbQvSrIuiw5mmapmDTQ
RFYQT4aOYHIMlPKiZiu2QR3ZdDETm5gu/nHg3iqnIlm4RBEE0YFjEdXQWbJx
NdgM7iHhBwUIC5SzROhKsl1o3AGAEkCUrGkiJ4oC7ARbERGwoBguehUAt7os
uLoGZAQqCHiE6oYhwl1wG5PAZBB8CFAZweSqRCSKTQ1RQZpkJgGWIINZFLZX
IRUUg6iydRW6BR7AUVxZsBRBlpEFOAshY0CntqxrmJhMVFW2CbyG4ZJADTBS
CIyAMGwRIOM4THCqwWSGSwAknGDo7JeXGJIOr5E109ZUliqoYQKkFEMzCdCe
AKQEVWE2VE0IoCFBQBeqaIjARIABgtFSEOESwpGIpqIiHWlEMKhC4ZnonmGj
ISmIYhMAqTGABqIKliOAACC/ADghCAFeCZYFhATIEx3pgoGGTVTEvmJIkqXo
OoKBImxVS6aG7sADOMV0LJcIxMIACCzJoXALkApkCICbjoCC2hyHSPAgU8Zg
FoHecdfWNeC+zsm2KGmmoyP5YPKmwLQni4haF25EgD3ATyhJNmwLMyCWQuHv
wAPkDNgAmUlD4oEbq5rtIp1osoiEZbDxVQCNIyCMoBJHBieBzh1kJBlmFm0T
ghAb6uMsTNdmGRBkwDFs0xZkzF2H2R0dYCMhKiQGZ/joyLLLHMNAgANQFOCA
ZHIE81MJDAZPg3JQc4BCwT4u8E0zkcgMgYgsIOBthmE5JqyuKwIyoaKaMjU5
pFsHQ6NvF0yEWUiBG0rAF8CRKxJqITh1pGLLVG3ZAGbD2BBDhzksTITTNDgI
sBeKAS5BJsWCcxuaJuvMwxjcAsIdywKiKQgPF4kBHAJ+Cn0LgHXEsALmSyCi
Y8IXLQPe7FBArWJJDvRKQX0EcATBBodhSQOyoKJSAYEaEhYnapJtg2sAzUVo
WnQFCdijI4HDiV2XZTRkRAMwAJg0oBAkONBTZDg4LQKDA4wZgGnHAUiqcBML
pMw2JICXA5UgBegmVWX84xiYlQ2MBNhTxQYrdXSW3ilkB18BLwMK2SArRAIh
cZCPAT9wRNGUFbgQQM8ULbBghJ0rEJSJtg0HtVUOlSNlSKaZIDyu6sDXkJAl
JBIkBgArJSYFIikgvpqDyYFaIEnDECDVoJEuZ0qGLVkyo08AJigcqCWABSoq
QFLSLeRtg+GhKyPHOFRGEGPyGmLYUtAUBEOD/4JuaKhhZSRq5Ck000A1mNMg
ibpwWAF5CtQQ1xF7AviXa2mAS3iAzGEkBC6yDrKxgLg3GcOQDcHG2JAN2RyO
ACyTTEFn5gJVh340gDy4DdTCmWiuGJBFpBajD9SAplBQI0FQhByFbwFpBFBJ
kClFkmVHQe6RTcAO40Qqp4B+AvvQiS7aDgidhv4RLRqLVcSVI1FbZDDpGrJj
QXcAbyR/ouGeINgKlMjYlgleCnW7yAsoTFQVnAo0G7OW2ORMeJZhSsA1Ro4g
hSKzSWq2IwOVVQiLTIlYs2wD/JrKQBWKXGmoSLRItVAvyDmzG2DDsjVq2yw4
EDVIgi6HesmAaOAKrISBJqAx8AjNUpgT6qBtEAUMWkeuYdkWgaIxygYSJYi4
BE+0gCUOUrEBdu0gVoDR+BlUH7QQWMfUYTKuYBLZkqgB+0mWKuIHBAxFVQWs
hOtpEtisgX81VwA/B0pS8A7EgIvrkkgImgB6NBHFAbQEOZHvwdldDtiAYkQw
QbQth2GUCnxi9kBWB0vSBAqPFx3kKgvxCjWJgi2JgFbNllChIJzB/ODrjIFq
jNpTytiDi+lBB7aO8ZCdRENm/AZQSx3NQUXD4gbQYAgKZ5tgfwQRoMkmahsF
zupK4HcyciD4ugXqgLyLiARPpbplCxjEYqxas9kv8FM5AIdkwK10kHcJzg6U
gt7gpDoCASweVSkU4oLSOZoAkujC0ZjSqEkIpmRxKlgsGCviTwVtYlqGRmQB
FxFWbKaADmhAd1TdVEVAN0tP+EuxFYztgB8gwRggRYoGVFBASVG4wK1UVLiy
A3FAzQ3QDFSLpoZyj2qy5lps/QDOiOxmcBSMR6KOybK3BNKIAlN1bU23XUNF
hqFIqrYOKILbgduAcLI0DfgFC6dgPJST2DcsgfdZKBeBwiqj2ArVGP9FOjDh
5EBdDR6EiHHxl4raSQO31SxAgiWI6MCmzGzwXlWTka5E1GMIWdRfEsiXhGQo
WkioBgIToYAiX8Z8bIe5skkViZPB1oBZ8ATYAKDuECRZRcNURDB7wWZOZYmo
LQE/LssdNrKtJLF1FI0ik3IS0yEgDBGB4cEiBAnorcJfZZmCH6MEd0zGBkww
Ph0s3IHFdQr6YzHeIHBIJUA4ArKgqRAeRAJehlIC7gTj2RoIJfwRPBX5H2BA
XR2IiASP1jJDGw7VD+QDw0O8mwQ4CRzB2KCfcDMFlBAFqgZejHoIaQQ1B3SE
PEEZA2BsmIOBAYQsyxFTgTtrqPVRQhAEAqphAxkJaRoFDlATHg1C78IIbFEE
yQD1HIsFZjPdRGEOV0gSv6EgNQFFERYglBAUfBoea6GWQ5qAauBEhFEruA/K
fws+7UqCyaBMw4+yy6ox5DfNBJ1DiAKQkGFk27CgU9QMAnK5wBYR4DIWOjCR
ipASkfYgrJBAgmyAiutI8cAB0DTUhhTIB1AEF4Q2BJhaEgSNwTqMSgDBItKu
DSYADmQjiwC0QKAEGRqDjgUXMwS6o1BCdYU6ATPQNGYiU+FQIUsC/iEW6IPk
sGIeXg6aww7vwNqwCpAPAMZi22GMnmGhBNpmSwY8g0Om0hzFdfARAYfiDjQd
SVJgRRigERU2TIDQQyGhAo1FlTkeqjOB8RqBKJyLQoVVVGBejF8il1K2NIbZ
Uvgc6lzYQDdYiWEC+sBqFNgD9FdTgaWSLnAICIIUBNoEkiVAZiQV+JHqEl1i
qtHZcgA+ssoHNRhYrgBnhzFVMGyQew6Oi6SiGoKDCdk6JEYNCMWCQkggtSBk
jFsyhYDEaYAv2An5FuUyEgdsxxnAaE1AtqAMsYHs4JiQQYK/q0B0Q2JzQB8G
6KoCSoNIgECmCjUqiAgTOrAN8C5UfhIg2DQcAAFkhDHA0thkkBxMVr2rUBHu
om5VqEwYK2NLGxK4MkGOE4BmjJcLMvIBPNtivFtwBcFl/IMAIpE9oFAwUiR7
JFiYECU6EJ0DpYIHoA+wTI3ZyGEorQH1UfEDrTWU5dCwJgomCmM0BMLp7BHM
CIYz2ToS6hMRWIJimqJMQHwjl1OkFl1BrWczts8KOAnhKIDuWDL6gS4gNli3
xAHQkUUkJANIy2o/A4ROBUzK8BadVRwgSihK0ERzJdTjMvwOtBbXLJRgYGns
m+dBiQkyB5KJxrxYQ7pFzS0KGqMMcH0N9AbFIRQLIgcSA7cyBAuFmEU5VudD
MeCOwBWUdQBIE+kYiQVKAC6BXoOyo1JEfajjE3IdxgFosXhGlgJDseHHNhI+
MElC1Y+gRr1Pkbjg3QB8FL5giWwtD/zGRHHsoGKAS6sgHyhi4Egg+AZVWWZW
wC1YNQWTgvA6lNVWkgvagRyPupQtzmguEoOE+g22NVATspUs8ARWjSE84LLM
IWQGZvESA2inaigoS4GryN4ukhbQVXc0my3U2MB7jZNRogls6QwUHuwW2cKO
KRNFhYp0YLA8SlxWRyvwBSIgA8K21GBsEaW1DlCFi7sAJxTxKio7ERxRkZAg
HNRvuAWQggtTwDsYPQIZHA0ZXLFthVV7KL5BYFw2DNya0TnUAQ5qGlm2LQ2x
AtdTGOkhbGnXMuLlbbgU8M/Q0SdIO4fiB+Wyg4kY4AUGwFJ1VNcQ2boWKIth
oBKBH+F/DuARJQ9YGwAYbBkOL6k6KA4qKpTxCHkMBKoFooi/kflhBB3ugQgD
o5fAVQEfMBwIiwS+YIK1UbaKwwoL0F1onnkzUBWXwe1RmECBkAHTFGBVChcX
0SsCWYu5gABUwTQJx2g3YAz5XUCxpGA405QclK0ovhFjhoRQgDdoCBwiaCIq
hZjroVPMFZjFsYVeGyBOkBkUlxWVOqp0tvjN1pVFVhWbbMUKhQ3InApz6Kih
gBcohxF0OsvOgC5G9sH6HMkEqwAgiK5uMFdR2JILaJLC0gXCGcTHFfG8hJGo
CvbhckA+CSAFuq6y/T4gmIiikFEqoAuYosrWVASmDbbGpaCcBVrq4AsonlUU
1hwiWUEys1B/IKMy7KIomk2VlfhslRLxJduuw2KfQmagNKYGR7dRdgpwMM4V
ZIuC4BqMt9miDL5mgpIZpgUaB7OAtEvgWmCaBjAIlI0t6wgSW2RVkJJVzlHA
1B0kAZSIEBVYgKSFCYgUcaFpio7kDxBna73AZlSrbPFEgRwaMqpgAJFg5JjD
igQkWmUrGIzpoz504NMGQgxxAZxBetdlgUEpCBQA31BkGMsCwYCfA2JRWSEm
HPBhJHVJiktTlEw2vMxCfSYTJH5VEiihmBl4q8EEVxGEHJASpRCsr6GWhzJR
u7PiBFpQYgxCnYMsqRoAEcJKUxHaRZkM+CMwnWVzzK6KCFOjJNc0AzpDNQ7o
thTUkSABOh5jK5Ns64StOYMMINmy1MfCxzQ4G04FDs9SgcyypsyMBOxiRS8Y
Ph5zEIuwNRAGdEqgcGcJCUwBesBQMCPy1w/9UViwsfVvSUHKADcARYfNObZE
DX4qAOTB9cC8TFPTHAZuuIaCzwFhAqQh7yFzgD1YjDMzp0BuETAbDuIAmAnq
E4ClCRIKHiED7dhKLIodFJjATmR4S4TVBA0uBz+AtghbpcNVzpBv99vuj4mw
///KXX8bTsZerP39kjrT5FvQuK9fkheRqfOnTy5ZhvTT+XdGJ7/Bnf3C6nB2
/j0w6wXf8vwo4Fv+xku+JpC9DcpeEU/eSWcL2MReJF+tdvONzfFLk3g8vHz9
re0/XfqPX1OOf20xCkD2PXJZuua7ZBmdv8g445AV32Ffj/75vlPe8oPA34fs
NdSdtzxy5+9hIBH7tr9n/lPO38S/VYYs9+TIfp3zIv62WvbNuZdXyZNvPw/x
GV0F7JXxNf3EP11+1YzC3liG8P8vAd2rQRiGAAA=

-->

</rfc>
