<?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.18 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-cms-sphincs-plus-18" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="SLH-DSA Signature Algorithm in CMS">Use of the SLH-DSA Signature Algorithm in the Cryptographic Message Syntax (CMS)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-sphincs-plus-18"/>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <email>housley@vigilsec.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="P." surname="Kampanakis" fullname="Panos Kampanakis">
      <organization>Amazon Web Services</organization>
      <address>
        <email>kpanos@amazon.com</email>
      </address>
    </author>
    <author initials="B." surname="Westerbaan" fullname="Bas Westerbaan">
      <organization>Cloudflare</organization>
      <address>
        <email>bas@westerbaan.name</email>
      </address>
    </author>
    <date year="2025" month="January" day="10"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 125?>

<t>SLH-DSA is a stateless hash-based signature scheme.  This document
specifies the conventions for using the SLH-DSA signature algorithm
with the Cryptographic Message Syntax (CMS).  In addition, the
algorithm identifier and public key syntax are provided.</t>
    </abstract>
  </front>
  <middle>
    <?line 132?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document specifies the conventions for using the SLH-DSA hash-based
signature algorithm <xref target="FIPS205"/> with the Cryptographic Message
Syntax (CMS) <xref target="RFC5652"/> signed-data content type.</t>
      <t>SLH-DSA offers two signature modes: pure mode and pre-hash mode.  SLH-DSA
signature operations include a context string as input.  The context string
has a maximum length of 255 bytes.  By default, the context string is the
empty string.  This document only specifies the use of pure mode with an empty
context string for the CMS signed-data content type.</t>
      <t>SLH-DSA offers three security levels.  The parameters for each of the
security levels were chosen to provide 128 bits of security, 192 bits of
security, and 256 bits of security.  Separate algorithm identifiers have
been assigned for SLH-DSA at each of these security levels.</t>
      <t>SLH-DSA is a stateless hash-based signature algorithm.  Other hash-based
signature algorithms are stateful, including HSS/LMS <xref target="RFC8554"/> and
XMSS <xref target="RFC8391"/>.  Without the need for state kept by the signer,
SLH-DSA is much less fragile than the stateful hash-based signature algorithms.</t>
      <section anchor="asn1">
        <name>ASN.1</name>
        <t>CMS values are generated using ASN.1 <xref target="X680"/>, using the Basic
Encoding Rules (BER) and the Distinguished Encoding Rules
(DER) <xref target="X690"/>.</t>
      </section>
      <section anchor="motivation">
        <name>Motivation</name>
        <t>There have been recent advances in cryptanalysis and advances in the
development of quantum computers.  Each of these advances pose a
threat to widely deployed digital signature algorithms.</t>
        <t>If cryptographically relevant quantum computers (CRQC) are ever built, they
will be able to break many of the public-key cryptosystems currently in use,
including RSA, DSA, ECDSA, and EdDSA.  A post-quantum cryptosystem (PQC) is
secure against quantum computers that have more than a trivial number of quantum
bits (qu-bits).  It is open to conjecture when it will be feasible to build
such quantum computers; however, it is prudent to use cryptographic
algorithms that remain secure if a CRQC is invented.  SLH-DSA is a PQC
signature algorithm.</t>
      </section>
      <section anchor="terminology">
        <name>Terminology</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="slh-dsa-hash-based-signature-algorithm-overview">
      <name>SLH-DSA Hash-based Signature Algorithm Overview</name>
      <t>SLH-DSA is a hash-based signature scheme.  SLH-DSA makes use of a few
time signature construction, namely Forest of Random Subsets (FORS)
and a hypertree.  FORS signs a message with a private key. The
corresponding FORS public keys are the leaves in k binary trees.
The roots of these trees are hashed together to form a FORS root.
SLH-DSA uses a one-time signature scheme called WOTS+. The FORS
tree roots are signed by a WOTS+ one-time signature private
key. The corresponding WOTS+ public keys form the leaves in d-layers
of Merkle subtrees in the SLH-DSA hypertree. The bottom layer of
that hypertree signs the FORS roots with WOTS+. The root of the
bottom Merkle subtrees are then signed with WOTS+ and the
corresponding WOTS+ public keys form the leaves of the next level up
subtree. Subtree roots are consequently signed by their corresponding
subtree layers until we reach the top subtree. The top layer subtree
forms the hypertree root which is trusted at the verifier.</t>
      <t>A SLH-DSA signature consists of the randomization string, the FORS signature,
