<?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.6.39 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-gazdag-x509-hash-sigs-02" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="Hash-based Signatures for X.509">Internet X.509 Public Key Infrastructure: Algorithm Identifiers for Hash-based Signatures</title>
    <seriesInfo name="Internet-Draft" value="draft-gazdag-x509-hash-sigs-02"/>
    <author initials="K." surname="Bashiri" fullname="Kaveh Bashiri">
      <organization>BSI</organization>
      <address>
        <email>kaveh.bashiri.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="S." surname="Fluhrer" fullname="Scott Fluhrer">
      <organization>Cisco Systems</organization>
      <address>
        <email>sfluhrer@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Gazdag" fullname="Stefan Gazdag">
      <organization>genua GmbH</organization>
      <address>
        <email>ietf@gazdag.de</email>
      </address>
    </author>
    <author initials="D." surname="Van Geest" fullname="Daniel Van Geest">
      <organization/>
      <address>
        <email>daniel.vangeest.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="S." surname="Kousidis" fullname="Stavros Kousidis">
      <organization>BSI</organization>
      <address>
        <email>stavros.kousidis@bsi.bund.de</email>
      </address>
    </author>
    <date year="2023" month="September" day="14"/>
    <area>sec</area>
    <workgroup>LAMPS - Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 112?>

<t>This document specifies algorithm identifiers and ASN.1 encoding formats for
the Hash-Based Signature (HBS) schemes Hierarchical Signature System (HSS),
eXtended Merkle Signature Scheme (XMSS), and XMSS^MT, a multi-tree variant of
XMSS, as well as SLH-DSA (formerly SPHINCS+), the latter being the only
stateless scheme. This specification applies to the Internet X.509 Public Key
infrastructure (PKI) when those digital signatures are used in Internet X.509
certificates and certificate revocation lists.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-gazdag-x509-hash-sigs/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        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/x509-hbs/draft-gazdag-x509-hash-sigs"/>.</t>
    </note>
  </front>
  <middle>
    <?line 122?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Hash-Based Signature (HBS) Schemes combine Merkle trees with One/Few Time
Signatures (OTS/FTS) in order to provide digital signature schemes that remain
secure even when quantum computers become available. Their theoretic security
is well understood and depends only on the security of the underlying hash
function. As such they can serve as an important building block for quantum
computer resistant information and communication technology.</t>
      <t>The private key of HSS, XMSS and XMSS^MT is a finite collection of OTS keys,
hence only a limited number of messages can be signed and the private key's
state must be updated and persisted after signing to prevent reuse of OTS keys.
While the right selection of algorithm parameters would allow a private key to
sign a virtually unbounded number of messages (e.g. 2^60), this is at the cost
of a larger signature size and longer signing time. Due to the statefulness of
the private key of HSS, XMSS and XMSS^MT and the limited number of signatures
that can be created, these signature algorithms might not be appropriate for
use in interactive protocols. However, in some use case scenarios the
deployment of these signature algorithms may be appropriate. Such use cases are
described and discussed later in <xref target="use-cases-hbs-x509"/>.</t>
      <t>The private key of SLH-DSA is a finite but very large collection of FTS keys
and hence stateless. This typically comes at the cost of larger signatures
compared to the stateful HBS variants. Thus SLH-DSA is suitable for more use
cases if the signature sizes fit the requirements.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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?>

<t>The parameter 'n' is the security parameter, given in bytes. In practice this
is typically aligned to the standard output length of the hash function in use,
i.e. either 16, 24, 32 or 64 bytes. The height of a single tree is typically
given by the parameter 'h'. The number of levels of trees is either called 'L'
(HSS) or 'd' (XMSS, XMSS^MT, SLH-DSA).</t>
    </section>
    <section anchor="use-cases-hbs-x509">
      <name>Use Cases of HBS in X.509</name>
      <t>As many cryptographic algorithms that are considered to be quantum-resistant,
HBS have several pros and cons regarding their practical usage. On the positive
side they are considered to be secure against a classical as well as a quantum
adversary, and a secure instantiation of HBS may always be built as long as a
cryptographically secure hash function exists. Moreover, HBS offer small public
key sizes, and, in comparison to other post-quantum signature schemes, the
stateful HBS can offer relatively small signature sizes (for certain parameter
sets). While key generation and signature generation may take longer than
classical alternatives, fast and minimal verification routines can be built.
The major negative aspect is the statefulness of several HBS.  Private keys
always have to be handled in a secure manner, but stateful HBS necessitate a
special treatment of the private key in order to avoid security incidents like
signature forgery <xref target="MCGREW"/>, <xref target="NIST-SP-800-208"/>. Therefore, for stateful HBS, a
secure environment <bcp14>MUST</bcp14> be used for key generation and key management.</t>
      <t>Note that, in general, root CAs offer such a secure environment and the number
of issued signatures (including signed certificates and CRLs) is often moderate
due to the fact that many root CAs delegate OCSP services or the signing of
end-entity certificates to other entities (such as subordinate CAs) that use
stateless signature schemes. Therefore, many root CAs should be able to handle
the required state management, and stateful HBS offer a viable solution.</t>
      <t>As the above reasoning for root CAs usually does not apply for subordinate CAs,
it is <bcp14>NOT RECOMMENDED</bcp14> for subordinate CAs to use stateful HBS for issuing
end-entity certificates. Moreover, stateful HBS <bcp14>MUST NOT</bcp14> be used for end-entity
certificates.</t>
      <t>However, stateful HBS <bcp14>MAY</bcp14> be used for code signing certificates, since they are
suitable and recommended in such non-interactive contexts. For example, see the
recommendations for software and firmware signing in <xref target="CNSA2.0"/>. Some
manufactures use common and well-established key formats like X.509 for their
code signing and update mechanisms. Also there are multi-party IoT ecosystems
where publicly trusted code signing certificates are useful.</t>
    </section>
    <section anchor="public-key-algorithms">
      <name>Public Key Algorithms</name>
      <t>Certificates conforming to <xref target="RFC5280"/> can convey a public key for any public key
algorithm. The certificate indicates the algorithm through an algorithm
identifier. An algorithm identifier consists of an OID and optional parameters.</t>
      <t>In this document, we define new OIDs for identifying the different hash-based
signature algorithms. An additional OID is defined in <xref target="RFC8708"/> and repeated
here for convenience. For all of the OIDs, the parameters <bcp14>MUST</bcp14> be absent.</t>
      <section anchor="hss-public-keys">
        <name>HSS Public Keys</name>
        <t>The object identifier and public key algorithm identifier for HSS is defined in
