<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-cms-composite-sigs-05" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="Composite ML-DSA CMS">Composite Module-Lattice-Based Digital Signature Algorithm (ML-DSA) for use in Cryptographic Message Syntax (CMS)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-composite-sigs-05"/>
    <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="May" day="22"/>
    <area>Security</area>
    <workgroup>LAMPS</workgroup>
    <keyword>cms</keyword>
    <keyword>composite ml-dsa</keyword>
    <abstract>
      <?line 96?>

<t>Composite Module-Lattice-Based Digital Signature Algorithm (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 102?>

<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="FIPS.204"/> with RSASSA-PKCS1-v1.5 <xref target="RFC8017"/>, RSASSA-PSS <xref target="RFC8017"/>, ECDSA (Section 6 of <xref target="FIPS.186-5"/>), Ed25519 <xref target="RFC8410"/>, and Ed448 <xref target="RFC8410"/>.
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="asn1">
        <name>ASN.1</name>
        <t>CMS values are generated using ASN.1 <xref target="X680"/>, using the Basic Encoding Rules (BER) and the Distinguished Encoding Rules (DER) <xref target="X690"/>.</t>
      </section>
      <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>
      </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) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 37 }
id-MLDSA44-RSA2048-PKCS15-SHA256 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 38 }
id-MLDSA44-Ed25519-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 39 }
id-MLDSA44-ECDSA-P256-SHA256 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 40 }
id-MLDSA65-RSA3072-PSS-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 41 }
id-MLDSA65-RSA3072-PKCS15-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 42 }
id-MLDSA65-RSA4096-PSS-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 43 }
id-MLDSA65-RSA4096-PKCS15-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 44 }
id-MLDSA65-ECDSA-P256-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 45 }
id-MLDSA65-ECDSA-P384-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 46 }
id-MLDSA65-ECDSA-brainpoolP256r1-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 47 }
id-MLDSA65-Ed25519-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 48 }
id-MLDSA87-ECDSA-P384-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 49 }
id-MLDSA87-ECDSA-brainpoolP384r1-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 50 }
id-MLDSA87-Ed448-SHAKE256 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 51 }
id-MLDSA87-RSA3072-PSS-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 52 }
id-MLDSA87-RSA4096-PSS-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(3) dod(6) internet(1) security(5)
   mechanisms(5) pkix(7) alg(6) 53 }