the WOTS+ signature in each layer, and the path to the root of each subtree
until the root of the hypertree is reached.</t>
      <t>A SLH-DSA signature is verified by verifying the FORS signature, the
WOTS+ signatures and the path to the root of each subtree. When reaching
the root of the hypertree, the signature verifies only if it hashes to
the pre-trusted root of the SLH-DSA hypertree.</t>
      <t>SLH-DSA is a stateless hash-based signature algorithm. Stateful
hash-based signature schemes require that the WOTS+ private key
(generated by using a state index) is never reused or the scheme
loses it security. Although its security decreases, FORS which is
used at the bottom of the SLH-DSA hypertree does not collapse if
the same private key used to sign two or more different messages
like in stateful hash-based signature schemes. Without the need for
state kept by the signer to ensure it is not reused, SLH-DSA is much
less fragile.</t>
      <t>SLH-DSA was designed to sign up to 2^64 messages and offers three
security levels.  The parameters of the SLH-DSA hypertree include the
security parameter, the hash function, the tree height, the number of
layers of subtrees, the Winternitz parameter of WOTS+, the number of FORS
trees and leaves in each.  The parameters for each of the security levels
were chosen to at least as secure as a generic block cipher of 128, 192,
or 256 bits.</t>
    </section>
    <section anchor="slh-dsa-public-key-identifier">
      <name>SLH-DSA Public Key Identifier</name>
      <t>The AlgorithmIdentifier for a SLH-DSA public key <bcp14>MUST</bcp14> use one of the
twelve id-slh-dsa object identifiers listed below, based on the
security level used to generate the SLH-DSA hypertree, the small or fast
version of the algorithm, and the use of SHA2 <xref target="FIPS180"/> or
SHAKE <xref target="FIPS202"/>.  For example, id-slh-dsa-shake-256s
represents the 256-bit security level, the small version of the
algorithm, and the use of SHAKE256.  The parameters field of the
AlgorithmIdentifier for the SLH-DSA public key <bcp14>MUST</bcp14> be absent.</t>
      <artwork><![CDATA[
   nistAlgorithms OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) 
     country(16) us(840) organization(1) gov(101) csor(3) 4 }

   sigAlgs OBJECT IDENTIFIER ::= { nistAlgorithms 3 }

   id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 }

   id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 }

   id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 }

   id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 }

   id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 }

   id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 }

   id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 }

   id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 }

   id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 }

   id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 }

   id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 }

   id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 }
]]></artwork>
      <t>When this AlgorithmIdentifier appears in the SubjectPublicKeyInfo field of
an X.509 certificate <xref target="RFC5280"/>, the certificate key usage extension <bcp14>MAY</bcp14>
contain digitalSignature, nonRepudiation, keyCertSign, and cRLSign; the
certificate key usage extension <bcp14>MUST NOT</bcp14> contain other values.</t>
      <artwork><![CDATA[
   pk-slh-dsa-sha2-128s PUBLIC-KEY ::= {
       IDENTIFIER id-slh-dsa-sha2-128s
       -- KEY no ASN.1 wrapping --
       CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
       -- PRIVATE-KEY no ASN.1 wrapping -- }

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

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

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

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

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

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

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

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

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

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

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

   SLH-DSA-PublicKey ::= OCTET STRING (SIZE (32 | 48 | 64))
 
   SLH-DSA-PrivateKey ::= OCTET STRING (SIZE (64 | 96 | 128))
]]></artwork>
      <t>No additional encoding of the SLH-DSA public key is applied in the
SubjectPublicKeyInfo field of an X.509 certificate <xref target="RFC5280"/>.</t>
      <t>No additional encoding of the SLH-DSA private key is applied in the
PrivateKeyInfo field of the privateKey field of the OneAsymmetricKey
type of an Asymmetric Key Package <xref target="RFC5958"/>.</t>
      <t>When a SLH-DSA public key appears outside of a SubjectPublicKeyInfo type
in an environment that uses ASN.1 encoding, the SLH-DSA public key
can be encoded as an OCTET STRING by using the SLH-DSA-PublicKey type.</t>
      <t>When a SLH-DSA private key appears outside of an Asymmetric Key Package