<xref target="RFC8708"/>. The definitions are repeated here for reference.</t>
        <t>The object identifier for an HSS public key is <tt>id-alg-hss-lms-hashsig</tt>:</t>
        <artwork><![CDATA[
id-alg-hss-lms-hashsig  OBJECT IDENTIFIER ::= {
   iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
   smime(16) alg(3) 17 }
]]></artwork>
        <t>Note that the <tt>id-alg-hss-lms-hashsig</tt> algorithm identifier is also referred to
as <tt>id-alg-mts-hashsig</tt>. This synonym is based on the terminology used in an
early draft of the document that became <xref target="RFC8554"/>.</t>
        <t>The HSS public key identifier is as follows:</t>
        <artwork><![CDATA[
pk-HSS-LMS-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-hss-lms-hashsig
   KEY HSS-LMS-HashSig-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }
]]></artwork>
        <t>The HSS public key is defined as follows:</t>
        <artwork><![CDATA[
HSS-LMS-HashSig-PublicKey ::= OCTET STRING
]]></artwork>
        <t>See <xref target="NIST-SP-800-208"/> and <xref target="RFC8554"/> for more information on the contents and
format of an HSS public key. Note that the single-tree signature scheme LMS is
instantiated as HSS with level L=1.</t>
      </section>
      <section anchor="xmss-public-keys">
        <name>XMSS Public Keys</name>
        <t>The object identifier for an XMSS public key is <tt>id-alg-xmss-hashsig</tt>:</t>
        <artwork><![CDATA[
id-alg-xmss-hashsig  OBJECT IDENTIFIER ::= {
   itu-t(0) identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmss(13) 0 }
]]></artwork>
        <t>The XMSS public key identifier is as follows:</t>
        <artwork><![CDATA[
pk-XMSS-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-xmss-hashsig
   KEY XMSS-HashSig-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }
]]></artwork>
        <t>The XMSS public key is defined as follows:</t>
        <artwork><![CDATA[
XMSS-HashSig-PublicKey ::= OCTET STRING
]]></artwork>
        <t>See <xref target="NIST-SP-800-208"/> and <xref target="RFC8391"/> for more information on the contents and
format of an XMSS public key.</t>
      </section>
      <section anchor="xmssmt-public-keys">
        <name>XMSS^MT Public Keys</name>
        <t>The object identifier for an XMSS^MT public key is <tt>id-alg-xmssmt-hashsig</tt>:</t>
        <artwork><![CDATA[
id-alg-xmssmt-hashsig  OBJECT IDENTIFIER ::= {
   itu-t(0) identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmssmt(14) 0 }
]]></artwork>
        <t>The XMSS^MT public key identifier is as follows:</t>
        <artwork><![CDATA[
pk-XMSSMT-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-xmssmt-hashsig
   KEY XMSSMT-HashSig-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }
]]></artwork>
        <t>The XMSS^MT public key is defined as follows:</t>
        <artwork><![CDATA[
XMSSMT-HashSig-PublicKey ::= OCTET STRING
]]></artwork>
        <t>See <xref target="NIST-SP-800-208"/> and <xref target="RFC8391"/> for more information on the contents and
format of an XMSS^MT public key.</t>
      </section>
      <section anchor="slh-dsa-public-keys">
        <name>SLH-DSA Public Keys</name>
        <t>The object and public key algorithm identifiers for SLH-DSA are defined in
