<?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.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-dilithium-certificates-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="ML-DSA in Certificates">Internet X.509 Public Key Infrastructure: Algorithm Identifiers for ML-DSA</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-dilithium-certificates-06"/>
    <author initials="J." surname="Massimo" fullname="Jake Massimo">
      <organization>AWS</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>jakemas@amazon.com</email>
      </address>
    </author>
    <author initials="P." surname="Kampanakis" fullname="Panos Kampanakis">
      <organization>AWS</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>kpanos@amazon.com</email>
      </address>
    </author>
    <author initials="S." surname="Turner" fullname="Sean Turner">
      <organization>sn3rd</organization>
      <address>
        <email>sean@sn3rd.com</email>
      </address>
    </author>
    <author initials="B. E." surname="Westerbaan" fullname="Bas Westerbaan">
      <organization>Cloudflare</organization>
      <address>
        <email>bas@cloudflare.com</email>
      </address>
    </author>
    <date year="2025" month="January" day="14"/>
    <area>SEC</area>
    <workgroup>LAMPS WG</workgroup>
    <keyword>ML-DSA Certificate X.509 PKIX</keyword>
    <abstract>
      <?line 142?>

<t>Digital signatures are used within X.509 certificates, Certificate
Revocation Lists (CRLs), and to sign messages. This document describes
the conventions for using FIPS 204, the Module-Lattice-Based Digital
Signature Algorithm (ML-DSA) in Internet X.509 certificates and
certificate revocation lists.  The conventions for the associated
signatures, subject public keys, and private key are also described.</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/dilithium-certificates/#go.draft-ietf-lamps-dilithium-certificates.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lamps-dilithium-certificates/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Limited Additional Mechanisms for PKIX and SMIME (lamps) Working Group mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spasm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/lamps-wg/dilithium-certificates"/>.</t>
    </note>
  </front>
  <middle>
    <?line 151?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Module-Lattice-Based Digital Signature Algorithm (ML-DSA) is a
quantum-resistant digital signature scheme standardized by the US
National Institute of Standards and Technology (NIST) PQC project
<xref target="NIST-PQC"/> in <xref target="FIPS204"/>. This document
specifies the use of the ML-DSA in Public Key Infrastructure X.509 (PKIX)
certificates and Certificate Revocation Lists (CRLs) at three security
levels: ML-DSA-44, ML-DSA-65, and ML-DSA-87.</t>
      <t><xref target="FIPS204"/> defines two variants of ML-DSA: a pure and a prehash variant.
Only the former is specified in this document.
See <xref target="sec-disallow-hash"/> for the rationale.
The pure variant of ML-DSA supports the typical prehash flow,
see <xref target="prehash"/>. In short: one cryptographic module can compute the hash <em>mu</em>
on line 6 of algorithm 7 of <xref target="FIPS204"/> and pass it to a second module
to finish the signature. The first module only needs access to the full
message and the public key, whereas the second module only needs access
to hash <em>mu</em> and the private key.</t>
      <t>Prior to standardisation, ML-DSA was known as Dilithium.  ML-DSA and
Dilithium are not compatible.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="oids">
      <name>Identifiers</name>
      <t>The AlgorithmIdentifier type is defined in <xref target="RFC5912"/> as follows:</t>
      <artwork><![CDATA[
    AlgorithmIdentifier{ALGORITHM-TYPE, ALGORITHM-TYPE:AlgorithmSet} ::=
      SEQUENCE {
        algorithm   ALGORITHM-TYPE.id({AlgorithmSet}),
        parameters  ALGORITHM-TYPE.
                      Params({AlgorithmSet}{@algorithm}) OPTIONAL
     }
]]></artwork>
      <aside>
        <t>NOTE: The above syntax is from <xref target="RFC5912"/> 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 AlgorithmIdentifier have the following meanings:</t>
      <ul spacing="normal">
        <li>
          <t>algorithm identifies the cryptographic algorithm with an object
identifier.</t>
        </li>
        <li>
          <t>parameters, which are optional, are the associated parameters for the
algorithm identifier in the algorithm field.</t>
        </li>
      </ul>
      <t>The OIDs are:</t>
      <artwork><![CDATA[
   id-ml-dsa-44 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
            country(16) us(840) organization(1) gov(101) csor(3)
            nistAlgorithm(4) sigAlgs(3) id-ml-dsa-44(17) }

   id-ml-dsa-65 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
            country(16) us(840) organization(1) gov(101) csor(3)
            nistAlgorithm(4) sigAlgs(3) id-ml-dsa-65(18) }

   id-ml-dsa-87 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
            country(16) us(840) organization(1) gov(101) csor(3)
            nistAlgorithm(4) sigAlgs(3) id-ml-dsa-87(19) }
]]></artwork>
      <t>The contents of the parameters component for each algorithm <bcp14>MUST</bcp14> be
absent. The ctx value used in the ML-DSA signing and verification
<xref target="FIPS204"/> of ML-DSA signatures defined in this specification
(X.509 certificates, CRLs) is the empty string.</t>
    </section>
    <section anchor="ml-dsa-signatures-in-pkix">
      <name>ML-DSA Signatures in PKIX</name>
      <t>ML-DSA is a digital signature scheme built upon the
Fiat-Shamir-with-aborts framework <xref target="Fiat-Shamir"/>. The security is based
upon the hardness of lattice problems over module lattices <xref target="Dilithium"/>.
ML-DSA provides three parameter sets for the NIST PQC security categories
2, 3 and 5.</t>
      <t>Signatures are used in a number of different ASN.1 structures. As shown
in the ASN.1 representation from <xref target="RFC5280"/> below, in an X.509
certificate, a signature is encoded with an algorithm identifier in the
signatureAlgorithm attribute and a signatureValue attribute that contains
the actual signature.</t>
      <artwork><![CDATA[
  Certificate  ::=  SIGNED{ TBSCertificate }

  SIGNED{ToBeSigned} ::= SEQUENCE {
     toBeSigned           ToBeSigned,
     algorithmIdentifier  SEQUENCE {
         algorithm        SIGNATURE-ALGORITHM.
                            &id({SignatureAlgorithms}),
         parameters       SIGNATURE-ALGORITHM.
                            &Params({SignatureAlgorithms}
                              {@algorithmIdentifier.algorithm})
                                OPTIONAL
     },
     signature BIT STRING (CONTAINING SIGNATURE-ALGORITHM.&Value(
                              {SignatureAlgorithms}
                              {@algorithmIdentifier.algorithm}))
  }
]]></artwork>
      <t>Signatures are also used in the CRL list ASN.1 representation from
<xref target="RFC5280"/> below. In a X.509 CRL, a signature is encoded with an
algorithm identifier in the signatureAlgorithm attribute and a
signatureValue attribute that contains the actual signature.</t>
      <artwork><![CDATA[
   CertificateList  ::=  SIGNED{ TBSCertList }
]]></artwork>
      <t>The identifiers defined in <xref target="oids"/> can be used as the
AlgorithmIdentifier in the signatureAlgorithm field in the sequence
Certificate/CertificateList and the signature field in the sequence
TBSCertificate/TBSCertList in certificates and CRLs, respectively,
<xref target="RFC5280"/>. The parameters of these signature algorithms <bcp14>MUST</bcp14> be
absent, as explained in <xref target="oids"/>. That is, the AlgorithmIdentifier
<bcp14>SHALL</bcp14> be a SEQUENCE of one component, the OID id-ml-dsa-*.</t>
      <t>The signatureValue field contains the corresponding ML-DSA signature
computed upon the ASN.1 DER encoded tbsCertificate/tbsCertList
<xref target="RFC5280"/>.</t>
      <t>Conforming Certification Authority (CA) implementations <bcp14>MUST</bcp14> specify
the algorithms explicitly by using the OIDs specified in <xref target="oids"/> when
encoding ML-DSA signatures in certificates and CRLs. Conforming client
implementations that process certificates and CRLs using ML-DSA <bcp14>MUST</bcp14>
recognize the corresponding OIDs. Encoding rules for ML-DSA signature
values are specified <xref target="oids"/>.</t>
    </section>
    <section anchor="ML-DSA-PubblicKey">
      <name>ML-DSA Public Keys in PKIX</name>
      <t>In the X.509 certificate, the subjectPublicKeyInfo field has the
SubjectPublicKeyInfo type, which has the following ASN.1 syntax:</t>
      <artwork><![CDATA[
  SubjectPublicKeyInfo {PUBLIC-KEY: IOSet} ::= SEQUENCE {
      algorithm        AlgorithmIdentifier {PUBLIC-KEY, {IOSet}},
      subjectPublicKey BIT STRING
  }
]]></artwork>
      <aside>
        <t>NOTE: The above syntax is from <xref target="RFC5912"/> 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 SubjectPublicKeyInfo have the following meaning:</t>
      <ul spacing="normal">
        <li>
          <t>algorithm is the algorithm identifier and parameters for the
public key (see above).</t>
        </li>
        <li>
          <t>subjectPublicKey contains the byte stream of the public key.</t>
        </li>
      </ul>
      <t><xref target="I-D.ietf-lamps-cms-ml-dsa"/> defines the following public key
identifiers for ML-DSA:</t>
      <artwork><![CDATA[
  pk-ml-dsa-44 PUBLIC-KEY ::= {
    IDENTIFIER id-ml-dsa-44
    -- KEY no ASN.1 wrapping --
    CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
    -- PRIVATE-KEY no ASN.1 wrapping -- }

  pk-ml-dsa-65 PUBLIC-KEY ::= {
    IDENTIFIER id-ml-dsa-65
    -- KEY no ASN.1 wrapping --
    CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
    -- PRIVATE-KEY no ASN.1 wrapping -- }

  pk-ml-dsa-87 PUBLIC-KEY ::= {
    IDENTIFIER id-ml-dsa-87
    -- KEY no ASN.1 wrapping --
    CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
    -- PRIVATE-KEY no ASN.1 wrapping -- }

  ML-DSA-PublicKey ::= OCTET STRING (SIZE (1312 | 1952 | 2592))

  ML-DSA-PrivateKey ::= OCTET STRING (SIZE (32))
]]></artwork>
      <t>An ML-DSA public key is encoded in an X.509 certificate's SubjectPublicKeyInfo
type as described in <xref section="3" sectionFormat="of" target="I-D.ietf-lamps-cms-ml-dsa"/>.</t>
      <t><xref section="3" sectionFormat="of" target="I-D.ietf-lamps-cms-ml-dsa"/> also defines the
ML-DSA-Public and ML-DSA-PrivateKey for when the ML-DSA pubic key
appears outside of a SubjectPublicKeyInfo type and for when the ML-DSA
private key appears outside of an Asymmetric Key Package <xref target="RFC5958"/>,
respectively.</t>
      <t><xref target="examples"/> contains example ML-DSA public keys encoded using the
textual encoding defined in <xref target="RFC7468"/>.</t>
    </section>
    <section anchor="key-usage-bits">
      <name>Key Usage Bits</name>
      <t>The intended application for the key is indicated in the keyUsage
certificate extension; see <xref section="4.2.1.3" sectionFormat="of" target="RFC5280"/>. If the
keyUsage extension is present in a certificate that indicates id-ml-dsa-*
in the SubjectPublicKeyInfo, then the at least one of following <bcp14>MUST</bcp14> be
present:</t>
      <artwork><![CDATA[
  digitalSignature; or
  nonRepudiation; or
  keyCertSign; or
  cRLSign.
]]></artwork>
      <t>If the keyUsage extension is present in a certificate that indicates
id-ml-dsa-* in the SubjectPublicKeyInfo, then the following <bcp14>MUST NOT</bcp14> be
present:</t>
      <artwork><![CDATA[
   keyEncipherment; or
   dataEncipherment; or
   keyAgreement; or
   encipherOnly; or
   decipherOnly.
]]></artwork>
      <t>Requirements about the keyUsage extension bits defined in <xref target="RFC5280"/>
still apply.</t>
    </section>
    <section anchor="private-key-format">
      <name>Private Key Format</name>
      <t>An ML-DSA private key is encoded by storing its 32-octet seed in
the privateKey field as follows.</t>
      <t><xref target="FIPS204"/> specifies two formats for an ML-DSA private key: a 32-octet
seed (xi) and an (expanded) private key. The expanded private key (and public key)
is computed from the seed using <tt>ML-DSA.KeyGen_internal(xi)</tt> (algorithm 6).</t>
      <t>"Asymmetric Key Packages" <xref target="RFC5958"/> describes how to encode a private