in an environment that uses ASN.1 encoding, the SLH-DSA private key
can be encoded as an OCTET STRING by using the SLH-DSA-PrivateKey type.</t>
    </section>
    <section anchor="signed-data-conventions">
      <name>Signed-data Conventions</name>
      <t>As specified in CMS <xref target="RFC5652"/>, the digital signature is produced from
the message digest and the signer's private key. The signature is computed
over different values depending on whether signed attributes are absent or
present.</t>
      <t>When signed attributes are absent, the SLH-DSA (pure mode) signature is computed over
the content.  When signed attributes are present, a hash <bcp14>MUST</bcp14> be computed over
the content using the same hash function that is used in the SLH-DSA tree.  The
signed attributes <bcp14>MUST</bcp14> include a content-type attribute and a message-digest
attribute.  The message-digest attribute contains the hash value of the
content.  The SLH-DSA signature is computed over the DER encoding of the set
of signed attributes.  The SLH-DSA signature generation operation is called
slh_sign; see Section 10.2.1 of <xref target="FIPS205"/>.  In summary:</t>
      <artwork><![CDATA[
   IF (signed attributes are absent)
   THEN slh_sign(content)
   ELSE message-digest attribute = Hash(content);
        slh_sign(DER(SignedAttributes))
]]></artwork>
      <t>In some implementations, performance may be significantly improved by
signing and verifying DER(SignedAttributes) when the content is large. That
is, passing an entire large message content to the signing function or the
signature validation function can have an impact on performance. When the
signed attributes are present, <xref section="5.3" sectionFormat="of" target="RFC5652"/> requires the
inclusion of the content-type attribute and the message-digest attribute. Other
attributes can also be included.</t>
      <t>When using SLH-DSA and signed attributes are present in the SignerInfo, the
digestAlgorithms field in the SignedData <bcp14>MUST</bcp14> include the identifier for the
one-way hash function used to compute the message digest.</t>
      <t>When using SLH-DSA, the fields in the SignerInfo are used as follows:</t>
      <dl newline="true">
        <dt>digestAlgorithm:</dt>
        <dd>
          <t>The digestAlgorithm <bcp14>MUST</bcp14> identify a one-way hash function.  When signed
attributes are absent, the digestAlgorithm identifier <bcp14>MUST</bcp14> match the hash
function used in the SLH-DSA tree (as shown in the list below).  When signed
attributes are present, to ensure collision resistance, the identified hash
function <bcp14>SHOULD</bcp14> produce a hash value that is at least twice the size of the
hash function used in the  SLH-DSA tree.  The hash functions defined in
<xref target="FIPS180"/> and <xref target="FIPS202"/> <bcp14>MUST</bcp14> be supported for use with the variants of
SLH-DSA as shown below:</t>
        </dd>
      </dl>
      <artwork><![CDATA[
      id-slh-dsa-sha2-128s:  SHA-256
      id-slh-dsa-sha2-128f:  SHA-256
      id-slh-dsa-sha2-192s:  SHA-512
      id-slh-dsa-sha2-192f:  SHA-512
      id-slh-dsa-sha2-256s:  SHA-512
      id-slh-dsa-sha2-256f:  SHA-512
      id-slh-dsa-shake-128s: SHAKE128 with 256 bit output
      id-slh-dsa-shake-128f: SHAKE128 with 256 bit output
      id-slh-dsa-shake-192s: SHAKE256 with 512 bit output
      id-slh-dsa-shake-192f: SHAKE256 with 512 bit output
      id-slh-dsa-shake-256s: SHAKE256 with 512 bit output
      id-slh-dsa-shake-256f: SHAKE256 with 512 bit output

      The object identifiers for SHA-256 and SHA-512 are included
      in [RFC5754].  The object identifiers for SHAKE128 and
      SHAKE256 are included in [RFC8702].  In all four cases, the
      AlgorithmIdentifier SHOULD NOT include parameters.
]]></artwork>
      <dl newline="true">
        <dt>signatureAlgorithm:</dt>
        <dd>
          <t>The signatureAlgorithm <bcp14>MUST</bcp14> contain one of the the SLH-DSA algorithm