<xref target="I-D.ietf-lamps-cms-sphincs-plus"/>. The definitions are repeated here for
reference.</t>
        <artwork><![CDATA[
id-alg-sphincs-plus-128 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-192 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-256 OBJECT IDENTIFIER ::= {
   TBD }
]]></artwork>
        <t>The SLH-DSA public key identifier is as follows:</t>
        <artwork><![CDATA[
pk-sphincs-plus-128 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-128
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
     { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

pk-sphincs-plus-192 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-192
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
     { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

pk-sphincs-plus-256 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-256
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }
]]></artwork>
        <t>The SLH-DSA public key is defined as follows:</t>
        <artwork><![CDATA[
SPHINCS-Plus-PublicKey ::= OCTET STRING
]]></artwork>
        <t>See <xref target="NIST-FIPS-205"/> for more information on the contents and format of a
SLH-DSA public key.</t>
      </section>
    </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 <xref target="RFC5280"/>.</t>
      <t>If the keyUsage extension is present in an end-entity certificate that
indicates <tt>id-alg-sphincs-plus-128</tt>, <tt>id-alg-sphincs-plus-192</tt>, or
<tt>id-alg-sphincs-plus-256</tt>, then it <bcp14>MUST</bcp14> contain at least one of the following
values:</t>
      <artwork><![CDATA[
nonRepudiation; or
digitalSignature.
]]></artwork>
      <t>If the keyUsage extension is present in a code signing certificate that
indicates <tt>id-alg-hss-lms-hashsig</tt>, <tt>id-alg-xmss-hashsig</tt>,
<tt>id-alg-xmssmt-hashsig</tt>, <tt>id-alg-sphincs-plus-128</tt>, <tt>id-alg-sphincs-plus-192</tt>,
or <tt>id-alg-sphincs-plus-256</tt>, then it <bcp14>MUST</bcp14> contain at least one of the
following values:</t>
      <artwork><![CDATA[
nonRepudiation; or
digitalSignature.
]]></artwork>
      <t>If the keyUsage extension is present in a certification authority certificate
that indicates <tt>id-alg-hss-lms-hashsig</tt>, <tt>id-alg-xmss-hashsig</tt>,
<tt>id-alg-xmssmt-hashsig</tt>, <tt>id-alg-sphincs-plus-128</tt>, <tt>id-alg-sphincs-plus-192</tt>,
or <tt>id-alg-sphincs-plus-256</tt>, then it <bcp14>MUST</bcp14> contain at least one of the
following values:</t>
      <artwork><![CDATA[
nonRepudiation; or
digitalSignature; or
keyCertSign; or
cRLSign.
]]></artwork>
      <t>Note that for certificates that indicate <tt>id-alg-hss-lms-hashsig</tt> the above
definitions are more restrictive than the requirement defined in Section 4 of
<xref target="RFC8708"/>.</t>
    </section>
    <section anchor="signature-algorithms">
      <name>Signature Algorithms</name>
      <t>This section identifies OIDs for signing using HSS, XMSS, XMSS^MT, and SLH-DSA.
When these algorithm identifiers appear in the algorithm field as an
AlgorithmIdentifier, the encoding <bcp14>MUST</bcp14> omit the parameters field. That is, the
AlgorithmIdentifier <bcp14>SHALL</bcp14> be a SEQUENCE of one component, one of the OIDs
defined in the following subsections.</t>
      <t>The data to be signed is prepared for signing. For the algorithms used in this
document, the data is signed directly by the signature algorithm, the data is
not hashed before processing. Then, a private key operation is performed to
generate the signature value. For HSS, the signature value is described in
section 6.4 of <xref target="RFC8554"/>. For XMSS and XMSS^MT the signature values are
described in sections B.2 and C.2 of <xref target="RFC8391"/>, respectively. For SLH-DSA the
signature values are described in 9.2 of <xref target="NIST-FIPS-205"/>. The octet string
representing the signature is encoded directly in the OCTET STRING without
adding any additional ASN.1 wrapping. For the Certificate and CertificateList
structures, the signature value is wrapped in the "signatureValue" OCTET STRING
field.</t>
      <section anchor="hss-signature-algorithm">
        <name>HSS Signature Algorithm</name>
        <t>The HSS public key OID is also used to specify that an HSS signature was
generated on the full message, i.e. the message was not hashed before being
processed by the HSS signature algorithm.</t>
        <artwork><![CDATA[
id-alg-hss-lms-hashsig OBJECT IDENTIFIER ::= {
   iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
   smime(16) alg(3) 17 }
]]></artwork>
        <t>The HSS signature is defined as follows:</t>
        <artwork><![CDATA[
HSS-LMS-HashSig-Signature ::= OCTET STRING
]]></artwork>
        <t>See <xref target="NIST-SP-800-208"/> and <xref target="RFC8554"/> for more information on the contents and
format of an HSS signature.</t>
      </section>
      <section anchor="xmss-signature-algorithm">
        <name>XMSS Signature Algorithm</name>
        <t>The XMSS public key OID is also used to specify that an XMSS signature was
generated on the full message, i.e. the message was not hashed before being
processed by the XMSS signature algorithm.</t>
        <artwork><![CDATA[
id-alg-xmss-hashsig  OBJECT IDENTIFIER ::= {
   itu-t(0) identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmss(13) 0 }
]]></artwork>
        <t>The XMSS signature is defined as follows:</t>
        <artwork><![CDATA[
XMSS-HashSig-Signature ::= OCTET STRING
]]></artwork>
        <t>See <xref target="NIST-SP-800-208"/> and <xref target="RFC8391"/> for more information on the contents and
format of an XMSS signature.</t>
        <t>The signature generation <bcp14>MUST</bcp14> be performed according to 7.2 of
<xref target="NIST-SP-800-208"/>.</t>
      </section>
      <section anchor="xmssmt-signature-algorithm">
        <name>XMSS^MT Signature Algorithm</name>
        <t>The XMSS^MT public key OID is also used to specify that an XMSS^MT signature
was generated on the full message, i.e. the message was not hashed before being
processed by the XMSS^MT signature algorithm.</t>
        <artwork><![CDATA[
id-alg-xmssmt-hashsig  OBJECT IDENTIFIER ::= {
   itu-t(0) identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmssmt(14) 0 }
]]></artwork>
        <t>The XMSS^MT signature is defined as follows:</t>
        <artwork><![CDATA[
XMSSMT-HashSig-Signature ::= OCTET STRING
]]></artwork>
        <t>See <xref target="NIST-SP-800-208"/> and <xref target="RFC8391"/> for more information on the contents and
format of an XMSS^MT signature.</t>
        <t>The signature generation <bcp14>MUST</bcp14> be performed according to 7.2 of
<xref target="NIST-SP-800-208"/>.</t>
      </section>
      <section anchor="slh-dsa-signature-algorithm">
        <name>SLH-DSA Signature Algorithm</name>
        <t>The SLH-DSA public key OID is also used to specify that a SLH-DSA signature
was generated on the full message, i.e. the message was not hashed before being
processed by the SLH-DSA signature algorithm.</t>
        <artwork><![CDATA[
id-alg-sphincs-plus-128 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-192 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-256 OBJECT IDENTIFIER ::= {
   TBD }
]]></artwork>
        <t>The SLH-DSA signature is defined as follows:</t>
        <artwork><![CDATA[
SPHINCS-Plus-Signature ::= OCTET STRING
]]></artwork>
        <t>See <xref target="NIST-FIPS-205"/> for more information on the contents and format of a SLH-DSA
signature.</t>
      </section>
    </section>
    <section anchor="key-generation">
      <name>Key Generation</name>
      <t>The key generation for XMSS and XMSS^MT <bcp14>MUST</bcp14> be performed according to 7.2 of
<xref target="NIST-SP-800-208"/></t>
    </section>
    <section anchor="asn1-module">
      <name>ASN.1 Module</name>
      <t>For reference purposes, the ASN.1 syntax is presented as an ASN.1 module here.
This ASN.1 Module builds upon the conventions established in <xref target="RFC5911"/>.</t>
      <artwork><![CDATA[
--
-- ASN.1 Module
--

<CODE STARTS>

Hashsigs-pkix-0 -- TBD - IANA assigned module OID

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

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

--
-- Object Identifiers
--

-- id-alg-hss-lms-hashsig is defined in [RFC8708]

id-alg-hss-lms-hashsig OBJECT IDENTIFIER ::= { iso(1)
   member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
   smime(16) alg(3) 17 }

id-alg-xmss-hashsig  OBJECT IDENTIFIER ::= { itu-t(0)
   identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmss(13) 0 }

id-alg-xmssmt-hashsig  OBJECT IDENTIFIER ::= { itu-t(0)
   identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmssmt(14) 0 }

id-alg-sphincs-plus-128 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-192 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-256 OBJECT IDENTIFIER ::= {
   TBD }

--
-- Signature Algorithms and Public Keys
--

-- sa-HSS-LMS-HashSig is defined in [RFC8708]

sa-HSS-LMS-HashSig SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-hss-lms-hashsig
   PARAMS ARE absent
   PUBLIC-KEYS { pk-HSS-LMS-HashSig }
   SMIME-CAPS { IDENTIFIED BY id-alg-hss-lms-hashsig } }

sa-XMSS-HashSig SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-xmss-hashsig
   PARAMS ARE absent
   PUBLIC-KEYS { pk-XMSS-HashSig }
   SMIME-CAPS { IDENTIFIED BY id-alg-xmss-hashsig } }

sa-XMSSMT-HashSig SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-xmssmt-hashsig
   PARAMS ARE absent
   PUBLIC-KEYS { pk-XMSSMT }
   SMIME-CAPS { IDENTIFIED BY id-alg-xmssmt-hashsig } }

-- sa-sphincs-plus-128 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

sa-sphincs-plus-128 SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-sphincs-plus-128
   PARAMS ARE absent
   PUBLIC-KEYS { pk-sphincs-plus-128 }
   SMIME-CAPS { IDENTIFIED BY id-alg-sphincs-plus-128 } }

-- sa-sphincs-plus-192 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

sa-sphincs-plus-192 SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-sphincs-plus-192
   PARAMS ARE absent
   PUBLIC-KEYS { pk-sphincs-plus-192 }
   SMIME-CAPS { IDENTIFIED BY id-alg-sphincs-plus-192 } }

