<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" submissionType="IETF" category="std" consensus="true" docName="draft-ietf-lamps-cmp-algorithms-16" number="9481" ipr="trust200902" obsoletes="" updates="4210" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" prepTime="2023-11-05T06:16:42" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-lamps-cmp-algorithms-16" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9481" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="CMP Algorithms">Certificate Management Protocol (CMP) Algorithms</title>
    <seriesInfo name="RFC" value="9481" stream="IETF"/>
    <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
      <organization abbrev="Siemens" showOnFrontPage="true">Siemens AG</organization>
      <address>
        <postal>
          <street>Werner-von-Siemens-Strasse 1</street>
          <code>80333</code>
          <city>Munich</city>
          <country>Germany</country>
        </postal>
        <email>hendrik.brockhaus@siemens.com</email>
        <uri>https://www.siemens.com</uri>
      </address>
    </author>
    <author fullname="Hans Aschauer" initials="H." surname="Aschauer">
      <organization abbrev="Siemens" showOnFrontPage="true">Siemens AG</organization>
      <address>
        <postal>
          <street>Werner-von-Siemens-Strasse 1</street>
          <code>80333</code>
          <city>Munich</city>
          <country>Germany</country>
        </postal>
        <email>hans.aschauer@siemens.com</email>
        <uri>https://www.siemens.com</uri>
      </address>
    </author>
    <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
      <organization abbrev="Entrust" showOnFrontPage="true">Entrust</organization>
      <address>
        <postal>
          <street>1187 Park Place</street>
          <region>MN</region>
          <code>55379</code>
          <city>Minneapolis</city>
          <country>United States of America</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
        <uri>https://www.entrust.com</uri>
      </address>
    </author>
    <author fullname="John Gray" initials="J." surname="Gray">
      <organization abbrev="Entrust" showOnFrontPage="true">Entrust</organization>
      <address>
        <postal>
          <street>1187 Park Place</street>
          <region>MN</region>
          <code>55379</code>
          <city>Minneapolis</city>
          <country>United States of America</country>
        </postal>
        <email>john.gray@entrust.com</email>
        <uri>https://www.entrust.com</uri>
      </address>
    </author>
    <date month="11" year="2023"/>
    <area>sec</area>
    <workgroup>lamps</workgroup>
    <keyword>CMP</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document describes the conventions for using several cryptographic algorithms with the Certificate Management Protocol (CMP).  CMP is used to enroll and further manage the lifecycle of X.509 certificates.  This document also updates the algorithm use profile from Appendix D.2 of RFC 4210.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9481" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2023 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-message-digest-algorithms">Message Digest Algorithms</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sha2">SHA2</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-shake">SHAKE</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-signature-algorithms">Signature Algorithms</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rsa">RSA</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ecdsa">ECDSA</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t indent="0" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-eddsa">EdDSA</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-key-management-algorithms">Key Management Algorithms</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-key-agreement-algorithms">Key Agreement Algorithms</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.1.2">
                  <li pn="section-toc.1-1.4.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.1.1"><xref derivedContent="4.1.1" format="counter" sectionFormat="of" target="section-4.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-diffie-hellman">Diffie-Hellman</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.1.2.2.1"><xref derivedContent="4.1.2" format="counter" sectionFormat="of" target="section-4.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ecdh">ECDH</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-key-transport-algorithms">Key Transport Algorithms</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.2.2">
                  <li pn="section-toc.1-1.4.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.1.1"><xref derivedContent="4.2.1" format="counter" sectionFormat="of" target="section-4.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rsa-2">RSA</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-symmetric-key-encryption-al">Symmetric Key-Encryption Algorithms</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.3.2">
                  <li pn="section-toc.1-1.4.2.3.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.3.2.1.1"><xref derivedContent="4.3.1" format="counter" sectionFormat="of" target="section-4.3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-aes-key-wrap">AES Key Wrap</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.4.2.4">
                <t indent="0" pn="section-toc.1-1.4.2.4.1"><xref derivedContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-key-derivation-algorithms">Key Derivation Algorithms</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2.4.2">
                  <li pn="section-toc.1-1.4.2.4.2.1">
                    <t indent="0" pn="section-toc.1-1.4.2.4.2.1.1"><xref derivedContent="4.4.1" format="counter" sectionFormat="of" target="section-4.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pbkdf2">PBKDF2</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-content-encryption-algorith">Content-Encryption Algorithms</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-aes-cbc">AES-CBC</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-message-authentication-code">Message Authentication Code Algorithms</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-password-based-mac">Password-Based MAC</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.1.2">
                  <li pn="section-toc.1-1.6.2.1.2.1">
                    <t indent="0" pn="section-toc.1-1.6.2.1.2.1.1"><xref derivedContent="6.1.1" format="counter" sectionFormat="of" target="section-6.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-passwordbasedmac">PasswordBasedMac</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.1.2.2">
                    <t indent="0" pn="section-toc.1-1.6.2.1.2.2.1"><xref derivedContent="6.1.2" format="counter" sectionFormat="of" target="section-6.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-pbmac1">PBMAC1</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-symmetric-key-based-mac">Symmetric Key-Based MAC</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2.2.2">
                  <li pn="section-toc.1-1.6.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.6.2.2.2.1.1"><xref derivedContent="6.2.1" format="counter" sectionFormat="of" target="section-6.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sha2-based-hmac">SHA2-Based HMAC</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.6.2.2.2.2.1"><xref derivedContent="6.2.2" format="counter" sectionFormat="of" target="section-6.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-aes-gmac">AES-GMAC</xref></t>
                  </li>
                  <li pn="section-toc.1-1.6.2.2.2.3">
                    <t indent="0" pn="section-toc.1-1.6.2.2.2.3.1"><xref derivedContent="6.2.3" format="counter" sectionFormat="of" target="section-6.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-shake-based-kmac">SHAKE-Based KMAC</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-algorithm-use-profiles">Algorithm Use Profiles</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-algorithm-profile-for-pki-m">Algorithm Profile for PKI Management Message Profiles in RFC 4210</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-algorithm-profile-for-light">Algorithm Profile for Lightweight CMP Profile</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.10.2">
              <li pn="section-toc.1-1.10.2.1">
                <t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.10.2.2">
                <t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="Introduction" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1"><xref target="RFC4210" sectionFormat="of" section="D.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-D.2" derivedContent="RFC4210"/> contains a set of algorithms that is mandatory to be supported by implementations conforming to <xref target="RFC4210" format="default" sectionFormat="of" derivedContent="RFC4210"/>. These algorithms were appropriate at the time CMP was released, but as cryptographic algorithms weaken over time, some of them should no longer be used.		  
		  In general, new attacks are emerging due to research in cryptanalysis or an increase in computing power. New algorithms were introduced that are more resistant to today's attacks.</t>
      <t indent="0" pn="section-1-2">This document lists current cryptographic algorithms that can be used with CMP to offer an easier way to maintain the list of suitable algorithms over time.</t>
      <section anchor="Terminology" numbered="true" removeInRFC="false" toc="include" pn="section-1.1">
        <name slugifiedName="name-terminology">Terminology</name>
        <t indent="0" pn="section-1.1-1">
    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" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
        </t>
        <t indent="0" pn="section-1.1-2">In the following sections, ASN.1 values and types are used to indicate where algorithm identifier and output values are provided. These ASN.1 values and types are defined in <xref target="RFC4210" format="default" sectionFormat="of" derivedContent="RFC4210">CMP</xref>, <xref target="RFC4211" format="default" sectionFormat="of" derivedContent="RFC4211">Certificate Request Message Format (CRMF)</xref>, <xref target="RFC9480" format="default" sectionFormat="of" derivedContent="RFC9480">CMP Updates</xref>, and <xref target="RFC5652" format="default" sectionFormat="of" derivedContent="RFC5652">Cryptographic Message Syntax (CMS)</xref>.</t>
      </section>
    </section>
    <section anchor="Hash" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-message-digest-algorithms">Message Digest Algorithms</name>
      <t indent="0" pn="section-2-1">This section provides references to object identifiers and conventions to be employed by CMP implementations that support SHA2 or SHAKE message digest algorithms.</t>
      <t keepWithNext="true" indent="0" pn="section-2-2">Digest algorithm identifiers are located in the:</t>
      <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-2-3">
        <li pn="section-2-3.1">hashAlg field of OOBCertHash and CertStatus,</li>
        <li pn="section-2-3.2">owf field of Challenge, PBMParameter, and DHBMParameter,</li>
        <li pn="section-2-3.3">digestAlgorithms field of SignedData, and</li>
        <li pn="section-2-3.4">digestAlgorithm field of SignerInfo.</li>
      </ul>
      <t keepWithNext="true" indent="0" pn="section-2-4">Digest values are located in the:</t>
      <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-2-5">
        <li pn="section-2-5.1">hashVal field of OOBCertHash,</li>
        <li pn="section-2-5.2">certHash field of CertStatus, and</li>
        <li pn="section-2-5.3">witness field of Challenge.</li>
      </ul>
      <t indent="0" pn="section-2-6">In addition, digest values are input to signature algorithms.</t>
      <section anchor="SHA2" numbered="true" removeInRFC="false" toc="include" pn="section-2.1">
        <name slugifiedName="name-sha2">SHA2</name>
        <t indent="0" pn="section-2.1-1">The SHA2 algorithm family is defined in <xref target="NIST_FIPS_180_4" format="default" sectionFormat="of" derivedContent="NIST.FIPS.180-4">FIPS Pub 180-4</xref>.</t>
        <t keepWithNext="true" indent="0" pn="section-2.1-2">The message digest algorithms SHA-224, SHA-256, SHA-384, and SHA-512 are identified by the following OIDs:</t>
        <sourcecode type="asn.1" markers="false" pn="section-2.1-3">
   id-sha224 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16)
      us(840) organization(1) gov(101) csor(3) nistalgorithm(4)
      hashalgs(2) 4 }
   id-sha256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16)
      us(840) organization(1) gov(101) csor(3) nistalgorithm(4)
      hashalgs(2) 1 }
   id-sha384 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16)
      us(840) organization(1) gov(101) csor(3) nistalgorithm(4)
      hashalgs(2) 2 }
   id-sha512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16)
      us(840) organization(1) gov(101) csor(3) nistalgorithm(4)
      hashalgs(2) 3 }
</sourcecode>
        <t indent="0" pn="section-2.1-4">Specific conventions to be considered are specified in <xref target="RFC5754" section="2" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5754#section-2" derivedContent="RFC5754"/>.</t>
      </section>
      <section anchor="SHAKE" numbered="true" removeInRFC="false" toc="include" pn="section-2.2">
        <name slugifiedName="name-shake">SHAKE</name>
        <t indent="0" pn="section-2.2-1">The SHA-3 family of hash functions is defined in <xref target="NIST_FIPS_202" format="default" sectionFormat="of" derivedContent="NIST.FIPS.202">FIPS Pub 202</xref> and consists of the fixed output length variants SHA3-224, SHA3-256, SHA3-384, and SHA3-512, as well as the extendable-output functions (XOFs) SHAKE128 and SHAKE256. Currently, SHAKE128 and SHAKE256 are the only members of the SHA3-family that are specified for use in X.509 certificates <xref target="RFC8692" format="default" sectionFormat="of" derivedContent="RFC8692"/> and CMS <xref target="RFC8702" format="default" sectionFormat="of" derivedContent="RFC8702"/> as one-way hash functions for use with RSASSA-PSS and ECDSA.</t>
        <t indent="0" pn="section-2.2-2">SHAKE is an extendable-output function, and <xref target="NIST_FIPS_202" format="default" sectionFormat="of" derivedContent="NIST.FIPS.202">FIPS Pub 202</xref> prohibits using SHAKE as a general-purpose hash function.  When SHAKE is used in CMP as a message digest algorithm, the output length <bcp14>MUST</bcp14> be 256 bits for SHAKE128 and 512 bits for SHAKE256.</t>
        <t keepWithNext="true" indent="0" pn="section-2.2-3">The message digest algorithms SHAKE128 and SHAKE256 are identified by the following OIDs:</t>
        <sourcecode type="asn.1" markers="false" pn="section-2.2-4">
   id-shake128 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16)
      us(840) organization(1) gov(101) csor(3) nistAlgorithm(4)
      hashalgs(2) 11 }
   id-shake256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16)
      us(840) organization(1) gov(101) csor(3) nistAlgorithm(4)
      hashalgs(2) 12 }