identifiers, and the algorithm parameters field <bcp14>MUST</bcp14> be absent.  The
algorithm identifier <bcp14>MUST</bcp14> be one of the following:</t>
        </dd>
      </dl>
      <artwork><![CDATA[
      id-slh-dsa-sha2-128s,  id-slh-dsa-sha2-128f,
      id-slh-dsa-sha2-192s,  id-slh-dsa-sha2-192f,
      id-slh-dsa-sha2-256s,  id-slh-dsa-sha2-256f,
      id-slh-dsa-shake-128s, id-slh-dsa-shake-128f,
      id-slh-dsa-shake-192s, id-slh-dsa-shake-192f,
      id-slh-dsa-shake-256s, id-slh-dsa-shake-256f.
]]></artwork>
      <dl newline="true">
        <dt>signature:</dt>
        <dd>
          <t>The signature contains the signature value resulting from the
SLH-DSA signing operation with the parameters associated with the
selected signatureAlgorithm.  The SLH-DSA signature generation
operation is specified in Section 10.2.1 of <xref target="FIPS205"/>, and the
SLH-DSA signature verification operation is specified in
Section 10.3 of <xref target="FIPS205"/>.  Signature verification <bcp14>MUST</bcp14> include
checking that the signatureAlgorithm field identifies SLH-DSA
parameters that are consistent with public key used to validate
the signature.</t>
        </dd>
      </dl>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Implementations <bcp14>MUST</bcp14> protect the private keys.  Compromise of the
private keys may result in the ability to forge signatures.</t>
      <t>When generating an SLH-DSA key pair, an implementation <bcp14>MUST</bcp14> generate
each key pair independently of all other key pairs in the SLH-DSA
hypertree.</t>
      <t>A SLH-DSA tree <bcp14>MUST NOT</bcp14> be used for more than 2^64 signing operations.</t>
      <t>The generation of private keys relies on random numbers.  The use
of inadequate pseudo-random number generators (PRNGs) to generate
these values can result in little or no security.  An attacker may
find it much easier to reproduce the PRNG environment that produced
the keys, searching the resulting small set of possibilities, rather
than brute force searching the whole key space.  The generation of
quality random numbers is difficult, and <xref target="RFC4086"/> offers
important guidance in this area.</t>
      <t>To avoid algorithm substitution attacks, the CMSAlgorithmProtection attribute
defined in <xref target="RFC6211"/> <bcp14>SHOULD</bcp14> be included in signed attributes.</t>
      <t>Implementers should consider their particular use cases and may
choose to implement optional fault attack countermeasures
<xref target="CMP2018"/> <xref target="Ge2023"/>.  Verifying a signature before releasing the
signature value is a typical fault attack countermeasure; however, this
countermeasure is not effective for SLH-DSA <xref target="Ge2023"/>.  Redundancy
by replicating the signature generation process <bcp14>MAY</bcp14> be used as an
effective fault attack countermeasure for SLH-DSA <xref target="Ge2023"/>;
however, the SLH-DSA signature generation is already considered slow.</t>
      <t>Likewise, Implementers should consider their particular use cases and may
choose to implement protections against passive power and emissions
side-channel attacks <xref target="SLotH"/>.</t>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>If slh_sign is implemented in a hardware device such as hardware
security module (HSM) or portable cryptographic token, implementations
can avoid sending the full content to the device.  By including signed
attributes, which necessarily include the message-digest attribute and
the content-type attribute as described in <xref section="5.3" sectionFormat="of" target="RFC5652"/>,
the much smaller set of signed attributes are sent to the device for signing.</t>
      <t>By including signed attributes in the SignerInfo, one can obtain similar
interface characteristics to SLH-DSA in pre-hash mode.  With pre-hash mode, the
hash of the content is passed to the SLH-DSA signature operation instead of the
full message content.  By including signed attributes in the SignerInfo, a
relatively small to-be-signed value is passed to the SLH-DSA signature
operation.  For this reason, SLH-DSA pre-hash mode is not specified for use
with the CMS SignedData.  Note SLH-DSA pre-hash mode always yields a different
signature value than SLH-DSA pure mode, even if the to-be-signed content is
the same.</t>
      <t>When using SLH-DSA in pure mode, it is not possible to single-pass process