id-MLDSA87-ECDSA-P521-SHA512 OBJECT IDENTIFIER ::= {
   iso(1) identified-organization(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 <xref target="RFC5652"/> 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="FIPS.204"/> 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 only provides a "pre-hash" mode. 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 internally, e.g., in the case of id-MLDSA87-ECDSA-P384-SHA512 the ECDSA 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"/>.
The field is intended to list the message digest algorithms employed by all of the signers, to facilitate one-pass signature verification.
If the corresponding digest algorithm from <xref target="digest-algs"/> is not listed, a one-pass verifier might not successfully verify the Composite ML-DSA signature.</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="sec-signerinfo">
        <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="FIPS.180"/> (id-sha256) and SHA-512 <xref target="FIPS.180"/> (id-sha512) in CMS. <xref target="RFC8702"/> defines the use of SHAKE256 <xref target="FIPS.202"/> (id-shake256) in CMS.
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-iana">
      <name>IANA Considerations</name>
      <t>IANA is requested to allocate a value from the "SMI Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)" registry for the included ASN.1 module.</t>
      <ul spacing="normal">
        <li>
          <t>Decimal: IANA Assigned - <strong>Replace TBDMOD</strong></t>
        </li>
        <li>
          <t>Description: Composite-MLDSA-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="FIPS.204"/> 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>
      <t><xref target="sec-signerinfo"/> specifies that the SignerInfo digestAlgorithm field MUST contain the Composite ML-DSA algorithm's pre-hash algorithm.
If the digestAlgorithm and pre-hash algorithm don't match, the verifier SHOULD reject the message as invalid CMS, but for backwards-compatibility or interoperability reasons MAY verify the signature using the pre-hash algorithm.
If these algorithms don't match, this implies that the signer may have passed an incorrect digest value to the Composite ML-DSA signing algorithm and the resulting signature would not be valid for the data being signed.
This is a general issue with CMS, where a SignerInfo's digestAlgorithm field might not correspond to the digest required by the SignerInfo's signatureAlgorithm field.</t>
      <t>ECDSA, EdDSA, and RSA signatures are relatively small compared to ML-DSA signatures, and thus compared to Composite ML-DSA signatures as well.
On the other hand, Composite ML-DSA signatures are not that much larger than ML-DSA signatures.
When moving from ECDSA, EdDSA, or RSA to Composite ML-DSA (or ML-DSA), the resulting increased message sizes could stress size-constrained processing pipelines.</t>
      <t>ECDSA (with curve secp256r1) and Ed25519 have very fast signing operations compared to ML-DSA (and thus Composite ML-DSA).
Implementations which rely on this fast signing should be aware of potential denial of service issues arising from the slower signing times.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS.180">
          <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="FIPS.202">
          <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="FIPS.204">
          <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="FIPS.186-5">
          <front>
            <title>Digital Signature Standard (DSS)</title>
            <author>
              <organization/>
            </author>
            <date month="February" year="2023"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.186-5"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <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="X690" target="https://www.itu.int/rec/T-REC-X.690">
          <front>
            <title>Information technology - Abstract Syntax Notation One (ASN.1): ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.690"/>
          <seriesInfo name="ISO/IEC" value="8825-1:2021"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-pq-composite-sigs">
          <front>
            <title>Composite Module-Lattice-Based Digital Signature Algorithm (ML-DSA) for use in X.509 Public Key Infrastructure</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust Limited</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="21" month="April" year="2026"/>
            <abstract>
              <t>   This document defines combinations of US NIST Module-Lattice-Based
   Digital Signature Algorithm (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 in
   certain regions.  Composite ML-DSA is applicable in applications that
   use 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 existential unforgeability (EUF-CMA) level
   security is acceptable.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-pq-composite-sigs-19"/>
        </reference>
        <reference anchor="RFC8017">
          <front>
            <title>PKCS #1: RSA Cryptography Specifications Version 2.2</title>
            <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <author fullname="J. Jonsson" initials="J." surname="Jonsson"/>
            <author fullname="A. Rusch" initials="A." surname="Rusch"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm, covering cryptographic primitives, encryption schemes, signature schemes with appendix, and ASN.1 syntax for representing keys and for identifying the schemes.</t>
              <t>This document represents a republication of PKCS #1 v2.2 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
              <t>This document also obsoletes RFC 3447.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8017"/>
          <seriesInfo name="DOI" value="10.17487/RFC8017"/>
        </reference>
        <reference anchor="RFC8410">
          <front>
            <title>Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for elliptic curve constructs using the curve25519 and curve448 curves. The signature algorithms covered are Ed25519 and Ed448. The key agreement algorithms covered are X25519 and X448. The encoding for public key, private key, and Edwards-curve Digital Signature Algorithm (EdDSA) structures is provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8410"/>
          <seriesInfo name="DOI" value="10.17487/RFC8410"/>
        </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>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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 317?>

<section anchor="sec-asn1-module">
      <name>ASN.1 Module</name>
      <t>This appendix includes the ASN.1 module <xref target="X680"/> for the use of ML-KEM in the CMS.
This module imports objects from <xref target="RFC5911"/>.</t>
      <sourcecode type="asn.1"><![CDATA[
<CODE BEGINS>
Composite-MLDSA-CMS-2026
  { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
        id-smime(16) 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="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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
coZryjLblOd+4N5pcLwM1pehOEloP17PacVnQpECcZo6XqQgV8CbUOAPg8m3
17TLJmF4kXN9BB/nNPbNbID++wR2qXO574sJGF17TdJvnsZ2KX1H/dw0t7Mv
JbGEi6Unz7Cw460HXVUuLq+wKTYpRWG5CKv4HRN1kV1x4L8ir4mmBO+nFxlO
KeGtRnj/p1P6cVK0LkgfzpYWGM91Ael1pDlNJjylMon3nRfCconzhKfQkzrI
u8PgkykESy+OWWi/GCqZ5PWM/Ae6v1XpMUCeWmkKvCBmVRHuLzcvUd368xd2
7YoNdpF4/QX9Pz9Uvuz/Kpjzex/0vzr1/fH+b2r+b9f/qouP+r87OP0N6799
tPnj83949vib+r+t6/7W+W8c3f14//cHa79t/vf1iN/T/4PDqR/p/1+xn5v1
lN/T/4Ojlx/pf30icnv9KZrc7P9fst/b5wq/R34X1b1f7f/zd/5PF+Elvbf7
D1/eQ9WtC0BfQJjOYeuS5fDf+d5lSHvLZBIgPdLutGrk/kpB4iLWNSv56DXo
fgjlx7w8WchV51ewf52Yjfk2pbp9E4td2Xtd1o29HpdxTiquY3vK58F4Nouk
4J4Udy6i5Q9L4aIofEH1bkn7gUsW+PGoVw9CrU4/eW8o+CtnVR4kttQfveF1
tbb7y7zkB2eTf2w27LMRxMcc5ZJha1cMm93os9mh0SZMctjjSQxLLNiZQbrc
c8GMv17vqVDxWiTjK5kGqzv7ETQSHq9JH28ZE5/8wiWfY3tsHsqqdcnFYGQI
dlL5OlrE2Q6+dOuV88Meidd1H+uVeuF4k/vitiD/VXyQHgxFeBBFWVXMB/EB
f7UH4acvmGziIfs5nNPQUzXjeLN1mQyGDdzzfB5iX5LF93QnmeiYqt7zf/u3
HZoIi+9l8/Vm/m//Nm3OvGSV3lM/G1WKQfdgcfcgeBp6A20wy4WWlsibSPI0
F2vBhuqcH7n7nj6nlz9meBDs3//N/T1f8JNS3S0RR0f13t//Y6KGs8iu23Fc
hp3LnT60rwc5llZ/4NoyS2EPkNd5mo989eLoMEki0Jg9afCQZOCYznv188um
Ow/LpD6xFqyYwRMHdheRMDnygw6R5pHQ8uKQvXV5LPc+sU8fNExMeepNpvfr
DVmwBYfwRezW3ywtBpbnamy08eJk2osnN+3Xq9WHtHhyhCfPJw7smK16FdGN
E9xfDXuqAASY4Gur0yhFP7ENnOoCzK+mp2vXrMCQnAsw7/LjxYFnT22xa87H
FPQkaUgNMBGztDdIKgpp+f1ykZ59mTSxwy8gb8weTvqWSDOOk6cak+u/SFCA
MDG/ZGuhJGKehDWe76Amk7O1Qx1bLwz8ZXrVF+I6ny2zVPpCewhHEWXPUp4u
ib/ie7RMzoVpkhZCUZFnseMBbObbVRHNCpFK3kMFNn0z1m4aLFIbiVbkdBn2
zaOr16pNUWrjQrBJsWhBtzQ5qziZwgeaTo4pPdYNi/87LIPyJxCVHzSgRvIg
wcXhblK3DpZXJ2re65M+sM4eoG4beM5F4Io2VgSWsUnPEhLNRN9Ohf5z6GqF
gHL71OZYqLu6YMyyTk0SRazjeDRkXcCcd6Os+8BOKt5UfN5dL7guQXxQibni
L59XQ/58cZx6YaPHo5+3w7N4+b457wT+n2GxJLanqajOhzzHrYc0ubF9WRZi
Z7k+fA3CT45kWVWXKcyCwHckdNKHaqGoxCAPSbLNTiWTmHx8L4R/MJysZ54v
z41e+cjrcxEfb/L6eP/NVtgZ3JJdVrgQ/7FmxZw1uT5wrJOwgqefnJXZ8Skx
T4PnsYJyk+Ektxqu5PvGQc97Se9QsAMCK+Fp3msRNzmUsOipPasvJPGKlWGP
vgjLjyKsJTniTASe1ojJdTH/tj29HtW9ngWednXc6fnCyJHtvTsiuE39uOPT
WcmVjZSPdd6fYIR0kTzBABBOASsxjeNDTO8OPU60bhNdtfv0mCTid3SxYOd4
yerT0zUA3w8crzCxJLaRIPaCPYh4BM137Y9ln2WwPXPr6/1Dn2z7t1b7FZ8d
n3379sZGYHbME7DNk3NF3kvyaByzGPZkbXLI+0LvGb+Iw/QsB9GCkUg2wMpb
UfZASHRSCP81sRNEuG0S6VZJqv3T8fmr9MmsxPbhdcBrEsVnYz5z5uiWlr6e
VfN2gz/BH69u/0THSmTI1B4ca+xXU0XTZIMsmdoxTSQhjFVJPXZzgfrsH3bk
ScOth7iVOADTmRddpTZR+kTNaVR2kYoJgj2mx8CIsbeUlR4pbsqeSeSL9ylP
TR5/Yb62YtTG21+fYl0y2vMjW2fXPRIXyKBaqF8dKSdDHrulJynR8cmXMzFM
6qgmizFXz4H8fa6ZL/DZQqnS6P4j9xEH5nj+59P1uiVlofneCpzDV+knLOor
ePtPPCieE3lfU/7Obs7ZEWvN/jW/mj9xpzydZe5LiO2ryIqlCbH+Klx9/BnV
/prS9594yDFfKFYaFfbQVvf10K6XKXWTG4HJlmCio1az0+vymVrt7zgOzdgr
zNatlBqZXr9TuM/USs1OpVeuf+O7LDu5z2WSb5/g+WKnWb94JueVDdyz79Lg
wdf5fzlK9V+PG/j5d11CPO/+4jLiBzcRP5QYubVOQfqqGomwMDb5pDj77ebH
l7XXb9dDXNfHrrq/K51edr1ZGv128+PLyuP7Id5Ul94O8b54+WaIdwXKbzc+
fS3f3ex9u7x4PdC1nC5GuVUkvPn57SLgt6uGV9W+N6N8Ju+blbrbq3wtxXEn
33gLF/BQ9a/uCG+hgy2KwcZ5sUf8+DsG2xzLzPerd7WdS5JP46vrfq8uj+5c
9x1d6aL9DXQ5X1P+1A/5v3zQ4uoY5C+f+eK7T9+dZPzl1/zxwxZXhwHvG72t
+H7U4rNh3h8c3G5wUVm/2eCj0v+bth+L7mYR/2aDj6r0b9peV+T/8mtOeqPF
Z/K95ajMkR8eHhj+vzP1YynOJitySuN/zdTrCNs5soou4uSPWfXD/5OE/KTv
jxj4J+2vFfZZw7dm/1Hbmx7wI40vrfjz9m/09iONf3Dwd97y621frflX2972
oc+6/ZB2bnnWr7a97WSfdbvyt08a/rj2b3rhr+/y1SEv2l74ZqGRP/Jw/AQW
njxhgkyikN56j96mDK+XvPzTzfirK4fnG3JJYpZegf4EX2/e1uAq53tTxwKN
c1EhOc36+gx6+m0PNituJkcM9N0hSOa0/MKPnoGcvw4nucGe3FhKriOxVRxX
wL4uho/tivP90z2i0V61v7NvvKCacnGt5d2NxosdPPD8MCSrY2XH51tIuqaU
OKwuyTbrBkFyVpdUhdn1P9bgsn9SM5xTurrQ0gsF7dn5r1cEk+8Oee10ug19
Wf07PWhzWmtaNz2Nedn5xw8BTveM2BLOE1xcAIzowr0/FYjSi+Zn2XtXlvfu
xuv1syC/ano0/JZ2uXFF+CiE70nGyrLs+/skr2OrTV5x9UqluW8/P1WDcWW6
tRuZtp0L8F48y+XyYSWXaRf2+V6mlp0sJtP5JDtu1wuZSX03mKR9uGOnbFCY
FzrSYl7ri/VOsZFtzPpxp98o9IVC3M9XxIYn9rqFgljvVSa2tPCt5WBeG3am
nFMqTMaj6dQaZaNxNyuTUSeolBursaQuxrns1Cl3DmT4JDqlwUv9udLs5LGy
eYatbDeaZUtcvS3scrvn/KDdruYznafOoFOqt5VdPpO8V8tnBvV2X2z3XwqL
eq5eyoj9Qma3s8mwHff6+wKHJUqNrlhsC51euyu267O+VBs0Km18Wp9U+kOh
HtSagr/SH3NTwVy6+co+szR3ZTnDJn7inivjSmbYz2czlXxQKT3Vs5NSrrsu
dSuWnG8XnjIvBQhwvp7OvZK5E7LZXWFXzrwKncu058V62xjlexWpni8cIKRd
/WV+qBeDXW93qZ15od6vFNqV2bMtuJJXffQeQ1ngDDnYFDqjabvc7Y42i2nZ
iLWZV+v2F/WqVrCG6r5RjPxOzRpUzNaz09xOB7V1lQTBIBtag+2e88atykiA
ICfPleruOZtt98tZTyhMJoJQmLftYq1mljJT9U57aWQL7Xyo7FtPs954Vpjs
Jq5Q4NT5yGvU4pfWk1Cqv4S1R7v/9GLU6tNCYSmW63EtP7Tlp+auW1YjdXgo
dhrd0JxNrby9eykX8w7njJvyMlPMelZ7NXWpfXfoKwU1F+d32WpHPNSESCnO
Mm2ptRkN1p1gnz1IL7q7z5XCefSs5XRuvKLR/qCp27U/71WXtlQsGnlTf74b
RIcuzeSe7+TxSy8/FmeFSmbVe1mve171oC5rqzJ9EgSJs5TY6cUDZ0T0p3FP
sqqL9i7u7poDv1VouQMvZ+Wy8wUpC1UjCO7cUhRro/Xd1lHEwd0orK24sLWD
Bxpz054bL0/jtfzsDkYvz/vezlplZ3WvfiB1eyq40d1muadiJZ4Ux7L7pK4q
enfq7e64mURtfajvRHcZjV6KwiKeS7v8bl8ZF42JsM54Zbnb3OulSJq6bd8S
BubL1Jq1YqlR9np1PeTavd5u67Sm+3x7uDA2WZtErX2zki/7s3Bhb+lkuhoN
J3H3KTNYKrtcr6qqLfjdtCDNirFl57j9bkT9nLRyIoWWjae7l8auT2vmoDee
3C2M4XxU3hJPJ8X6ggyz3XFVcG2arT+GlV2m2RInNW6VJZswFxp+Z2/PBnqz
OsgHnd7dslBsZWaTuVaYHF7uGmLLN8JZ9GyYZOC9ZPRDZbxs9Y21VeKy82xu
EDxZ6+EzKRefxV33bl3Mmk7FaY6qWrhd78VWUz6QjG88H8TuRB4GE4+qS0me
rg9RFkK8Kz0OirtedmAr+XEv2yLlih61aoVJ7qk0GCkRKU2Hs2d907eq2mDU
G++HYXY56ndlf0705oAbFzoTUhktKtnGc77QyhRyi5m2UB6Ho+m4aWfE8sLf
F3bb8O5RGR16w01za86K45o61NeWHhV23GYi6nt9Xxw46vO4vG3Hw7n3Uppk
qrP2TA/qM6co6lvLD3uTYJdr9lddf5GbPYXDF3UdxXJocHWoS1gWd1vxeWt2
Ba1g5541KbucRwItLNzdbpzZGk9Uqgzinue03FjPxE5uIgZqcfai9CLOV4rW
0+N6Y9vPKhUmcrE863bqI7oaSn432IqH9iZj1u+qDU9wF4unWjtfn0iHZ3mi
z9R2hza4rrih2mNG8oRdVKyRTq05jGoHWOR44IoDp7avSH2y37XbzU6hbJmF
UUVZTgbVka5tD+E2Frl42NQOz4uo0aJt9c5V2l5RqnafA/2xdIgszZ01NzW3
J0bS8hBRt9EYdGujyC3V1XEp6E7FBSdtqdeOaoVSad2WJEsUK7mX8GX+YuW8
utitFXOK+KjkQ8MROo92N1fIZubNkrAUtUXZmseixj2Jmrk8xOoyu5gd5Eht
+53nwtM6UzyAQw5p2I0mu+5jw6hP6VIX21b9UciNa+XKaC+WTdFpcs7QHK9r
fXe+eWmInYofbEqNaqukR0NDod3hOtzZ4lNeyVS7kbwYt+9W/UlRyucXglKz
lXHjjlvP6uqiF23IXi3Jh93U7W3HA1J9qunmRncfpWFsTsedxto2Gla0n1dW
Y6WcD+f2ovukzR5dhcsZrjWtqUs6qJXHirOQxsFgb2/bpUYxIzXa9d3Clp0F
Kew6QyBy/cXY9mi20IiF1oujkqHGRbX+piRXh66pNhtPxZmwJE1V6NRbuQ41
Jn4XGp505HiwEu6yg80TzQv5gbEuxWTctcN4FHJ00PG3Fu26BXWxXzb3M0/s
j7Wwut+3Ny+jWd2wnhXJbayb8xjxp5Vr0V3pbpl9dgOhdlcXt5yzpJ1Aea66
B6qV13SQRcjRN5WXrNJblCZFpMJ3pFZ47pt3i+1ob/nmaD+vrmePjf18Eyhr
j1uvl+umqRZXu6llaM2l+9QW9quO6AiBLFAYE5kJFU/fqIOe6nvS5Cm3tRaT
mqS1e0bVtYBI28Lz2FrrHSvKPtqWYy6ceWY32PQa885wedjTWmh04cV6fy4H
88z8qdor+srLqL/rh5NyrcktysJ+7kZDaC9bWvcazfrcVqc1OvZjz545Smbi
a4JTnxys4XAsNJoLVdhPdj0rHi+mqjMwuX2o3eUG4+XzNGNnxSisdO+UclHW
q+Wl0LyzdaufH21fSq3GIZbyzRexb/vhU9auTPN90atta9zzxijWM0514dvr
esduSjm5OlmtV516tR02/V1301q3yq5XzFQ2WWni9PO+GFiPd6P1WOlnGh3O
H5eXI9e/8yWrfEd7RsEujMXRjMKl6eGp3Ml3BDI+FASn+nQYZEyiaubzrtx+
7q2qg3qhteLMThws5o3soj5+XrV32910MRE7dnhQttqQLEdVQiZW05bbbcXw
G864cugXe1jPtNTq0EyWcpvdoNefFouNpTBdv9gHPVMNphNt3Jo+15x9OHc7
cluwZvXxNtLCNRH1wfbwsm/HQjk/GeeempxZfhyJ2aiZ9Z8Xq5ntB31jWGu1
qpNm4bHhbmNvtTdWOWmgVtbqVtt4+qw81kpiL7Aq4l4nIdesLNU7vyNMumpH
nwz3Yr+s0KhABqX8fl5rznsDcb7freXsS8dfSLV+uFkEjhjVBhvx8LgctLi7
yeMmu74ryYvecKYYWtgb5Lbr4eyupXvj0SQqdANrr8/rjcU216N50m85GVfZ
Cf1yhghxtszRwrwstLwXwXj0yLCcFzZjLZ63xebqWS7tl0N7uw4WqiKO5MII
rMBpZ/R8/+VOuqvu1tsX8MRdXzfNaXNW9vfN0dAW77LDxmCo1JXeY016FvS7
3FCvkuq2rPXWiqyQIRx6MHU3z7mBFwz1IjdqSoeuSZZRbpOzye7R33et+tLp
FYqxptq0FkjSWtV78WZitXNddVLIjavrjLS1D4VqdDdxuDzAsdR9NJvyyDUH
q+dtgTSGamPsWYKiZOTJqANXk32nIdnjQz+Qi8XH0S5yW6OQhNnxZgKCoW99
y1k61XnNMisT1e8J49G4PTDtqko1r+9aw44caXe1bam17lpeRsy3a3U1I8TO
wcrluUMzu91se50o+7TuU1HOm4dV0V/J4SYWa0PHNcbd/WiQ27UHg9Ls0BO7
j4+ZqDzYlhqlYtsY5kH3dXch623bzOUfy1VRWjrZzvax3d7JXj2TV6f78vJF
V6xSpbrcNJZRqxXb0WMldpf7YBttZpzdmuzKEZka1YnTbW+lKFhWzXj/mCWq
lzP9Wrw08gM521r196oabSV5sR001d6d2iov7kaZKtd7pk5ukI0KbtSuKp1F
3dp09vK8WG6axWpp4z9ukTGs98teKdTIYrjMxMGh9qSP84VR2BtX77hCzdms
c9tdpTxWy8FUK7/AFV7yS3L3VK+qo8dsdrCqBtmN0Nu2F8ZeNQu+eNd4dsvF
or0Q6x43m7fz5dIiq2q1bH0U7w5PeV/zSqoUzZ96L04jKk7lgZKbPHVzRnkU
Lqnb2kVivxQLYN+NbI5DGrLsjnulbCUj9HdGXMsOzTBrzRdWtiCv7/y+5lYz
3YLyvJbiO5P21bDm13uquHc3o9Fgn+eqrWxfqgujFrIbsLV+ZU3U6kixn7x6
w3c3q8qgPM6IT6PwRY1HjeKyP23bVlxfmNEw67QKd9y2usv4vSCbl5+eK5qR
63eqJcvw5/unWk8wWtFy9mJO1s/Dp+7TftE/1CKSs8JnhMiht+0Wsz5nl3bS
tPm82oXL7a4RVu+e6HRhu4tOUy60kL08V/RGpxwbUdAdKE9abRpmhsPRrP1U
3eh5UWpxCnYYVzaLbDk65K3B8nG41BbP1rNfanaH3lR/2denTiPfF+LtIhJ3
09V4IruBoy2fNDts2C0urvZny0XXfayXQjeK4t1Qr3n13XZOw4xadqa9WsaM
x6u74XL9ZNa6nWmvOR8VkZX44+KiIXe4/qBfOUTPTtlYe4/NWcPZ5qcIjsAA
3xWtynpT77WsiRo5T41qbtCfPdfGkkhacl7alvP5ocnlwoZctYsT527T7pPC
duiEwmDyRKrGoFGMy3fqbNx0Wof27Kl0kEorJVblYlyoUdKOG+OlleOWNUHf
FLqVpm5kgvzIGTSAj2tVawbkeTsFJZv1R/66t19UDp1VJxwf7P1EPqyfd9VO
WJ8PI64QrIfOcj01XqKK3+iVnqOME9zlg4W+eja7y7nk1wetzrjcy+eWQSPn
UJDAYkOtCp2Dk93Vq1zwsnW782xhPtT7azJt9OXsNF7NsyNden62y/XnYX3c
qOh6+Dzs5Gc107TNsN42a53NwX8uFVWumpdmddds1OZ0QRdPxsSUn3qdZxHx
NhK3XnPblmePi9psQ30jq0hCyxI2tPbU9drhnUMnAZe7mzWUdV0hm5wyvHvZ
7UFjeluv28+3WvtqqVspFMNa2F4P3P26H44qj9XnrFid1BZGlyorVeDKwaNq
jJ/tUJ5XN5knoz14yowEu507rL3AnB2e+uO8ZeZsQy01VpqYNfqTaW/tTpod
uilmHINztqMXSRiDUO9Hk+liVg23j4DR7mxQlEb6tOZNmx5ptJ8yk/3dqjgi
dDoFMXWK9rxfz7/U+pz4ZMzjmrbUBlPb6UxN6geTZm2+DZV8XQkeRYQ7tzJp
VTZh/Dy6wyr3w05NMIyDvov6ir/iyG42v9Nso3/Q10rDCaebXb0gulnaOYi1
fZQh9XpVqhvNRq8SejlEF//JLTSUYU3wwjtvneV2ljp9GdXWo6fF/kUc+m6k
jjtmTW5O2+LUjCrUm7pFtzH0g9qiKKylVd0v1Ce17V3dRtDdt7lxMTdrzvxh
u1Clzktszup3g7vGeiH67Zwzdn13spQyWz83rB3oupJXyj1xNxCW2+GhVi12
44DrLmcDaVUo7uPnkhuvRSnKa8ZOGrxkX3yxeyh1d70tEaZFX6z6cScYlEaz
jAeeYnryIpzk+twutLyy0Z7VHGuk7jLEkjVvEwW2FWjDLZVf2tLBETa7UtGb
Vnq9uTEYyY7+2M6c/nCZN3+y7R0QVpjXC/1cpZ3bxF6xbA+zmwFd2WtrNe/G
zZ3uT+olh64ze6XFrYZBfdPMgN9WJqNVyWzVRv6jv85oz/XWtuGDJr+08xl5
Y69fJkV9NZ/VG3e58Pkf0tJgoZF/LQwmRXT2v26h3S80coXkmOpPxyoje3IS
L9Mvk/q3iy+T+pl/dxNdf2DfmcXz/yL8a/o9U/zVkOxPpdErlNLeSdO0Ue/8
+Y0u7A9WkzzEcvHWrRVJ7Cp8sqQHURAf5AcFS5TPE/Hnn16nfjfZn5KLf9xn
09zYuHgxyev2j0Owryr4t/SrCtD7y68Xell9mGPnE8fK8e2q75dPN/arMr2l
ig8bf/j226l+tXkq48sbDg2ypDca3VawCp2KwtWCT3/6vaLRTR8Mh5TZL+P5
cqPd23fevv4vb6fve/Fv35L4A1tKft3P/7U9sV9O8DuUI//ARj7zgN++v+tX
r2b976qlyJIh2dSRdKJbri0ZuuJqmm7LkiwKkubqgoi//85djfEDznADj34n
Il1P9xY6PlHSn06HUL3D6q2Gfgi0zBuqum0obyDxN81yDY3vd/z21Sf7PR4C
9rx3FvmD+1V/cL/9Xq6XfPEf/0XSBFESJUE2wbrem+bv3MnxRnH6wOXv24vy
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
K558+oW/P/0uNOX4VUH/P91znEVUiwAA

-->

</rfc>