</sourcecode>
        <t indent="0" pn="section-2.2-5">Specific conventions to be considered are specified in <xref target="RFC8702" section="3.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8702#section-3.1" derivedContent="RFC8702"/>.</t>
      </section>
    </section>
    <section anchor="Sig" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-signature-algorithms">Signature Algorithms</name>
      <t indent="0" pn="section-3-1">This section provides references to object identifiers and conventions to be employed by CMP implementations that support signature algorithms like RSA, ECDSA, or EdDSA.</t>
      <t indent="0" pn="section-3-2">The signature algorithm is referred to as MSG_SIG_ALG in Appendices <xref target="RFC4210" sectionFormat="bare" section="D" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-D" derivedContent="RFC4210"/> and <xref target="RFC4210" sectionFormat="bare" section="E" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-E" derivedContent="RFC4210"/> of <xref target="RFC4210" format="default" sectionFormat="of" derivedContent="RFC4210"/>, in the <xref target="RFC9483" format="default" sectionFormat="of" derivedContent="RFC9483">Lightweight CMP Profile</xref>, and in <xref target="AlgProfLWP" format="default" sectionFormat="of" derivedContent="Section 7.2"/>.</t>
      <t keepWithNext="true" indent="0" pn="section-3-3">Signature algorithm identifiers are located in the:</t>
      <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-3-4">
        <li pn="section-3-4.1">protectionAlg field of PKIHeader,</li>
        <li pn="section-3-4.2">algorithmIdentifier field of POPOSigningKey, and</li>
        <li pn="section-3-4.3">signatureAlgorithm field of CertificationRequest, SignKeyPairTypes, and SignerInfo</li>
      </ul>
      <t keepWithNext="true" indent="0" pn="section-3-5">Signature values are located in the:</t>
      <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-3-6">
        <li pn="section-3-6.1">protection field of PKIMessage,</li>
        <li pn="section-3-6.2">signature field of POPOSigningKey, and</li>
        <li pn="section-3-6.3">signature field of CertificationRequest and SignerInfo.</li>
      </ul>
      <section anchor="RSASig" numbered="true" removeInRFC="false" toc="include" pn="section-3.1">
        <name slugifiedName="name-rsa">RSA</name>
        <t indent="0" pn="section-3.1-1">The RSA (RSASSA-PSS and PKCS #1 version 1.5) signature algorithm is defined in <xref target="RFC8017" format="default" sectionFormat="of" derivedContent="RFC8017"/>.</t>
        <t keepWithNext="true" indent="0" pn="section-3.1-2">The algorithm identifier for RSASAA-PSS signatures used with SHA2 message digest algorithms is identified by the following OID:</t>
        <sourcecode type="asn.1" markers="false" pn="section-3.1-3">
   id-RSASSA-PSS OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 10 }
</sourcecode>
        <t indent="0" pn="section-3.1-4">Specific conventions to be considered are specified in <xref target="RFC4056" format="default" sectionFormat="of" derivedContent="RFC4056"/>.</t>
        <t keepWithNext="true" indent="0" pn="section-3.1-5">The signature algorithm RSASSA-PSS used with SHAKE message digest algorithms is identified by the following OIDs:</t>
        <sourcecode type="asn.1" markers="false" pn="section-3.1-6">
   id-RSASSA-PSS-SHAKE128  OBJECT IDENTIFIER  ::=  { iso(1)
      identified-organization(3) dod(6) internet(1) security(5)
      mechanisms(5) pkix(7) algorithms(6) 30 }
   id-RSASSA-PSS-SHAKE256  OBJECT IDENTIFIER  ::=  { iso(1)
      identified-organization(3) dod(6) internet(1) security(5)
      mechanisms(5) pkix(7) algorithms(6) 31 }
</sourcecode>
        <t indent="0" pn="section-3.1-7">Specific conventions to be considered are specified in <xref target="RFC8702" section="3.2.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8702#section-3.2.1" derivedContent="RFC8702"/>.</t>
        <t keepWithNext="true" indent="0" pn="section-3.1-8">The signature algorithm PKCS #1 version 1.5 used with SHA2 message digest algorithms is identified by the following OIDs:</t>
        <sourcecode type="asn.1" markers="false" pn="section-3.1-9">
   sha224WithRSAEncryption OBJECT IDENTIFIER ::= { iso(1)
      member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 14 }
   sha256WithRSAEncryption  OBJECT IDENTIFIER  ::=  { iso(1)
      member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 11 }
   sha384WithRSAEncryption  OBJECT IDENTIFIER  ::=  { iso(1)
      member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 12 }
   sha512WithRSAEncryption  OBJECT IDENTIFIER  ::=  { iso(1)
      member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 13 }
</sourcecode>
        <t indent="0" pn="section-3.1-10">Specific conventions to be considered are specified in <xref target="RFC5754" section="3.2" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5754#section-3.2" derivedContent="RFC5754"/>.</t>
      </section>
      <section anchor="ECDSA" numbered="true" removeInRFC="false" toc="include" pn="section-3.2">
        <name slugifiedName="name-ecdsa">ECDSA</name>
        <t indent="0" pn="section-3.2-1">The ECDSA signature algorithm is defined in <xref target="NIST.FIPS.186-5" format="default" sectionFormat="of" derivedContent="NIST.FIPS.186-5">FIPS Pub 186-5</xref>.</t>
        <t keepWithNext="true" indent="0" pn="section-3.2-2">The signature algorithm ECDSA used with SHA2 message digest algorithms is identified by the following OIDs:</t>
        <sourcecode type="asn.1" markers="false" pn="section-3.2-3">
   ecdsa-with-SHA224 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 1 }
   ecdsa-with-SHA256 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 2 }
   ecdsa-with-SHA384 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 3 }
   ecdsa-with-SHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 4 }
</sourcecode>
        <t keepWithNext="true" indent="0" pn="section-3.2-4">As specified in <xref target="RFC5480" format="default" sectionFormat="of" derivedContent="RFC5480"/>, the NIST-recommended curves are identified by the following OIDs:</t>
        <sourcecode type="asn.1" markers="false" pn="section-3.2-5">
   secp192r1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) ansi-X9-62(10045) curves(3) prime(1) 1 }
   secp224r1 OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) curve(0) 33 }
   secp256r1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) ansi-X9-62(10045) curves(3) prime(1) 7 }
   secp384r1 OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) curve(0) 34 }
   secp521r1 OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) curve(0) 35 }
</sourcecode>
        <t indent="0" pn="section-3.2-6">Specific conventions to be considered are specified in <xref target="RFC5754" section="3.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5754#section-3.3" derivedContent="RFC5754"/>.</t>
        <t keepWithNext="true" indent="0" pn="section-3.2-7">The signature algorithm ECDSA used with SHAKE message digest algorithms is identified by the following OIDs:</t>
        <sourcecode type="asn.1" markers="false" pn="section-3.2-8">
   id-ecdsa-with-shake128 OBJECT IDENTIFIER  ::=  { iso(1)
      identified-organization(3) dod(6) internet(1) security(5)
      mechanisms(5) pkix(7) algorithms(6) 32 }
   id-ecdsa-with-shake256 OBJECT IDENTIFIER  ::=  { iso(1)
      identified-organization(3) dod(6) internet(1) security(5)
      mechanisms(5) pkix(7) algorithms(6) 33 }
</sourcecode>
        <t indent="0" pn="section-3.2-9">Specific conventions to be considered are specified in <xref target="RFC8702" section="3.2.2" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8702#section-3.2.2" derivedContent="RFC8702"/>.</t>
      </section>
      <section anchor="EdDSA" numbered="true" removeInRFC="false" toc="include" pn="section-3.3">
        <name slugifiedName="name-eddsa">EdDSA</name>
        <t indent="0" pn="section-3.3-1">The EdDSA signature algorithm is defined in <xref target="RFC8032" section="3.3" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8032#section-3.3" derivedContent="RFC8032"/> and <xref target="NIST.FIPS.186-5" format="default" sectionFormat="of" derivedContent="NIST.FIPS.186-5">FIPS Pub 186-5</xref>.</t>
        <t keepWithNext="true" indent="0" pn="section-3.3-2">The signature algorithm Ed25519 that <bcp14>MUST</bcp14> be used with SHA-512 message digest algorithms is identified by the following OIDs:</t>
        <sourcecode type="asn.1" markers="false" pn="section-3.3-3">
   id-Ed25519 OBJECT IDENTIFIER  ::=  { iso(1)
      identified-organization(3) thawte(101) 112 }
</sourcecode>
        <t keepWithNext="true" indent="0" pn="section-3.3-4">The signature algorithm Ed448 that <bcp14>MUST</bcp14> be used with SHAKE256 message digest algorithms is identified by the following OIDs:</t>
        <sourcecode type="asn.1" markers="false" pn="section-3.3-5">
   id-Ed448 OBJECT IDENTIFIER  ::=  { iso(1)
      identified-organization(3) thawte(101) 113 }
</sourcecode>
        <t indent="0" pn="section-3.3-6">Specific conventions to be considered are specified in <xref target="RFC8419" format="default" sectionFormat="of" derivedContent="RFC8419"/>.</t>
        <t indent="0" pn="section-3.3-7">Note: The hash algorithm used to calculate the certHash in certConf messages <bcp14>MUST</bcp14> be SHA512 if the certificate to be confirmed has been signed using Ed25519 or SHAKE256 with d=512 if the certificate to be confirmed has been signed using Ed448.</t>
      </section>
    </section>
    <section anchor="KeyMan" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-key-management-algorithms">Key Management Algorithms</name>
      <t indent="0" pn="section-4-1">CMP utilizes the following general key management techniques: key agreement, key transport, and passwords.</t>
      <t indent="0" pn="section-4-2"><xref target="RFC4211" format="default" sectionFormat="of" derivedContent="RFC4211">CRMF</xref> and <xref target="RFC9480" format="default" sectionFormat="of" derivedContent="RFC9480">CMP Updates</xref> promote the use of <xref target="RFC5652" format="default" sectionFormat="of" derivedContent="RFC5652">CMS EnvelopedData</xref> by deprecating the use of EncryptedValue.</t>
      <section anchor="KeyAgree" numbered="true" removeInRFC="false" toc="include" pn="section-4.1">
        <name slugifiedName="name-key-agreement-algorithms">Key Agreement Algorithms</name>
        <t indent="0" pn="section-4.1-1">The key agreement algorithm is referred to as PROT_ENC_ALG in Appendices <xref target="RFC4210" sectionFormat="bare" section="D" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-D" derivedContent="RFC4210"/> and <xref target="RFC4210" sectionFormat="bare" section="E" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-E" derivedContent="RFC4210"/> of <xref target="RFC4210" format="default" sectionFormat="of" derivedContent="RFC4210"/> and as KM_KA_ALG in the <xref target="RFC9483" format="default" sectionFormat="of" derivedContent="RFC9483">Lightweight CMP Profile</xref> and <xref target="AlgProf" format="default" sectionFormat="of" derivedContent="Section 7"/>.</t>
        <t indent="0" pn="section-4.1-2">Key agreement algorithms are only used in CMP when using <xref target="RFC5652" format="default" sectionFormat="of" derivedContent="RFC5652">CMS EnvelopedData</xref> together with the key agreement key management technique. When a key agreement algorithm is used, a key-encryption algorithm (<xref target="SymKeyEnc" format="default" sectionFormat="of" derivedContent="Section 4.3"/>) is needed next to the content-encryption algorithm (<xref target="Enc" format="default" sectionFormat="of" derivedContent="Section 5"/>).</t>
        <t keepWithNext="true" indent="0" pn="section-4.1-3">Key agreement algorithm identifiers are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-4.1-4">
          <li pn="section-4.1-4.1">keyEncryptionAlgorithm field of KeyAgreeRecipientInfo.</li>
        </ul>
        <t keepWithNext="true" indent="0" pn="section-4.1-5">Key wrap algorithm identifiers are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-4.1-6">
          <li pn="section-4.1-6.1">KeyWrapAlgorithm parameters within keyEncryptionAlgorithm field of KeyAgreeRecipientInfo.</li>
        </ul>
        <t keepWithNext="true" indent="0" pn="section-4.1-7">Wrapped content-encryption keys are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-4.1-8">
          <li pn="section-4.1-8.1">encryptedKey field of RecipientEncryptedKeys.</li>
        </ul>
        <section anchor="DH" numbered="true" removeInRFC="false" toc="include" pn="section-4.1.1">
          <name slugifiedName="name-diffie-hellman">Diffie-Hellman</name>
          <t indent="0" pn="section-4.1.1-1">The Diffie-Hellman (DH) key agreement is defined in <xref target="RFC2631" format="default" sectionFormat="of" derivedContent="RFC2631"/> and <bcp14>SHALL</bcp14> be used in the ephemeral-static variants, as specified in <xref target="RFC3370" format="default" sectionFormat="of" derivedContent="RFC3370"/>. Static-static variants <bcp14>SHALL NOT</bcp14> be used.</t>
          <t keepWithNext="true" indent="0" pn="section-4.1.1-2">The DH key agreement algorithm is identified by the following OID:</t>
          <sourcecode type="asn.1" markers="false" pn="section-4.1.1-3">
   id-alg-ESDH OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) alg(3) 5 }
