<?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-10" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.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-10"/>
    <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="2024" month="October" day="29"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 124?>

<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 131?>

<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.</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>
        <t>One use of a PQC signature algoritm is the protection of software
updates, perhaps using the format described in <xref target="RFC4108"/>, to enable
deployment of software that implements other new PQC algorithms for
key management and confidentiality.</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 which consists 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 SHA-256 <xref target="FIPS180"/> or
SHAKE256 <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

   SLH-DSA-PrivateKey ::= OCTET STRING
]]></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 SLH-DSA public key appears outside of aa 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 the 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 is 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.  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 following hash functions defined in <xref target="FIPS180"/>
and <xref target="FIPS202"/> are <bcp14>RECOMMENDED</bcp14> for use with the variants of SLH-DSA:</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 256 bit output
      id-slh-dsa-shake-192f: SHAKE256 with 256 bit output
      id-slh-dsa-shake-256s: SHAKE256 with 256 bit output
      id-slh-dsa-shake-256f: SHAKE256 with 256 bit output
]]></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.1 of <xref target="FIPS205"/>.</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>When computing signatures, the same hash function <bcp14>SHOULD</bcp14> be used to
compute the message digest of the content and the signed attributes, if
they are present.</t>
      <t>When computing signatures, implementations <bcp14>SHOULD</bcp14> include protections against
fault injection attacks <xref target="CMP2018"/>.  Protections against these attacks
include signature verification prior to releasing the signature value to
confirm that no error injected and generating the signature a few times to
confirm that the same signature value is produced each time.</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 <bcp14>SHOULD</bcp14> consider their particular use cases and may
choose to implement <bcp14>OPTIONAL</bcp14> 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 <bcp14>SHOULD</bcp14> 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
might want to  avoid is 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>Following the approach in the previous paragraph is essentially the same as
using SLH-DSA in pre-hash mode, which means that a hash of the content is
passed to the SLH-DSA signature operation instead of the full message content.
For this reason, this document only specifies the use od SLH-DSA pure mode.</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 PKIX Module Identifier" registry (1.3.6.1.5.5.7.0).</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to
Mike Ounsworth,
Tomas Gustavsson,
Daniel Van Geest,
Carl Wallace, and
Phillip Hallam-Baker
for their careful review and constructive comments.</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="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="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="RFC4108">
          <front>
            <title>Using Cryptographic Message Syntax (CMS) to Protect Firmware Packages</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="August" year="2005"/>
            <abstract>
              <t>This document describes the use of the Cryptographic Message Syntax (CMS) to protect firmware packages, which provide object code for one or more hardware module components. CMS is specified in RFC 3852. A digital signature is used to protect the firmware package from undetected modification and to provide data origin authentication. Encryption is optionally used to protect the firmware package from disclosure, and compression is optionally used to reduce the size of the protected firmware package. A firmware package loading receipt can optionally be generated to acknowledge the successful loading of a firmware package. Similarly, a firmware package load error report can optionally be generated to convey the failure to load a firmware package. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4108"/>
          <seriesInfo name="DOI" value="10.17487/RFC4108"/>
        </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 561?>

<section anchor="appendix-asn1-module">
      <name>Appendix: 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

SLH-DSA-PrivateKey ::= OCTET STRING

--
-- 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>
  </back>
  <!-- ##markdown-source:
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
E/Wt/n+9/ML+D0Hn9itncwAA

-->

</rfc>