the content to verify a SignedData message that does not contain signed
attributes.  To assist recipients that might make use of stream-based APIs,
implementers <bcp14>SHOULD</bcp14> include signed attributes within any SignerInfo that uses
SLH-DSA as signature algorithm.  Doing so allows the recipient implementation
to avoid keeping the signed content in memory.  Recall that when signed
attributes are present, they <bcp14>MUST</bcp14> contain a content-type attribute and a
message-digest attribute, and they <bcp14>SHOULD</bcp14> contain a CMSAlgorithmProtection
attribute.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>For the ASN.1 Module in the Appendix of this document, IANA
is requested to assign an object identifier (OID) for the module
identifier (TBD1) with a Description of "id-mod-slh-dsa-2024".
The OID for the module should be allocated in the
"SMI Security for S/MIME Module Identifier" (1.2.840.113549.1.9.16.0).</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS180">
          <front>
            <title>Secure Hash Standard (SHS)</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="180-4"/>
        </reference>
        <reference anchor="FIPS202">
          <front>
            <title>SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="202"/>
        </reference>
        <reference anchor="FIPS205" target="https://doi.org/10.6028/NIST.FIPS.205">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2024" month="August" day="13"/>
          </front>
          <seriesInfo name="FIPS PUB" value="205"/>
        </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="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC5754">
          <front>
            <title>Using SHA2 Algorithms with Cryptographic Message Syntax</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2010"/>
            <abstract>
              <t>This document describes the conventions for using the Secure Hash Algorithm (SHA) message digest algorithms (SHA-224, SHA-256, SHA-384, SHA-512) with the Cryptographic Message Syntax (CMS). It also describes the conventions for using these algorithms with the CMS and the Digital Signature Algorithm (DSA), Rivest Shamir Adleman (RSA), and Elliptic Curve DSA (ECDSA) signature algorithms. Further, it provides SMIMECapabilities attribute values for each algorithm. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5754"/>
          <seriesInfo name="DOI" value="10.17487/RFC5754"/>
        </reference>
        <reference anchor="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>
        <reference anchor="RFC6211">
          <front>
            <title>Cryptographic Message Syntax (CMS) Algorithm Identifier Protection Attribute</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="April" year="2011"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS), unlike X.509/PKIX certificates, is vulnerable to algorithm substitution attacks. In an algorithm substitution attack, the attacker changes either the algorithm being used or the parameters of the algorithm in order to change the result of a signature verification process. In X.509 certificates, the signature algorithm is protected because it is duplicated in the TBSCertificate.signature field with the proviso that the validator is to compare both fields as part of the signature validation process. This document defines a new attribute that contains a copy of the relevant algorithm identifiers so that they are protected by the signature or authentication process. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6211"/>
          <seriesInfo name="DOI" value="10.17487/RFC6211"/>
        </reference>
        <reference anchor="RFC8702">
          <front>
            <title>Use of the SHAKE One-Way Hash Functions in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="Q. Dang" initials="Q." surname="Dang"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This document updates the "Cryptographic Message Syntax (CMS) Algorithms" (RFC 3370) and describes the conventions for using the SHAKE family of hash functions in the Cryptographic Message Syntax as one-way hash functions with the RSA Probabilistic Signature Scheme (RSASSA-PSS) and Elliptic Curve Digital Signature Algorithm (ECDSA). The conventions for the associated signer public keys in CMS are also described.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8702"/>
          <seriesInfo name="DOI" value="10.17487/RFC8702"/>
        </reference>
        <reference anchor="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 -- 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="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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </reference>
        <reference anchor="RFC5911">
          <front>
            <title>New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5911"/>
          <seriesInfo name="DOI" value="10.17487/RFC5911"/>
        </reference>
        <reference anchor="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="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="CMP2018" target="https://link.springer.com/chapter/10.1007/978-3-319-79063-3_8">
          <front>
            <title>Grafting Trees: A Fault Attack Against the SPHINCS Framework</title>
            <author initials="L." surname="Castelnovi" fullname="Laurent Castelnovi">
              <organization/>
            </author>
            <author initials="A." surname="Martinelli" fullname="Ange Martinelli">
              <organization/>
            </author>
            <author initials="T." surname="Prest" fullname="Thomas Prest">
              <organization/>
            </author>
            <date year="2018"/>
          </front>
          <seriesInfo name="Post-Quantum Cryptography" value="pp. 165-184"/>
          <seriesInfo name="PQCrypto" value="2018"/>
          <seriesInfo name="Lecture Notes in Computer Science" value="vol 10786"/>
        </reference>
        <reference anchor="SLotH" target="https://eprint.iacr.org/2024/367.pdf">
          <front>
            <title>Accelerating SLH-DSA by Two Orders of Magnitude with a Single Hash Unit</title>
            <author initials="M.-J." surname="Saarinen" fullname="M-J. Saarinen">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="Ge2023" target="https://tches.iacr.org/index.php/TCHES/article/view/10278/9726">
          <front>
            <title>On Protecting SPHINCS+ Against Fault Attacks</title>
            <author initials="A." surname="Genêt" fullname="Aymeric Genêt">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
          <seriesInfo name="TCHES" value="2023/02"/>
          <seriesInfo name="DOI" value="10.46586/tches.v2023.i2.80-114"/>
        </reference>
      </references>
    </references>
    <?line 564?>