</sourcecode>
          <t indent="0" pn="section-4.1.1-4">Specific conventions to be considered are specified in <xref target="RFC3370" section="4.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3370#section-4.1" derivedContent="RFC3370"/>.</t>
        </section>
        <section anchor="ECDH" numbered="true" removeInRFC="false" toc="include" pn="section-4.1.2">
          <name slugifiedName="name-ecdh">ECDH</name>
          <t indent="0" pn="section-4.1.2-1">The Elliptic Curve Diffie-Hellman (ECDH) key agreement is defined in <xref target="RFC5753" format="default" sectionFormat="of" derivedContent="RFC5753"/> and <bcp14>SHALL</bcp14> be used in the ephemeral-static variant, as specified in <xref target="RFC5753" format="default" sectionFormat="of" derivedContent="RFC5753"/>, or the 1-Pass Elliptic Curve Menezes-Qu-Vanstone (ECMQV) variant, as specified in <xref target="RFC5753" format="default" sectionFormat="of" derivedContent="RFC5753"/>. Static-static variants <bcp14>SHALL NOT</bcp14> be used.</t>
          <t keepWithNext="true" indent="0" pn="section-4.1.2-2">The ECDH key agreement algorithm used together with NIST-recommended SECP curves are identified by the following OIDs:</t>
          <sourcecode type="asn.1" markers="false" pn="section-4.1.2-3">
   dhSinglePass-stdDH-sha224kdf-scheme OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) schemes(1) 11(11) 0 }
   dhSinglePass-stdDH-sha256kdf-scheme OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) schemes(1) 11(11) 1 }
   dhSinglePass-stdDH-sha384kdf-scheme OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) schemes(1) 11(11) 2 }
   dhSinglePass-stdDH-sha512kdf-scheme OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) schemes(1) 11(11) 3 }
   dhSinglePass-cofactorDH-sha224kdf-scheme OBJECT IDENTIFIER ::= {
      iso(1) identified-organization(3) certicom(132) schemes(1)
      14(14) 0 }
   dhSinglePass-cofactorDH-sha256kdf-scheme OBJECT IDENTIFIER ::= {
      iso(1) identified-organization(3) certicom(132) schemes(1)
      14(14) 1 }
   dhSinglePass-cofactorDH-sha384kdf-scheme OBJECT IDENTIFIER ::= {
      iso(1) identified-organization(3) certicom(132) schemes(1)
      14(14) 2 }
   dhSinglePass-cofactorDH-sha512kdf-scheme OBJECT IDENTIFIER ::= {
      iso(1) identified-organization(3) certicom(132) schemes(1)
      14(14) 3 }
   mqvSinglePass-sha224kdf-scheme OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) schemes(1) 15(15) 0 }
   mqvSinglePass-sha256kdf-scheme OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) schemes(1) 15(15) 1 }
   mqvSinglePass-sha384kdf-scheme OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) schemes(1) 15(15) 2 }
   mqvSinglePass-sha512kdf-scheme OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) schemes(1) 15(15) 3 }
</sourcecode>
          <t keepWithNext="true" indent="0" pn="section-4.1.2-4">As specified in <xref target="RFC5480" format="default" sectionFormat="of" derivedContent="RFC5480"/>, the NIST-recommended SECP curves are identified by the following OIDs:</t>
          <sourcecode type="asn.1" markers="false" pn="section-4.1.2-5">
   secp192r1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) ansi-X9-62(10045) curves(3) prime(1) 1 }
   secp224r1 OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) curve(0) 33 }
   secp256r1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) ansi-X9-62(10045) curves(3) prime(1) 7 }
   secp384r1 OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) curve(0) 34 }
   secp521r1 OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) certicom(132) curve(0) 35 }
</sourcecode>
          <t indent="0" pn="section-4.1.2-6">Specific conventions to be considered are specified in <xref target="RFC5753" format="default" sectionFormat="of" derivedContent="RFC5753"/>.</t>
          <t keepWithNext="true" indent="0" pn="section-4.1.2-7">The ECDH key agreement algorithm used together with curve25519 or curve448 is identified by the following OIDs:</t>
          <sourcecode type="asn.1" markers="false" pn="section-4.1.2-8">
   id-X25519 OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) thawte(101) 110 }
   id-X448 OBJECT IDENTIFIER ::= { iso(1)
      identified-organization(3) thawte(101) 111 }
</sourcecode>
          <t indent="0" pn="section-4.1.2-9">Specific conventions to be considered are specified in <xref target="RFC8418" format="default" sectionFormat="of" derivedContent="RFC8418"/>.</t>
        </section>
      </section>
      <section anchor="KeyTrans" numbered="true" removeInRFC="false" toc="include" pn="section-4.2">
        <name slugifiedName="name-key-transport-algorithms">Key Transport Algorithms</name>
        <t indent="0" pn="section-4.2-1">The key transport algorithm is also referred to as PROT_ENC_ALG in Appendices <xref target="RFC4210" sectionFormat="bare" section="D" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-D" derivedContent="RFC4210"/> and <xref target="RFC4210" sectionFormat="bare" section="E" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-E" derivedContent="RFC4210"/> of <xref target="RFC4210" format="default" sectionFormat="of" derivedContent="RFC4210"/> and as KM_KT_ALG in the <xref target="RFC9483" format="default" sectionFormat="of" derivedContent="RFC9483">Lightweight CMP Profile</xref> and <xref target="AlgProf" format="default" sectionFormat="of" derivedContent="Section 7"/>.</t>
        <t indent="0" pn="section-4.2-2">Key transport algorithms are only used in CMP when using <xref target="RFC5652" format="default" sectionFormat="of" derivedContent="RFC5652">CMS</xref> EnvelopedData together with the key transport key management technique.</t>
        <t keepWithNext="true" indent="0" pn="section-4.2-3">Key transport algorithm identifiers are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-4.2-4">
          <li pn="section-4.2-4.1">keyEncryptionAlgorithm field of KeyTransRecipientInfo.</li>
        </ul>
        <t keepWithNext="true" indent="0" pn="section-4.2-5">Key transport encrypted content-encryption keys are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-4.2-6">
          <li pn="section-4.2-6.1">encryptedKey field of KeyTransRecipientInfo.</li>
        </ul>
        <section anchor="RSAEnc" numbered="true" removeInRFC="false" toc="include" pn="section-4.2.1">
          <name slugifiedName="name-rsa-2">RSA</name>
          <t indent="0" pn="section-4.2.1-1">The RSA key transport algorithm is the RSA encryption scheme defined in <xref target="RFC8017" format="default" sectionFormat="of" derivedContent="RFC8017"/>.</t>
          <t keepWithNext="true" indent="0" pn="section-4.2.1-2">The algorithm identifier for RSA (PKCS #1 v1.5) is:</t>
          <sourcecode type="asn.1" markers="false" pn="section-4.2.1-3">
   rsaEncryption OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 1 }
</sourcecode>
          <t keepWithNext="true" indent="0" pn="section-4.2.1-4">The algorithm identifier for RSAES-OAEP is:</t>
          <sourcecode type="asn.1" markers="false" pn="section-4.2.1-5">
   id-RSAES-OAEP  OBJECT IDENTIFIER  ::=  { iso(1) member-body(2)
      us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 7 }
</sourcecode>
          <t indent="0" pn="section-4.2.1-6">Further conventions to be considered for PKCS #1 v1.5 are specified in <xref target="RFC3370" section="4.2.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3370#section-4.2.1" derivedContent="RFC3370"/> and for RSAES-OAEP in <xref target="RFC3560" format="default" sectionFormat="of" derivedContent="RFC3560"/>.</t>
        </section>
      </section>
      <section anchor="SymKeyEnc" numbered="true" removeInRFC="false" toc="include" pn="section-4.3">
        <name slugifiedName="name-symmetric-key-encryption-al">Symmetric Key-Encryption Algorithms</name>
        <t indent="0" pn="section-4.3-1">The symmetric key-encryption algorithm is also referred to as KM_KW_ALG in <xref target="AlgProfLWP" format="default" sectionFormat="of" derivedContent="Section 7.2"/> and the <xref target="RFC9483" format="default" sectionFormat="of" derivedContent="RFC9483">Lightweight CMP Profile</xref>.</t>
        <t indent="0" pn="section-4.3-2">As the symmetric key-encryption key management technique is not used by CMP, the symmetric key-encryption algorithm is only needed when using the key agreement or password-based key management technique with <xref target="RFC5652" format="default" sectionFormat="of" derivedContent="RFC5652">CMS</xref> EnvelopedData.</t>
        <t keepWithNext="true" indent="0" pn="section-4.3-3">Key wrap algorithm identifiers are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-4.3-4">
          <li pn="section-4.3-4.1">parameters field of the KeyEncryptionAlgorithmIdentifier of KeyAgreeRecipientInfo and PasswordRecipientInfo.</li>
        </ul>
        <t keepWithNext="true" indent="0" pn="section-4.3-5">Wrapped content-encryption keys are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-4.3-6">
          <li pn="section-4.3-6.1">encryptedKey field of RecipientEncryptedKeys (for key agreement) and PasswordRecipientInfo (for password-based key management).</li>
        </ul>
        <section anchor="AESWrap" numbered="true" removeInRFC="false" toc="include" pn="section-4.3.1">
          <name slugifiedName="name-aes-key-wrap">AES Key Wrap</name>
          <t indent="0" pn="section-4.3.1-1">The AES encryption algorithm is defined in <xref target="NIST.FIPS.197" format="default" sectionFormat="of" derivedContent="NIST.FIPS.197">FIPS Pub 197</xref>, and the key wrapping is defined in <xref target="RFC3394" format="default" sectionFormat="of" derivedContent="RFC3394"/>.</t>
          <t keepWithNext="true" indent="0" pn="section-4.3.1-2">AES key encryption has the algorithm identifier:</t>
          <sourcecode type="asn.1" markers="false" pn="section-4.3.1-3">
   id-aes128-wrap OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
      country(16) us(840) organization(1) gov(101) csor(3)
      nistAlgorithm(4) aes(1) 5 }
   id-aes192-wrap OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
      country(16) us(840) organization(1) gov(101) csor(3)
      nistAlgorithm(4) aes(1) 25 }
   id-aes256-wrap OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
      country(16) us(840) organization(1) gov(101) csor(3)
      nistAlgorithm(4) aes(1) 45 }
</sourcecode>
          <t indent="0" pn="section-4.3.1-4">The underlying encryption functions for the key wrap and content-encryption algorithms (as specified in <xref target="Enc" format="default" sectionFormat="of" derivedContent="Section 5"/>) and the key sizes for the two algorithms <bcp14>MUST</bcp14> be the same (e.g., AES-128 key wrap algorithm with AES-128 content-encryption algorithm); see <xref target="RFC8551" format="default" sectionFormat="of" derivedContent="RFC8551"/>.</t>
          <t indent="0" pn="section-4.3.1-5">Further conventions to be considered for AES key wrap are specified in <xref target="RFC3394" section="2.2" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3394#section-2.2" derivedContent="RFC3394"/> and <xref target="RFC3565" section="2.3.2" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3565#section-2.3.2" derivedContent="RFC3565"/>.</t>
        </section>
      </section>
      <section anchor="KeyDeriv" numbered="true" removeInRFC="false" toc="include" pn="section-4.4">
        <name slugifiedName="name-key-derivation-algorithms">Key Derivation Algorithms</name>
        <t indent="0" pn="section-4.4-1">The key derivation algorithm is also referred to as KM_KD_ALG in <xref target="AlgProfLWP" format="default" sectionFormat="of" derivedContent="Section 7.2"/> and the <xref target="RFC9483" format="default" sectionFormat="of" derivedContent="RFC9483">Lightweight CMP Profile</xref>.</t>
        <t indent="0" pn="section-4.4-2">Key derivation algorithms are only used in CMP when using <xref target="RFC5652" format="default" sectionFormat="of" derivedContent="RFC5652">CMS EnvelopedData</xref> together with the password-based key management technique.</t>
        <t keepWithNext="true" indent="0" pn="section-4.4-3">Key derivation algorithm identifiers are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-4.4-4">
          <li pn="section-4.4-4.1">keyDerivationAlgorithm field of PasswordRecipientInfo.</li>
        </ul>
        <t indent="0" pn="section-4.4-5">When using the password-based key management technique with EnvelopedData as specified in <xref target="RFC9480" format="default" sectionFormat="of" derivedContent="RFC9480">CMP Updates</xref> together with PKIProtection based on the message authentication code (MAC), the salt for the password-based MAC and key derivation function (KDF) must be chosen independently to ensure usage of independent symmetric keys.</t>
        <section anchor="PBKDF2" numbered="true" removeInRFC="false" toc="include" pn="section-4.4.1">
          <name slugifiedName="name-pbkdf2">PBKDF2</name>
          <t indent="0" pn="section-4.4.1-1">Password-based key derivation function 2 (PBKDF2) is defined in <xref target="RFC8018" format="default" sectionFormat="of" derivedContent="RFC8018"/>.</t>
          <t keepWithNext="true" indent="0" pn="section-4.4.1-2">PBKDF2 has the algorithm identifier:</t>
          <sourcecode type="asn.1" markers="false" pn="section-4.4.1-3">
   id-PBKDF2 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
      rsadsi(113549) pkcs(1) pkcs-5(5) 12 }