-- sa-sphincs-plus-256 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

sa-sphincs-plus-256 SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-sphincs-plus-256
   PARAMS ARE absent
   PUBLIC-KEYS { pk-sphincs-plus-256 }
   SMIME-CAPS { IDENTIFIED BY id-alg-sphincs-plus-256 } }

-- pk-HSS-LMS-HashSig is defined in [RFC8708]

pk-HSS-LMS-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-hss-lms-hashsig
   KEY HSS-LMS-HashSig-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

HSS-LMS-HashSig-PublicKey ::= OCTET STRING

pk-XMSS-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-xmss-hashsig
   KEY XMSS-HashSig-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

XMSS-HashSig-PublicKey ::= OCTET STRING

pk-XMSSMT-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-xmssmt-hashsig
   KEY XMSSMT-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

XMSSMT-HashSig-PublicKey ::= OCTET STRING

-- pk-sphincs-plus-128 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

pk-sphincs-plus-128 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-128
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

-- pk-sphincs-plus-192 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

pk-sphincs-plus-192 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-192
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

-- pk-sphincs-plus-256 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

pk-sphincs-plus-256 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-256
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

SPHINCS-Plus-PublicKey ::= OCTET STRING

END

<CODE ENDS>
]]></artwork>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security requirements of <xref target="NIST-SP-800-208"/> and <xref target="NIST-FIPS-205"/> <bcp14>MUST</bcp14> be
taken into account.</t>
      <t>For the stateful HBS (HSS, XMSS, XMSS^MT) it is crucial to stress the
importance of a correct state management. If an attacker were able to obtain
signatures for two different messages created using the same OTS key, then it
would become computationally feasible for that attacker to create forgeries
<xref target="BH16"/>. As noted in <xref target="MCGREW"/> and <xref target="ETSI-TR-103-692"/>, extreme care needs to be
taken in order to avoid the risk that an OTS key will be reused accidentally.
This is a new requirement that most developers will not be familiar with and
requires careful handling.</t>
      <t>Various strategies for a correct state management can be applied:</t>
      <ul spacing="normal">
        <li>Implement a track record of all signatures generated by a key pair associated
to a stateful HBS instance. This track record may be stored outside the
device which is used to generate the signature. Check the track record to
prevent OTS key reuse before a new signature is released. Drop the new
signature and hit your PANIC button if you spot OTS key reuse.</li>
        <li>Use a stateful HBS instance only for a moderate number of signatures such
that it is always practical to keep a consistent track record and be able to
unambiguously trace back all generated signatures.</li>
        <li>Apply the state reservation strategy described in Section 5 of <xref target="MCGREW"/>, where
upcoming states are reserved in advance by the signer. In this way the number of
state synchronisations between nonvolatile and volatile memory is reduced.</li>
      </ul>
    </section>
    <section anchor="backup-and-restore-management">
      <name>Backup and Restore Management</name>
      <t>Certificate Authorities have high demands in order to ensure the availability
of signature generation throughout the validity period of signing key pairs.</t>
      <t>Usual backup and restore strategies when using a stateless signature scheme
(e.g. SLH-DSA) is to duplicate private keying material and to operate redundant
signing devices or to store and safeguard a copy of the private keying material
such that it can be used to set up a new signing device in case of technical
difficulties.</t>
      <t>For stateful HBS such straightforward backup and restore strategies will lead