key in a structure that both identifies what algorithm the private key
is for and allows for the public key and additional attributes about the
key to be included as well. For illustration, the ASN.1 structure
OneAsymmetricKey is replicated below.</t>
      <artwork><![CDATA[
  OneAsymmetricKey ::= SEQUENCE {
    version                  Version,
    privateKeyAlgorithm      SEQUENCE {
    algorithm                PUBLIC-KEY.&id({PublicKeySet}),
    parameters               PUBLIC-KEY.&Params({PublicKeySet}
                               {@privateKeyAlgorithm.algorithm})
                                  OPTIONAL}
    privateKey               OCTET STRING (CONTAINING
                               PUBLIC-KEY.&PrivateKey({PublicKeySet}
                                 {@privateKeyAlgorithm.algorithm})),
    attributes           [0] Attributes OPTIONAL,
    ...,
    [[2: publicKey       [1] BIT STRING (CONTAINING
                               PUBLIC-KEY.&Params({PublicKeySet}
                                 {@privateKeyAlgorithm.algorithm})
                                 OPTIONAL,
    ...
  }
]]></artwork>
      <aside>
        <t>NOTE: The above syntax is from <xref target="RFC5958"/> and is compatible with the
  2021 ASN.1 syntax <xref target="X680"/>.</t>
      </aside>
      <t>When used in a OneAsymmetricKey type, the privateKey OCTET STRING contains
the raw octet string encoding of the 32-octet seed. The publicKey field
<bcp14>SHOULD</bcp14> be omitted because the public key can be computed as noted earlier
in this section.</t>
      <t><xref target="examples"/> contains example ML-DSA private keys encoded using the
textual encoding defined in <xref target="RFC7468"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>For the ASN.1 module in <xref target="asn1"/>, IANA is requested to assign an object
identifier (OID) for the module identifier (TBD1) with a Description
of "id-mod-x509-ml-dsa-2024". The OID for the module should be
allocated in the "SMI Security for PKIX Module Identifier" registry
(1.3.6.1.5.5.7.0).</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The Security Considerations section of <xref target="RFC5280"/> applies to this
specification as well.</t>
      <t>The digital signature scheme defined within this document are modeled
under strongly existentially unforgeable under chosen message attack
(SUF-CMA). For the purpose of estimating security strength, it has
been assumed that the attacker has access to signatures for no more
than 2^{64} chosen messages.</t>
      <!--TODO: Add discussion about digests in classical signatures hash-then-sign
and how that does not apply to PQ like Dilithium. And how committing to a
message is additional security. Reference NIST discussion from Peiker and
Makku.-->
<!--<aside markdown="block">
EDNOTE: Discuss deterministic vs randomized signing and the impact on
security.
</aside>-->

<t>ML-DSA offers both deterministic and randomized signing. By default
ML-DSA signatures are non-deterministic. The private random seed (rho')
for the signature is pseudorandomly derived from the signer’s private
key, the message, and a 256-bit string, rnd - where rnd should be
generated by an approved RBG. In the deterministic version, rng is
instead a 256-bit constant string. The source of randomness in the
randomized mode has been "hedged" against sources of poor entropy, by
including the signers private key and message into the derivation. The
primary purpose of rnd is to facilitate countermeasures to side-channel
attacks and fault attacks on deterministic signatures.</t>
      <!--<aside markdown="block">
EDNOTE: Discuss side-channels for ML-DSA.
</aside>-->

<t>In the design of ML-DSA, care has been taken to make side-channel
resilience easier to achieve. For instance, ML-DSA does not depend
on Gaussian sampling. Implementations must still take great care
not to leak information via various side channels. While deliberate
design decisions such as these can help to deliver a greater ease
of secure implementation - particularly against side-channel
attacks - it does not necessarily provide resistance to more
powerful attacks such as differential power analysis. Some amount
of side-channel leakage has been demonstrated in parts of the
signing algorithm (specifically the bit-unpacking function), from
which a demonstration of key recovery has been made over a large
sample of signatures. Masking countermeasures exist for
ML-DSA<!--[MGTF19]-->, but come with a performance overhead.</t>
      <t>A fundamental security property also associated with digital
signatures is non-repudiation. Non-repudiation refers to the
assurance that the owner of a signature key pair that was
capable of generating an existing signature corresponding to
certain data cannot convincingly deny having signed the data.
The digital signature scheme ML-DSA possess three security
properties beyond unforgeability, that are associated with
non-repudiation. These are exclusive ownership, message-bound
signatures, and non-resignability. These properties are based
tightly on the assumed collision resistance of the hash
function used (in this case SHAKE-256).</t>
      <t>Exclusive ownership is a property in which a signature sigma
uniquely determines the public key and message for which it
is valid. Message-bound signatures is the property that a
valid signature uniquely determines the message for which it
is valid, but not necessarily the public key.
Non-resignability is the property in which one cannot produce
a valid signature under another key given a signature sigma
for some unknown message m. These properties are not provided
by classical signature schemes such as DSA or ECDSA, and have
led to a variety of attacks such as Duplicate-Signature Key
Selection (DSKS) attacks <!--[BWM99, MS04]-->, and attacks on
the protocols for secure routing<!--[JCCS19]-->. A full
discussion of these properties in ML-DSA can be found at
<xref target="CDFFJ21"/>.</t>
      <t>These properties are dependent, in part, on unambiguous public
key serialization. It for this reason the public key structure
defined in <xref target="ML-DSA-PubblicKey"/> is intentionally encoded as a
single OCTET STRING.</t>
      <section anchor="sec-disallow-hash">
        <name>Rationale for disallowing HashML-DSA</name>
        <t>The HashML-DSA mode defined in Section 5.4 of <xref target="FIPS204"/> <bcp14>MUST NOT</bcp14> be
used; in other words, public keys identified by
<tt>id-hash-ml-dsa-44-with-sha512</tt>, <tt>id-hash-ml-dsa-65-with-sha512</tt>, and
<tt>id-hash-ml-dsa-87-with-sha512</tt> <bcp14>MUST NOT</bcp14> be in X.509 certificates used for
CRLs, OCSP, certificate issuance and related PKIX protocols (e.g. TLS).
The use of HashML-DSA public keys within end entity certificates is not
prohibited, but conventions for doing so are outside the scope of this
document.</t>
        <t>This restriction is for both implementation and security reasons.</t>
        <t>The implementation reason for disallowing HashML-DSA stems from the fact
that ML-DSA and HashML-DSA are incompatible algorithms that require
different <tt>Verify()</tt> routines. This forwards to the protocol the
complexity of informing the client whether to use <tt>ML-DSA.Verify()</tt> or
<tt>HashML-DSA.Verify()</tt> along with the hash algorithm to use. Additionally, since
the same OIDs are used to identify the ML-DSA
public keys and ML-DSA signature algorithms, an implementation would
need to commit a given public key to be either of type <tt>ML-DSA</tt> or
<tt>HashML-DSA</tt> at the time of certificate creation. This is anticipated
to cause operational issues in contexts where the operator does not
know at key generation time whether the key will need to produce pure
or pre-hashed signatures. ExternalMu-ML-DSA avoids all of these
operational concerns by virtue of having keys and signatures that are
indistinguishable from ML-DSA (i.e., ML-DSA and ExternalMu-ML-DSA are
mathematically equivalent algorithms). The difference between ML-DSA
and ExternalMu-ML-DSA is merely an internal implementation detail of
the signer and has no impact on the verifier or network protocol.</t>
        <t>The security reason for disallowing HashML-DSA is that the design of the
ML-DSA algorithm provides enhanced resistance against signature
collision attacks, compared with conventional RSA or ECDSA signature
algorithms. Specifically, ML-DSA binds the hash of the public key <tt>tr</tt>
to the message to-be-signed prior to hashing, as described in line 6 of
Algorithm 7 of <xref target="FIPS204"/>. In practice, this provides binding to the
indended verification public key, preventing some attacks that would
otherwise allow a signature to be successfully verified against a
non-intended public key. Also, this unlikely, theoretical binding means that in the unlikely
discovery of a collision attack against SHA-3, an attacker would
have to perform a public-key-specific collision search in order to find
message pairs such that <tt>H(tr || m1) = H(tr || m2)</tt> since a direct hash
collision <tt>H(m1) = H(m2)</tt> will not suffice. HashML-DSA removes both of
these enhanced security properties.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative 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="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="FIPS204" target="https://csrc.nist.gov/projects/post-quantum-cryptography">
          <front>
            <title>Module-Lattice-based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2023" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="204"/>
        </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="RFC5912">
          <front>
            <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</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 Public Key Infrastructure using X.509 (PKIX) certificate 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="5912"/>
          <seriesInfo name="DOI" value="10.17487/RFC5912"/>
        </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="I-D.ietf-lamps-cms-ml-dsa">
          <front>
            <title>Use of the ML-DSA Signature Algorithm in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="Ben S" initials="B." surname="S">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <author fullname="Adam R" initials="A." surname="R">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <author fullname="Daniel Van Geest" initials="D." surname="Van Geest">
              <organization>CryptoNext Security</organization>
            </author>
            <date day="22" month="November" year="2024"/>
            <abstract>
              <t>   The Module-Lattice-Based Digital Signature Algorithm (ML-DSA), as
   defined 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 and public key syntax are provided.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-ml-dsa-01"/>
        </reference>
        <reference anchor="RFC5958">
          <front>
            <title>Asymmetric Key Packages</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document defines the syntax for private-key information and a content type for it. Private-key information includes a private key for a specified public-key algorithm and a set of attributes. The Cryptographic Message Syntax (CMS), as defined in RFC 5652, can be used to digitally sign, digest, authenticate, or encrypt the asymmetric key format content type. This document obsoletes RFC 5208. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5958"/>
          <seriesInfo name="DOI" value="10.17487/RFC5958"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="Dilithium" target="https://pq-crystals.org/dilithium/data/dilithium-specification-round3-20210208.pdf">
          <front>
            <title>CRYSTALS-Dilithium Algorithm Specifications and Supporting Documentation</title>
            <author initials="S." surname="Bai">
              <organization/>
            </author>
            <author initials="L." surname="Ducas">
              <organization/>
            </author>
            <author initials="T." surname="Lepoint">
              <organization/>
            </author>
            <author initials="V." surname="Lyubashevsky">
              <organization/>
            </author>
            <author initials="P." surname="Schwabe">
              <organization/>
            </author>
            <author initials="G." surname="Seiler">
              <organization/>
            </author>
            <author initials="D." surname="Stehlé">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="Fiat-Shamir" target="https://www.iacr.org/archive/asiacrypt2009/59120596/59120596.pdf">
          <front>
            <title>Fiat-Shamir with aborts: Applications to lattice and factoring-based signatures</title>
            <author initials="V." surname="Lyubashevsky">
              <organization/>
            </author>
            <date year="2009"/>
          </front>
          <seriesInfo name="International Conference on the Theory and Application of Cryptology and Information Security" value=""/>
        </reference>
        <reference anchor="CDFFJ21" target="https://eprint.iacr.org/2020/1525.pdf">
          <front>
            <title>BUFFing signature schemes beyond unforgeability and the case of post-quantum signatures</title>
            <author initials="C." surname="Cremers">
              <organization/>
            </author>
            <author initials="S." surname="Düzlü">
              <organization/>
            </author>
            <author initials="R." surname="Fiedler">
              <organization/>
            </author>
            <author initials="M." surname="Fischlin">
              <organization/>
            </author>
            <author initials="C." surname="Janson">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
          <seriesInfo name="In Proceedings of the 42nd IEEE Symposium on Security and Privacy" value=""/>
        </reference>
        <reference anchor="NIST-PQC" target="https://csrc.nist.gov/Projects/post-quantum-cryptography">
          <front>
            <title>Post-Quantum Cryptography Project</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2016" month="December" day="20"/>
          </front>
        </reference>
        <reference anchor="RFC7468">
          <front>
            <title>Textual Encodings of PKIX, PKCS, and CMS Structures</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="S. Leonard" initials="S." surname="Leonard"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>This document describes and discusses the textual encodings of the Public-Key Infrastructure X.509 (PKIX), Public-Key Cryptography Standards (PKCS), and Cryptographic Message Syntax (CMS). The textual encodings are well-known, are implemented by several applications and libraries, and are widely deployed. This document articulates the de facto rules by which existing implementations operate and defines them so that future implementations can interoperate.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7468"/>
          <seriesInfo name="DOI" value="10.17487/RFC7468"/>
        </reference>
      </references>
    </references>
    <?line 589?>

<section anchor="asn1">
      <name>ASN.1 Module</name>
      <t>This appendix includes the ASN.1 module <xref target="X680"/> for the ML-DSA.  Note that
as per <xref target="RFC5280"/>, certificates use the Distinguished Encoding Rules; see
<xref target="X690"/>. This module imports objects from <xref target="RFC5912"/> and
<xref target="I-D.ietf-lamps-cms-ml-dsa"/>.</t>
      <aside>
        <t>RFC EDITOR: Please replace TBD2 with the value assigned by IANA during the
publication of <xref target="I-D.ietf-lamps-cms-ml-dsa"/>. Also please replace
<xref target="I-D.ietf-lamps-cms-ml-dsa"/> in the module with a reference to the
published RFC.</t>
      </aside>
      <sourcecode markers="true"><![CDATA[
X509-ML-DSA-2024
{ iso(1) identified-organization(3) dod(6)
  internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
  id-mod-x509-ml-dsa-2024(TBD1) }

DEFINITIONS IMPLICIT TAGS ::=

BEGIN

-- EXPORTS ALL;

IMPORTS

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

sa-ml-dsa-44, sa-ml-dsa-65, sa-ml-dsa-87,
pk-ml-dsa-44, pk-ml-dsa-65, pk-ml-dsa-87,
ML-DSA-PublicKey, ML-DSA-PrivateKey
  FROM ML-DSA-Module-2024 -- From [I-D.ietf-lamps-cms-ml-dsa]
     { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
       id-smime(16) id-mod(0) id-mod-ml-dsa-2024(TBD2) } ;

--
-- Expand SignatureAlgorithms from RFC 5912
--
SignatureAlgorithms SIGNATURE-ALGORITHM ::= {
  sa-ml-dsa-44 |
  sa-ml-dsa-65 |
  sa-ml-dsa-87,
  ... }

--
-- Expand SignatureAlgorithms from RFC 5912
--
PublicKeys PUBLIC-KEY ::= {
  pk-ml-dsa-44 |
  pk-ml-dsa-65 |
  pk-ml-dsa-87,
  ...
}

END
]]></sourcecode>
    </section>
    <section anchor="security-strengths">
      <name>Security Strengths</name>
      <t>Instead of defining the strength of a quantum algorithm
in a traditional manner using the imprecise notion of bits
of security, NIST has instead elected to define security
levels by picking a reference scheme, which NIST expects
to offer notable levels of resistance to both quantum and
classical attack. To wit, an algorithm that achieves NIST PQC
security level 1 must require computational resources to
break the relevant security property, which are greater than
those required for a brute-force key search on AES-128.
Levels 3 and 5 use AES-192 and AES-256 as reference respectively.
Levels 2 and 4 use collision search for SHA-256 and SHA-384
as reference.</t>
      <t>The parameter sets defined for NIST security levels 2, 3 and 5
are listed in the Figure 1, along with the resulting signature
size, public key, and private key sizes in bytes.
Note that these are the sizes of
    the plain private and public keys; and
    not the sizes of the resultant OneAsymmetricKey and SubjectPublicKeyInfo
        objects in which they are wrapped.</t>
      <!-- full table, see page 15 of https://pq-crystals.org/dilithium/data/dilithium-specification-round3-20210208.pdf -->
<!-- [JM] we can consider the usefulness of this table/domain parameter discussion here, since we do not want to include the parameter selection in the document -->
<!--<figure anchor="DilithiumParameters">
          <artwork align="left" name="" type="" alt=""><![CDATA[
|==========+=====+=========+=======+=====+========+========+========|
| Security |  n  |    q    | (k,l) | eta | gamma1 | Public | Private|
| Level    |     |         |       |     |        | Key(B) | Key(B) |
|==========+=====+=========+=======+=====+========+========+========|
| 2        | 256 | 8380417 | (4,4) |  2  |  2^17  |  1312  |   2528 |
| 3        | 256 | 8380417 | (6,5) |  4  |  2^19  |  1952  |   4000 |
| 5        | 256 | 8380417 | (8,7) |  2  |  2^19  |  2596  |   4864 |
|==========+=====+=========+=======+=====+========+========+========|]]>
</artwork>
</figure>-->
<!--<figure anchor="DilithiumParameters">
<artwork align="left" name="" type="" alt=""><![CDATA[
|=======+=========+=======+=====+========+======+========+==========|
|Level  |    q    | (k,l) | eta | gamma1 |  Sig.  | Public | Private|
|       |         |       |     |        |  (B)   | Key(B) | Key(B) |
|=======+=========+=======+=====+========+======+========+==========|
| 2     | 8380417 | (4,4) |  2  |  2^17  |  2420  |  1312  |  2528  |
| 3     | 8380417 | (6,5) |  4  |  2^19  |  3293  |  1952  |  4000  |
| 5     | 8380417 | (8,7) |  2  |  2^19  |  4595  |  2596  |  4864  |
|=======+=========+=======+=====+========+======+========+==========|]]>
</artwork>
</figure>-->
<figure anchor="ML-DSAParameters">
        <name>ML-DSA Parameters</name>
        <artwork><![CDATA[
|=======+=======+=====+========+========+========|
| Level | (k,l) | eta |  Sig.  | Public | Private|
|       |       |     |  (B)   | Key(B) | Key(B) |
|=======+=======+=====+========+========+========|
|   2   | (4,4) |  2  |  2420  |  1312  |  32    |
|   3   | (6,5) |  4  |  3309  |  1952  |  32    |
|   5   | (8,7) |  2  |  4627  |  2592  |  32    |
|=======+=======+=====+========+========+========|
]]></artwork>
      </figure>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>This appendix contains examples of ML-DSA public keys, private keys and certificates.</t>
      <section anchor="example-private">
        <name>Example Private Key</name>
        <t>The following is an example of a ML-DSA-44 private key with hex seed <tt>000102…1e1f</tt>:</t>
        <artwork><![CDATA[
-----BEGIN PRIVATE KEY-----
MDICAQAwCwYJYIZIAWUDBAMRBCAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRob
HB0eHw==
-----END PRIVATE KEY-----
]]></artwork>
        <artwork><![CDATA[
SEQUENCE {
  INTEGER { 0 }
  SEQUENCE {
    OBJECT_IDENTIFIER { 2.16.840.1.101.3.4.3.17 }
  }
  OCTET_STRING { `000102030405060708090a0b0c0d0e0f10111213141516
1718191a1b1c1d1e1f` }
}
]]></artwork>
        <t>The following is an example of a ML-DSA-65 private key with hex seed <tt>000102…1e1f</tt>:</t>
        <artwork><![CDATA[
-----BEGIN PRIVATE KEY-----
MDICAQAwCwYJYIZIAWUDBAMSBCAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRob
HB0eHw==
-----END PRIVATE KEY-----
]]></artwork>
        <artwork><![CDATA[
SEQUENCE {
  INTEGER { 0 }
  SEQUENCE {
    OBJECT_IDENTIFIER { 2.16.840.1.101.3.4.3.18 }
  }
  OCTET_STRING { `000102030405060708090a0b0c0d0e0f10111213141516
1718191a1b1c1d1e1f` }
}
]]></artwork>
        <t>The following is an example of a ML-DSA-87 private key with hex seed <tt>000102…1e1f</tt>:</t>
        <artwork><![CDATA[
-----BEGIN PRIVATE KEY-----
MDICAQAwCwYJYIZIAWUDBAMTBCAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRob
HB0eHw==
-----END PRIVATE KEY-----
]]></artwork>
        <artwork><![CDATA[
SEQUENCE {
  INTEGER { 0 }
  SEQUENCE {
    OBJECT_IDENTIFIER { 2.16.840.1.101.3.4.3.19 }
  }
  OCTET_STRING { `000102030405060708090a0b0c0d0e0f10111213141516
1718191a1b1c1d1e1f` }
}
]]></artwork>
        <t>NOTE: The private key is the seed and all three examples keys use the
same seed; therefore, the private above are the same except for the OID
used to represent the ML-DSA algorithm's security strength.</t>
      </section>
      <section anchor="example-public">
        <name>Example Public Key</name>
        <t>The following is the ML-DSA-44 public key corresponding to the private
key in the previous section.</t>
        <artwork><![CDATA[
-----BEGIN PUBLIC KEY-----
MIIFMjALBglghkgBZQMEAxEDggUhANeytHJUquDbReeTDUqY0sl9jxOX0Xidr6Fw
JLMW6b7JT8mUbULxm3mnQTu6oz5xSctC7VEVaTrAQfrLmIretf4OHYYxGEmVtZLD
l9IpTi4U+QqkFLo4JomaxD9MzKy8JumoMrlRGNXLQzy++WYLABOOCBf2HnYsonTD
atVU6yKqwRYuSrAay6HjjE79j4C2WzM9D3LlXf5xzpweu5iJ58VhBsD9c4A6Kuz+
r97XqjyyztpU0SvYzTanjPl1lDtHq9JeiArEUuV0LtHo0agq+oblkMdYwVrk0oQN
kryhpQkPQElll/yn2LlRPxob2m6VCqqY3kZ1B9Sk9aTwWZIWWCw1cvYu2okFqzWB
ZwxKAnd6M+DKcpX9j0/20aCjp2g9ZfX19/xg2gI+gmxfkhRMAvfRuhB1mHVT6pNn
/NdtmQt/qZzUWv24g21D5Fn1GH3wWEeXCaAepoNZNfpwRgmQzT3BukAbqUurHd5B
rGerMxncrKBgSNTE7vJ+4TqcF9BTj0MPLWQtwkFWYN54h32NirxyUjl4wELkKF9D
GYRsRBJiQpdoRMEOVWuiFbWnGeWdDGsqltOYWQcf3MLN51JKe+2uVOhbMY6FTo/i
svPt+slxkSgnCq/R5QRMOk/a/Z/zH5B4S46ORZYUSg2vWGUR09mWK56pWvGXtOX8
YPKx7RXeOlvvX4m9x52RBR2bKBbnT6VFMe/cHL501EiFf0drzVjyHAtlOzt2pOB2
plWaMCcYVVzGP3SFmqurkl8COGHKjND3utsocfZ9VTJtdFETWtRfShumkRj7ssij
DuyTku8/l3Bmya3VxxDMZHsVFNIX2VjHAXw+kP0gwE5nS5BIbpNwoxoAHTL0c5ee
SQZ0nn5Hf6C3RQj4pfI3gxK4PCW9OIygsP/3R4uvQrcWZ+2qyXxGsSlkPlhuWwVa
DCEZRtTzbmdb7Vhg+gQqMV2YJhZNapI3w1pfv0lUkKW9TfJIuVxKrneEtgVnMWas
QkW1tLCCoJ6TI+YvIHjFt2eDRG3v1zatOjcC1JsImESQCmGDM5e8RBmzDXqXoLOH
wZEUdMTUG1PjKpd6y28Op122W7OeWecB52lX3vby1EVZwxp3EitSBOO1whnxaIsU
7QvAuAGz5ugtzUPpwOn0F0TNmBW9G8iCDYuxI/BPrNGxtoXdWisbjbvz7ZM2cPCV
oYC08ZLQixC4+rvfzCskUY4y7qCl4MkEyoRHgAg/OwzS0Li2r2e8NVuUlAJdx7Cn
j6gOOi2/61EyiFHWB4GY6Uk2Ua54fsAlH5Irow6fUd9iptcnhM890gU5MXbfoySl
Er2Ulwo23TSlFKhnkfDrNvAUWwmrZGUbSgMTsplhGiocSIkWJ1mHaKMRQGC6RENI
bfUVIqHOiLMJhcIW+ObtF43VZ7MEoNTK+6iCooNC8XqaomrljbYwCD0sNY/fVmw/
XWKkKFZ7yeqM6VyqDzVHSwv6jzOaJQq0388gg76O77wQVeGP4VNw7ssmBWbYP/Br
IRquxDyim1TM0A+IFaJGXvC0ZRXMfkHzEk8J7/9zkwmrWLKaFFmgC85QOOk4yWeP
cusOTuX9quZtn4Vz/Jf8QrSVn0v4th14Qz6GsDNdbpGRxNi/SHs5BcEIz9asJLDO
t9y3z1H4TQ7Wh7lerrHFM8BvDZcCPZKnCCWDe1m6bLfU5WsKh8IDhiro8xW6WSXo
7e+meTaaIgJ2YVHxapZfn4Hs52zAcLVYaeTbl4TPBcgwsyQsgxI=
-----END PUBLIC KEY-----
]]></artwork>
        <artwork><![CDATA[
SEQUENCE {
  SEQUENCE {
    OBJECT_IDENTIFIER { 2.16.840.1.101.3.4.3.17 }
  }
  BIT_STRING { `00` `d7b2b47254aae0db45e7930d4a98d2c97d8f1397d17
89dafa17024b316e9bec94fc9946d42f19b79a7413bbaa33e7149cb42ed51156
93ac041facb988adeb5fe0e1d8631184995b592c397d2294e2e14f90aa414ba3
826899ac43f4cccacbc26e9a832b95118d5cb433cbef9660b00138e0817f61e7
62ca274c36ad554eb22aac1162e4ab01acba1e38c4efd8f80b65b333d0f72e55
dfe71ce9c1ebb9889e7c56106c0fd73803a2aecfeafded7aa3cb2ceda54d12bd
8cd36a78cf975943b47abd25e880ac452e5742ed1e8d1a82afa86e590c758c15
ae4d2840d92bca1a5090f40496597fca7d8b9513f1a1bda6e950aaa98de46750
7d4a4f5a4f0599216582c3572f62eda8905ab3581670c4a02777a33e0ca7295f
d8f4ff6d1a0a3a7683d65f5f5f7fc60da023e826c5f92144c02f7d1ba1075987
553ea9367fcd76d990b7fa99cd45afdb8836d43e459f5187df058479709a01ea
6835935fa70460990cd3dc1ba401ba94bab1dde41ac67ab3319dcaca06048d4c
4eef27ee13a9c17d0538f430f2d642dc2415660de78877d8d8abc72523978c04
2e4285f4319846c44126242976844c10e556ba215b5a719e59d0c6b2a96d3985
9071fdcc2cde7524a7bedae54e85b318e854e8fe2b2f3edfac9719128270aafd
1e5044c3a4fdafd9ff31f90784b8e8e4596144a0daf586511d3d9962b9ea95af
197b4e5fc60f2b1ed15de3a5bef5f89bdc79d91051d9b2816e74fa54531efdc1
cbe74d448857f476bcd58f21c0b653b3b76a4e076a6559a302718555cc63f748
59aabab925f023861ca8cd0f7badb2871f67d55326d7451135ad45f4a1ba6911
8fbb2c8a30eec9392ef3f977066c9add5c710cc647b1514d217d958c7017c3e9
0fd20c04e674b90486e9370a31a001d32f473979e4906749e7e477fa0b74508f
8a5f2378312b83c25bd388ca0b0fff7478baf42b71667edaac97c46b129643e5
86e5b055a0c211946d4f36e675bed5860fa042a315d9826164d6a9237c35a5fb
f495490a5bd4df248b95c4aae7784b605673166ac4245b5b4b082a09e9323e62
f2078c5b76783446defd736ad3a3702d49b089844900a61833397bc4419b30d7
a97a0b387c1911474c4d41b53e32a977acb6f0ea75db65bb39e59e701e76957d
ef6f2d44559c31a77122b5204e3b5c219f1688b14ed0bc0b801b3e6e82dcd43e
9c0e9f41744cd9815bd1bc8820d8bb123f04facd1b1b685dd5a2b1b8dbbf3ed9
33670f095a180b4f192d08b10b8fabbdfcc2b24518e32eea0a5e0c904ca84478
0083f3b0cd2d0b8b6af67bc355b9494025dc7b0a78fa80e3a2dbfeb51328851d
6078198e9493651ae787ec0251f922ba30e9f51df62a6d72784cf3dd20539317
6dfa324a512bd94970a36dd34a514a86791f0eb36f0145b09ab64651b4a0313b
299611a2a1c48891627598768a3114060ba4443486df51522a1ce88b30985c21
6f8e6ed178dd567b304a0d4cafba882a28342f17a9aa26ae58db630083d2c358
fdf566c3f5d62a428567bc9ea8ce95caa0f35474b0bfa8f339a250ab4dfcf208
3be8eefbc1055e18fe15370eecb260566d83ff06b211aaec43ca29b54ccd00f8
815a2465ef0b46515cc7e41f3124f09efff739309ab58b29a1459a00bce5038e
938c9678f72eb0e4ee5fdaae66d9f8573fc97fc42b4959f4bf8b61d78433e86b
0335d6e9191c4d8bf487b3905c108cfd6ac24b0ceb7dcb7cf51f84d0ed687b95
eaeb1c533c06f0d97023d92a70825837b59ba6cb7d4e56b0a87c203862ae8f31
5ba5925e8edefa679369a2202766151f16a965f9f81ece76cc070b55869e4db9
784cf05c830b3242c8312` }
}
]]></artwork>
        <t>The following is the ML-DSA-65 public key corresponding to the private
key in the previous section.</t>
        <artwork><![CDATA[
-----BEGIN PUBLIC KEY-----
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
HgLy6ERP
-----END PUBLIC KEY-----
]]></artwork>
        <artwork><![CDATA[
SEQUENCE {
  SEQUENCE {
    OBJECT_IDENTIFIER { 2.16.840.1.101.3.4.3.18 }
  }
  BIT_STRING { `00` `48683d91978e31eb3dddb8b0473482d2b88a5f62594
9fd8f58a561e696bd4c27d05b38dbb2edf01e664efd81be1ea893688ce68aa2d
51c5958f8bbc6eb4e89ee67d2c0320954d57212cac7229ff1d6eaf03928bd515
11f8d88d847736c7de2730d5978e5410713160978867711bf5539a0bfc4c350c
2be572baf0ee2e2fb16ccfea08028d99ac49aebb75937ddce111cdab62fff3ce
a8ba2233d1e56fbc5c5a1e726de63fadd2af016b119177fa3d971a2d9277173f
ce55b67745af0b7c21d597dbeb93e6a32f341c49a5a8be9e825088d1f2aa4515
5d6c8ae15367e4eb003b8fdf7851071949739f9fff09023eaf45104d2a84a459
06eed4671a44dc28d27987bb55df69e9e8561f61a80a72699503865fed9b7ee7
2a8e17a19c408144f4b29afef7031c3a6d8571610b42c9f421245a88f197e168
12b031159b65b9687e5b3e934c5225ae98a79ba73d2b399d73510effad19e53b
8450f0ba8fce1012fd98d260a74aaaa13fae249a006b1c34f5ba0b882f263782
22fb36f2283c243f0ffeb5f1bb414a0a70d55e3d40a56b6cbc88ae1f03b7b288
2d98deea28e145c9dedfd8eaf1cef2ed94a8b050f8964f46d1ea0d0c2a43e0dd
a6182adbf4f6ed175b6742257859bf22f3a417ecf1f9d89317b5e539d587af16
b9e1313e04514ffa64ba8b3ff2b8321f8811cb3fb022c8f644e70a4b80a2fbfe
e604abb7379091ea8e6c5c74dfc0283666b40c0793870028204a136bf5da9568
eb798d349038bdb0c11e03445e7847cb5069c75cf28ac601c7799d958210ddbc
b226e51afef9f1de47b073873d6d3f97456bede085082e74a298b2cd48f4b309
3155f366c8fa601c6af858dfa32c08491b2a29887f90335949a5d6edaa679882
a3a95d6bf6d970a221f4b9d3d8cbf384af81aac95e2b3294e04789ac83727a5d
c04559f96af41d8a053516feeeebc52746eb6ab2819e09108710d835f011fa63
065872ad334d5cdffb2b2310507e92fc993ae317da97f4f309cdaf0f67ed99d9
0215576083849f953b246d7fedb3fdb67679850a5ad404e64147fb7cf4f6aedd
d05afb4b834968d1fe88014960dce5d942236526e12a478d69e5fbe6970310b3
08c06845018cfc7b2ab430a13a6b1ac7bb02cccbb3d911ac2f11068613fbe029
bfdce02cf5cd38950ed72c83944edfbc75615af87f864c051f3c55456c541286
3a40c06d1dab562bdff0571b8d3c3917bbd300880bba5e998239b95fa91b7d64
16d4f398b3adbcd30983ed3592b4d9ef7d4236fd00f50d98aa53a235ac417272
0f77d96172672980cfe8ff7a5a702783edc2ba31b2259015a112fc7f468a9c2f
9464039002d30ef678b4cb798bc116216bf7a9a7c18ba03b7b58fd07515d3115
049d3614be7a07e744300750df1d2c58753389059eafc3d785ccdd31c07648be
dc03a5c3b8ad46d064d59c13d57374729fc4e295362e2a5191204530428bc152
2afa28ff5fe1655e304ca5bc8c27ad0e0c6a39dd4df28956c14b38cc93682cef
e402bbd5e82d29c464e44eb5d37b48fc568dfe0cc6e8e16baea05e5135590f19
294e73e8367b0216dbb815030b9de55913f08039c42351c59e5515dd5af8e089
a15e625e8f6dee639386c46497d7a263288774de581a7de9629b41b4424141f9
78fb8331208efdec3c6e0de39bc57063f3dcd6c470373c08891ea29cbc7cc6d6
483b8889083ace86aa7b51b1c2cfe6e2ad18d97ce36fbc56ea42fae97e6a7ac1
14864478c366df1ebb1e7b11a9098504fd5975bdf1f49dc70002b63c1739a9d2
63fbad4073f6a9f6c2b8af4b4c332a103a0cffa5deeb2d062ca3c215fd360026
be7c5164f4a4424ef74948804d66f46487732c8202c795478647b4ea71d627c0
86024cca354a41f0877b38f19b3774ad2095c8da53b069e21c76ae2d2007e167
19ed40080d334f7da52e9f5a5990439caf083a95b833f02ad10a08c1a6d0f260
c007285bd4a2f47703a5aef465287d253b18ac22514316210ff566814b10f87a
293d6f199d3c3959990d0c1268b4f50d5f9fcefbbf237bd0c28b80182d665974
1f14f10bfbb21bba12ab620aa2396f56c0686b4ea9017990224216b2fe8ad76c
4a9148eef9a86a3635a6aa77bc1dcfb6fba59a77dfda9b7530dc0ca8648c8d97
3738e01bab8f08b4905e84aa4641bd602410cd97520265f2f231f2b35e15eb2f
a04d2bd94d5a77abaf1e0e161010a990087f5b46ea988b2bc0512fda0fa923da
dd6c45c5301d09483673265b5ab2e10f4ba520f6bbad564a5c3d5e27bdb080f7
d20e13296a3181954c39c649c943ebe17df5c1f7aae0a8fe126c477585a5d4d6
48a0d008b6af5e8cd31be69a9296d4f3fd25ed86f221e4b93f65f59299675336
24b9235750c30707550b58536d109a7131c5a5bbe4a5715567c12534aec76607
61eebb9fae2891c774589b80e566ad557ddef7367196b7227ea9870ef09ddfec
79d6b9319a6879b5205d76bf7aba5acf33afb59d17fc54e68383d6be5a08e9b6
6da53dcde008bb294b8582bd132cdcc49959fdbc21e52721880c8ad0352c79f0
3a43bbd84c4cdfdc6c529005e1e7cd9a349a7168a35569ba5dea818968d5a914
66bd6e64e20bf62417198afc4e81c28dd77ed4028232398b52fbde86bc84f475
b9016710ce2aabc11a06b4dbac901ec16cf365ca3f2d53813948a693a0f93e79
c46ca5d5a6dca3d28ca50ad18bd13fca55059dd9b185f79f9c47196a4e81b210
4bc460a051e02f2e8444f` }
}
]]></artwork>
        <t>The following is the ML-DSA-87 public key corresponding to the private
key in the previous section.</t>
        <artwork><![CDATA[
-----BEGIN PUBLIC KEY-----
MIIKMjALBglghkgBZQMEAxMDggohAJeSvOwvJDBoaoL8zzwvX/Zl53HXq0G5AljP
p+kOyXEkpzsyO5uiGrZNdnxDP1pSHv/hj4bkahiJUsRGfgSLcp5/xNEV5+SNoYlt
X+EZsQ3N3vYssweVQHS0IzblKDbeYdqUH4036misgQb6vhkHBnmvYAhTcSD3B5O4
6pzA5ue3tMmlx0IcYPJEUboekz2xou4Wx5VZ8hs9G4MFhQqkKvuxPx9NW59INfnY
ffzrFi0O9Kf9xMuhdDzRyHu0ln2hbMh2S2Vp347lvcv/6aTgV0jm/fIlr55O63dz
ti6Phfm1a1SJRVUYRPvYmAakrDab7S0lYQD2iKatXgpwmCbcREnpHiPFUG5kI2Hv
WjE3EvebxLMYaGHKhaS6sX5/lD0bijM6o6584WtEDWAY+eBNr1clx/GpP60aWie2
eJW9JJqpFoXeIK8yyLfiaMf5aHfQyFABE1pPCo8bgmT6br5aNJ2K7K0aFimczy/Z
x7hbrOLO06oSdrph7njtflyltnzdRYqTVAMOaru6v1agojFv7J26g7UdQv0xZ/Hg
+QhV1cZlCbIQJl3B5U7ES0O6fPmu8Ri0TYCRLOdRZqZlHhFs6+SSKacGLAmTH3Gr
0ik/dvfvwyFbqXgAA35Y5HC9u7Q8GwQ56vecVNk7RKrJ7+n74VGHTPsqZMvuKMxM
D+d3Xl2HDxwC5bLjxQBMmV8kybd5y3U6J30Ocf1CXra8LKVs4SnbUfcHQPMeY5dr
UMcxLpeX14xbGsJKX6NHzJFuCoP1w7Z1zTC4Hj+hC5NETgc5dXHM6Yso2lHbkFa8
coxbCxGB4vvTh7THmrGl/v7ONxZ693LdrRTrTDmC2lpZ0OnrFz7GMVCRFwAno6te
9qoSnLhYVye5NYooUB1xOnLz8dsxcUKG+bZAgBOvBgRddVkvwLfdR8c+2cdbEenX
xp98rfwygKkGLFJzxDvhw0+HRIhkzqe1yX1tMvWb1fJThGU7tcT6pFvqi4lAKEPm
Rba5Jp4r2YjdrLAzMo/7BgRQ998IAFPmlpslHodezsMs/FkoQNaatpp14Gs3nFNd
lSZrCC9PCckxYrM7DZ9zB6TqqlIQRDf+1m+O4+q71F1nslqBM/SWRotSuv/b+tk+
7xqYGLXkLscieIo9jTUp/Hd9K6VwgB364B7IgwKDfB+54DVXJ2Re4QRsP5Ffaugt
rU+2sDVqRlGP/INBVcO0/m2vpsyKXM9TxzoISdjUT33PcnVOcOG337RHu070nRpx
j2Fxu84gCVDgzpJhBrFRo+hx1c5JcxvWZQqbDKly2hxfE21Egg6mODwI87OEzyM4
54nFE/YYzFaUpvDO4QRRHh7XxfI6Hr/YoNuEJFUyQBVtv2IoMbDGQ9HFUbbz96mN
KbhcLeBaZfphXu4WSVvZBzdnIRW1PpHF2QAozz8ak5U6FT3lO0QITpzP9rc2aTkm
2u/rstd6pa1om5LzFoZmnfFtFxXMWPeiz7ct0aUekvglmTp0Aivn6etgVGVEVwlN
FJKPICFeeyIqxWtRrb7I2L22mDl5p+OiG0S10VGMqX0LUZX1HtaiQ1DIl0fh7epR
tEjj6RRwVM6SeHPJDbOU2GiI4H3/F3WT1veeFSMCIErrA74jhq8+JAeL0CixaJ9e
FHyfRSyM6wLsWcydtjoDV2zur+mCOQI4l9oCNmMKU8Def0NaGYaXkvqzbnueY1dg
8JBp5kMucAA1rCoCh5//Ch4b7FIgRxk9lOtd8e/VPuoRRMp4lAhS9eyXJ5BLNm7e
T14tMx+tX8KC6ixH6SMUJ3HD3XWoc1dIfe+Z5fGOnZ7WI8F10CiIxR+CwHqA1UcW
s8PCvb4unwqbuq6+tNUpNodkBvXADo5LvQpewFeX5iB8WrbIjxpohCG9BaEU9Nfe
KsJB+g6L7f9H92Ldy+qpEAT40x6FCVyBBUmUrTgm40S6lgQIEPwLKtHeSM+t4ALG
LlpJoHMas4NEvBY23xa/YH1WhV5W1oQAPHGOS62eWgmZefzd7rHEp3ds03o0F8sO
GE4p75vA6HR1umY74J4Aq1Yut8D3Fl+WmptCQUGYzPG/8qLI1omkFOznZiknZlaJ
6U25YeuuxWFcvBp4lcaFGslhQy/xEY1GB9Mu+dxzLVEzO+S00OMN3qeE7Ki+R+dB
vpwZYx3EcKUu9NwTpPNjP9Q014fBcJd7QX31mOHQ3eUGu3HW8LwX7HDjsDzcGWXL
Npk/YzsEcuUNCSOsbGb98dPmRZzBIfD1+U0J6dvPXWkOIyM4OKC6y3xjjRsmUKQw
jNFxtoVRJtHaZypu2FqNeMKG+1b0qz0hSXUoBFxjJiyKQq8vmALFO3u4vijnj+C1
zkX7t6GvGjsoqNlLeJDjyILjm8mOnwrXYCW/DdLwApjnFBoiaz187kFPYE0eC6VN
EdX+WLzOpq13rS6MHKrPMkWQFLe5EAGx76itFypSP7jjZbV3Ehv5/Yiixgwh6CHX
tqy0elqZXkDKztXCI7j+beXhjp0uWJOu/rt6rn/xoUYmDi8RDpOVKCE6ACWjjsea
q8hhsl68UJpGdMEyqqy34BRvFO/RHPyvTKpPd1pxbOMl4KQ1pNNJ1yC88TdFCvxF
BG/Bofg6nTKXd6cITkqtrnEizpcAWTBSjrPH9/ESmzcoh6NxFVo7ogGiXL8dy2Tn
ze4JLDFB+1VQ/j0N2C6HDleLK0ZQCBgRO49laXc8Z3OFtppCt33Lp6z/2V/URS4j
qqHTfh2iFR6mWNQKNZayesn4Ep3GzwZDdyYktZ9PRhIw30ccomCHw5QtXGaH32CC
g1k1o/h8t2Kww7HQ3aSmUzllvvG3uCkuJUwBTQkP7YV8RMGDnGlMCmTj+tkKEfU0
citu4VdPLhSdVddE3kiHAk4IURQxwGJ1DhbHSrnzJC8ts/+xKo1hB/qiKdb2NzsH
8205MrO9sEwZ3WTq3X+Tw8Vkw1ihyB3PHJwx5bBlaPl1RMF9wVaYxcs4mDqa/EJ4
P6p3OlLJ2CYGkL6eMVaqW8FQneo/aVh2lc1v8XK6g+am2KfWu+u7zaNnJzGYP4m8
WDHcN8PzxcVvrMaX88sgvV2629cC5UhErC9iaQH+FZ25Pf1Hc9j+c1YrhGwfyFbR
gCdihA68cteYi951y8pw0xnTLODMAlO7KtRVcj7gx/RzbObmZlxayjKkgcU4Obwl
kWewE9BCM5Xuuaqu4yBhSafVUNZ/xf3+SopcNdJRC2ZDeauPcoVaKvR6vOKmMgSO
r4nly0qI3rxTpZUQOszk8c/xis/wev4etXFqoeQLYxNMOjrpV5+of1Fb4JPC0p22
1rZck2YeAGNrWScE0JPMZxbCNC6xhT1IyFxjrIooVEYse3fn470erFvKKP+qALXT
SfilR62HW5aowrKRDJMBMJo/kTilaTER9Vs8AJypR8Od/ILZjrHKpKnL6IX3hvqG
5VvgYiIvi6kKl0BzMmsxISrs4KNKYA==
-----END PUBLIC KEY-----
]]></artwork>
        <artwork><![CDATA[
SEQUENCE {
  SEQUENCE {
    OBJECT_IDENTIFIER { 2.16.840.1.101.3.4.3.19 }
  }
  BIT_STRING { `00` `9792bcec2f2430686a82fccf3c2f5ff665e771d7ab4
1b90258cfa7e90ec97124a73b323b9ba21ab64d767c433f5a521effe18f86e46
a188952c4467e048b729e7fc4d115e7e48da1896d5fe119b10dcddef62cb3079
54074b42336e52836de61da941f8d37ea68ac8106fabe19070679af600853712
0f70793b8ea9cc0e6e7b7b4c9a5c7421c60f24451ba1e933db1a2ee16c79559f
21b3d1b8305850aa42afbb13f1f4d5b9f4835f9d87dfceb162d0ef4a7fdc4cba
1743cd1c87bb4967da16cc8764b6569df8ee5bdcbffe9a4e05748e6fdf225af9
e4eeb7773b62e8f85f9b56b548945551844fbd89806a4ac369bed2d256100f68
8a6ad5e0a709826dc4449e91e23c5506e642361ef5a313712f79bc4b3186861c
a85a4bab17e7f943d1b8a333aa3ae7ce16b440d6018f9e04daf5725c7f1a93fa
d1a5a27b67895bd249aa91685de20af32c8b7e268c7f96877d0c85001135a4f0
a8f1b8264fa6ebe5a349d8aecad1a16299ccf2fd9c7b85bace2ced3aa1276ba6
1ee78ed7e5ca5b67cdd458a9354030e6abbbabf56a0a2316fec9dba83b51d42f
d3167f1e0f90855d5c66509b210265dc1e54ec44b43ba7cf9aef118b44d80912
ce75166a6651e116cebe49229a7062c09931f71abd2293f76f7efc3215ba9780
0037e58e470bdbbb43c1b0439eaf79c54d93b44aac9efe9fbe151874cfb2a64c
bee28cc4c0fe7775e5d870f1c02e5b2e3c5004c995f24c9b779cb753a277d0e7
1fd425eb6bc2ca56ce129db51f70740f31e63976b50c7312e9797d78c5b1ac24
a5fa347cc916e0a83f5c3b675cd30b81e3fa10b93444e07397571cce98b28da5
1db9056bc728c5b0b1181e2fbd387b4c79ab1a5fefece37167af772ddad14eb4
c3982da5a59d0e9eb173ec6315091170027a3ab5ef6aa129cb8585727b9358a2
8501d713a72f3f1db31714286f9b6408013af06045d75592fc0b7dd47c73ed9c
75b11e9d7c69f7cadfc3280a9062c5273c43be1c34f87448864cea7b5c97d6d3
2f59bd5f25384653bb5c4faa45bea8b89402843e645b6b9269e2bd988ddacb03
3328ffb060450f7df080053e6969b251e875ecec32cfc592840d69ab69a75e06
b379c535d95266b082f4f09c93162b33b0d9f7307a4eaaa52104437fed66f8ee
3eabbd45d67b25a8133f496468b52baffdbfad93eef1a9818b5e42ec722788a3
d8d3529fc777d2ba570801dfae01ec88302837c1fb9e0355727645ee1046c3f9
15f6ae82dad4fb6b0356a46518ffc834155c3b4fe6dafa6cc8a5ccf53c73a084
9d8d44f7dcf72754e70e1b7dfb447bb4ef49d1a718f6171bbce200950e0ce926
106b151a3e871d5ce49731bd6650a9b0ca972da1c5f136d44820ea6383c08f3b
384cf2338e789c513f618cc5694a6f0cee104511e1ed7c5f23a1ebfd8a0db842
4553240156dbf622831b0c643d1c551b6f3f7a98d29b85c2de05a65fa615eee1
6495bd90737672115b53e91c5d90028cf3f1a93953a153de53b44084e9ccff6b
736693926daefebb2d77aa5ad689b92f31686669df16d1715cc58f7a2cfb72dd
1a51e92f825993a74022be7e9eb6054654457094d14928f20215e7b222ac56b5
1adbec8d8bdb6983979a7e3a21b44b5d1518ca97d0b5195f51ed6a24350c8974
7e1edea51b448e3e9147054ce927873c90db394d86888e07dff177593d6f79e1
52302204aeb03be2386af3e24078bd028b1689f5e147c9f452c8ceb02ec59cc9
db63a03576ceeafe98239023897da0236630a53c0de7f435a19869792fab36e7
b9e635760f09069e6432e700035ac2a02879fff0a1e1bec522047193d94eb5df
1efd53eea1144ca78940852f5ec9727904b366ede4f5e2d331fad5fc282ea2c4
7e923142771c3dd75a87357487def99e5f18e9d9ed623c175d02888c51f82c07
a80d54716b3c3c2bdbe2e9f0a9bbaaebeb4d52936876406f5c00e8e4bbd0a5ec
05797e6207c5ab6c88f1a688421bd05a114f4d7de2ac241fa0e8bedff47f762d
dcbeaa91004f8d31e85095c81054994ad3826e344ba96040810fc0b2ad1de48c
fade002c62e5a49a0731ab38344bc1636df16bf607d56855e56d684003c718e4
bad9e5a099979fcddeeb1c4a7776cd37a3417cb0e184e29ef9bc0e87475ba663
be09e00ab562eb7c0f7165f969a9b42414198ccf1bff2a2c8d689a414ece7662
927665689e94db961ebaec5615cbc1a7895c6851ac961432ff1118d4607d32ef
9dc732d51333be4b4d0e30ddea784eca8be47e741be9c19631dc470a52ef4dc1
3a4f3633fd434d787c170977b417df598e1d0dde506bb71d6f0bc17ec70e3b03
cdc1965cb36993f633b0472e50d0923ac6c66fdf1d3e6459cc121f0f5f94d09e
9dbcf5d690e23233838a0bacb7c638d1b2650a4308cd171b6855126d1da672a6
ed85a8d78c286fb56f4ab3d21497528045c63262c8a42af2f9802c53b7bb8be2
8e78fe0b5ce45fbb7a1af1a3b28a8d94b7890e3c882e39bc98e9f0ad76025bf0
dd2f00298e7141a226b3d7cee414f604d1e0ba54d11d5fe58bccea6ad77ad2e8
c1caacf32459014b7b91001b1efa8ad172a523fb8e365b577121bf9fd88a2c60
c21e821d7b6acb47a5a995e40caced5c223b8fe6de5e18e9d2e5893aefebb7aa
e7ff1a146260e2f110e939528213a0025a38ec79aabc861b25ebc509a4674c13
2aaacb7e0146f14efd11cfcaf4caa4f775a716ce325e0a435a4d349d720bcf13
7450afc45046fc1a1f83a9d329777a7084e4aadae7122ce97005930528eb3c7f
7f1129b372887a371155a3ba201a25cbf1dcb64e7cdee092c3141fb5550fe3d0
dd82e870e578b2b46500818113b8f6569773c677385b69a42b77dcba7acffd95
fd4452e23aaa1d37e1da2151ea658d40a3596b27ac9f8129dc6cf0643772624b
59f4f461230df471ca26087c3942d5c6687df6082835935a3f87cb762b0c3b1d
0dda4a6533965bef1b7b8292e254c014d090fed857c44c1839c694c0a64e3fad
90a11f534722b6ee1574f2e149d55d744de4887024e08511431c062750e16c74
ab9f3242f2db3ffb12a8d6107faa229d6f6373b07f36d3932b3bdb04c19dd64e
add7f93c3c564c358a1c81dcf1c9c31e5b06568f97544c17dc15698c5cb38983
a9afc42783faa773a52c9d8260690be9e3156aa5bc1509dea3f69587695cd6ff
172ba83e6a6d8a7d6bbebbbcda3672731983f89bc5831dc37c3f3c5c56facc69
7f3cb20bd5dbadbd702e54844ac2f626901fe159db93dfd4773d8fe73562b846
c1fc856d1802762840ebc72d7988bde75cbca70d319d32ce0cc0253bb2ad4557
23ee0c7f4736ce6e6665c5aca32a481c53839bc259167b013d0423395eeb9aaa
ee3206149a7d550d67fc5fdfe4a8a5c35d2510b664379ab8f72855a2af47abce
2a632048eaf89e5cb4a88debc53a595103acce4f1cff18acff07afe1eb5716aa
1e40b63134c3a3ae9579fa87f515be093c2d29db6d6b65c93661e00636b59270
4d093cc6716c2342eb1853d48c85c63ac8a2854462c7b77e7e3bd1eac5bca28f
faa00b5d349f8a547ad875b96a8c2b2910c9301309a3f9138a5693111f55b3c0
09ca947c39dfc82d98eb1caa4a9cbe885f786fa86e55be062222f8ba90a97407
3326b31212aece0a34a60` }
}
]]></artwork>
      </section>
      <section anchor="example-certificate">
        <name>Example Certificate</name>
        <t>The following is a self-signed certificate for the ML-DSA-44 public key in the
previous section.</t>
        <artwork><![CDATA[
-----BEGIN CERTIFICATE-----
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
AAAAABMhMUI=
-----END CERTIFICATE-----
]]></artwork>
        <artwork><![CDATA[
SEQUENCE {
  SEQUENCE {
    [0] {
      INTEGER { 2 }
    }
    INTEGER { `159ffe6f22fd5cc42c524df6fd5e28d0de38f34e` }
    SEQUENCE {
      OBJECT_IDENTIFIER { 2.16.840.1.101.3.4.3.17 }
    }
    SEQUENCE {
      SET {
        SEQUENCE {
          # organizationName
          OBJECT_IDENTIFIER { 2.5.4.10 }
          PrintableString { "IETF" }
        }
      }
      SET {
        SEQUENCE {
          # commonName
          OBJECT_IDENTIFIER { 2.5.4.3 }
          PrintableString { "LAMPS WG" }
        }
      }
    }
    SEQUENCE {
      UTCTime { "200203043210Z" }
      UTCTime { "400129043210Z" }
    }
    SEQUENCE {
      SET {
        SEQUENCE {
          # organizationName
          OBJECT_IDENTIFIER { 2.5.4.10 }
          PrintableString { "IETF" }
        }
      }
      SET {
        SEQUENCE {
          # commonName
          OBJECT_IDENTIFIER { 2.5.4.3 }
          PrintableString { "LAMPS WG" }
        }
      }
    }
    SEQUENCE {
      SEQUENCE {
        OBJECT_IDENTIFIER { 2.16.840.1.101.3.4.3.17 }
      }
      BIT_STRING { `00` `d7b2b47254aae0db45e7930d4a98d2c97d8f139
7d1789dafa17024b316e9bec94fc9946d42f19b79a7413bbaa33e7149cb42ed5
115693ac041facb988adeb5fe0e1d8631184995b592c397d2294e2e14f90aa41
4ba3826899ac43f4cccacbc26e9a832b95118d5cb433cbef9660b00138e0817f
61e762ca274c36ad554eb22aac1162e4ab01acba1e38c4efd8f80b65b333d0f7
2e55dfe71ce9c1ebb9889e7c56106c0fd73803a2aecfeafded7aa3cb2ceda54d
12bd8cd36a78cf975943b47abd25e880ac452e5742ed1e8d1a82afa86e590c75
8c15ae4d2840d92bca1a5090f40496597fca7d8b9513f1a1bda6e950aaa98de4
67507d4a4f5a4f0599216582c3572f62eda8905ab3581670c4a02777a33e0ca7
295fd8f4ff6d1a0a3a7683d65f5f5f7fc60da023e826c5f92144c02f7d1ba107
5987553ea9367fcd76d990b7fa99cd45afdb8836d43e459f5187df058479709a
01ea6835935fa70460990cd3dc1ba401ba94bab1dde41ac67ab3319dcaca0604
8d4c4eef27ee13a9c17d0538f430f2d642dc2415660de78877d8d8abc7252397
8c042e4285f4319846c44126242976844c10e556ba215b5a719e59d0c6b2a96d
39859071fdcc2cde7524a7bedae54e85b318e854e8fe2b2f3edfac9719128270
aafd1e5044c3a4fdafd9ff31f90784b8e8e4596144a0daf586511d3d9962b9ea
95af197b4e5fc60f2b1ed15de3a5bef5f89bdc79d91051d9b2816e74fa54531e
fdc1cbe74d448857f476bcd58f21c0b653b3b76a4e076a6559a302718555cc63
f74859aabab925f023861ca8cd0f7badb2871f67d55326d7451135ad45f4a1ba
69118fbb2c8a30eec9392ef3f977066c9add5c710cc647b1514d217d958c7017
c3e90fd20c04e674b90486e9370a31a001d32f473979e4906749e7e477fa0b74
508f8a5f2378312b83c25bd388ca0b0fff7478baf42b71667edaac97c46b1296
43e586e5b055a0c211946d4f36e675bed5860fa042a315d9826164d6a9237c35
a5fbf495490a5bd4df248b95c4aae7784b605673166ac4245b5b4b082a09e932
3e62f2078c5b76783446defd736ad3a3702d49b089844900a61833397bc4419b
30d7a97a0b387c1911474c4d41b53e32a977acb6f0ea75db65bb39e59e701e76
957def6f2d44559c31a77122b5204e3b5c219f1688b14ed0bc0b801b3e6e82dc
d43e9c0e9f41744cd9815bd1bc8820d8bb123f04facd1b1b685dd5a2b1b8dbbf
3ed933670f095a180b4f192d08b10b8fabbdfcc2b24518e32eea0a5e0c904ca8
44780083f3b0cd2d0b8b6af67bc355b9494025dc7b0a78fa80e3a2dbfeb51328
851d6078198e9493651ae787ec0251f922ba30e9f51df62a6d72784cf3dd2053
93176dfa324a512bd94970a36dd34a514a86791f0eb36f0145b09ab64651b4a0
313b299611a2a1c48891627598768a3114060ba4443486df51522a1ce88b3098
5c216f8e6ed178dd567b304a0d4cafba882a28342f17a9aa26ae58db630083d2
c358fdf566c3f5d62a428567bc9ea8ce95caa0f35474b0bfa8f339a250ab4dfc
f2083be8eefbc1055e18fe15370eecb260566d83ff06b211aaec43ca29b54ccd
00f8815a2465ef0b46515cc7e41f3124f09efff739309ab58b29a1459a00bce5
038e938c9678f72eb0e4ee5fdaae66d9f8573fc97fc42b4959f4bf8b61d78433
e86b0335d6e9191c4d8bf487b3905c108cfd6ac24b0ceb7dcb7cf51f84d0ed68
7b95eaeb1c533c06f0d97023d92a70825837b59ba6cb7d4e56b0a87c203862ae
8f315ba5925e8edefa679369a2202766151f16a965f9f81ece76cc070b55869e
4db9784cf05c830b3242c8312` }
    }
    [3] {
      SEQUENCE {
        SEQUENCE {
          # keyUsage
          OBJECT_IDENTIFIER { 2.5.29.15 }
          BOOLEAN { TRUE }
          OCTET_STRING {
            BIT_STRING { b`0000011` }
          }
        }
        SEQUENCE {
          # basicConstraints
          OBJECT_IDENTIFIER { 2.5.29.19 }
          BOOLEAN { TRUE }
          OCTET_STRING {
            SEQUENCE {
              BOOLEAN { TRUE }
            }
          }
        }
        SEQUENCE {
          # subjectKeyIdentifier
          OBJECT_IDENTIFIER { 2.5.29.14 }
          OCTET_STRING {
            OCTET_STRING { `329a07b1fabb48f52a309f11a1898f848e23
22ff` }
          }
        }
      }
    }
  }
  SEQUENCE {
    OBJECT_IDENTIFIER { 2.16.840.1.101.3.4.3.17 }
  }
  BIT_STRING { `00` `fcb12defc1319cfe2c6acd0cc2fff9b8e27051a34da
717dd2c9e01bd0b76a1c6eb606ff86782bbe71eca6cff70da5cd49e44de8a193
586b3d32bea2441f1bf2a73800e3f92295c8646f41e712ba7bfe65eefb526fd4
25163e22b32c6f02a1b46f61a17fac3c46d067017860f2a06fa1c1a27b4cd333
2cede1965a071ad16051819c8ad8bc1f66144ede5479c71badacdfe717dc0ab5
ada6460d49f231aec19ec7e84de5a25d0d243d9315ce4270ed8403b355fa155b
e3ff16f482e6ef5588c222c0a67d18288ed18c6f35228ccfaf74e380a4ef4539
31763ad58ca99e963f11e3bbbf50c7b519aeee89242822e7584338973e97b19a
f04a494cb017bc94fb470c55322ea8dea24c86de4f1d2bcd6330328e014c5df7
8aba2d7a8fbf7e1134c74be420fca73ea5b421796e0f86b08b066464dc8c2fef
06b8708fcdc48690a1badd807f8e688f590a6952ce0f2966e35fe5acaf6a5bbe
c513d21d9bdb12c1d0affb8cba84716cc366f1180ac84a36243a8615e1172c43
aae1a62f3ad8b4de73749a994915368717d8bad7a6ea25af3cbfdc8ac0c7cc86
3701391d0012f02ead8550cc3a3866cbc76365958451575be482f1c8a4e6fa3e
252d935ca1ecfc80603484d54c632c57989a39420016161254a163490dcccda4
b65909b33709498edee113e59e5752792189e954d35b2cba5c4a757ffd31a980
e727b1dd04090d136b7e578fa234c3e16a9dfe303b5236df8d3cd2eb1f6ee3fb
b49d702b5328b299764f1571307f2088f57899cdc2d2e67f8c3716ce6dbce631
6f0a44a5280e1616a1603d7bfbe2ba77bbbb9b290577981937bc9d03861107f7
c53894bc9ac2e39b9b5af136160ee535b7d44b14177b4baa8d48e83f183349e4
2cb2500bff7c3dbe82d7e2b955ad57b22850dca634d2bc5ab86dd9fe4b96f5ab
18940084a9bf25c523c3001d10da19805b540951d6f5652e5adde58b84daebda
972959f511dccdb8f01dab901b672426125e461f24febafe5557d79d18ae86e5
d012c004dc6b434e58bfe43566fa4f8c64a6f0608f9c88dbe4af99f1d9ca2528
facf218f7224b7e53e9baccb2a9e31075c77ec215d3f227fefec8e7267a5b197
cd8ebf43a6cd0dc678a3beef9fbe12342a4a15bf31c6f7247a87b6175a7fd539
ecedf172f8bc405c41cb820a3f81cf9e6b7255f5802189103e9986240ee71bc7
0e0a6d3336db6249ae2ba3d927308ccd6b45718aeb3a28cd1cb061b719e3806e
f53f28181a6a0a4551b47cb4b83007172c097dd3a7d10e5f6c788f76637fc980
22395602ff037de1705bff7db628db00727183d89a9bd9a82238e7de2c6acf76
9d9c322a5aa570879856196ed606d7f47294650907f31f09ea1ee5db4f1bddc0
39f51701ec160794eae27ed0b3cafab524f70e45212fb24def1d7ee2640f0398
a53bdeba4643c8804bee1b6c498201f28490ab2cdae6f9b8591f8a9fb1dc2df8
fdbb53fe6b0a3abfedd2c4d3c2d488e21a66967e4e2493f49300f077ddef24ef
63522ced17c7fa6bc7ad0a0fcda80f6c751cfeec118fbe2c006700ce6be8d9d1
5beca099126b18abe59f3513aad1f78f59cca7abcb6d3c433243f1e9a85c7c24
5a7832ad9cea3e0b98bcf0757cd0cd2e3764665dc09d10cbff46a1ca038846b1
32ac47472c33cf4b3a19620eecee25b8d04d45b3ad7f10c35e183c565a6717c1
2791b09bf5bada4ac648e7a1f1c591cf62f51261858c7924f067f49341506f68
6ebc0b9c54c5f8351d109c116f23302c4587cd9a1b53ca6f617bacc4b81c77ed
209f4b3eb2240d24002546788ab22d18bad491dbb93c9d0c8bd2cf09825edbc9
b4a1fca6cd2864ffeb8df37c6ac131f3ad1a8e73dbc0ac5ecce90e5c61122a58
4bc89aa227709e3511ae774242047bba4718bf5d39ba52b5bfc5774b99acc966
f85139ddccae722baa30a917ecb66500e92e8773327eaa4a300e96f6b779cc1a
a439f814f3c30a68cccfdb9d355298b14c18d89cfbb365b56cd1c926f11b3737
7714871df972e244a8726af9def11ec0ad83a62c6b3372c93186588af51110c6
87778042a14ce36caf5a16cdc45dc9bafd0f2d6c5cdde24f6a0da868a5571caa
24e6689e0719bb33793aa99b988624af6892f2f2e70e23f37a0d8473ddfc9eaf
c3c66ab5f6186cc1381985d5b4545bd3b1a99cf41ae84684ae4020b554caa6d3
90c8968ed3d61a2c46c79c0818161675c1078dd0d7a09f562a9010b81417b5c8
131d30eadeee5c55d05864a4c68edb053480f97d22b09ef66f1a2d14f8cdc8a1
21d24b54044fb2e75e2efe8e8a6ddaa36e7d81cba6d323f5283d5dc70502fe3e
b302dcf6423b76435d5d2dfc6a28f03aec6a360e783efee694bdb648d25b0faf
1da45f4003b1335fe4aa22a572ecb0bc32a28cf719ad1d7308e94efd0d138df0
4fcc31fce2ae002ddc1c04bfb3eecf93ec64ca96c55c86daf19e80bbb0eae2bd
379347cfa602f7287aa90c158dbb1ba31fdf9137ba061808e9a5c19fab8239b5
fee2e663636505be4811bba60b155a26c389d09b7fb09f5b063aa168bbd7cc2d
4a13981402c8cec600a9e5ea762eeb68c4069754f8dc05a2ca36d7c61d1a746d
ecaa6c15863b6f7ac152c19f6fd1f306d023034019777cfe855e630c695d4ed0
659bd7acf154ae10b4815141f4069215d6340bc13e6e05db16fa176b895161e7
3acf60f16ba17e4de906d8ed7c5589c2468e00eb2fa7677fd54b6c628a75d33c
16d44332631894675e93c2f49bdce9b8ab4986c4740463556408ca2e058ebcd1
b5b131fc3a0b8ad1bfdf22b45a8e0073f531cd6d2820ad50e23f6b530342b9c8
d282e3b31c539ce5f6b94cebc760e7b9684f131dffc35f81c4a5d915c0c76a6b
9697a9db3d6c2b3b16cda2b0ba6ab18c412cba878d1fe9d7e2c65b02a4487e94
18ee7111bbe124c997cb0cf36cfa6a4a84f090ce7f7c94fec22dbb338b7ef357
2026e4a0c1b4101c4c3dae936b13cdb5ca3852228eb989e4cf220e9c7e4b18d3
90350084c64c47151ca866bf1330112821c2029d9aeec35afc818b41fa41608a
f22ca8aa6d5c2b40321405fef76cb3862ac187025796c356cf74f8832549a96b
7ee79c574a5dc14cef5e7e901d59bee1290a94c130b98c324228b03dabf8d12f
6b20ee6d139811fc106774f7e8d36a46bf15d1f7fbd98e145546426bdd9682fa
55474aab6c8dc6d57d387f9caea590b609fc0c1c00aff777848a4888c7993b9c
8f62880f0b388b7412435aa1d40001a6e80d578cc982627cf2aa80ee82e63459
3220b416d20d0239be74d030c17233e46646f7a7b8b9ca3adbcc4c7f2f805090
a1a1b2d76798e9ec2d8f0fe050710192932454654868a97a2a6bdc71a272c313
a4d67778aa9b2b8c2c4d1ddf0000000000000000000000000000013213142` }
}
]]></artwork>
      </section>
    </section>
    <section anchor="prehash">
      <name>Pre-hashing (ExternalMu-ML-DSA)</name>
      <t>Some applications require pre-hashing, where the signature generation
process can be separated into a pre-hash step and a core signature
step in order to ease operational requirements around large or
inconsistently-sized payloads. Pre-hashing can be performed at the
protocol layer, but not all protocols support it. Examples in
<xref target="RFC5280"/> are certificates and CRLs; these do not include message
digesting before signing. This can make signing large CRLs or a high
volume of certificates with large public keys challenging.</t>
      <t>As mentioned in the introduction, pure ML-DSA signing itself
supports a pre-hashing flow by splitting the operation over two
modules. In this section, we make this "ExternalMu-ML-DSA"
more explicit.</t>
      <t>There are two steps. First an <tt>ExternalMu-ML-DSA.Prehash()</tt>
followed by <tt>ExternalMu-ML-DSA.Sign()</tt>. Together these are functionally
equivalent to <tt>ML-DSA.Sign()</tt> from <xref target="FIPS204"/> in that used in sequence
they create exactly the same signatures as regular pure ML-DSA, which
can be verified by the unmodified <tt>ML-DSA.Verify()</tt>.</t>
      <t>An ML-DSA key and certificate can be used with either ML-DSA
or ExternalMu-ML-DSA interchangeably.
Note that ExternalMu-ML-DSA describes a different signature API from ML-DSA
and therefore might require explicit support from hardware or
software cryptographic modules.</t>
      <t>Note that the signing mode defined here is different from HashML-DSA
defined in Section 5.4 of <xref target="FIPS204"/>. This specification uses exclusively
ExternalMu-ML-DSA for pre-hashed use cases. See <xref target="sec-disallow-hash"/> for
additional discussion of why HashML-DSA is disallowed in PKIX.</t>
      <t>All functions and notation used in <xref target="fig-externalmu-ml-dsa-external"/>
and <xref target="fig-externalmu-ml-dsa-internal"/> are defined in <xref target="FIPS204"/>.</t>
      <t>External operations:</t>
      <figure anchor="fig-externalmu-ml-dsa-external">
        <name>External steps of ExternalMu-ML-DSA</name>
        <artwork><![CDATA[
ExternalMu-ML-DSA.Prehash(pk, M, ctx):

  if |ctx| > 255 then
    return error  # return an error indication if the context string is
                  # too long
  end if

  M' = BytesToBits(IntegerToBytes(0, 1) ∥ IntegerToBytes(|ctx|, 1)
                                                        || ctx) || M
  mu = H(BytesToBits(H(pk, 64)) || M', 64)
  return mu
]]></artwork>
      </figure>
      <t>Internal operations:</t>
      <figure anchor="fig-externalmu-ml-dsa-internal">
        <name>Internal steps of ExternalMu-ML-DSA</name>
        <artwork><![CDATA[
ExternalMu-ML-DSA.Sign(sk, mu):

  if |mu| != 512 then
    return error  # return an error indication if the input mu is not
                  # 64 bytes (512 bits).
  end if

  rnd = rand(32)  # for the optional deterministic variant,
                  # set rnd to all zeroes
  if rnd = NULL then
    return error  # return an error indication if random bit
                  # generation failed
  end if

  sigma = ExternalMu-ML-DSA.Sign_internal(sk, mu, rnd)
  return sigma

ExternalMu-ML-DSA.Sign_internal(sk, mu, rnd): # mu is passed as argument instead of M'
   ... identical to FIPS 204 Algorithm 7, but with Line 6 removed.
]]></artwork>
      </figure>
      <t>ExternalMu-ML-DSA requires the public key, or its prehash, as input to
the pre-digesting function. This assumes the signer generating the
pre-hash is in possession of the public key before signing and is
different from conventional pre-hashing which only requires the
message and the hash function as input.</t>
      <t>Security-wise, during the signing operation of pure (or "one-step")
ML-DSA, the cryptographic module extracts the public key hash <tt>tr</tt> from
the secret key object, and thus there is no possibility of mismatch
between <tt>tr</tt> and <tt>sk</tt>. In ExternalMu-ML-DSA, the public key or its hash
needs to be provided to the <tt>Prehash()</tt> routine indpedendly of the secret
key, and while the exact mechanism by which it is delivered will be
implementation-specific, it does open a windown for mismatches between
<tt>tr</tt> and <tt>sk</tt>. First, this will produce a signature which will fail to
verify under the intended public key since a compliant <tt>Verify()</tt> routine
will independently compute <tt>tr</tt> from the public key. Implementors should pay careful
attention to how the public key or its hash is delivered to the
<tt>ExternalMu-ML-DSA.Prehash()</tt> routine, and from where they are sourcing
this data.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank ... <!--Markuu, Peikert -->for their
insightful comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
JATPBdF8aXT9fUG9C7fesRDNhs/qwVgX5mpzVjoEveokN8m2d8e+2PDlUKZm
a7QZznOP7t4oLIVXfdJu+3JWl0oHv1wd59XKsz6cyUOiqV6Um1e1WhjsdG/o
Wv4qdpbTpmmJk6HWfLK94NCfC6VQHs53gawM+vNyfbqcecWwtc0Nx7tF+FIZ
2v1JcxCt5tOKHzj92mz8CEMm9WavWynovVKrJtjecFRbV9t+o/k4dWrju7Yd
l1Vl9GI0S0FrUL/T/UIQtArm05oEi3D+aj/vCkUxaj1nvdFilxWexnWY5Ytx
oOumPjqsi8dRtb/b6q/HNnnsrkXFNCcTQ28bxq47opWOOmrtgGHI2H7uZPOh
UOutN/viwV9Ig6aYu6uVyWPlaVsQX3pPTW9WPZZm5qORtY4zTGncqJNyeTEp
mFq33Z6phzHtCM4mag82T9Z68xIv1dEx++iZ3bA/WopbNZ5KaveoV6Jiy7VX
ld6+5Wf71UjLO6Xa0SLRY6PYFmLroBylqjroGuOpMadhWC03zfy2+OIUOi/1
ZaEwLlJpodsNb6iNo/rUrBWnfhiY+7E+7j8FgkHvFnRASG3yKD+PqnuyevGW
KrqRjzmnMXomdGDP1UEn70x20aEbTfa16zDrjaP8OMr6O2Ql+dptTPVT5ifX
sGVbNWRNJYSKrq1q1LAU0VWJZbqyYxmu6UkK/pEMwbRc4hHJEGXVViSdWjZ1
LNVzLEvVXVX2JMs2LGKokmLbhCgKNSTVcmxVpq4mSZouWApxRFXyiGNbpklc
amseFankmroiSaZqWZqNfNxh/cmypVKZSqqHQI+okmoTRTBl3bQs4qiKpzqO
g3YcGeMgpiLbFvowXQ39KYpjU8/SdcSHoqSYVDQlw9Mlagi67BDZUB1FJ66m
qdSWZUIcSdJlqhJblNAikahiOir1MHNTtHXNVhTFFT1DppomuB5m5VDLkajN
JmFRw9F0SdQd0XMNxRQVIhPqeJR4LnUNiMGxZYe6sGdXkm1XMB0XnRum41mG
ZqkKhE9sVwa3mSImpqEXg0lMoqYrEVOGxE2dapboGJrpSJpAqOrKULJrybZD
JKIhEvZUUbV0zTI8h0BjTBaKx8Jfl0A8GgTI1ElV3dBEwYByVU/D/0TNsmRJ
10yIXDNkD1JwCQhGI7aimZJuiI5KRNkwDKZNEW3LluYJEIzqeTqGJxKFGLqp
uLrmsf+gf1108YhCoSpH89C8qjqi7AFAkKyIKZuGoGkKJZai43bX0F3LEm3D
I5bluKoGudmmqQBQClU1y9Mk03AxUlM1LEO0iChRIqBLzVI0jxiiqot4HkJ1
HfSgivjLAlZsycV8oU8d4lUUyXKBFoLUQTVd1RFUSj3ZoFRSCFRpuKKmYFKK
6MmursquIyOPAH5capimAYm6JrEdWIkMaJrAsAC8yKaGRyTLVHVHVSVZl1XZ
gjQwYUkEVnSbyBIATQzJggJd0dFtmVi6q1imJliiIXmu48gOOtFklRg2hE+B
SROIk0z8g48elW3ZU6gLm7HQjiSbsgF1eq4gUU1EVwr0CLN0Lc9TJNiKYao2
Hmay0yF7AnV4mqnDOCAiy9JhKJA9xCxIlmGrVGMq82RbAuQ0lypEg+1onmnZ
rmNYriWJmuRatgw4UEP1gGNNkWAcjiTAygzVVVXT1AxPNXTbcTXTkyWHWY1i
K7ahE5WK+FvXNIsoQJJkaprmOLriGaop4CKBqixZ8wAZU5ccAvOAqdnERY8Q
kG7ATBVZdw1VYzsmCBDiqQA20S1JEkzPhnWZaJqCihRLpp4CuzJEXXcs4oIN
DElEd6phIy+E3UDVFszIECXDUaglwGhl5JAq1Q3VtgAOmIsCASvAtgiJyZgX
VG5R1RJxC6ydqgawCsCqmmh6gkk0T1YMU4Fxm4oja7YLh+ew1NTzMEnDtImn
yrYh6boBBTM1OqpuS7KlA+GawIzbFjWNiA77P9VhTOopOsYDPUCc0A0RVRkD
0lwLNiXpqqsTC13CZNG3LXiqpWF00Jurup6sMut3GJsbDAq6qOkGyFoHt8gq
0GirtghWES1MFGaqy4InAzSOBm1hGioGQBmTgSAVAlHIrmrhCaAcnYhEl0zQ
IZDDIG/Z8BSGQCwD81VMwwFAJRX0ClRINoxcAd5BHo6teyIlhuYyOrUVZg4U
OqCGbmmGK1BPh+GpKlDiQPKGgSDO1mSoRbE1iMXyJN00bUmlrmgDXSasHEMH
x7gO4wnBckRqeapkwCAgJlgd6MYxTVkEGULWiicCug4uSrZuagAGAeJt07Vt
ZlyWoICMRE+EXUjgfBWuTHZF9Ii+PGLbrgdDtSE/2KUiUwri08CHAAwQq0LJ
giiaiqfYICI8aJu2ToBdGzrSbEu1VFHWYE62COIHn4swM9m1Pfg/SZFhPpIr
6FACuITibgXWCvWZBgVzajBqSINBnJGhC5ImMAcZykWG4wK+mmIp8M46OEIB
j2jMzaAVhmLddRV2RYUPMSwJSrAVqEICEECltq6iJxscocBlCzLYQZLgviQH
Jm3BJ3K21mFe0CqoE/SqqgpsxMVANJndCK8FDIDPoCVB90woBZGCCQFj9orI
6Aci8mwCXRAZ8EKUYBCYvayD6yB/XWGSc5kDMgUPDcNyFU9zMUtGsEyG4CsT
HldzCBE9RQO+bNGGFD3gkMhwbjZw7wDFpqDYYD7q2SBgTaMS6FPSgGGQgy0z
S9BdaMkTwcOYKNy0qiAcsGwNwYQrip4pADpEhlSoBxRAOOAqWLwEapXhLi3K
bBriZsLTTFu2CEQJnwRUgo0RaSDEMR0LhsTCBVuk8DMa6JlQdG154EkF4RLc
HhgBZgvI2h6wIrnQJjysqduCqCiYPbVgSjAj0/ZUE5KET8acEDTA+OGcgDNq
G65jGw5U4ZmqK1JXx42WJlBCbcnREASJULULHMggfhmu0pQ1UzEQYYE98agL
8tcBSditjLFD4vA3iiRoNkEQhoCEshdRADeKDjnLYG9dB4vCFuHE4No9U6IO
TNhxREO0NXAVaNK1LYFDEwM2FbACnKLD2PHXCqRXxShWtP43KkZVo3fFqFpx
MqHTXGkadF4qT6+v1bDjympUcsRJXFf9ueWPh0vrVfLnwjMl4+1wh4QxUmWj
EZt5bTHYyvntVA9mst/UgrUv9fYv445v7Ddx26faUoxyh8JoMHKmjbqwP9Q9
GMDaLM6C7ajcq6pyTS65R7uq+M5OeqHtUT6/b44LT37F3Veyo8FisjUHxWGz
fjc6bLZCcdPw7/Z2M7su5OqtBdk/hmEszaB4tVdtreVG1jT1YOPXjiIdbbfl
PakuH2Pt9S4W12ae7IVKz80G1nwfxLOl89QxtVG8dMvhLjZr7vhJvtsMtHVz
28rvH1fEv1sGj12/VT2sZ8PR0/hQV0dCa6m1o1xbzXq0XKpWhvPjUstmC93a
XSgOu4P+urQqzypG3FtWZgOn3nrUpkY8UuTlSi8/e89EmNSdxWKUU1884yW+
0w7rdlmvON1auWQh0ctunWK1uIqnT+VpQWw8WoXSbBy87ud35aAU5vblFyGe
b8bTu/FRHwzKtXm48pcLeP76cYH4pNTO6uKLNtiUhp2C/mqq3dJWfhYXhWV/
vZ52dHW2mAj5sFocSJvJptY4PCsTv2G0trWgU+hmi0jKTTvO9yernTRSrW59
FNqNQy2cmsXYqNcaL69U94XXac9ZUsV6XSOsOBgv/SAqF9X5zKqINGgVC6ui
2pIXlUJoWx1k1lK87PojdWybvql3n4yOUNXkx+ZTTIea9Ey35RA5/kAtDYdZ
/aWxbnSydbU5vauVnCgbFRo1azZYFmabXLDd3mmTfhgfBdqd0XXbLu9hxLkA
QBCLOTqY7nJBrRQMSPaJzMevIX0WxVnRt6JmiebEHqUlrzGsLKtPHaFe30+q
VfoijybTortt1BZaL7y786q0Z+SP06MUdzS3TO6UybQ72bj1+nMUSTWr0Xxs
jp6OL5Hwqj/n9+u78qsXHHa1fi9a15+n2Vmx9dInT2ODrJaLWv11PZJCK57v
Ar8qbtzO8yHbLoVqZX0YCWrYXA0mPXURTZRH/cnJl8fefG3l5Xp+MBxnN0a4
77sVXV4fJi/qY6nmdOXi067krV7z8+khHAit1lMra9QPze6wqvezjzNd3Xtk
nh0cC468LcpevHBnhfLInUzUvjcfRDP7KRtHWVl2l4tyYS6Ew3z7Jd/LxqbV
IRvFzZM7cVPsj1972WCS74+LjubOCzV5uFD7q+rreDm/uyNPuX3hWGjmg15X
qDSz1WgdFwvT9iIieyMqHJubo9yrRI19qTKddgy1sMgq7VyEYEWdd42nRq09
HMR3pjuGbKvCXWWQG3qd8qhsl7v96esqt6uI7lp6DpVs/qmiima7h6BpV6gV
jBVdPNe0zehuVVGkWTkeHBcNoR1vW83HyZ0ozcLBC4K+Qmsr5qyu/Lyet/0W
2eedZa3jWvOps3BWk2Y2yCor4hRo0XDqetMWavNZfjwtbffZXrB2GlpvltNy
BXEHV9YYNOjzNl/2y6GlL5a7582krcTP2a7bexqURvlHUS43BE3P37mlZs7t
KnsxGleHR787pqHZeZo6R7fp5OV+w3By+lNxU5cqYmUwWuY7I0fpHZbmwJ8P
hOdNfV7p1UrDXTfY5od+qNc7cJLjEW2WDvNtbbcMu2qTvC7dgVd/HEXlRrt5
GJDCcavl6oZEBdC005tpJWTkSlzLlkkrOzlW9HY5DNd5OhyMXor72Wqw7ASt
ZVQoxxu13G02lnT0UsoWcm1H6L4OnTEd9Z7c8fZ14pMyfZ7rHZtqrzPVLr08
ek/BohlMlQEd51eWPq7bXbtXAOo02tkUm32h0M7SnWlPlNeFOdo9ZzuOFPV2
reOu5vd0f9nYm/v4pdZW/cdCMWxP1ytjaFcLxzvbD3uvL15baIGq7XV3G668
xUrf9fqVXvW1+BKbdLPXjBKZPU67A2v8NLZMr+/ud7lC/Lp7apNl/zm7ibtV
oSOvPbuwqVuNQbG5LhWDZlZ/ovpBrDTqnUIZqVauQO68cnlm1XuFwdZ97Nfy
rZdtbzZVmtFkIjSq8yGt9IzB2nGfl7vac2HQDKT+rLqbKpFqvkSKWxcnc+eV
DI38Sp3u5dAXJ/m78rJCpVwhJ4jHgSLPGyuLjF/yxWXdrLVXY7WZza3FblDb
EbtrLoq5/GFqS/WG6O7a83Dbm9er4ry996PaXCgXy36pY41Jvr8vqtSfWfZ+
4XaK85dFV2yWFr5odSVvidR8e2gZYrPemOQn8ct8Llb3g30hK2wOFSPor+Va
PXidb0dRPkDuv8o9Lbq1WW0cbfW6JO/rs+Hr5o5M163X8WK9pGbVuZPv9DFB
QpAlC2W4U3KH4KV2aM2PSHfym/B154uzsl5az17y23FuVmrKT8PJ49zc1vZm
2KJlGm2DkhjKQ0Eirr7ZVifquJQvrGa5aXYs2utFLQp3Zfihyd2qZoWuXXoq
N/PiY7/4cnycxyTalDp9fTixQmETj2YrpzNSl1u7kLOsWhsmsG4+V0aD4rLS
d+ZF/a5sWU5VWW8KQXb6GPWUcXnlDsb9erFbaAhk+xQcB5U7QmYre2hmxbnx
bB9qtK915Cdptpovh8fn2abfeho2m9W8NGyMy6249LjaN53xfHMn9OfOaLTc
9YdiGLmLvFzdbLS7Tf2xWnXLvj1pjxbhaGQpW0d2XohSW+qr6c7YLd1sxOpd
zRdhFVB7OHl6Ilkarsjx2N7GL+JTtoxIRu2Mt/Ogptsv8WqgtNScb9SHm/Ik
FAeN1rG0GC2tbUGozh8PlVqxFnZb/b1mFlfFjQX32Mo6drnezdPq8vgSiItl
OQik0WozV9aT53kgkdnwJZQ2L22h1rD87lPlOTQHQbXw6rp3Uq5eaL4uGsPt
lk7DQ8mqjrXc2Oke/XW46wWVuLWJZnkjb3da88OrYMZDtaT162QQdGZ31OlF
K3e8UOqd/mt9WBeft72OuRrlX5SX6PlJWWr7amW8ak/sWrdv9iZBWahOGge9
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
Njt9Ve0ZmfqPw6hX8Sb9hrPSsvtWaaTd9VvB8zwWnu5KL1FXaSnb5yja0VG3
2hdrR3teL9r02V0PqwiR9IUfTbq2vp3OqvnlYvucmw6cflHJa20gZXXMaRuq
xM3FfC/WnOfOY2loB3R2lPfBRh3vtdGLOY2sitosT7vrWX272Xf2VmusWbWW
t3wWPO8Yln2xbdU9a9/cTN3isXeobsT5Up7azancl0crRTXmW2eb1clgMhJf
F1mvNg81ra0r7lGIfb0z9RYSkfqPvdHwudfZPi9yZBYWiW30xflztyj7dRI/
TVa7RcF2eqXlqup3ysOKNqvJ1a0wfi0ppS21943mM6lU61PS16MnLTsvirb/
2tQDJAzqOC4Vx7nnO5pvhZIz32crqw7gNfapLNDHsfX4uF6Vgydaq5uHQ8Pz
SRPer+p1D+VcviStOoXAtCeLgW6HGmk9ynWjLpKyv3COh+yLsDemdthutEU9
6LvhamosX2NvfpjHy6Pbe14PRrlmm4QbfSuRSfBa3hqPsj4xhm53K+5fstWJ
cNedjiTnZV6wa93HOTQzNEp9sa17ncXG7Pni4LnQa7Td3sv6ZV6dliP9rt+v
E6fSyC0GVaUSCqI/y7pbb7s7lO310ySXU7RnrVqwNkbXrOy6mr6lzqg1M3r1
8NG4WxrqqFIddKL1S3O7qTf3TaF45ypPc7la3O8Kmt143XfzzcXInB0QXR6U
of6oiG2k1oWnkJiN+ihS+0t76DnVbqdJnzU3FIZNZ99Y0SdJ3duV6LH+pLeq
x8fyphB0pJ3xIh0HBbX6ejctaK3SYOJo7lO1qT9HgTyv2rMyMQUn2NuFfSWv
breDqTGoLsLKPLs12q39C4il4Ya9QTgoLgryfPUitpdh+WhUmqNCr7zLLQMd
pmytg/6yMX0eHajWeg6CYV7at5eNo+lGe2dYr9zZL7lJvr3NT3quO5ptdw3P
7ZnOHUjZLtHlk7BfWWbo7Q6T+qzSKD8e98XtdCfeVXu16ey4ptLhSYqb27Et
eY+DaWVoxM5AX5W3a1+d5+qlzkLogYofV2ooP7+6YSN3bAZZA711kT/VcuXO
Yr6K5tXApceoGWXLs6DbIiRerSS1EinLcssV5v2XsFCwOgVntn8Om0bxxTrm
9cF6Pa91e0XvTlrctdW7tSGVpWU0X+eb2f64F8T9zTZr38WzO8HYr58rjadZ
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
kFEYYObgO6BhYOYOJZ4IJQB7asQD2DTh2/o3e2++7ZpY+eaYwZ/aJn7TO/c3
++FSN/zw46y0b08q/PmJUr/orPi+UUf75xt1KrUxvXutlKa1rzt1hodqpVLe
XDalvFUubVqz+rpYkI+ut+yN0tneNIpzK9b7yA5061ctdLVepXWvTmmrT39e
LsXTcu1Qn9dW99q0NHz/rDet1O7l6byMJwfNXtlaVqetvFfF/54lXes9W/de
PcaHI3xYewymJf3LZ3lrV+v3SmmjxGa1yrZXm8zms/GuNu6V3NdnpXuvpU1r
9f6s3tvMdT/fbGYPuqCyqDQmpfqhlI+qtdGgUp7USszp6P5hcrH6Wd22e/3J
eTd5LI2hVrPDsWobt3hZ2qd3eb6lh+FjPc5GtwYocVAeOJfd8FRvP/RuNhvP
z4O0XC6k11WUcVbcWIG23dVWk/WC7dPBUo8Og+52alcuo9l1tzlG66Q21J+9
pJsfudg8rhAO87PqsOvY601aqllWS6sXVyqIHlHQ61/YfJq0Lkm5HtmdtJx0
YzXoTW/GcNNdy95TH/rXeVA8NQenMneOrdPpvqg1tHzInptqfHGG/GZm6jLs
dgfGYTrueLt+/6J6heViNtBVoh94q5KOJ/ZydNXVbnypJHx7XYy0O9uVF9fp
ZFsyJrdO41AZeaXJYrEsdsIVhlxsbG9Cnmedy3mnxqdZk3Wm7Dwsr/fb9apb
nT80L3JENFok/VX9VK3FlcCMn1bv/DiExnBalOO4MziJKjt44dIsNqqitOMV
WS9M6rW84nkNrtWai1UwH172BsViY10xC+dTfyyKMqrK2XC/CGerMCyvxrbf
jsv8SOtmhVO5UVlX+0MfNxiVr+cJTwNz30jXPH02gkcaN8ot1pte3ZOzHZzz
pV4fDEe5m+HuldF8vTFPUTNcGZ1bsz3RBstdaXQdxUu9t9427rXasV05GNta
PrLngrfmmfDX9lrvicdlodvbdfle9PPUPM32ZzAie6bxenrfxfPBrtB5uAWT
P5aNcafidxKveSjXcj71Eu9UpM5z2+4utuuH7bhTFd5qPW5OjfUq0U6Xg3DX
SrfD+8ZNmlkdqcWi4IWRNJunda3eXKdx/RoMz7PZ3fFy/3aaziateXFs3PqL
YcvXKsbMGZhibzXFcb6O8/Z9O1/2VsWgtRAXfp0s85a18i89fYhU8bG9eyc2
7x2ZPhv3Bat7Ha3BxbgxvD4end7AaQ8mzrOw9BuynQTLZq1336v7bKZvw/Wi
55fDKh8VJ9XS9Bh097XtdW9WdlpjUwp6t/HzYNvt8mmiwn1QjLtBvTKMDu5O
VWvJxm2DX+w6lbxYDJoR9yrZfX1yRNIOa+KudRajwqJhy/I87rXGhwYb9q9r
dssWjSovV+L7cr051vfsst+F1cWhUJzMJ6OzZH13H9nL2uWqBdbEKC/8+/py
r4zlQk9bnc3p3NvZkbtRvYW5tvo1qYrL/kXn/bw7O+bRatwudVar3vPg3Gta
Q/b66qw2qRWW9+Oxfu+P5KzQuxzMpCtzflrKtUxte23nzZOYh8q7dQELp2rj
5E86rFXTLGdZaYT1OLpPs4pbsUpyeOQVsz8qnEo8HC3HPWNVl7p8tFr9yKnt
3Foh1WXD2AZMdO7XvnYtDrP9c5277cV2053e91mlW+vu+NUr9jqP8Xi3617j
znLzGE0725oqVaquU+13R9euuK2dnGkLezIrHcxm2lHDS8niXVlMZtNOaxas
mpv17jyZrsfJaVvIK7NwH1131bM3No3OkT1U7fk0J1p5ur8HWWHX7swmt/Vk
WdnJoN+ZzS4NNXYHqeGWx7Iisj1gslO6Dx7HRU10tvdWNF6d4MexFt/rpVX3
XBvp28wbz6LY5600P9bzrbTsq77cBfNTmk82rJc4l1Yn2ujduzpfInFd9LNd
qaUNJznbed5CVr1gdRnF89OtzePnedmJh/1Z0K0UL8OeHR8qyTR8PirVW+zc
buXy3FoVtzOzetUej1V9nW2KbiPdNi5ObdjpyHnvOapam3m8Xyu3Oz7U/Xth
FPYm0/x0K5qDKaa0Ss/xbCFKXe15gOSmu/ba8h48twd2aFzsoxFul0P3ULxX
svYinBQjo7ncVoexyHuMXffrZs3oei313Ne1fLQbsku+T3tIw7vhcBZu+9VM
NK9zfk392TNvuP1D3vL2F7/VXvWdhTynmTc9iPzSzDeDhta57p51eV631S5z
+Nrun+OodFpvZ2H9cjgUwo16nmSvnGfz7dnuX5fbnlt/VCvPduVRrV36Fa1X
K+XVzao6H+vD0qhZLJdG1dKm1vgSQINaXisX81G9V+qVS6GbN0ev3w7K5VWt
Xu0Irew0+VXfsc6uAu9stHfWZNB6dIu/FWQry1mp2K1ljlu7n4ZWKlK9p+W3
on0dtPOZ6PfP9zDotq3ybZQZsS+TVaNora2OY9+djhx6uXF4zk77qYq2e7ZN
htNOId5ro7BR7JwGpequMOnMH43xbaT8yfV0K6yV48yOxVl7vCq0kl4q8842
a3jbeFlIhzU5Wud1azXUOhvJm+X4lPUQhlNHNRaLjS/0RXm8WT86RjcP19vx
wDyM7fv9miX94qnu5Z1MGMfxhrVdQNo1X0MMNfMQH/R+u2pM675d8QdGreT0
54XtXFpFd+G1ukeHLVp51C2dT/qq03LGu4bLWrH2HCbmdLfpTG9jcqtdMt91
juqwc8eWcy3Oeoo1hHONJqO4dQ1Wo2e0HJ7V/XgrdyazR153tMesoPu9+bR1
vfR5NG1JNb3ryXPRy3uxVZ7WTTNK4kzFhWK4rel3/bZvDR+nIcJUa3m4VpEF
5lG+3q/7j1634Dauzcrw6U8a+06Dm6tycXeMhovR+TxLrWFnIXfLwiJNjLO8
pbOpvgW1vmvdst4pOrvupeYvntX1rbaqpNtOPxrx7Xa5rT/u1cu1cew+k1XW
t59B+7KejGe0lXF1zdSRR9riNuwW/SitNp+tlVma7oNSuZt3L0Z91sv5oCG7
d6N/OKzG4zm77Te3Zus8kHwYzbI9e2ydofYoraqTGpvdd926Wh13h0qpvFrU
DpPtSt/3nz1jnx327fTptycrR1nj4eF0CCZq0mjz+XS6eGgPvqydWVjU75dV
9dR2mkG5tO/XjKwwtwpRvzfcirNZ6FWzST8r9If9btI0nF3BmQR+JZt2ulpn
HezduT8tF1utHVPtUz/PusfQys16ame3weou83PtPNkM6luxXVWZUyh0eOBc
neNjXw9sbbPuO4+gZK3G5WJYH7Qn7jHt7o52JtzpalG9zhigslsvB86EX/qT
wQZEqd+2K4/HrHQrhlXNKGyyMLrOF9ncacWz/uPY73fcRbLNjNDuHm6LpNEe
lbadY7Htz3Z5Xgpq/Xi9qWezyry58Bba7LrIzENkTQX3LsvO/MRqwbN/HZaC
i12S68foWDvYjeZjWrje7PncU0Gjwxt2UJrkpSmcRusPFt3ivr+QfGrd9+db
ebOzHy2jMLkdw+b6Ec3iQupud2ZrnxVmhSN/djtn615md9Op1IPhQ2sXncJj
4MP803XY3yVe9Zzq/fsp2t2uhfC2bemdfTy/PZsN7zHmW2e1XJyK84F6Zu6y
a91qWtkf+ddKZVcoP2078Q9Ltqk02rUqX2+j0cC+35rVzTnrPaVc7Y/XDh+u
289K77nI6v4qSQaRtus3u+Vtdj/tNg2HDR+bVeMYd8bzhh52J1av5C+7pYOn
83BcPXipannGyiy2N5WWPd90iyVTM7d+HeqQq9jIyw9/NVwdz7f1pdKybI9Q
zzNO6/zROVwOfkut5tvDlW3k0mt2ZuvRvuneNbeNiR0M3UVWWrK9sV92yqvm
YZBEYVZ5Pm4X1h76g/Gkdkv35q25dKJ1ya0eOzPHTM6NkatFpUnBkrJ2rJTC
Tm3fSVPjKu1rfR9G58LdrJhWUWbT4jHtDJJipqfTaZ5NWtb2fDyc7EG7rQ31
fV7NA8+8tQfebhY9s7obIo9WWWVT7F9KXhqMnwWn3Bjeory0zqsDUdit9fkt
jdv7CVhalNhrl9V4MvYsb/3sqOSB+Yye7aqrjvGyme8Xp80jWT8vw811dRuW
WdgHQ9kF+/XBLJ3GWrVb1MX2sRm0xkntkdSCZrc6HE6e8Xq1cVInWlh6jdVT
ZFg1sLFG9b5YHP1lPlHjtH1j10w7d+773SkOm/W970XeuL3dru52e1g+ee1+
edbwYpnk3VN9Wi9UEeja+Vg+enm3tmg+17Gcudr5tlpe03t34wcFfXPS00Ia
jfrtUukwPkWdNNIBXZOx4ezd0+jR1VO3vTk48iEn22JH9jsNbVrklvkMG0m5
Fw6yRmw/DbeSLtPnuXq4b2vReTVxIxFHQX7azUC3gspoM3aue391Y7p9PWgd
dnPn5sQ+po+FtGbTU/Ds2I8Oj/PLOEyz46zEJ7zpP9uFyz7Oq2dpZOap17iM
7EJ5+sxz7Rw/e0V5ms4nx2691+hHfsHpH7LFc/yYyHvj6ZvBfdJshoeHtZ/E
/jGxzVtN5R2jeo7uSc/Uuu3ear2KbrNxrSeagQWCPXvuZMcT9dSsLf0jL47c
TNafgbX3LlWxjc9z379E06NoW82G1NKnml7ORztqtDtevL91H3Zu7Vwz7m+b
w6DY5rfcXV+ycLWSvZrVWC3nWX0sdadxPg1Hgtc0UUv2pU02n3bO2WD0aIuB
7q1Etyabp9JmVd+uWT5Sfb2vNie2uuzLFateVuxR7gW9QaKcg3af6/Xt/twT
AyOf6ZvhwWslFeUdXdEdT62nH21bQbs7L42H6TVQ3RsfREdTxIbtbfzrUX9o
Q9apsuCezyrFHX+Wsqcx2mXGiLGgG94vnWGJO43YqJ42heJVzG5y3dIP6TC5
G/ulXqqmU60f2p04Oi+7adrNH3H8NBtCD/x8d57e9H7NMvOpm9+Lg861VDH9
ZmlSTAvOcF+47x9nWV+2NImkj5euTvViJbq518PhedM1O83LuVpe9K/3667p
FcZ9J240Srvz2W+EF6tlZ6ET2cf+bj3SFoVJueGcN+l8EclqFFRk6FTCRb7i
8SJymAvv3w5W9VK39UxXpYtaXoLISURv1DiwqWWWtEX02MnlfauLoGGml2M+
3+6ym0rrk3zt3fSw19ArveqofDDDIa8vj72emLOB3lhIxp/3eUezRlmrPh6F
o8Z+u1z0S7fy8GjVjbvkdePani2ap0HqbdzFdRvuzXM522VhfdHO92JQGqS3
s6EFRTbL0lV8ZvozX7Ba77G6R7M149P8NpHm4Ghd9GPj3hzVVmy+r/Tia3nF
XV0u7r0w5xVLS8Y3z42y+mVQag5Zz2dZp1LJZoNWUTAMPTm19Li7S+/36Wmw
NK6zJzRYPV0X22HtbhaRMxXK985yXferyJ2viwM/yeEiTwZ32Y+TChdJozea
PPjW0kMehNH9kFbOtW3hUN5d/XHDsSbatH1w055rPLnYX2puuzoIzcesmLay
63PQDW/9Zasi9zFkWSvfe0PBp+I+7Gd+bM2izuC60k7756M1ODXtbqM/GPVH
ldp9f2/Wx494nbjTXrkWt/xW5bROrjlL3M0qKxf29U10a6UXeM+yomWl3nZU
L96CNLVWl3zlV+a2rM5TTy+0eoeJOCThVflz/Rzks+dteeKj5vxYsCb7zqFX
yzGC/DGKonwobpY+8ZLWwM5q9mZcLJdPwTCMdePcuN2XY694W++24/l4307M
tagUDvPm5JKlO1+T83C6LZ46/LDvrtrFUu6XOkUTKXln0to1j9OrvzM6rWqe
WpE5mozYZctKpfL5uunPrWd7c9Tarnu5lJy4e+zX949Wd7TQN3plIG1dr1bL
/m64X++leYbpP3aJfNbuxa5VHoHJbtMsOB0H2intrtwhUOJeWnem7fr4MGlE
ZxWdE7PZiPy0Nz3316bqXGTHytPp2AxLP/ujvf5b7m17s2876f/qzem/tOf1
v+v/48vfvj3LyHjtbX378t+fPv+R2V4YKqoBDgPb9y3aT2UFIQ+pGNkNqPzf
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

-->

</rfc>