</sourcecode>
          <t indent="0" pn="section-4.4.1-4">Further conventions to be considered for PBKDF2 are specified in <xref target="RFC3370" section="4.4.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3370#section-4.4.1" derivedContent="RFC3370"/> and <xref target="RFC8018" section="5.2" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8018#section-5.2" derivedContent="RFC8018"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="Enc" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-content-encryption-algorith">Content-Encryption Algorithms</name>
      <t indent="0" pn="section-5-1">The content-encryption algorithm is also referred to as PROT_SYM_ALG in Appendices <xref target="RFC4210" sectionFormat="bare" section="D" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-D" derivedContent="RFC4210"/> and <xref target="RFC4210" sectionFormat="bare" section="E" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-E" derivedContent="RFC4210"/> of <xref target="RFC4210" format="default" sectionFormat="of" derivedContent="RFC4210"/>, in the <xref target="RFC9483" format="default" sectionFormat="of" derivedContent="RFC9483">Lightweight CMP Profile</xref>, and in <xref target="AlgProf" format="default" sectionFormat="of" derivedContent="Section 7"/>.</t>
      <t indent="0" pn="section-5-2">Content-encryption algorithms are used in CMP when using <xref target="RFC5652" format="default" sectionFormat="of" derivedContent="RFC5652">CMS EnvelopedData</xref> to transport a signed private key package in case of central key generation or key archiving, a certificate to facilitate implicit proof-of-possession, or a revocation passphrase in encrypted form.</t>
      <t keepWithNext="true" indent="0" pn="section-5-3">Content-encryption algorithm identifiers are located in the:</t>
      <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-5-4">
        <li pn="section-5-4.1">contentEncryptionAlgorithm field of EncryptedContentInfo.</li>
      </ul>
      <t keepWithNext="true" indent="0" pn="section-5-5">Encrypted content is located in the:</t>
      <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-5-6">
        <li pn="section-5-6.1">encryptedContent field of EncryptedContentInfo.</li>
      </ul>
      <section anchor="AESEnc" numbered="true" removeInRFC="false" toc="include" pn="section-5.1">
        <name slugifiedName="name-aes-cbc">AES-CBC</name>
        <t indent="0" pn="section-5.1-1">The AES encryption algorithm is defined in <xref target="NIST.FIPS.197" format="default" sectionFormat="of" derivedContent="NIST.FIPS.197">FIPS Pub 197</xref>.</t>
        <t keepWithNext="true" indent="0" pn="section-5.1-2">AES Cipher Block Chaining (AES-CBC) content encryption has the algorithm identifier:</t>
        <sourcecode type="asn.1" markers="false" pn="section-5.1-3">
   id-aes128-CBC OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
      country(16) us(840) organization(1) gov(101) csor(3)
      nistAlgorithm(4) aes(1) 2 }
   id-aes192-CBC OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
      country(16) us(840) organization(1) gov(101) csor(3)
      nistAlgorithm(4) aes(1)22 }
   id-aes256-CBC OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
      country(16) us(840) organization(1) gov(101) csor(3)
      nistAlgorithm(4) aes(1)42 }
</sourcecode>
        <t indent="0" pn="section-5.1-4">Specific conventions to be considered for AES-CBC content encryption are specified in <xref target="RFC3565" format="default" sectionFormat="of" derivedContent="RFC3565"/>.</t>
      </section>
    </section>
    <section anchor="MAC" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-message-authentication-code">Message Authentication Code Algorithms</name>
      <t indent="0" pn="section-6-1">The message authentication code (MAC) is either used for shared secret-based CMP message protection or together with the password-based key derivation function (PBKDF2).</t>
      <t indent="0" pn="section-6-2">The MAC algorithm is also referred to as MSG_MAC_ALG in <xref target="AlgProf" format="default" sectionFormat="of" derivedContent="Section 7"/>, Appendices <xref target="RFC4210" sectionFormat="bare" section="D" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-D" derivedContent="RFC4210"/> and <xref target="RFC4210" sectionFormat="bare" section="E" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-E" derivedContent="RFC4210"/> of <xref target="RFC4210" format="default" sectionFormat="of" derivedContent="RFC4210"/>, and the <xref target="RFC9483" format="default" sectionFormat="of" derivedContent="RFC9483">Lightweight CMP Profile</xref>.</t>
      <section anchor="PBMac" numbered="true" removeInRFC="false" toc="include" pn="section-6.1">
        <name slugifiedName="name-password-based-mac">Password-Based MAC</name>
        <t indent="0" pn="section-6.1-1">Password-based message authentication code (MAC) algorithms combine the derivation of a symmetric key from a password or other shared secret information and a symmetric key-based MAC function, as specified in <xref target="SKMac" format="default" sectionFormat="of" derivedContent="Section 6.2"/>, using this derived key.</t>
        <t keepWithNext="true" indent="0" pn="section-6.1-2">MAC algorithm identifiers are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-6.1-3">
          <li pn="section-6.1-3.1">protectionAlg field of PKIHeader.</li>
        </ul>
        <t keepWithNext="true" indent="0" pn="section-6.1-4">Message authentication code values are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-6.1-5">
          <li pn="section-6.1-5.1">PKIProtection field of PKIMessage.</li>
        </ul>
        <section anchor="P-BMac" numbered="true" removeInRFC="false" toc="include" pn="section-6.1.1">
          <name slugifiedName="name-passwordbasedmac">PasswordBasedMac</name>
          <t indent="0" pn="section-6.1.1-1">The PasswordBasedMac algorithm is defined in <xref target="RFC4210" section="5.1.3.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#section-5.1.3.1" derivedContent="RFC4210"/>, <xref target="RFC4211" section="4.4" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4211#section-4.4" derivedContent="RFC4211"/>, and <xref target="RFC9045" format="default" sectionFormat="of" derivedContent="RFC9045">"Algorithm Requirements Update to the Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)"</xref>.</t>
          <t keepWithNext="true" indent="0" pn="section-6.1.1-2">The PasswordBasedMac algorithm is identified by the following OID:</t>
          <sourcecode type="asn.1" markers="false" pn="section-6.1.1-3">
   id-PasswordBasedMac OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) nt(113533) nsn(7) algorithms(66) 13 }
</sourcecode>
          <t indent="0" pn="section-6.1.1-4">Further conventions to be considered for PasswordBasedMac  are specified in <xref target="RFC4210" section="5.1.3.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#section-5.1.3.1" derivedContent="RFC4210"/>, <xref target="RFC4211" section="4.4" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4211#section-4.4" derivedContent="RFC4211"/>, and <xref target="RFC9045" format="default" sectionFormat="of" derivedContent="RFC9045">"Algorithm Requirements Update to the Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)"</xref>.</t>
        </section>
        <section anchor="PBMAC1" numbered="true" removeInRFC="false" toc="include" pn="section-6.1.2">
          <name slugifiedName="name-pbmac1">PBMAC1</name>
          <t indent="0" pn="section-6.1.2-1">Password-Based Message Authentication Code 1 (PBMAC1) is defined in <xref target="RFC8018" format="default" sectionFormat="of" derivedContent="RFC8018"/>. PBMAC1 combines a password-based key derivation function, like PBKDF2 (<xref target="PBKDF2" format="default" sectionFormat="of" derivedContent="Section 4.4.1"/>), with an underlying symmetric key-based message authentication scheme.</t>
          <t keepWithNext="true" indent="0" pn="section-6.1.2-2">PBMAC1 has the following OID:</t>
          <sourcecode type="asn.1" markers="false" pn="section-6.1.2-3">
   id-PBMAC1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840)
      rsadsi(113549) pkcs(1) pkcs-5(5) 14 }
</sourcecode>
          <t indent="0" pn="section-6.1.2-4">Specific conventions to be considered for PBMAC1 are specified in Section <xref target="RFC8018" section="7.1" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8018#section-7.1" derivedContent="RFC8018"/> and Appendix <xref target="RFC8018" section="A.5" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8018#appendix-A.5" derivedContent="RFC8018"/> of <xref target="RFC8018" format="default" sectionFormat="of" derivedContent="RFC8018"/>.</t>
        </section>
      </section>
      <section anchor="SKMac" numbered="true" removeInRFC="false" toc="include" pn="section-6.2">
        <name slugifiedName="name-symmetric-key-based-mac">Symmetric Key-Based MAC</name>
        <t indent="0" pn="section-6.2-1">Symmetric key-based message authentication code (MAC) algorithms are used for deriving the symmetric encryption key when using PBKDF2, as described in <xref target="PBKDF2" format="default" sectionFormat="of" derivedContent="Section 4.4.1"/>, as well as with password-based MAC, as described in <xref target="PBMac" format="default" sectionFormat="of" derivedContent="Section 6.1"/>.</t>
        <t keepWithNext="true" indent="0" pn="section-6.2-2">MAC algorithm identifiers are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-6.2-3">
          <li pn="section-6.2-3.1">protectionAlg field of PKIHeader,</li>
          <li pn="section-6.2-3.2">messageAuthScheme field of PBMAC1,</li>
          <li pn="section-6.2-3.3">mac field of PBMParameter, and</li>
          <li pn="section-6.2-3.4">prf field of PBKDF2-params.</li>
        </ul>
        <t keepWithNext="true" indent="0" pn="section-6.2-4">MAC values are located in the:</t>
        <ul spacing="compact" bare="false" empty="false" indent="3" pn="section-6.2-5">
          <li pn="section-6.2-5.1">PKIProtection field of PKIMessage.</li>
        </ul>
        <section anchor="HMAC-SHA2" numbered="true" removeInRFC="false" toc="include" pn="section-6.2.1">
          <name slugifiedName="name-sha2-based-hmac">SHA2-Based HMAC</name>
          <t indent="0" pn="section-6.2.1-1">The HMAC algorithm is defined in <xref target="RFC2104" format="default" sectionFormat="of" derivedContent="RFC2104"/> and <xref target="NIST.FIPS.198-1" format="default" sectionFormat="of" derivedContent="NIST.FIPS.198-1">FIPS Pub 198-1</xref>.</t>
          <t keepWithNext="true" indent="0" pn="section-6.2.1-2">The HMAC algorithm used with SHA2 message digest algorithms is identified by the following OIDs:</t>
          <sourcecode type="asn.1" markers="false" pn="section-6.2.1-3">
   id-hmacWithSHA224 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) rsadsi(113549) digestAlgorithm(2) 8 }
   id-hmacWithSHA256 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) rsadsi(113549) digestAlgorithm(2) 9 }
   id-hmacWithSHA384 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) rsadsi(113549) digestAlgorithm(2) 10 }
   id-hmacWithSHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
      us(840) rsadsi(113549) digestAlgorithm(2) 11 }