to OTS reuse with high probability as a correct state management is not
guaranteed. Strategies for maintaining availability and keeping a correct state
are described in 7 of <xref target="NIST-SP-800-208"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign a module OID from the "SMI for PKIX Module
Identifier" registry for the ASN.1 module in Section 6.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC5911">
          <front>
            <title>New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5911"/>
          <seriesInfo name="DOI" value="10.17487/RFC5911"/>
        </reference>
        <reference anchor="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="RFC8391">
          <front>
            <title>XMSS: eXtended Merkle Signature Scheme</title>
            <author fullname="A. Huelsing" initials="A." surname="Huelsing"/>
            <author fullname="D. Butin" initials="D." surname="Butin"/>
            <author fullname="S. Gazdag" initials="S." surname="Gazdag"/>
            <author fullname="J. Rijneveld" initials="J." surname="Rijneveld"/>
            <author fullname="A. Mohaisen" initials="A." surname="Mohaisen"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This note describes the eXtended Merkle Signature Scheme (XMSS), a hash-based digital signature system that is based on existing descriptions in scientific literature. This note specifies Winternitz One-Time Signature Plus (WOTS+), a one-time signature scheme; XMSS, a single-tree scheme; and XMSS^MT, a multi-tree variant of XMSS. Both XMSS and XMSS^MT use WOTS+ as a main building block. XMSS provides cryptographic digital signatures without relying on the conjectured hardness of mathematical problems. Instead, it is proven that it only relies on the properties of cryptographic hash functions. XMSS provides strong security guarantees and is even secure when the collision resistance of the underlying hash function is broken. It is suitable for compact implementations, is relatively simple to implement, and naturally resists side-channel attacks. Unlike most other signature systems, hash-based signatures can so far withstand known attacks using quantum computers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8391"/>
          <seriesInfo name="DOI" value="10.17487/RFC8391"/>
        </reference>
        <reference anchor="RFC8554">
          <front>
            <title>Leighton-Micali Hash-Based Signatures</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Curcio" initials="M." surname="Curcio"/>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>This note describes a digital-signature system based on cryptographic hash functions, following the seminal work in this area of Lamport, Diffie, Winternitz, and Merkle, as adapted by Leighton and Micali in 1995. It specifies a one-time signature scheme and a general signature scheme. These systems provide asymmetric authentication without using large integer mathematics and can achieve a high security level. They are suitable for compact implementations, are relatively simple to implement, and are naturally resistant to side-channel attacks. Unlike many other signature systems, hash-based signatures would still be secure even if it proves feasible for an attacker to build a quantum computer.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF. This has been reviewed by many researchers, both in the research group and outside of it. The Acknowledgements section lists many of them.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8554"/>
          <seriesInfo name="DOI" value="10.17487/RFC8554"/>
        </reference>
        <reference anchor="RFC8708">
          <front>
            <title>Use of the HSS/LMS Hash-Based Signature Algorithm in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document specifies the conventions for using the Hierarchical Signature System (HSS) / Leighton-Micali Signature (LMS) hash-based signature algorithm with the Cryptographic Message Syntax (CMS). In addition, the algorithm identifier and public key syntax are provided. The HSS/LMS algorithm is one form of hash-based digital signature; it is described in RFC 8554.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8708"/>
          <seriesInfo name="DOI" value="10.17487/RFC8708"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-cms-sphincs-plus">
          <front>
            <title>Use of the SPHINCS+ Signature Algorithm in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>Amazon Web Services</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="17" month="May" year="2023"/>
            <abstract>
              <t>   SPHINCS+ is a stateless hash-based signature scheme.  This document
   specifies the conventions for using the SPHINCS+ stateless hash-based
   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-sphincs-plus-02"/>
        </reference>
        <reference anchor="NIST-SP-800-208" target="https://doi.org/10.6028/NIST.SP.800-208">
          <front>
            <title>Recommendation for Stateful Hash-Based Signature Schemes</title>
            <author initials="" surname="National Institute of Standards and Technology (NIST)">
              <organization/>
            </author>
            <date year="2020" month="October" day="29"/>
          </front>
        </reference>
        <reference anchor="NIST-FIPS-205" target="https://doi.org/10.6028/NIST.FIPS.205.ipd">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author initials="" surname="National Institute of Standards and Technology (NIST)">
              <organization/>
            </author>
            <date year="2023" month="August" day="24"/>
          </front>
        </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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC3279">
          <front>
            <title>Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="L. Bassham" initials="L." surname="Bassham"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="April" year="2002"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for digital signatures and subject public keys used in the Internet X.509 Public Key Infrastructure (PKI). Digital signatures are used to sign certificates and certificate revocation list (CRLs). Certificates include the public key of the named subject. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3279"/>
          <seriesInfo name="DOI" value="10.17487/RFC3279"/>
        </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="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>
        <reference anchor="MCGREW" target="https://tubiblio.ulb.tu-darmstadt.de/id/eprint/101633">
          <front>
            <title>State Management for Hash-Based Signatures</title>
            <author initials="D." surname="McGrew">
              <organization/>
            </author>
            <author initials="P." surname="Kampanakis">
              <organization/>
            </author>
            <author initials="S." surname="Fluhrer">
              <organization/>
            </author>
            <author initials="S." surname="Gazdag">
              <organization/>
            </author>
            <author initials="D." surname="Butin">
              <organization/>
            </author>
            <author initials="J." surname="Buchmann">
              <organization/>
            </author>
            <date year="2016" month="November" day="02"/>
          </front>
        </reference>
        <reference anchor="BH16" target="https://eprint.iacr.org/2016/1042.pdf">
          <front>
            <title>Oops, I did it again – Security of One-Time Signatures under Two-Message Attacks.</title>
            <author initials="L." surname="Bruinderink">
              <organization/>
            </author>
            <author initials="S." surname="Hülsing">
              <organization/>
            </author>
            <date year="2016"/>
          </front>
        </reference>
        <reference anchor="CNSA2.0" target="https://media.defense.gov/2022/Sep/07/2003071834/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS_.PDF">
          <front>
            <title>Commercial National Security Algorithm Suite 2.0 (CNSA 2.0) Cybersecurity Advisory (CSA)</title>
            <author initials="" surname="National Security Agency (NSA)">
              <organization/>
            </author>
            <date year="2022" month="September" day="07"/>
          </front>
        </reference>
        <reference anchor="ETSI-TR-103-692" target="https://www.etsi.org/deliver/etsi_tr/103600_103699/103692/01.01.01_60/tr_103692v010101p.pdf">
          <front>
            <title>State management for stateful authentication mechanisms</title>
            <author initials="" surname="European Telecommunications Standards Institute (ETSI)">
              <organization/>
            </author>
            <date year="2021" month="November"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 708?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks for Russ Housley and Panos Kampanakis for helpful suggestions.</t>
      <t>This document uses a lot of text from similar documents <xref target="NIST-SP-800-208"/>,