<section anchor="appendix-asn1">
      <name>ASN.1 Module</name>
      <t>This ASN.1 Module builds upon the conventions established in <xref target="RFC5911"/>.</t>
      <sourcecode type="asn.1" markers="true"><![CDATA[
SLH-DSA-Module-2024
  { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
    id-smime(16) id-mod(0) id-mod-slh-dsa-2024(TBD1) }

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS
  PUBLIC-KEY, SIGNATURE-ALGORITHM, SMIME-CAPS
    FROM AlgorithmInformation-2009  -- in [RFC5911]
    { 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
--

nistAlgorithms OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) 
  country(16) us(840) organization(1) gov(101) csor(3) 4 }

sigAlgs OBJECT IDENTIFIER ::= { nistAlgorithms 3 }

id-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs 20 }

id-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs 21 }

id-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs 22 }

id-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs 23 }

id-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs 24 }

id-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs 25 }

id-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs 26 }

id-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs 27 }

id-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs 28 }

id-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs 29 }

id-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs 30 }

id-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs 31 }

--
-- Signature Algorithm, Public Key, and Private Key
--

sa-slh-dsa-sha2-128s SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-sha2-128s
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-sha2-128s }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-sha2-128s } }

sa-slh-dsa-sha2-128f SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-sha2-128f
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-sha2-128f }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-sha2-128f } }

sa-slh-dsa-sha2-192s SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-sha2-192s
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-sha2-192s }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-sha2-192s } }

sa-slh-dsa-sha2-192f SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-sha2-192f
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-sha2-192f }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-sha2-192f } }

sa-slh-dsa-sha2-256s SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-sha2-256s
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-sha2-256s }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-sha2-256s } }

sa-slh-dsa-sha2-256f SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-sha2-256f
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-sha2-256f }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-sha2-256f } }

sa-slh-dsa-shake-128s SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-shake-128s
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-shake-128s }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-shake-128s } }

sa-slh-dsa-shake-128f SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-shake-128f
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-shake-128f }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-shake-128f } }

sa-slh-dsa-shake-192s SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-shake-192s
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-shake-192s }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-shake-192s } }

sa-slh-dsa-shake-192f SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-shake-192f
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-shake-192f }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-shake-192f } }

sa-slh-dsa-shake-256s SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-shake-256s
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-shake-256s }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-shake-256s } }

sa-slh-dsa-shake-256f SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-slh-dsa-shake-256f
    PARAMS ARE absent
    PUBLIC-KEYS { pk-slh-dsa-shake-256f }
    SMIME-CAPS { IDENTIFIED BY id-slh-dsa-shake-256f } }

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

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

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

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

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

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

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

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

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

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

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

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

SLH-DSA-PublicKey ::= OCTET STRING (SIZE (32 | 48 | 64))
 
SLH-DSA-PrivateKey ::= OCTET STRING (SIZE (64 | 96 | 128))

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

SignatureAlgorithmSet SIGNATURE-ALGORITHM ::=
    { sa-slh-dsa-sha2-128s |
      sa-slh-dsa-sha2-128f |
      sa-slh-dsa-sha2-192s |
      sa-slh-dsa-sha2-192f |
      sa-slh-dsa-sha2-256s |
      sa-slh-dsa-sha2-256f |
      sa-slh-dsa-shake-128s |
      sa-slh-dsa-shake-128f |
      sa-slh-dsa-shake-192s |
      sa-slh-dsa-shake-192f |
      sa-slh-dsa-shake-256s |
      sa-slh-dsa-shake-256f,
      ... }

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