</sourcecode>
          <t indent="0" pn="section-6.2.1-4">Specific conventions to be considered for SHA2-based HMAC are specified in <xref target="RFC4231" section="3.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4231#section-3.1" derivedContent="RFC4231"/>.</t>
        </section>
        <section anchor="AES-GMAC" numbered="true" removeInRFC="false" toc="include" pn="section-6.2.2">
          <name slugifiedName="name-aes-gmac">AES-GMAC</name>
          <t indent="0" pn="section-6.2.2-1">The AES-GMAC algorithm is defined in <xref target="NIST.FIPS.197" format="default" sectionFormat="of" derivedContent="NIST.FIPS.197">FIPS Pub 197</xref> and <xref target="NIST_SP_800_38d" format="default" sectionFormat="of" derivedContent="NIST.SP.800-38d">NIST SP 800-38d</xref>.</t>
          <t indent="0" pn="section-6.2.2-2">Note: The AES-GMAC <bcp14>MUST NOT</bcp14> be used twice with the same parameter set, especially the same nonce. Therefore, it <bcp14>MUST NOT</bcp14> be used together with PBKDF2. When using it with PBMAC1, it <bcp14>MUST</bcp14> be ensured that the AES-GMAC is only used as a message authentication scheme and not for the key derivation function PBKDF2.</t>
          <t keepWithNext="true" indent="0" pn="section-6.2.2-3">The AES-GMAC algorithm is identified by the following OIDs:</t>
          <sourcecode type="asn.1" markers="false" pn="section-6.2.2-4">
   id-aes128-GMAC OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
      country(16) us(840) organization(1) gov(101) csor(3)
      nistAlgorithm(4) aes(1) 9 }
   id-aes192-GMAC OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
      country(16) us(840) organization(1) gov(101) csor(3)
      nistAlgorithm(4) aes(1) 29 }
   id-aes256-GMAC OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
      country(16) us(840) organization(1) gov(101) csor(3)
      nistAlgorithm(4) aes(1) 49 }
</sourcecode>
          <t indent="0" pn="section-6.2.2-5">Specific conventions to be considered for the AES-GMAC are specified in <xref target="RFC9044" format="default" sectionFormat="of" derivedContent="RFC9044"/>.</t>
        </section>
        <section anchor="SHAKE-KMAC" numbered="true" removeInRFC="false" toc="include" pn="section-6.2.3">
          <name slugifiedName="name-shake-based-kmac">SHAKE-Based KMAC</name>
          <t indent="0" pn="section-6.2.3-1">The KMAC algorithm is defined in <xref target="RFC8702" format="default" sectionFormat="of" derivedContent="RFC8702"/> and <xref target="NIST_SP_800_185" format="default" sectionFormat="of" derivedContent="NIST.SP.800-185]">FIPS SP 800-185</xref>.</t>
          <t keepWithNext="true" indent="0" pn="section-6.2.3-2">The SHAKE-based KMAC algorithm is identified by the following OIDs:</t>
          <sourcecode type="asn.1" markers="false" pn="section-6.2.3-3">
   id-KMACWithSHAKE128 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
      country(16) us(840) organization(1) gov(101) csor(3)
      nistAlgorithm(4) hashAlgs(2) 19 }
   id-KMACWithSHAKE256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
      country(16) us(840) organization(1) gov(101) csor(3)
      nistAlgorithm(4) hashAlgs(2) 20 }