(<xref target="RFC3279"/> and <xref target="RFC8410"/>) as well as <xref target="RFC8708"/>. Thanks go to the authors of
those documents. "Copying always makes things easier and less error prone" -
<xref target="RFC8411"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+0923bbSHLv/RUd+cFUQlAkdbGkvQ1FUTZ3dFuRnp05Pl4P
CDRJrEA0Bw2I5vj4nPxDfiAfkqfkT/IlqapuAA0SlCV5PDszm2TPWgT6Uveq
ri7UOo7DkiAJxTHf6keJiCOR8G8b+80jfp2OwsDjX4sl70fj2FVJnHpJGsPQ
TjiRcZBMZ7zviygJxoGIFR/LmL9y1dQZuUr4fBBMIhfHqy3mjkaxuIM9Kt/T
TNp0i3luImDx5TEPorFkzJde5M5gTz92x4kzcX/03YnzHsY6U1xLBRPlNNtM
paNZoFQgo2Q5h+H93vCMwY67zI2Fe8yV8NhCxreTWKbzY37eubgecIefB7Mg
AWA6vh8kMNkN+YXwpm4UqJmG6/rr/rfcjQDei/5Fj92KJSzjwwaGWs4pAsbu
RJSKY8a5vQH81ND8FXYOogl/iS/h6cwNQoBp7qrZV4FIxg0ZT3Au0DQdHXON
3kjt3IM0Y26aTGV8zByYyYFc6ph/3eAnMCCIA3qmKfe1eyempeew2zE/GfTp
h9DA3OKoxkiPaiBQX03wTcOTM3uLQYOfhek0FrG1xcCTSVJ6Tlt0A+VJPliq
RMyUvZka66FfeTiiYouXhLK9QyLGbmQ/px0mQHaXv5yNXtnLa+hpaMMX9tKn
Df4NLiOESqzVT4HhIlx5hRvYq/o0qHHnRhMccz+NvpapCvxAlVBw72Kpyq+q
WKH0wMatGfjVSAWNURr5iAyLZDxzk+COpO3mrLt/1Gplf7YPm8f82d0u90Rc
53dt7sWhfnW4e9SCV+9nSpkH+/t78GCqVDjLHr1oHuaPABPu0Zu+c0q4OqE7
mysHHjpqPg0iTznzMFW492V/MHQG185hs+m0YRHCJnHjiUiO+TRJ5up4Z8eX
Acr5TqvZOGi2D3dwUmNw3TCT9Bxti24EUHQmIt9FpSQ9BOqBCKShNjEnZRMC
AjgVM6FJmukFp/9zzL+GNZeuUfN+pGCzNBFcjnFx2Cv2FWn6ECxAJEM5WfIa
ArlNSwAsAFm72W46LQD4KEP7rH89APj3H4E0TmnAlEYw9220CcdQKGUjeRqA
WQCALWQNtD8LtrtO89Bp7zGG9rgsebvtF0fmz8O9VrP4k+TxovvypvfXaqok
6SgA7yIbaThqJKkD0MxA6v0EJHwn8HfEPA6iBIjWOtjdXaMQv3AjdwL8jpLC
6axIxANEAWzBhfcyFovq19egxCDwsNWt0dW1ISu2sOq9ZbCqADhJkyCqfvtn
fOtNZ24UlTjSOnBaLXR5nJ+8ah1UE1gTsBG4Xkzih9OAnHvtxtwf2wS9knNV
533uBz4PEu5OXND7//33/+AD4aXg45coMFeRcIbBTNg+G8yRiPlwIZ0LEFhg
B+8kievdqsanKX8OqMVpgCsE0e1G2r36n/8KFbjNFfThZ/dy0Gk3mtW4z4Qf
uCBIYxEp0ZjIO8C+3d4ZiPlO8wX83dxtvmgd7u7tOC38T3OnO+i8wxXfwZLv
Oucvr276w1cXg3eN69Mzm1ZdtEmxF4A+5YqVk6mIiQYphBQc1uI1XBX/2ubd
5QhipHywfxcoiHJgxKCz/Qg9LrYDz+ehxmbzc4VtOxAmNF/Aw95w0HeGN2Cu
dp2Do3Y1tRaLRUMkSlspX4Sg3vEOPniXxCAxuwfN5jv85+iIfh21d5qtBv3n
3UFzJ4n1y/Zds4X/P1+VL62ws7LCqsyWI9IYQHrazs/y0OvTJOmlsZwLcNhD
sJjoLdLILKMsA1fYvRpSY4VULdAkxhzH4e4IwlvXSxgbTgPFIepMCVo1Fx6G
t2Aqc/4GVsyLBrQzuGy0OLBD+hjjaStJwSMD7Kr9Ve3VyWCbK+21+CtYy429
KSBQsvMUOMHYwWC7zsS3CThEWOVCxLehWHN+vPbtBQ4kmPDPv10M4QefpWES
OEksBL9z48AFrOSY4QB4q/hChCH+Ozh/5ZyCtNYQfhGHSz64ftW/7A7+DZZE
PEI3gYiXjwQiiQ9kFC6Zyl2WRqbBiYCGboav7nweIg0TSRM3HjTQx1gHDV6D
4HubL0BEYJ5UAqyU9oWqsEMQ3vMUiQt2q7wwgyAo0UAIzSnrAYfziDTghYFK
wGyRIMwC3w8hynqGi8XSB0hgCGP3cNHEHhyEcBREIuMPUhzICyKD9nPnTCw4
2lBm2dDa1XCwczaENQB4OFUAeYFE81jegYytI5vLSzJ1E0AAosWIkU0RXMAB
RFPqhxRYnM4QnDkIPgjpCPVDcPcOokt3FBKPRBAjL2QsQPt4ZphYYASCrLtK
pPSJcL6Yg+wpYjn8F3FRWQ4Cf9OUcInSgYcUNk4jol2Dd0AewJPhqCX3QGWV
iO8ECh38HczmMk5QKkdpEJIGjULp3ZKhMLiwDBdAWgGzcHQejqB8IW9tE8CT
PKhpoEoLIGpwh2yH8xsC/AqlH3XA1hYO2Lt8HERovz0Zgl2hxdADDgc4VdUZ
kNjTsg9jQ3N8jNIZmHccONPOUBGeI0HME5qISRmM50orDyioSnBoOkfDpMfO
gfqAKP4aI964DOkdigfyGvkPYm/D1mB/nQYoeLBPHEymYL2EhUJhwOZuDAcS
Eo2FTEPYIwzlAtCxiZRIhpvC07sgTlIYsgQWj2RKNqgC4Rr42gZv/+2gSQYD
aInkTAgcT8KZCmEAKwLuJ7ZlOvhREMqhjCY2pgEak9NUZFYjcxoRGhuwYMlD
uZrRfp1ZhRlhpFKGZ14skBFk9pSwYM1JqMBOIIEjSZwD+wbOCGwrgIJmHxkD
Gh2gOQKnAi4VlTqRIFMKwhq5AA7C+QyGKFRMHO65uJMnIjDREjVcMFC6UC7J
DWkV2wiLu1yBogFBCChctjBZSVhPeXEwMhIG50ovVWjPwLADOQCYDx9ggkMT
MPtACYePH6sVKHMXtsqM0oQDYkvN5BUNOjNSynBzrUS57zBOI1nO0QOCoKG9
KgkPrrAqOorMAmDmr4oIB7ucOTtaPFU2wAoCNLSDZGJmUjsQpgkVaGNWlk9w
5oGGJRY/pEFMkQx6jGcQE0aojRR2IGangoiBvzXdkF6YMVJ86+L1YLhV1//y
yyv6+6b3l9f9m94p/j141Tk/z/9gZsTg1dXr89Pir2Jm9+riond5qifDU156
xLYuOt9t6XBg6+p62L+67JxvIZ+TUoiDDhToNxJaXsG8kNlRlrzAnJPu9X//
Z2sPZORf4IzXbrVAMsyPw9aLPfiBzkfvRsZR/0STz0AwhUsSBswFgZyjW1MU
faipXEQgDrEAav7rG6TM22P++5E3b+390TxAhEsPM5qVHhLN1p+sTdZErHhU
sU1OzdLzFUqX4e18V/qd0d16+Ps/hRglOK3DP/2RGd3KDDJ/Hj1HCS351/xt
nU8CdPNAyNESYpoGxCigl2hhPEFcZSUtckPtfArtoKiYyzQBb8pDEU0gODHu
G302z3w2bgE6UWdBA2yJADMDsLUO6ry9V+e7bYhV+MFeBgRiAPEE2kMy8Xhk
M/EPt+FhGvrRUnvCAufpc71IYZhDMJChItAoioJlDBC4EqD0/Pw5o7gYQXnu
P9fBb72Ie426b5OSvgY72CX1RicBtgHQ07Hnh2cVJo+xDhrVCOxQvJwnchK7
c4jNbZNL7gI1xwNFh2DNGCFQIhOyOHmkUme449S9Q5aCeYSIbo5pQB20gNmI
xQS4YqJqCMsMR2Fcip61AeGjpphUAfoShhvqYKoSAhMR0lEeLKfLvdBViha0
4n03D65cH6BSbrzU2utmC+BsGBG4mQlHPNDXuOHCXWJYSSFbgquh86ZVWYlk
JIZmubKAifcUdPMLML+SvCGuLsdjtPAztBNzOhZgwl3bYIKOnKY2+3CAjhBj
SXIBxEmcLPRdi5jJELGSe0Bfr7eLRUhZLQSVdl41/ngkorMD5kZyuYXIO1Hb
Da6DLgQTjuTA3jwiLZaxXiD9EvdWZOEOCFLELAaFeIIhcADosYv8g6Vm4FMA
NPSuxakqlpg8KkJNYkaDDMrM/TuAHIFgUfDh4nEsyQ1LOZDKpRKo0uD8uvDz
4Ks1p0l4tXABuH6oXUIuKJiiQg6i/y/ROBIe7BFQlOsyOhPCPgmGV1ZYUwot
7IOQeycDv7CDQeTR0RukLbgVrCAvsGeCYccbnXJ8W+dvVhLSb8nAxAJGino5
BQFw1hE4c4yKINqVEUFHvmdkTpc4p4LH+KhIboCxuZSJIOtAkqpHh3XgFUSK
3Y7KJByjs5x+9qZZsKptIcbMgVKp8O0jbw0oEaZkMczxYu2k2705V9vIcAnH
B5A66SPUEAMW8fQYrIy2Y2Tqcgh9CMkmyI6r7uCajmrgXRTa2Swwwo0hAIcT
oYOhD7CmtH+uk/QSz/01jS9GXiOJpg6Xh7229f4YfVl5hFXlLfGuDCuED3h+
weAX4znYWcsns2I1n6uVHJS2cyVJ1WzBsw4tpGSY0tmVXAEu5o7ASsGSLlgd
k+UpwEiVPh/5EpDFMwEmPJZazsoYg0clPVyJIaqGIjYYwJfgxHEoEJgV3UB/
26aW5maxVEmmi0VK6RJAPD+mlBfpfFea74Fk5UJhr1DHOMAr/BTLo24kfpxd
8GhTQvIRycixj0zg2BLxHp3EGQL63p3NQ5AAJWhRFpfuiPRlrQJxX6BTxD3G
QTyjHxl4sNEbkzkGgzCAMwYDoUhREXRKG49LsKbRbfSUjlAIdKCmQit7lt1D
E2RiiLFWjSBmJWLgEvpIb+U1G7wTKtI/BBJtJ2XnwKkAF/tyyAEpZe5LFzRI
u0GQpiROKSGwkeJZKgxYRVGPdYGfJ6fhUNK1pwCNESOTWnhj7hDfkkvx8GiD
WQ4NQoY+Rw0sHrE8KtJBnJ1jCyI/swlT68QKv8B3TaaY/skfsiKtCkSKKvOt
OtaBuIECzYhf9U/1gWNu0uNFZgMo0F856dSBo2Ddxhh9R2KBs7XUmA2WWWLT
D9AaoDWe5uUKrOrkrQEtSgcQHtyQ9iDBfmOuVd8aqZ9TZoERZ7X64PExwOOw
FnOMP4xbRPjq5VhZ5U7JHSntcJ49w7SHxWxz7pSjv5PPL4hHeaWClZUEpus0
WK6EBcux0Cz2izMuyVyGFs/RAmuNBPREYxMwWpBoLwsm2Pb7wHcANGeqlBPO
FBU8AO2/P2b6fr3yLedXJ3/udYe8f9q7HPbP+r0bfnz8B/4huzOAYLHW2gZF
RK/qjKS/rLW3QVlqh3vNbQ7Rr6+CWqu1u793tM3nt57C0fjvUe1oO1tEzYKZ
qLUOtpF2td1t3nrBP1oun3i1Cf5qemP6BA0CEUyH8MwtiDBLigWyzPoS7ORy
hjN1HY1Jx4J0gBrre9wsHw6hJRy80TFhHUkmV/nJn2AeCQ9kSwvq/v7eW8Ox
VcaUQUa9wZyhMlyZ3zowwTm/GDiYKB8AR65fn5z3u87Xve/KnLA4VE2pbCDO
XFnU0VKONwVm0HXnpnMx4J2bntGI7EW3dzPEzZ3Xg87LXn51xPmHLK+e5+Hr
6HluxBwiKnIldcQYrSSOqHPv5hz/4B+R11WkKVRljS4b4SeaXHWHvSEfDG/6
ly8ZG4BfW4tbSWlz3hQJKzv7bQSA3CVGxzCF6bfGTJYBbvCywOrjur4gWo29
OADPMa2QHwU1lrgi3WzQQZ2f/6GlLZFOvj7AFhn1p+HV+o+VKhuU3371ac1P
UiepgZLnu/sOnBfAHf9I5KvtbXO87sQhEATgzYRfa7Vf5FqPL51Nk3FdODq7
tdb+tuUYwHpk0121hCgliQMPTQqCXmuB6Whm0rRGgk9qGs54gprZVLN1zF7u
l6FgFVKxUcOqoX+8eu0etZ6qXivgak3ILh8epws4Y7M6zJJ7FKJ4+StUiVlS
a+2tKMUqLR6kFxfDJ2pGQb5V3SiW/OVox7qc3KsgVSj87CpShllrSXYps0lL
HhCy6hA+WwjDUTtw/UTt4kMDWmYHtJbi2Ws5rfbhpzRveHKKbNy4wlH7M1do
7x88cAXEO6Pao9RsDeeHK9rqVFvVTLWJc43vPl/RPk/PKlEF5jwV1aP2rwpV
lKInogpTvyCqP4H5rJL5e8xnNQL3Gs+sIPjhxpJbxpKtA0jZHNz1NdVZngSJ
sZKYLaMUGhVYeUWxdGIunrEIw+RgfH3zS8/1Olamhon3sBJ+PVHkgDCDMi7P
KEbBwnMMDagQBy18dTKSThmsSAN9v8EQfF/f8OqoDa/A/la+BVn7nhIkEZau
UmYEqYq3NC5eb+LtiYxEdu7VjMXM6Z0bpiLjcFl8foe74eNVOXsMOTbm6DbR
YzVZUK8+BtXZhnBwE/k+QVkGovITUJbllOVfnrI5MekKhipEV4RO1/L8P5FL
RM5fWNYxf2aMpH19xbM7z+Jax6bq5jRXflnCVqMqsoTASwz8KcGPd5+rVTV2
8nRgqof28LapyEGiNSxqMO3Utk6QmVl5JKOKTG+mkikmPYpyMatugL700hYY
6+mo8hQLrzaU/+aVLeUEN7wNfV3gyHIAi2/ldFY3rxgm1suZKTGykr20DIao
SHlziV2xHNeVLpgV5oPeX173Lrs9lBoUHrwrh38x+22ZQiQIsyhdMo94EWWI
qEw20HcTN6su0DeOWi919ZVFWZ3ELhFD5elIqlApsvFJtnCgslV9kAIvCZdZ
kUhF0r00j+FlG4qewEtAvCHE2gq6dEZYhrokqVy7Ns/ubxEFEVO5M+VdzdWu
WNmZtE3jRQJT8VZHEEW1FMtk8KCBsmslV2mZtQrFiiVXS/bwkszwhJ802vqS
F/7NVsfDWR21C2/6qZhB75VFE1T/ULFFCW5+ZFYsxzH6kCS9ROD9foweFFiv
rXJ2Z1KsjbU6KNk2O42I2RET5Q9lmjC8P6HrsqV9laKL6hcxaFhJrKzbK02D
4vd5oBKWF4+rjZyiRQu538qHfIMjtspxnVbB/Jqlwu5UJoXNTRDl9kn8QXl0
TfzS1A7ptGwB3sJVuQTmSf1xGoZZhW2dUzEWPjZPcA5f1wCq0GdGD/Cx1qXy
dsWt3b33Kv/Aa5XhGsyPybQXjPq5M+3KimtMInCz2KymOh8iNzTnZxSclf02
SM5vLyn/MMErJaA/Q+o+NwFti92wZPiskqXs9rjwe67nSVN8KPkLMv9svXqq
lNK+V5hXMpMPlWeclkPMUDy/uEiXtrxPqn+TmfWHC7eVPP7HiXcJ5C8m4Vmw
tFHCK5JHn5bwfNbPKOBrW24S8N9IBvth4lxK5j1MmD8vmZfBx0pBAeXyXuYy
W3wnYsnxuOqc8EThxi11PH0h/RS/bjyza3RAmuO5VFnErEeqZZS47630izDn
WfN+RiuZLzfo3G3voL/lg5PfvCBQ/pmMXVJnSqSwh8VbI5iOY/4pw2xe0b+/
716d9oBZnZvh4I8m/tMWGoToNnjvNHE6ionD+53LDsfyajpgGrBBafW0095Z
/7KP32gMeP/i+rzf7Q/5sPNyQEJx0nvZv9QDe99eX8FuHA7av9NPYDg+MUJZ
pMvrfNB/edkZvr7pOfnH5GbU2c3VRWFT+oUgAZ+aR3me+4OJqzc5AghVfOnX
Drb1JzuRSHB0Vihd28/9gVV5CE850qb2Atd1gBDaT+FfjlsFUrNd2z/c/sh/
t8qXK305Z/X+KXEHRmw4TWyojXvKCcQcPViO5xc4gTw2us3dfx4O/FKigCK6
fXxs88vFyo5tfhsuraxnVUlO8gf2dfmK5il3rRLvXq2rGF9hvp5Ywrfxfq+w
lgMQsIrqwY/ZSOq65XQ71zgw3/iUn3y3yWDkt5qAWqlU6gl4VdVMPRyp0u6P
wKhkbFbRsSpcnojQeqnL41CCQOSRyFhW5mMh5ojRmq6uCOun6jdy0qwt9ATi
bCpPeDh51qB4BKHW595HKjBKPw2pYKHPJlVR3vBUUgEUTyYVzr2HVGh9fxJS
4UKfSyqrPOKJpEIonkoqmmuRqsLw3uss/mnKvHGFx9RuG+L8pitzcYUHV9ta
BPkyJZm/GHI8sLay0LifxuX9agrxfgIyV9Htqf7vV1PV92Xo9mRn+M9SIogr
PLjmDwf3Lk/tpBT8xJTUs6JTX9f0Z3CtpjD5N+12P5ni5n0tg76SijR5QIaN
BKjNkKREYEofBGY35aXPdmvrtS7bXH+K7MWp/ixf4uU+foGNtQJZWy5P6ESm
J2O8y1/7lrrB+5Skd6n5o4j5gr5sNV9jy1FCPcrKrZ6ThbS+sSw6Zum2S6Y4
h1DAL9NMe6u8UootzDff1NRMdwYz7RHxm2vhqiDr7aPz7xlkAI/ewjQMCIRi
b7CF5ltqURZJUySZtRHQpF9povi2jsVpyDHuYflEJISvdGlMzo7VDgZU4hSo
2/zGy6DEF0EYYj6XWnlRMpfSI4iISapSeyX8WNUukdIf7WNXJB8/v8KKFqXX
Mv2oxu4sCAM31t9o4YWKma4IaBQK+k4eKysY+wZbTqUKuY/NtwPDpc08zxpO
6LZ+/jFjDu/jx9m6gwHHToq39Ik3NpsZ81JPDfviY4RfFyMh5m4QY5JWevSJ
GegTEq8swvobNC/rMFjaxHTAUonEeiSZJlmLFFgJaITtcRbTwJsiPbNLmupy
nwbvToV3qz+ptLdIJKyV9V7LGKh7sJmrGM2o0k1ELLCMT/gNfhrLuW7sQP1m
rXsZbIcFmriUaQzW7rLfxT4aCdYnjfEhV3O5siG2KqSeNhsopBswaR5mnR8q
u57Rd/dIbCowS/Q9FnX8KHrQAKVuhZiTONDH1ySBNmUQg6IDAyyXRu5sFExS
ECr6bt0FkEY4AQWh4H4BByHUoZ4JueUyOUR9G2JEc1muVsrqA/fJcubNP+i7
eQRjDsaB6tmS/PP4LDFJxaT+HVHLqjXDb8+zz8YX7tLqxIEXK9xAppaRN41l
FCjTemAkkoUA1Qc3cyexmYzpcpD/mIkZdnslifBTT2BFEfiIEyBKOqehN4KE
12ptXPpSn3dMpStqJ7VjmQaTKZADtNJXJZsjIoVyRTV4uuMj2IJkyWzO2zdN
5mN8UBqac+eGgU9tp8BCSj8TGKRjpqnIr9fY8oK4ahCIDQKWFaF2lNqau3xz
gw+mOwdmHZuoTQ04iFSXtJfaw+BSM2xXhw6LWqVIU9AniLKR7wLhMni15uvW
JVIbB935wx2LSYqdsFCo53kHyw0bMdO8UuuIsX35Va9IOFIg1/1iY2pV5Ooe
jdSPEvWJoeMLPOz6QHJ/ttKLRrfCQCJiQy3Q4QXC+Qk6o+kHQ+MzAAgthTZL
ZPxJTOaxHBkx0K2fNlr2gPwgQ+oAJQVarkHZLWDTUXTqxFVLvkw7HDHX7C7t
wNYKDV9UBjt0OUoXdqtBEz0k9fkhFdQGAx0E3eppI2du9fg4ljNd1je46Bf/
Aw7mErG4strCtltgzeJl/sFE6WLTMi8HpjUsMoGuUr3bSC5C4U8obGMfjrWJ
EP4ftsZuqMQWXU670a2m2E2KDd3RGApNpWs3wv8ZgLy5OI2ainCOMqDSCQRD
RfGt3aovpVaOPJT6W34IRDS+KgB/D+4+G6jWSVtntTemZbtVlbHXar7dtruC
lTo9EAYTmTUM0sX2pvcmdePNtmvwrS7oEXFe+48ZhEIYSMIjxTEkM/0nyACI
OJbY5kxGYos7zECCF8D/B7qQfXePZAAA

-->

</rfc>