SMimeCaps SMIME-CAPS ::=
    { sa-slh-dsa-sha2-128s.&smimeCaps |
      sa-slh-dsa-sha2-128f.&smimeCaps |
      sa-slh-dsa-sha2-192s.&smimeCaps |
      sa-slh-dsa-sha2-192f.&smimeCaps |
      sa-slh-dsa-sha2-256s.&smimeCaps |
      sa-slh-dsa-sha2-256f.&smimeCaps |
      sa-slh-dsa-shake-128s.&smimeCaps |
      sa-slh-dsa-shake-128f.&smimeCaps |
      sa-slh-dsa-shake-192s.&smimeCaps |
      sa-slh-dsa-shake-192f.&smimeCaps |
      sa-slh-dsa-shake-256s.&smimeCaps |
      sa-slh-dsa-shake-256f.&smimeCaps,
      ... }
     
END
]]></sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to
Mike Ounsworth,
Tomas Gustavsson,
Daniel Van Geest,
Carl Wallace,
Phillip Hallam-Baker,
Dieter Bratko,
Paul Wouters, and
Roman Danyliw
for their careful review and constructive comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
zQ2x0Kazc3oNKmulF4msi/zgtFu0jEomWGmwhOTKlc19A+XmbYUvbUdlFAyO
0r8qSlcpKbFvh9439xst0FbYqFDIrEuzVTqdinh+luWmehe8tk7GqCB+cNm9
4XavmqEGvele9buryfotFeNkE77JjutsLSBSTSt6O9vdHnQIbghy5OFVB9oj
Xd9c50AIaikIXGCpmKNQ4mJ0VOmSvikW5tK1LQkUXdyCgOR35pX76tq5okQD
pX3sfkDdFwnzcHOsvaX1OFqkWOoRmSXJypDDzJJQ1bLVA30LUqh8A0nzdIdA
PgjNKFUHwr8BGWwogacFvM0VfVKpMSXt/fTJisVR44BKkLISdXMFrou2ScOK
N1VrFC1Zo0sNXSzMCvAgNsJXpjiOFHlk7Zu2GVkJczBab40yy0EGGo9jXeug
oShcx2i3oTh6dI4nScma4Dtv6YaKYa3RDOSqbMDsFaDRdL58fFTipI00gaOW
oSfc9CU/Xsj6fjhToJyfzviTArbLb3f2dz4vYnfGzshcLDw2uGl85qYKawmP
stFnaw6WxeULlKKdpiIxRT24ASsTqsLC81pWqWje4v2rvn3dXQ9WJs15wQAW
OXgkr/DOw6Z919y/ZnCOFgAzBYrGC7Dnmrb09njKbrmTmedKo8K/ZSdBhUgY
XCoOszLh0R8YewHNYMV7XhT6whVvdtCqNIrCODFF8HgBm/WiPInYE4HuLMh0
xxKXCJpbeF59J3nG8TIXw6/Vg8bPDzpt2ZWOmq3Vg8bPDsIgeJNBz61kcmhn
+qoaGzOIaqYAAT1h0N41M8dbziRC2OtxPRNA3GzmeLuZmmRbznxuTzMVxbii
coL6TrRkkPwajpCyWhNvNw/4X0yv5i+N5xbUdMfmED05A7G4sF0Suzt/MS1n
vg9LpDGcNcrUztj2woprybxSOTsK8kqGhvY+Fkxwdl4vWeHlN1qDszvBrCil
ZBHz/roCGfJ6i7wDaKnGYqFaQvvNlV12dmQBBH3GwPn0rIGoV5uE+hpLUDUF
pHvVFJTfiikonNVTjG5XlL2shszoZtWclaAZ3aourxk/IyBLclGOLkqOX4ql
sSr16asCGJTq9EwhDKDgIfP8swOgIBTgj4auR1WK9jVT0gcFK1botQvdXM+F
GqwUapRi7bUhRia9bHl1XRrqVoQyxfVZYf2D5QCmX71c0adj7kS6jzoONXWT
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
r+dlX79/okZxQqvB/g9pWHQNV3cAAA==

-->

</rfc>