</sourcecode>
          <t indent="0" pn="section-6.2.3-4">Specific conventions to be considered for KMAC with SHAKE are specified in <xref target="RFC8702" section="3.4" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8702#section-3.4" derivedContent="RFC8702"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="AlgProf" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-algorithm-use-profiles">Algorithm Use Profiles</name>
      <t indent="0" pn="section-7-1">This section provides profiles of algorithms and respective conventions for different application use cases.</t>
      <t indent="0" pn="section-7-2">Recommendations like those described in Table 2 of <xref target="NIST_SP_800_57pt1r5" format="default" sectionFormat="of" derivedContent="NIST.SP.800-57pt1r5">NIST SP 800-57 "Recommendation for Key Management"</xref> and Section 4.6 of <xref target="ECRYPT.CSA.D5.4" format="default" sectionFormat="of" derivedContent="ECRYPT.CSA.D5.4">ECRYPT "Algorithms, Key Size and Protocols Report (2018)"</xref> provide general information on current cryptographic algorithms.</t>
      <t keepWithNext="true" indent="0" pn="section-7-3">The overall cryptographic strength of CMP implementations will depend on several factors, including:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-7-4">
        <li pn="section-7-4.1">capabilities of the end entity: What kind of algorithms does the end entity support? The cryptographic strength of the system <bcp14>SHOULD</bcp14> be at least as strong as the algorithms and keys used for the certificate being managed.</li>
        <li pn="section-7-4.2">algorithm profile: The overall strength of the profile will be the strength of the weakest algorithm it contains.</li>
        <li pn="section-7-4.3">
          <t keepWithNext="true" indent="0" pn="section-7-4.3.1">message protection: The overall strength of the CMP message protection.</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-7-4.3.2">
            <li pn="section-7-4.3.2.1">MAC-based protection: The entropy of the shared secret information or password when MAC-based message protection is used (MSG_MAC_ALG).</li>
            <li pn="section-7-4.3.2.2">signature-based protection: The strength of the key pair and signature algorithm when signature-based protection is used (MSG_SIG_ALG).</li>
            <li pn="section-7-4.3.2.3">protection of centrally generated keys: The strength of the algorithms used for the key management technique (<xref target="AlgProf4210" format="default" sectionFormat="of" derivedContent="Section 7.1"/>: PROT_ENC_ALG or <xref target="AlgProfLWP" format="default" sectionFormat="of" derivedContent="Section 7.2"/>: KM_KA_ALG, KM_KT_ALG, KM_KD_ALG) and the encryption of the content-encryption key and private key (<xref target="AlgProf4210" format="default" sectionFormat="of" derivedContent="Section 7.1"/>: SYM_PENC_ALG, PROT_SYM_ALG or <xref target="AlgProfLWP" format="default" sectionFormat="of" derivedContent="Section 7.2"/>: KM_KW_ALG, PROT_SYM_ALG).</li>
          </ul>
        </li>
      </ul>
      <t keepWithNext="true" indent="0" pn="section-7-5">The following table shows the algorithms listed in this document sorted by their bits of security. If an implementation intends to enroll and manage certificates for keys of a specific security, it <bcp14>SHALL</bcp14> implement and use algorithms of at least that strength for the respective PKI management operation.  If one row does not provide a suitable algorithm, the implementer <bcp14>MUST</bcp14> choose one offering more bits of security.</t>
      <table anchor="BalacedAlgSets" align="left" pn="table-1">
        <name slugifiedName="name-cryptographic-algorithms-so">Cryptographic Algorithms Sorted by Their Bits of Security</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Bits of Security</th>
            <th align="left" colspan="1" rowspan="1">RSA or DH</th>
            <th align="left" colspan="1" rowspan="1">Elliptic Curve Cryptography</th>
            <th align="left" colspan="1" rowspan="1">Hash Function or XOF with Specified Output Length (d)</th>
            <th align="left" colspan="1" rowspan="1">Symmetric Encryption</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">112</td>
            <td align="left" colspan="1" rowspan="1">RSA2048,<br/>DH(2048)</td>
            <td align="left" colspan="1" rowspan="1">ECDSA/ECDH (secp224r1)</td>
            <td align="left" colspan="1" rowspan="1">SHA-224</td>
            <td align="left" colspan="1" rowspan="1"/>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">128</td>
            <td align="left" colspan="1" rowspan="1">RSA3072,<br/>DH(3072)</td>
            <td align="left" colspan="1" rowspan="1">ECDSA/ECDH (secp256r1),<br/>Ed25519/X25519 (curve25519)</td>
            <td align="left" colspan="1" rowspan="1">SHA-256,<br/>SHAKE128(d=256)</td>
            <td align="left" colspan="1" rowspan="1">AES-128</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">192</td>
            <td align="left" colspan="1" rowspan="1"/>
            <td align="left" colspan="1" rowspan="1">ECDSA/ECDH (secp384r1)</td>
            <td align="left" colspan="1" rowspan="1">SHA-384</td>
            <td align="left" colspan="1" rowspan="1">AES-192</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">224</td>
            <td align="left" colspan="1" rowspan="1"/>
            <td align="left" colspan="1" rowspan="1">Ed448/X448 (curve448)</td>
            <td align="left" colspan="1" rowspan="1"/>
            <td align="left" colspan="1" rowspan="1"/>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">256</td>
            <td align="left" colspan="1" rowspan="1"/>
            <td align="left" colspan="1" rowspan="1">ECDSA/ECDH (secp521r1)</td>
            <td align="left" colspan="1" rowspan="1">SHA-512,<br/>SHAKE256(d=512)</td>
            <td align="left" colspan="1" rowspan="1">AES-256</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-7-7">The following table shows the cryptographic algorithms sorted by their usage in CMP and with more details.</t>
      <table anchor="BalacedAlgSetsCMP" align="left" pn="table-2">
        <name slugifiedName="name-cryptographic-algorithms-sor">Cryptographic Algorithms Sorted by Their Bits of Security and Usage by CMP</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Bits of Security</th>
            <th align="left" colspan="1" rowspan="1">Key Types to Be Certified</th>
            <th align="left" colspan="1" rowspan="1">CMP Protection<br/>MSG_SIG_ALG, MSG_MAC_ALG</th>
            <th align="left" colspan="1" rowspan="1">Key Management Technique<br/>PROT_ENC_ALG or KM_KA_ALG, KM_KT_ALG, KM_KD_ALG</th>
            <th align="left" colspan="1" rowspan="1">Key-Wrap and Symmetric Encryption<br/>PROT_SYM_ALG,<br/>SYM_PENC_ALG<br/>or<br/>KM_KW_ALG</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">112</td>
            <td align="left" colspan="1" rowspan="1">RSA2048,<br/>secp224r1</td>
            <td align="left" colspan="1" rowspan="1">RSASSA-PSS (2048, SHA-224 or SHAKE128 (d=256)),<br/>RSAEncryption (2048, SHA-224),<br/>ECDSA (secp224r1, SHA-224 or SHAKE128 (d=256)),<br/>PBMAC1 (HMAC-SHA-224)</td>
            <td align="left" colspan="1" rowspan="1">DH(2048),<br/>RSAES-OAEP (2048, SHA-224),<br/>RSAEncryption (2048, SHA-224),<br/>ECDH (secp224r1, SHA-224),<br/>PBKDF2 (HMAC-SHA-224)</td>
            <td align="left" colspan="1" rowspan="1"/>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">128</td>
            <td align="left" colspan="1" rowspan="1">RSA3072,<br/>secp256r1,<br/>curve25519</td>
            <td align="left" colspan="1" rowspan="1">RSASSA-PSS (3072, SHA-256 or SHAKE128 (d=256)),<br/>RSAEncryption (3072, SHA-256),<br/>ECDSA (secp256r1, SHA-256 or SHAKE128 (d=256)),<br/>Ed25519 (SHA-512),<br/>PBMAC1 (HMAC-SHA-256)</td>
            <td align="left" colspan="1" rowspan="1">DH(3072),<br/>RSAES-OAEP (3072, SHA-256),<br/> RSAEncryption (3072, SHA-256),<br/>ECDH (secp256r1, SHA-256),<br/>X25519,<br/>PBKDF2 (HMAC-SHA-256)</td>
            <td align="left" colspan="1" rowspan="1">AES-128</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">192</td>
            <td align="left" colspan="1" rowspan="1">secp384r1</td>
            <td align="left" colspan="1" rowspan="1">ECDSA (secp384r1, SHA-384),<br/>PBMAC1 (HMAC-SHA-384)</td>
            <td align="left" colspan="1" rowspan="1">ECDH (secp384r1, SHA-384),<br/>PBKDF2 (HMAC-SHA-384)</td>
            <td align="left" colspan="1" rowspan="1">AES-192</td>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">224</td>
            <td align="left" colspan="1" rowspan="1">curve448</td>
            <td align="left" colspan="1" rowspan="1">Ed448 (SHAKE256)</td>
            <td align="left" colspan="1" rowspan="1">X448</td>
            <td align="left" colspan="1" rowspan="1"/>
          </tr>
          <tr>
            <td align="left" colspan="1" rowspan="1">256</td>
            <td align="left" colspan="1" rowspan="1">secp521r1</td>
            <td align="left" colspan="1" rowspan="1">ECDSA (secp521r1, SHA-512 or SHAKE256 (d=512)),<br/>PBMAC1 (HMAC-SHA-512)</td>
            <td align="left" colspan="1" rowspan="1">ECDH (secp521r1, SHA-512),<br/>PBKDF2 (HMAC-SHA-512)</td>
            <td align="left" colspan="1" rowspan="1">AES-256</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-7-9">To avoid consuming too many computational resources, choosing a set of algorithms offering roughly the same level of security is recommended. Below are several algorithm profiles that are balanced, assuming the implementer chooses MAC secrets and/or certificate profiles of at least equivalent strength.</t>
      <section anchor="AlgProf4210" numbered="true" removeInRFC="false" toc="include" pn="section-7.1">
        <name slugifiedName="name-algorithm-profile-for-pki-m">Algorithm Profile for PKI Management Message Profiles in RFC 4210</name>
        <t indent="0" pn="section-7.1-1">The following table updates the definitions of algorithms used within PKI Management Message Profiles, as defined in <xref target="RFC4210" sectionFormat="of" section="D.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-D.2" derivedContent="RFC4210"/>.</t>
        <t indent="0" pn="section-7.1-2">The columns in the table are:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-7.1-3">
          <dt pn="section-7.1-3.1">Name:</dt>
          <dd pn="section-7.1-3.2">An identifier used for message profiles</dd>
          <dt pn="section-7.1-3.3">Use:</dt>
          <dd pn="section-7.1-3.4">Description of where and for what the algorithm is used</dd>
          <dt pn="section-7.1-3.5">Mandatory:</dt>
          <dd pn="section-7.1-3.6">Algorithms that <bcp14>MUST</bcp14> be supported by conforming implementations</dd>
          <dt pn="section-7.1-3.7">Optional:</dt>
          <dd pn="section-7.1-3.8">Algorithms that are <bcp14>OPTIONAL</bcp14> to support</dd>
          <dt pn="section-7.1-3.9">Deprecated:</dt>
          <dd pn="section-7.1-3.10">Algorithms from <xref target="RFC4210" format="default" sectionFormat="of" derivedContent="RFC4210"/> that <bcp14>SHOULD NOT</bcp14> be used any more</dd>
        </dl>
        <table anchor="AlgProd4210T" align="center" pn="table-3">
          <name slugifiedName="name-algorithms-used-within-appe">Algorithms Used within Appendix D.2 of RFC 4210</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Use</th>
              <th align="left" colspan="1" rowspan="1">Mandatory</th>
              <th align="left" colspan="1" rowspan="1">Optional</th>
              <th align="left" colspan="1" rowspan="1">Deprecated</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">MSG_SIG_ALG</td>
              <td align="left" colspan="1" rowspan="1">protection of PKI messages using signatures</td>
              <td align="left" colspan="1" rowspan="1">RSA</td>
              <td align="left" colspan="1" rowspan="1">ECDSA, EdDSA</td>
              <td align="left" colspan="1" rowspan="1">DSA, combinations with MD5 and SHA-1</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">MSG_MAC_ALG</td>
              <td align="left" colspan="1" rowspan="1">protection of PKI messages using MACs</td>
              <td align="left" colspan="1" rowspan="1">PBMAC1</td>
              <td align="left" colspan="1" rowspan="1">PasswordBasedMac, HMAC, KMAC</td>
              <td align="left" colspan="1" rowspan="1">X9.9</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">SYM_PENC_ALG</td>
              <td align="left" colspan="1" rowspan="1">symmetric encryption of an end entity's private key where the symmetric key is distributed out of band</td>
              <td align="left" colspan="1" rowspan="1">AES-wrap</td>
              <td align="left" colspan="1" rowspan="1"/>
              <td align="left" colspan="1" rowspan="1">3-DES(3-key-EDE, CBC Mode), RC5, CAST-128</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">PROT_ENC_ALG</td>
              <td align="left" colspan="1" rowspan="1">asymmetric algorithm used for encryption of (symmetric keys for encryption of) private keys transported in PKIMessages</td>
              <td align="left" colspan="1" rowspan="1">DH</td>
              <td align="left" colspan="1" rowspan="1">ECDH, RSA</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">PROT_SYM_ALG</td>
              <td align="left" colspan="1" rowspan="1">symmetric encryption algorithm used for encryption of private key bits (a key of this type is encrypted using PROT_ENC_ALG)</td>
              <td align="left" colspan="1" rowspan="1">AES-CBC</td>
              <td align="left" colspan="1" rowspan="1"/>
              <td align="left" colspan="1" rowspan="1">3-DES(3-key-EDE, CBC Mode), RC5, CAST-128</td>
            </tr>
          </tbody>
        </table>
        <t keepWithNext="true" indent="0" pn="section-7.1-5">The following are the mandatory algorithm identifiers and specifications:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-7.1-6">
          <dt pn="section-7.1-6.1">RSA:</dt>
          <dd pn="section-7.1-6.2">sha256WithRSAEncryption with 2048 bit, see <xref target="RSASig" format="default" sectionFormat="of" derivedContent="Section 3.1"/></dd>
          <dt pn="section-7.1-6.3">PasswordBasedMac:</dt>
          <dd pn="section-7.1-6.4">id-PasswordBasedMac, see <xref target="PBMac" format="default" sectionFormat="of" derivedContent="Section 6.1"/> (with id-sha256 as the owf parameter, see <xref target="SHA2" format="default" sectionFormat="of" derivedContent="Section 2.1"/> and id-hmacWithSHA256 as the mac parameter, see <xref target="HMAC-SHA2" format="default" sectionFormat="of" derivedContent="Section 6.2.1"/>)</dd>
          <dt pn="section-7.1-6.5">PBMAC1:</dt>
          <dd pn="section-7.1-6.6">id-PBMAC1, see <xref target="PBMAC1" format="default" sectionFormat="of" derivedContent="Section 6.1.2"/> (with id-PBKDF2 as the key derivation function, see <xref target="PBKDF2" format="default" sectionFormat="of" derivedContent="Section 4.4.1"/> and id-hmacWithSHA256 as the message authentication scheme, see <xref target="HMAC-SHA2" format="default" sectionFormat="of" derivedContent="Section 6.2.1"/>). It is <bcp14>RECOMMENDED</bcp14> to prefer the usage of PBMAC1 instead of PasswordBasedMac.</dd>
          <dt pn="section-7.1-6.7">DH:</dt>
          <dd pn="section-7.1-6.8">id-alg-ESDH, see <xref target="DH" format="default" sectionFormat="of" derivedContent="Section 4.1.1"/></dd>
          <dt pn="section-7.1-6.9">AES-wrap:</dt>
          <dd pn="section-7.1-6.10">id-aes128-wrap, see <xref target="AESWrap" format="default" sectionFormat="of" derivedContent="Section 4.3.1"/></dd>
          <dt pn="section-7.1-6.11">AES-CBC:</dt>
          <dd pn="section-7.1-6.12">id-aes128-CBC, see <xref target="AESEnc" format="default" sectionFormat="of" derivedContent="Section 5.1"/></dd>
        </dl>
      </section>
      <section anchor="AlgProfLWP" numbered="true" removeInRFC="false" toc="include" pn="section-7.2">
        <name slugifiedName="name-algorithm-profile-for-light">Algorithm Profile for Lightweight CMP Profile</name>
        <t indent="0" pn="section-7.2-1">The following table contains definitions of algorithms that <bcp14>MAY</bcp14> be supported by implementations of the <xref target="RFC9483" format="default" sectionFormat="of" derivedContent="RFC9483">Lightweight CMP Profile</xref>.</t>
        <t indent="0" pn="section-7.2-2">As the set of algorithms to be used for implementations of the Lightweight CMP Profile heavily depends on the PKI management operations implemented, the certificates used for message protection, and the certificates to be managed, this document will not specify a specific set that is mandatory to support for conforming implementations.</t>
        <t indent="0" pn="section-7.2-3">The columns in the table are:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-7.2-4">
          <dt pn="section-7.2-4.1">Name:</dt>
          <dd pn="section-7.2-4.2">An identifier used for message profiles</dd>
          <dt pn="section-7.2-4.3">Use:</dt>
          <dd pn="section-7.2-4.4">Description of where and for what the algorithm is used</dd>
          <dt pn="section-7.2-4.5">Examples:</dt>
          <dd pn="section-7.2-4.6">Lists the algorithms, as described in this document. The list of algorithms depends on the set of PKI management operations to be implemented.</dd>
        </dl>
        <t indent="0" pn="section-7.2-5">Note: It is <bcp14>RECOMMENDED</bcp14> to prefer the usage of PBMAC1 instead of PasswordBasedMac.</t>
        <table anchor="AlgProfLWPT" align="center" pn="table-4">
          <name slugifiedName="name-algorithms-used-within-the-">Algorithms Used within the Lightweight CMP Profile</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">Use</th>
              <th align="left" colspan="1" rowspan="1">Examples</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">MSG_SIG_ALG</td>
              <td align="left" colspan="1" rowspan="1">protection of PKI messages using signatures and for SignedData, e.g., a private key transported in PKIMessages</td>
              <td align="left" colspan="1" rowspan="1">RSA, ECDSA, EdDSA</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">MSG_MAC_ALG</td>
              <td align="left" colspan="1" rowspan="1">protection of PKI messages using MACing</td>
              <td align="left" colspan="1" rowspan="1">PasswordBasedMac (see <xref target="Security" format="default" sectionFormat="of" derivedContent="Section 9"/>), PBMAC1, HMAC, KMAC</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">KM_KA_ALG</td>
              <td align="left" colspan="1" rowspan="1">asymmetric key agreement algorithm used for agreement of a symmetric key for use with KM_KW_ALG</td>
              <td align="left" colspan="1" rowspan="1">DH, ECDH</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">KM_KT_ALG</td>
              <td align="left" colspan="1" rowspan="1">asymmetric key-encryption algorithm used for transport of a symmetric key for PROT_SYM_ALG</td>
              <td align="left" colspan="1" rowspan="1">RSA</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">KM_KD_ALG</td>
              <td align="left" colspan="1" rowspan="1">symmetric key derivation algorithm used for derivation of a symmetric key for use with KM_KW_ALG</td>
              <td align="left" colspan="1" rowspan="1">PBKDF2</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">KM_KW_ALG</td>
              <td align="left" colspan="1" rowspan="1">algorithm to wrap a symmetric key for PROT_SYM_ALG</td>
              <td align="left" colspan="1" rowspan="1">AES-wrap</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">PROT_SYM_ALG</td>
              <td align="left" colspan="1" rowspan="1">symmetric content-encryption algorithm used for encryption of EnvelopedData, e.g., a private key transported in PKIMessages</td>
              <td align="left" colspan="1" rowspan="1">AES-CBC</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="IANA" numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-8-1">This document has no IANA actions.</t>
    </section>
    <section anchor="Security" numbered="true" removeInRFC="false" toc="include" pn="section-9">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-9-1">This document lists many cryptographic algorithms usable with CMP to offer implementers a more up-to-date choice.  Finally, the algorithms to be supported also heavily depend on the certificates and PKI management operations utilized in the target environment. The algorithm with the lowest security strength and the entropy of shared secret information defines the security of the overall solution; see <xref target="AlgProf" format="default" sectionFormat="of" derivedContent="Section 7"/>.</t>
      <t indent="0" pn="section-9-2">When using MAC-based message protection, the use of PBMAC1 is preferable to that of PasswordBasedMac. First, PBMAC1 is a well-known scrutinized algorithm, which is not true for PasswordBasedMac. Second, the PasswordBasedMac algorithm as specified in <xref target="RFC4211" section="4.4" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4211#section-4.4" derivedContent="RFC4211"/> is essentially PBKDF1 (as defined in <xref target="RFC8018" section="5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8018#section-5.1" derivedContent="RFC8018"/>) with an HMAC step at the end. Here, we update to use the PBKDF2-HMAC construct defined as PBMAC1 in <xref target="RFC8018" format="default" sectionFormat="of" derivedContent="RFC8018"/>. PBKDF2 is superior to PBKDF1 in an improved internal construct for iterated hashing and in removing PBKDF1's limitation of only being able to derive keys up to the size of the underlying hash function. Additionally, PBKDF1 is not recommended for new applications as stated in <xref target="RFC8018" section="5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8018#section-5.1" derivedContent="RFC8018"/> and is no longer an approved algorithm by most standards bodies. Therefore, it presents difficulties to implementers who are submitting their CMP implementations for certification, hence moving to a PBKDF2-based mechanism. This change is in alignment with <xref target="RFC9045" format="default" sectionFormat="of" derivedContent="RFC9045"/>, which updates <xref target="RFC4211" format="default" sectionFormat="of" derivedContent="RFC4211"/> to allow the use of PBMAC1 in CRMF.</t>
      <t indent="0" pn="section-9-3">The AES-GMAC <bcp14>MUST NOT</bcp14> be used as the pseudorandom function (PRF) in PBKDF2; the use of the AES-GMAC more than once with the same key and the same nonce will break the security.</t>
      <t indent="0" pn="section-9-4">In <xref target="AlgProf" format="default" sectionFormat="of" derivedContent="Section 7"/> of this document, there is also an update to <xref target="RFC4210" sectionFormat="of" section="D.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-D.2" derivedContent="RFC4210"/> and a set of algorithms that <bcp14>MAY</bcp14> be supported when implementing the <xref target="RFC9483" format="default" sectionFormat="of" derivedContent="RFC9483">Lightweight CMP Profile</xref>.  It is recognized that there may be older CMP implementations in use that conform to the algorithm use profile from <xref target="RFC4210" sectionFormat="of" section="D.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4210#appendix-D.2" derivedContent="RFC4210"/>. For example, the use of AES is now mandatory for PROT_SYM_ALG, while 3-DES was mandatory in <xref target="RFC4210" format="default" sectionFormat="of" derivedContent="RFC4210"/>. Therefore, it is expected that many CMP systems may already support the recommended algorithms in this specification. In such systems, the weakened algorithms should be disabled from further use. If critical systems cannot be immediately updated to conform to the recommended algorithm use profile, it is recommended that a plan to migrate the infrastructure to conforming profiles be adopted as soon as possible.</t>
      <t indent="0" pn="section-9-5">Symmetric key-based MAC algorithms as described in <xref target="SKMac" format="default" sectionFormat="of" derivedContent="Section 6.2"/> <bcp14>MAY</bcp14> be used as MSG_MAC_ALG. The implementer <bcp14>MUST</bcp14> choose a suitable PRF and ensure that the key has sufficient entropy to match the overall security level of the algorithm profile. These considerations are outside the scope of the profile.</t>
    </section>
  </middle>
  <back>
    <displayreference target="NIST_FIPS_180_4" to="NIST.FIPS.180-4"/>
    <displayreference target="NIST_FIPS_202" to="NIST.FIPS.202"/>
    <displayreference target="NIST_SP_800_38d" to="NIST.SP.800-38d"/>
    <displayreference target="NIST_SP_800_57pt1r5" to="NIST.SP.800-57pt1r5"/>
    <displayreference target="NIST_SP_800_185" to="NIST.SP.800-185]"/>
    <references pn="section-10">
      <name slugifiedName="name-references">References</name>
      <references pn="section-10.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="NIST_FIPS_180_4" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf" quoteTitle="true" derivedAnchor="NIST.FIPS.180-4">
          <front>
            <title>Secure Hash Standard</title>
            <author fullname="Quynh H. Dang" surname="Dang">
              <organization showOnFrontPage="true">Information Technology Laboratory</organization>
            </author>
            <author>
              <organization abbrev="NIST" showOnFrontPage="true">National Institute of Standards and Technology</organization>
              <address>
                <postal>
                  <country>US</country>
                  <city>Gaithersburg</city>
                </postal>
              </address>
            </author>
            <date month="July" year="2015"/>
          </front>
          <seriesInfo name="NIST Federal Information Processing Standards Publications" value="180-4"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.180-4"/>
        </reference>
        <reference anchor="NIST.FIPS.186-5" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf" quoteTitle="true" derivedAnchor="NIST.FIPS.186-5">
          <front>
            <title>Digital Signature Standard (DSS)</title>
            <author>
              <organization showOnFrontPage="true">National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date month="February" year="2023"/>
          </front>
          <seriesInfo name="FIPS PUB" value="186-5"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.186-5"/>
        </reference>
        <reference anchor="NIST.FIPS.197" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf" quoteTitle="true" derivedAnchor="NIST.FIPS.197">
          <front>
            <title>Advanced Encryption Standard (AES)</title>
            <author>
              <organization showOnFrontPage="true">National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2001" month="November"/>
          </front>
          <seriesInfo name="NIST FIPS" value="197"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.197"/>
        </reference>
        <reference anchor="NIST.FIPS.198-1" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.198-1.pdf" quoteTitle="true" derivedAnchor="NIST.FIPS.198-1">
          <front>
            <title>The Keyed-Hash Message Authentication Code (HMAC)</title>
            <author>
              <organization showOnFrontPage="true">National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2008" month="July"/>
          </front>
          <seriesInfo name="FIPS PUB" value="198-1"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.198-1"/>
        </reference>
        <reference anchor="NIST_FIPS_202" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf" quoteTitle="true" derivedAnchor="NIST.FIPS.202">
          <front>
            <title>SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions</title>
            <author fullname="Morris J. Dworkin" surname="Dworkin">
              <organization showOnFrontPage="true">Information Technology Laboratory</organization>
            </author>
            <author>
              <organization abbrev="NIST" showOnFrontPage="true">National Institute of Standards and Technology</organization>
              <address>
                <postal>
                  <country>US</country>
                  <city>Gaithersburg</city>
                </postal>
              </address>
            </author>
            <date month="July" year="2015"/>
          </front>
          <seriesInfo name="NIST Federal Information Processing Standards Publications" value="202"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.202"/>
        </reference>
        <reference anchor="NIST_SP_800_185" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf" quoteTitle="true" derivedAnchor="NIST.SP.800-185]">
          <front>
            <title>SHA-3 derived functions: cSHAKE, KMAC, TupleHash and ParallelHash</title>
            <author fullname="John Kelsey" surname="Kelsey">
              <organization showOnFrontPage="true">Information Technology Laboratory</organization>
            </author>
            <author fullname="Shu-jen Change" surname="Change">
              <organization showOnFrontPage="true">Information Technology Laboratory</organization>
            </author>
            <author fullname="Ray Perlner" surname="Perlner">
              <organization showOnFrontPage="true">Information Technology Laboratory</organization>
            </author>
            <author>
              <organization abbrev="NIST" showOnFrontPage="true">National Institute of Standards and Technology</organization>
              <address>
                <postal>
                  <country>US</country>
                  <city>Gaithersburg</city>
                </postal>
              </address>
            </author>
            <date month="December" year="2016"/>
          </front>
          <seriesInfo name="NIST Special Publications (General)" value="800-185"/>
          <seriesInfo name="DOI" value="10.6028/NIST.SP.800-185"/>
        </reference>
        <reference anchor="NIST_SP_800_38d" target="https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf" quoteTitle="true" derivedAnchor="NIST.SP.800-38d">
          <front>
            <title>Recommendation for block cipher modes of operation :GaloisCounter Mode (GCM) and GMAC</title>
            <author fullname="M J  M JDworkin" initials="M J" surname="Dworkin"/>
            <author>
              <organization abbrev="NIST" showOnFrontPage="true">National Institute of Standards and Technology</organization>
              <address>
                <postal>
                  <country>US</country>
                  <city>Gaithersburg</city>
                </postal>
              </address>
            </author>
            <date year="2007"/>
          </front>
          <seriesInfo name="NIST Special Publications (General)" value="800-38d"/>
          <seriesInfo name="DOI" value="10.6028/NIST.SP.800-38d"/>
        </reference>
        <reference anchor="RFC2104" target="https://www.rfc-editor.org/info/rfc2104" quoteTitle="true" derivedAnchor="RFC2104">
          <front>
            <title>HMAC: Keyed-Hashing for Message Authentication</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="M. Bellare" initials="M." surname="Bellare"/>
            <author fullname="R. Canetti" initials="R." surname="Canetti"/>
            <date month="February" year="1997"/>
            <abstract>
              <t indent="0">This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2104"/>
          <seriesInfo name="DOI" value="10.17487/RFC2104"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC2631" target="https://www.rfc-editor.org/info/rfc2631" quoteTitle="true" derivedAnchor="RFC2631">
          <front>
            <title>Diffie-Hellman Key Agreement Method</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="June" year="1999"/>
            <abstract>
              <t indent="0">This document standardizes one particular Diffie-Hellman variant, based on the ANSI X9.42 draft, developed by the ANSI X9F1 working group. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2631"/>
          <seriesInfo name="DOI" value="10.17487/RFC2631"/>
        </reference>
        <reference anchor="RFC3370" target="https://www.rfc-editor.org/info/rfc3370" quoteTitle="true" derivedAnchor="RFC3370">
          <front>
            <title>Cryptographic Message Syntax (CMS) Algorithms</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="August" year="2002"/>
          </front>
          <seriesInfo name="RFC" value="3370"/>
          <seriesInfo name="DOI" value="10.17487/RFC3370"/>
        </reference>
        <reference anchor="RFC3394" target="https://www.rfc-editor.org/info/rfc3394" quoteTitle="true" derivedAnchor="RFC3394">
          <front>
            <title>Advanced Encryption Standard (AES) Key Wrap Algorithm</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2002"/>
          </front>
          <seriesInfo name="RFC" value="3394"/>
          <seriesInfo name="DOI" value="10.17487/RFC3394"/>
        </reference>
        <reference anchor="RFC3560" target="https://www.rfc-editor.org/info/rfc3560" quoteTitle="true" derivedAnchor="RFC3560">
          <front>
            <title>Use of the RSAES-OAEP Key Transport Algorithm in Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="July" year="2003"/>
            <abstract>
              <t indent="0">This document describes the conventions for using the RSAES-OAEP key transport algorithm with the Cryptographic Message Syntax (CMS). The CMS specifies the enveloped-data content type, which consists of an encrypted content and encrypted content-encryption keys for one or more recipients. The RSAES-OAEP key transport algorithm can be used to encrypt content-encryption keys for intended recipients. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3560"/>
          <seriesInfo name="DOI" value="10.17487/RFC3560"/>
        </reference>
        <reference anchor="RFC3565" target="https://www.rfc-editor.org/info/rfc3565" quoteTitle="true" derivedAnchor="RFC3565">
          <front>
            <title>Use of the Advanced Encryption Standard (AES) Encryption Algorithm in Cryptographic Message Syntax (CMS)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="July" year="2003"/>
            <abstract>
              <t indent="0">This document specifies the conventions for using the Advanced Encryption Standard (AES) algorithm for encryption with the Cryptographic Message Syntax (CMS). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3565"/>
          <seriesInfo name="DOI" value="10.17487/RFC3565"/>
        </reference>
        <reference anchor="RFC4056" target="https://www.rfc-editor.org/info/rfc4056" quoteTitle="true" derivedAnchor="RFC4056">
          <front>
            <title>Use of the RSASSA-PSS Signature Algorithm in Cryptographic Message Syntax (CMS)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2005"/>
            <abstract>
              <t indent="0">This document specifies the conventions for using the RSASSA-PSS (RSA Probabilistic Signature Scheme) digital signature algorithm with the Cryptographic Message Syntax (CMS). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4056"/>
          <seriesInfo name="DOI" value="10.17487/RFC4056"/>
        </reference>
        <reference anchor="RFC4210" target="https://www.rfc-editor.org/info/rfc4210" quoteTitle="true" derivedAnchor="RFC4210">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP)</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="T. Kause" initials="T." surname="Kause"/>
            <author fullname="T. Mononen" initials="T." surname="Mononen"/>
            <date month="September" year="2005"/>
            <abstract>
              <t indent="0">This document describes the Internet X.509 Public Key Infrastructure (PKI) Certificate Management Protocol (CMP). Protocol messages are defined for X.509v3 certificate creation and management. CMP provides on-line interactions between PKI components, including an exchange between a Certification Authority (CA) and a client system. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4210"/>
          <seriesInfo name="DOI" value="10.17487/RFC4210"/>
        </reference>
        <reference anchor="RFC4211" target="https://www.rfc-editor.org/info/rfc4211" quoteTitle="true" derivedAnchor="RFC4211">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="September" year="2005"/>
            <abstract>
              <t indent="0">This document describes the Certificate Request Message Format (CRMF) syntax and semantics. This syntax is used to convey a request for a certificate to a Certification Authority (CA), possibly via a Registration Authority (RA), for the purposes of X.509 certificate production. The request will typically include a public key and the associated registration information. This document does not define a certificate request protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4211"/>
          <seriesInfo name="DOI" value="10.17487/RFC4211"/>
        </reference>
        <reference anchor="RFC4231" target="https://www.rfc-editor.org/info/rfc4231" quoteTitle="true" derivedAnchor="RFC4231">
          <front>
            <title>Identifiers and Test Vectors for HMAC-SHA-224, HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <date month="December" year="2005"/>
            <abstract>
              <t indent="0">This document provides test vectors for the HMAC-SHA-224, HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512 message authentication schemes. It also provides ASN.1 object identifiers and Uniform Resource Identifiers (URIs) to identify use of these schemes in protocols. The test vectors provided in this document may be used for conformance testing. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4231"/>
          <seriesInfo name="DOI" value="10.17487/RFC4231"/>
        </reference>
        <reference anchor="RFC5480" target="https://www.rfc-editor.org/info/rfc5480" quoteTitle="true" derivedAnchor="RFC5480">
          <front>
            <title>Elliptic Curve Cryptography Subject Public Key Information</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="K. Yiu" initials="K." surname="Yiu"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="March" year="2009"/>
            <abstract>
              <t indent="0">This document specifies the syntax and semantics for the Subject Public Key Information field in certificates that support Elliptic Curve Cryptography. This document updates Sections 2.3.5 and 5, and the ASN.1 module of "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5480"/>
          <seriesInfo name="DOI" value="10.17487/RFC5480"/>
        </reference>
        <reference anchor="RFC5652" target="https://www.rfc-editor.org/info/rfc5652" quoteTitle="true" derivedAnchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t indent="0">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="RFC5753" target="https://www.rfc-editor.org/info/rfc5753" quoteTitle="true" derivedAnchor="RFC5753">
          <front>
            <title>Use of Elliptic Curve Cryptography (ECC) Algorithms in Cryptographic Message Syntax (CMS)</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <date month="January" year="2010"/>
            <abstract>
              <t indent="0">This document describes how to use Elliptic Curve Cryptography (ECC) public key algorithms in the Cryptographic Message Syntax (CMS). The ECC algorithms support the creation of digital signatures and the exchange of keys to encrypt or authenticate content. The definition of the algorithm processing is based on the NIST FIPS 186-3 for digital signature, NIST SP800-56A and SEC1 for key agreement, RFC 3370 and RFC 3565 for key wrap and content encryption, NIST FIPS 180-3 for message digest, SEC1 for key derivation, and RFC 2104 and RFC 4231 for message authentication code standards. This document obsoletes RFC 3278. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5753"/>
          <seriesInfo name="DOI" value="10.17487/RFC5753"/>
        </reference>
        <reference anchor="RFC5754" target="https://www.rfc-editor.org/info/rfc5754" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC8017" target="https://www.rfc-editor.org/info/rfc8017" quoteTitle="true" derivedAnchor="RFC8017">
          <front>
            <title>PKCS #1: RSA Cryptography Specifications Version 2.2</title>
            <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <author fullname="J. Jonsson" initials="J." surname="Jonsson"/>
            <author fullname="A. Rusch" initials="A." surname="Rusch"/>
            <date month="November" year="2016"/>
            <abstract>
              <t indent="0">This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm, covering cryptographic primitives, encryption schemes, signature schemes with appendix, and ASN.1 syntax for representing keys and for identifying the schemes.</t>
              <t indent="0">This document represents a republication of PKCS #1 v2.2 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
              <t indent="0">This document also obsoletes RFC 3447.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8017"/>
          <seriesInfo name="DOI" value="10.17487/RFC8017"/>
        </reference>
        <reference anchor="RFC8018" target="https://www.rfc-editor.org/info/rfc8018" quoteTitle="true" derivedAnchor="RFC8018">
          <front>
            <title>PKCS #5: Password-Based Cryptography Specification Version 2.1</title>
            <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <author fullname="A. Rusch" initials="A." surname="Rusch"/>
            <date month="January" year="2017"/>
            <abstract>
              <t indent="0">This document provides recommendations for the implementation of password-based cryptography, covering key derivation functions, encryption schemes, message authentication schemes, and ASN.1 syntax identifying the techniques.</t>
              <t indent="0">This document represents a republication of PKCS #5 v2.1 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
              <t indent="0">This document also obsoletes RFC 2898.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8018"/>
          <seriesInfo name="DOI" value="10.17487/RFC8018"/>
        </reference>
        <reference anchor="RFC8032" target="https://www.rfc-editor.org/info/rfc8032" quoteTitle="true" derivedAnchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t indent="0">This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="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 indent="0">RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8418" target="https://www.rfc-editor.org/info/rfc8418" quoteTitle="true" derivedAnchor="RFC8418">
          <front>
            <title>Use of the Elliptic Curve Diffie-Hellman Key Agreement Algorithm with X25519 and X448 in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="August" year="2018"/>
            <abstract>
              <t indent="0">This document describes the conventions for using the Elliptic Curve Diffie-Hellman (ECDH) key agreement algorithm with curve25519 and curve448 in the Cryptographic Message Syntax (CMS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8418"/>
          <seriesInfo name="DOI" value="10.17487/RFC8418"/>
        </reference>
        <reference anchor="RFC8419" target="https://www.rfc-editor.org/info/rfc8419" quoteTitle="true" derivedAnchor="RFC8419">
          <front>
            <title>Use of Edwards-Curve Digital Signature Algorithm (EdDSA) Signatures in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="August" year="2018"/>
            <abstract>
              <t indent="0">This document specifies the conventions for using the Edwards-curve Digital Signature Algorithm (EdDSA) for curve25519 and curve448 in the Cryptographic Message Syntax (CMS). For each curve, EdDSA defines the PureEdDSA and HashEdDSA modes. However, the HashEdDSA mode is not used with the CMS. In addition, no context string is used with the CMS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8419"/>
          <seriesInfo name="DOI" value="10.17487/RFC8419"/>
        </reference>
        <reference anchor="RFC8551" target="https://www.rfc-editor.org/info/rfc8551" quoteTitle="true" derivedAnchor="RFC8551">
          <front>
            <title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="B. Ramsdell" initials="B." surname="Ramsdell"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="April" year="2019"/>
            <abstract>
              <t indent="0">This document defines Secure/Multipurpose Internet Mail Extensions (S/MIME) version 4.0. S/MIME provides a consistent way to send and receive secure MIME data. Digital signatures provide authentication, message integrity, and non-repudiation with proof of origin. Encryption provides data confidentiality. Compression can be used to reduce data size. This document obsoletes RFC 5751.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8551"/>
          <seriesInfo name="DOI" value="10.17487/RFC8551"/>
        </reference>
        <reference anchor="RFC8692" target="https://www.rfc-editor.org/info/rfc8692" quoteTitle="true" derivedAnchor="RFC8692">
          <front>
            <title>Internet X.509 Public Key Infrastructure: Additional Algorithm Identifiers for RSASSA-PSS and ECDSA Using SHAKEs</title>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="Q. Dang" initials="Q." surname="Dang"/>
            <date month="December" year="2019"/>
            <abstract>
              <t indent="0">Digital signatures are used to sign messages, X.509 certificates, and Certificate Revocation Lists (CRLs). This document updates the "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile" (RFC 3279) and describes the conventions for using the SHAKE function family in Internet X.509 certificates and revocation lists as one-way hash functions with the RSA Probabilistic signature and Elliptic Curve Digital Signature Algorithm (ECDSA) signature algorithms. The conventions for the associated subject public keys are also described.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8692"/>
          <seriesInfo name="DOI" value="10.17487/RFC8692"/>
        </reference>
        <reference anchor="RFC8702" target="https://www.rfc-editor.org/info/rfc8702" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC9044" target="https://www.rfc-editor.org/info/rfc9044" quoteTitle="true" derivedAnchor="RFC9044">
          <front>
            <title>Using the AES-GMAC Algorithm with the Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="June" year="2021"/>
            <abstract>
              <t indent="0">This document specifies the conventions for using the AES-GMAC Message Authentication Code algorithm with the Cryptographic Message Syntax (CMS) as specified in RFC 5652.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9044"/>
          <seriesInfo name="DOI" value="10.17487/RFC9044"/>
        </reference>
        <reference anchor="RFC9045" target="https://www.rfc-editor.org/info/rfc9045" quoteTitle="true" derivedAnchor="RFC9045">
          <front>
            <title>Algorithm Requirements Update to the Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="June" year="2021"/>
            <abstract>
              <t indent="0">This document updates the cryptographic algorithm requirements for the Password-Based Message Authentication Code in the Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF) specified in RFC 4211.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9045"/>
          <seriesInfo name="DOI" value="10.17487/RFC9045"/>
        </reference>
        <reference anchor="RFC9480" target="https://www.rfc-editor.org/info/rfc9480" quoteTitle="true" derivedAnchor="RFC9480">
          <front>
            <title>Certificate Management Protocol (CMP) Updates</title>
            <author initials="H" surname="Brockhaus" fullname="Hendrik Brockhaus">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D" surname="von Oheimb" fullname="David von Oheimb">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J" surname="Gray" fullname="John Gray">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2023" month="November"/>
          </front>
          <seriesInfo name="RFC" value="9480"/>
          <seriesInfo name="DOI" value="10.17487/RFC9480"/>
        </reference>
        <reference anchor="RFC9483" target="https://www.rfc-editor.org/info/rfc9483" quoteTitle="true" derivedAnchor="RFC9483">
          <front>
            <title>Lightweight Certificate Management Protocol (CMP) Profile</title>
            <author initials="H" surname="Brockhaus" fullname="Hendrik Brockhaus">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D" surname="von Oheimb" fullname="David von Oheimb">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S" surname="Fries" fullname="Steffen Fries">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2023" month="November"/>
          </front>
          <seriesInfo name="RFC" value="9483"/>
          <seriesInfo name="DOI" value="10.17487/RFC9483"/>
        </reference>
      </references>
      <references pn="section-10.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="ECRYPT.CSA.D5.4" target="https://www.ecrypt.eu.org/csa/documents/D5.4-FinalAlgKeySizeProt.pdf" quoteTitle="true" derivedAnchor="ECRYPT.CSA.D5.4">
          <front>
            <title>Algorithms, Key Size and Protocols Report (2018)</title>
            <author>
              <organization showOnFrontPage="true">University of Bristol</organization>
            </author>
            <date month="March" year="2015"/>
          </front>
        </reference>
        <reference anchor="NIST_SP_800_57pt1r5" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf" quoteTitle="true" derivedAnchor="NIST.SP.800-57pt1r5">
          <front>
            <title>Recommendation for key management:part 1 - general</title>
            <author fullname="Elaine Barker" surname="Barker">
              <organization showOnFrontPage="true">Information Technology Laboratory</organization>
            </author>
            <author>
              <organization abbrev="NIST" showOnFrontPage="true">National Institute of Standards and Technology</organization>
              <address>
                <postal>
                  <country>US</country>
                  <city>Gaithersburg</city>
                </postal>
              </address>
            </author>
            <date month="May" year="2020"/>
          </front>
          <seriesInfo name="NIST Special Publications (General)" value="800-57pt1r5"/>
          <seriesInfo name="DOI" value="10.6028/NIST.SP.800-57pt1r5"/>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgements" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">Thanks to <contact fullname="Russ Housley"/> for his work on <xref target="RFC9044" format="default" sectionFormat="of" derivedContent="RFC9044"/> and <xref target="RFC9045" format="default" sectionFormat="of" derivedContent="RFC9045"/> upon which this RFC relies heavily.</t>
      <t indent="0" pn="section-appendix.a-2">May thanks also to all reviewers like <contact fullname="Serge Mister"/>, <contact fullname="Mark Ferreira"/>, <contact fullname="Yuefei Lu"/>, <contact fullname="Tomas Gustavsson"/>, <contact fullname="Lijun Liao"/>, <contact fullname="David von Oheimb"/>, and <contact fullname="Steffen Fries"/> for their input and feedback to this document. Apologies to all not mentioned reviewers and supporters.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
        <organization abbrev="Siemens" showOnFrontPage="true">Siemens AG</organization>
        <address>
          <postal>
            <street>Werner-von-Siemens-Strasse 1</street>
            <code>80333</code>
            <city>Munich</city>
            <country>Germany</country>
          </postal>
          <email>hendrik.brockhaus@siemens.com</email>
          <uri>https://www.siemens.com</uri>
        </address>
      </author>
      <author fullname="Hans Aschauer" initials="H." surname="Aschauer">
        <organization abbrev="Siemens" showOnFrontPage="true">Siemens AG</organization>
        <address>
          <postal>
            <street>Werner-von-Siemens-Strasse 1</street>
            <code>80333</code>
            <city>Munich</city>
            <country>Germany</country>
          </postal>
          <email>hans.aschauer@siemens.com</email>
          <uri>https://www.siemens.com</uri>
        </address>
      </author>
      <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
        <organization abbrev="Entrust" showOnFrontPage="true">Entrust</organization>
        <address>
          <postal>
            <street>1187 Park Place</street>
            <region>MN</region>
            <code>55379</code>
            <city>Minneapolis</city>
            <country>United States of America</country>
          </postal>
          <email>mike.ounsworth@entrust.com</email>
          <uri>https://www.entrust.com</uri>
        </address>
      </author>
      <author fullname="John Gray" initials="J." surname="Gray">
        <organization abbrev="Entrust" showOnFrontPage="true">Entrust</organization>
        <address>
          <postal>
            <street>1187 Park Place</street>
            <region>MN</region>
            <code>55379</code>
            <city>Minneapolis</city>
            <country>United States of America</country>
          </postal>
          <email>john.gray@entrust.com</email>
          <uri>https://www.entrust.com</uri>
        </address>
      </author>
    </section>
  </back>
</rfc>
