<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" ipr="trust200902" submissionType="IETF" consensus="true" docName="draft-ietf-jose-fully-specified-algorithms-13" number="9864" updates="7518, 8037, 9053" obsoletes="" tocInclude="true" tocDepth="5" symRefs="true" sortRefs="true" xml:lang="en" prepTime="2025-10-30T11:53:36" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-jose-fully-specified-algorithms-13" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9864" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Fully-Specified Algorithms">Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
    <seriesInfo name="RFC" value="9864" stream="IETF"/>
    <author fullname="Michael B. Jones" initials="M.B." surname="Jones">
      <organization showOnFrontPage="true">Self-Issued Consulting</organization>
      <address>
        <email>michael_b_jones@hotmail.com</email>
        <uri>https://self-issued.info/</uri>
      </address>
    </author>
    <author fullname="Orie Steele" initials="O." surname="Steele">
      <organization showOnFrontPage="true">Tradeverifyd</organization>
      <address>
        <email>orie@or13.io</email>
      </address>
    </author>
    <date month="10" year="2025"/>
    <area>SEC</area>
    <workgroup>jose</workgroup>
    <keyword>Cryptographic Algorithm Identifiers</keyword>
    <keyword>JSON Object Signing and Encryption (JOSE)</keyword>
    <keyword>CBOR Object Signing and Encryption (COSE)</keyword>
    <keyword>Polymorphic Algorithms</keyword>
    <keyword>Algorithm Cipher Suites</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
	This specification refers to cryptographic algorithm identifiers
	that fully specify the cryptographic operations to be performed,
	including any curve, key derivation function (KDF), and hash functions,
	as being "fully specified".
	It refers to cryptographic algorithm identifiers
	that require additional information beyond the algorithm identifier
	to determine the cryptographic operations to be performed
	as being "polymorphic".
	This specification creates fully-specified algorithm identifiers for registered
	JSON Object Signing and Encryption (JOSE) and
	CBOR Object Signing and Encryption (COSE)
	polymorphic algorithm identifiers,
	enabling applications to use only fully-specified algorithm identifiers.
	It deprecates those polymorphic algorithm identifiers.
      </t>
      <t indent="0" pn="section-abstract-2">
	This specification updates RFCs 7518, 8037, and 9053.
	It deprecates polymorphic algorithms defined by RFCs 8037 and 9053
	and provides fully-specified replacements for them.
	It adds to the instructions to designated experts in RFCs 7518 and 9053.
      </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/rfc9864" 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) 2025 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-requirements-notation-and-c">Requirements Notation and Conventions</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-fully-specified-digital-sig">Fully-Specified Digital Signature Algorithm Identifiers</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-elliptic-curve-digital-sign">Elliptic Curve Digital Signature Algorithm (ECDSA)</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-edwards-curve-digital-signa">Edwards-curve Digital Signature Algorithm (EdDSA)</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-fully-specified-encryption">Fully-Specified Encryption</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-fully-specified-encryption-">Fully-Specified Encryption Algorithms</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-polymorphic-encryption-algo">Polymorphic Encryption Algorithms</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-iana-considerations">IANA Considerations</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-jose-algorithm-registration">JOSE Algorithm Registrations</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-fully-specified-jose-algori">Fully-Specified JOSE Algorithm Registrations</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-deprecated-polymorphic-jose">Deprecated Polymorphic JOSE Algorithm Registration</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-cose-algorithm-registration">COSE Algorithm Registrations</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-fully-specified-cose-algori">Fully-Specified COSE Algorithm Registrations</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.2.2.2.1"><xref derivedContent="4.2.2" format="counter" sectionFormat="of" target="section-4.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-deprecated-polymorphic-cose">Deprecated Polymorphic COSE Algorithm Registrations</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-updated-review-instructions">Updated Review Instructions for Designated Experts</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-json-web-signature-and-encr">JSON Web Signature and Encryption Algorithms</xref></t>
                  </li>
                  <li pn="section-toc.1-1.4.2.3.2.2">
                    <t indent="0" pn="section-toc.1-1.4.2.3.2.2.1"><xref derivedContent="4.3.2" format="counter" sectionFormat="of" target="section-4.3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-cose-algorithms">COSE Algorithms</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-defining-deprecated-and-pro">Defining "Deprecated" and "Prohibited"</xref></t>
              </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-key-representations">Key Representations</xref></t>
          </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-notes-on-algorithms-not-upd">Notes on Algorithms Not Updated</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-rsa-signing-algorithms">RSA Signing Algorithms</xref></t>
              </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-ecdh-key-agreement-algorith">ECDH Key Agreement Algorithms</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-hss-lms-hash-based-digital-">HSS/LMS Hash-Based Digital Signature Algorithm</xref></t>
              </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-security-considerations">Security Considerations</xref></t>
          </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-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.8.2">
              <li pn="section-toc.1-1.8.2.1">
                <t indent="0" pn="section-toc.1-1.8.2.1.1"><xref derivedContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.8.2.2">
                <t indent="0" pn="section-toc.1-1.8.2.2.1"><xref derivedContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.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.10">
            <t indent="0" pn="section-toc.1-1.10.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">
	The IANA algorithm registries for
	JSON Object Signing and Encryption (JOSE) algorithms <xref target="IANA.JOSE" format="default" sectionFormat="of" derivedContent="IANA.JOSE"/> and
	CBOR Object Signing and Encryption (COSE) algorithms <xref target="IANA.COSE" format="default" sectionFormat="of" derivedContent="IANA.COSE"/>
	contain two kinds of algorithm identifiers:
      </t>
      <dl newline="true" spacing="normal" indent="3" pn="section-1-2">
        <dt pn="section-1-2.1">Fully Specified</dt>
        <dd pn="section-1-2.2">
	    Those that fully determine the cryptographic operations to be performed,
	    including any curve, key derivation function (KDF), and hash functions.
	    Examples are <tt>RS256</tt> and <tt>ES256K</tt>
	    in both JOSE <xref target="IANA.JOSE" format="default" sectionFormat="of" derivedContent="IANA.JOSE"/> and COSE <xref target="IANA.COSE" format="default" sectionFormat="of" derivedContent="IANA.COSE"/>
	    and <tt>ES256</tt> in JOSE.
	  </dd>
        <dt pn="section-1-2.3">Polymorphic</dt>
        <dd pn="section-1-2.4">
	    Those requiring information beyond the algorithm identifier
	    to determine the cryptographic operations to be performed.
	    Such additional information could include the actual key value and a curve that it uses.
	    Examples are the Edwards-curve Digital Signature Algorithm (EdDSA)
	    in both JOSE <xref target="IANA.JOSE" format="default" sectionFormat="of" derivedContent="IANA.JOSE"/> and COSE <xref target="IANA.COSE" format="default" sectionFormat="of" derivedContent="IANA.COSE"/>
	    and <tt>ES256</tt> in COSE.
	  </dd>
      </dl>
      <t indent="0" pn="section-1-3">
	This matters because many protocols negotiate supported operations using only algorithm identifiers.
	For instance, OAuth Authorization Server Metadata <xref target="RFC8414" format="default" sectionFormat="of" derivedContent="RFC8414"/>
	uses negotiation parameters like these (from an example in that specification):
      </t>
      <artwork align="left" pn="section-1-4">
  "token_endpoint_auth_signing_alg_values_supported":
    ["RS256", "ES256"]
</artwork>
      <t indent="0" pn="section-1-5">
	OpenID Connect Discovery <xref target="OpenID.Discovery" format="default" sectionFormat="of" derivedContent="OpenID.Discovery"/> likewise negotiates supported algorithms
	using <tt>"alg"</tt> and <tt>"enc"</tt> values.
	W3C Web Authentication <xref target="WebAuthn" format="default" sectionFormat="of" derivedContent="WebAuthn"/> and
	the FIDO Client to Authenticator Protocol (CTAP) <xref target="FIDO2" format="default" sectionFormat="of" derivedContent="FIDO2"/>
	negotiate using COSE <tt>"alg"</tt> numbers.
      </t>
      <t indent="0" pn="section-1-6">
	This does not work for polymorphic algorithms.
	For instance, with <tt>EdDSA</tt>, it is not known which of the curves
	<tt>Ed25519</tt> and/or <tt>Ed448</tt> are supported.
	This causes real problems in practice.
      </t>
      <t indent="0" pn="section-1-7">
	WebAuthn contains this de facto algorithm definition to work around this problem:
      </t>
      <artwork align="left" pn="section-1-8">
  -8 (EdDSA), where crv is 6 (Ed25519)
</artwork>
      <t indent="0" pn="section-1-9">
	This redefines the COSE <tt>EdDSA</tt> algorithm identifier
	for the purposes of WebAuthn to restrict it to using
	the <tt>Ed25519</tt> curve -- making it non-polymorphic
	so that algorithm negotiation can succeed, but also effectively
	eliminating the possibility of using <tt>Ed448</tt>.
	Other similar workarounds for polymorphic algorithm identifiers are used in practice.
      </t>
      <t indent="0" pn="section-1-10">
	Note that using fully-specified algorithms is sometimes
	referred to as the "cipher suite" approach;
	using polymorphic algorithms is sometimes
	referred to as the "à la carte" approach.
      </t>
      <t indent="0" pn="section-1-11">
	This specification creates fully-specified algorithm identifiers for registered
	polymorphic JOSE and COSE algorithms and their parameters,
	enabling applications to use only fully-specified algorithm identifiers.
	Furthermore, it deprecates the practice of registering polymorphic algorithm identifiers.
      </t>
      <section anchor="rnc" numbered="true" removeInRFC="false" toc="include" pn="section-1.1">
        <name slugifiedName="name-requirements-notation-and-c">Requirements Notation and Conventions</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>
      </section>
    </section>
    <section anchor="fully-specified-algs" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-fully-specified-digital-sig">Fully-Specified Digital Signature Algorithm Identifiers</name>
      <t indent="0" pn="section-2-1">
	This section creates fully-specified digital signature algorithm identifiers for a set of registered
	polymorphic JOSE and COSE algorithms and their parameters.
      </t>
      <section anchor="ECDSA" numbered="true" removeInRFC="false" toc="include" pn="section-2.1">
        <name slugifiedName="name-elliptic-curve-digital-sign">Elliptic Curve Digital Signature Algorithm (ECDSA)</name>
        <t indent="0" pn="section-2.1-1">
	  <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/> defines a way to use
	  the Elliptic Curve Digital Signature Algorithm (ECDSA) with COSE.
	  The COSE algorithm registrations for ECDSA are polymorphic,
	  since they do not specify the curve used.
	  For instance, <tt>ES256</tt> is defined as
	  "ECDSA w/ SHA-256" in <xref target="RFC9053" section="2.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9053#section-2.1" derivedContent="RFC9053"/>.
	  (The corresponding JOSE registrations in <xref target="RFC7518" format="default" sectionFormat="of" derivedContent="RFC7518"/> are fully specified.)
        </t>
        <t indent="0" pn="section-2.1-2">
	  The following fully-specified COSE ECDSA algorithms are defined by this specification:
        </t>
        <table anchor="ecdsa-algs" align="center" pn="table-1">
          <name slugifiedName="name-ecdsa-algorithm-values">ECDSA Algorithm Values</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">COSE Value</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">COSE Recommended</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">ESP256</td>
              <td align="left" colspan="1" rowspan="1">-9</td>
              <td align="left" colspan="1" rowspan="1">ECDSA using P-256 curve and SHA-256</td>
              <td align="left" colspan="1" rowspan="1">Yes</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ESP384</td>
              <td align="left" colspan="1" rowspan="1">-51</td>
              <td align="left" colspan="1" rowspan="1">ECDSA using P-384 curve and SHA-384</td>
              <td align="left" colspan="1" rowspan="1">Yes</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ESP512</td>
              <td align="left" colspan="1" rowspan="1">-52</td>
              <td align="left" colspan="1" rowspan="1">ECDSA using P-521 curve and SHA-512</td>
              <td align="left" colspan="1" rowspan="1">Yes</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ESB256</td>
              <td align="left" colspan="1" rowspan="1">-265</td>
              <td align="left" colspan="1" rowspan="1">ECDSA using BrainpoolP256r1 curve and SHA-256</td>
              <td align="left" colspan="1" rowspan="1">No</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ESB320</td>
              <td align="left" colspan="1" rowspan="1">-266</td>
              <td align="left" colspan="1" rowspan="1">ECDSA using BrainpoolP320r1 curve and SHA-384</td>
              <td align="left" colspan="1" rowspan="1">No</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ESB384</td>
              <td align="left" colspan="1" rowspan="1">-267</td>
              <td align="left" colspan="1" rowspan="1">ECDSA using BrainpoolP384r1 curve and SHA-384</td>
              <td align="left" colspan="1" rowspan="1">No</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">ESB512</td>
              <td align="left" colspan="1" rowspan="1">-268</td>
              <td align="left" colspan="1" rowspan="1">ECDSA using BrainpoolP512r1 curve and SHA-512</td>
              <td align="left" colspan="1" rowspan="1">No</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="EdDSA" numbered="true" removeInRFC="false" toc="include" pn="section-2.2">
        <name slugifiedName="name-edwards-curve-digital-signa">Edwards-curve Digital Signature Algorithm (EdDSA)</name>
        <t indent="0" pn="section-2.2-1">
	  <xref target="RFC8037" format="default" sectionFormat="of" derivedContent="RFC8037"/> defines a way to use
	  EdDSA
	  with JOSE, and <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/> defines a way to use it with COSE.
	  Both register polymorphic <tt>EdDSA</tt> algorithm identifiers.
        </t>
        <t indent="0" pn="section-2.2-2">
	  The following fully-specified JOSE and COSE EdDSA algorithms are defined by this specification:
        </t>
        <table anchor="eddsa-algs" align="center" pn="table-2">
          <name slugifiedName="name-eddsa-algorithm-values">EdDSA Algorithm Values</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Name</th>
              <th align="left" colspan="1" rowspan="1">COSE Value</th>
              <th align="left" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">JOSE Implementation Requirements</th>
              <th align="left" colspan="1" rowspan="1">COSE Recommended</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">Ed25519</td>
              <td align="left" colspan="1" rowspan="1">-19</td>
              <td align="left" colspan="1" rowspan="1">EdDSA using the Ed25519 parameter set in <xref target="RFC8032" section="5.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8032#section-5.1" derivedContent="RFC8032"/></td>
              <td align="left" colspan="1" rowspan="1">Optional</td>
              <td align="left" colspan="1" rowspan="1">Yes</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">Ed448</td>
              <td align="left" colspan="1" rowspan="1">-53</td>
              <td align="left" colspan="1" rowspan="1">EdDSA using the Ed448 parameter set in <xref target="RFC8032" section="5.2" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8032#section-5.2" derivedContent="RFC8032"/></td>
              <td align="left" colspan="1" rowspan="1">Optional</td>
              <td align="left" colspan="1" rowspan="1">Yes</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="fully-specified-enc" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-fully-specified-encryption">Fully-Specified Encryption</name>
      <t indent="0" pn="section-3-1">
	This section describes the construction of fully-specified encryption algorithm identifiers in the context of the JOSE and COSE encryption schemes
	JSON Web Encryption (JWE), as described in <xref target="RFC7516" format="default" sectionFormat="of" derivedContent="RFC7516"/> and <xref target="RFC7518" format="default" sectionFormat="of" derivedContent="RFC7518"/>, and COSE
	encryption, as described in <xref target="RFC9052" format="default" sectionFormat="of" derivedContent="RFC9052"/> and <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/>.
      </t>
      <t indent="0" pn="section-3-2">
	Using fully-specified encryption algorithms enables the sender and receiver
	to agree on all mandatory security parameters.
	They also enable protocols to specify an allow list of
	algorithm combinations that does not include polymorphic combinations,
	preventing problems
	such as cross-curve key establishment,
	cross-protocol symmetric encryption,
	or mismatched KDF size to symmetric key scenarios.
      </t>
      <t indent="0" pn="section-3-3">
	Both JOSE and COSE have operations that take multiple algorithms as parameters.
	Encrypted objects in JOSE <xref target="RFC7516" format="default" sectionFormat="of" derivedContent="RFC7516"/> use two algorithm identifiers:
	the first in the <tt>"alg"</tt> (Algorithm) Header Parameter,
	which specifies how to determine the content encryption key, and
	the second in the <tt>"enc"</tt> (Encryption Algorithm) Header Parameter,
	which specifies the content encryption algorithm.
	Likewise, encrypted COSE objects can use multiple algorithms
	for corresponding purposes.
	This section describes how to fully specify encryption algorithms
	for JOSE and COSE.
      </t>
      <t indent="0" pn="section-3-4">
	To perform fully-specified encryption in JOSE,
	the <tt>"alg"</tt> value <bcp14>MUST</bcp14> specify all parameters for key establishment
	or derive some of them from the accompanying <tt>"enc"</tt> value, and
	the <tt>"enc"</tt> value <bcp14>MUST</bcp14> specify all parameters for symmetric encryption.
	For example, encryption via JWE using
	an <tt>"alg"</tt> value of "A128KW" (AES Key Wrap using 128-bit key) and
	an <tt>"enc"</tt> value of "A128GCM" (AES GCM using 128-bit key)
	uses fully-specified algorithms.
      </t>
      <t indent="0" pn="section-3-5">
	Note that in JOSE, there is the option to derive some cryptographic parameters
	used in the <tt>"alg"</tt> computation from the accompanying <tt>"enc"</tt> value.
	For example, the keydatalen KDF parameter value
	for "ECDH-ES" is determined from the <tt>"enc"</tt> value,
	as described in <xref target="RFC7518" section="4.6.2" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7518#section-4.6.2" derivedContent="RFC7518"/>.
	For the purposes of an <tt>"alg"</tt> value being fully specified,
	deriving parameters from <tt>"enc"</tt> does not make the algorithm polymorphic,
	as the computation is still fully determined by the algorithm identifiers used.
	This option is not present in COSE.
      </t>
      <t indent="0" pn="section-3-6">
	To perform fully-specified encryption in COSE,
	the outer <tt>"alg"</tt> value <bcp14>MUST</bcp14> specify all parameters for key establishment, and
	the inner <tt>"alg"</tt> value <bcp14>MUST</bcp14> specify all parameters for symmetric encryption.
	For example, encryption via COSE using
	an outer <tt>"alg"</tt> value of "A128KW" and
	an inner <tt>"alg"</tt> value of "A128GCM"
	uses fully-specified algorithms.
	Note that when using COSE_Encrypt,
	as specified in <xref target="RFC9052" section="5.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9052#section-5.1" derivedContent="RFC9052"/>,
	the outer <tt>"alg"</tt> is communicated in the headers of the COSE_Encrypt object and
	the inner <tt>"alg"</tt> is communicated in the headers of the COSE_recipient object.
      </t>
      <t indent="0" pn="section-3-7">
	While this specification provides a definition of what
	fully-specified encryption algorithm identifiers are for both JOSE and COSE,
	it does not deprecate any polymorphic encryption algorithms,
	since replacements for them are not provided by this specification.
	This is discussed in <xref target="ECDH" format="default" sectionFormat="of" derivedContent="Section 6.2"/>.
      </t>
      <section anchor="fully-spec-enc-algs" numbered="true" removeInRFC="false" toc="include" pn="section-3.1">
        <name slugifiedName="name-fully-specified-encryption-">Fully-Specified Encryption Algorithms</name>
        <t indent="0" pn="section-3.1-1">
	  Many of the registered JOSE and COSE algorithms used for encryption
	  are already fully specified.  This section discusses them.
        </t>
        <t indent="0" pn="section-3.1-2">
	  All the symmetric encryption algorithms registered by <xref target="RFC7518" format="default" sectionFormat="of" derivedContent="RFC7518"/>
	  and <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/> are fully specified.
	  An example of a fully-specified symmetric encryption algorithm is
	  "A128GCM" (AES GCM using 128-bit key).
        </t>
        <t indent="0" pn="section-3.1-3">
	  In both JOSE and COSE,
	  all registered key wrapping algorithms are fully specified,
	  as are the algorithms performing key wrapping using AES GCM.
	  An example of a fully-specified key wrapping algorithm is
	  "A128KW" (AES Key Wrap using 128-bit key).
        </t>
        <t indent="0" pn="section-3.1-4">
	  The JOSE "dir" and COSE "direct" algorithms are fully specified.
	  The COSE direct+HKDF algorithms are fully specified.
        </t>
        <t indent="0" pn="section-3.1-5">
	  The JOSE algorithms performing Key Encryption with PBES2 are fully specified.
        </t>
      </section>
      <section anchor="polymorphic-enc-algs" numbered="true" removeInRFC="false" toc="include" pn="section-3.2">
        <name slugifiedName="name-polymorphic-encryption-algo">Polymorphic Encryption Algorithms</name>
        <t indent="0" pn="section-3.2-1">
	  Some of the registered JOSE and COSE algorithms used for encryption
	  are polymorphic.  This section discusses them.
        </t>
        <t indent="0" pn="section-3.2-2">
	  The Elliptic Curve Diffie-Hellman (ECDH) key establishment algorithms in both JOSE and COSE
	  are polymorphic because they do not specify the elliptic curve
	  to be used for the key.
	  This is true of the ephemeral key for the Ephemeral-Static (ES) algorithms
	  registered for JOSE and COSE and of the static key for
	  the Static-Static (SS) algorithms registered by COSE.
	  See more discussion of ECDH algorithms in <xref target="ECDH" format="default" sectionFormat="of" derivedContent="Section 6.2"/>.
        </t>
      </section>
    </section>
    <section anchor="IANA" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="jose-algorithm-registration" numbered="true" removeInRFC="false" toc="include" pn="section-4.1">
        <name slugifiedName="name-jose-algorithm-registration">JOSE Algorithm Registrations</name>
        <t indent="0" pn="section-4.1-1">IANA has registered the values in this section in the "JSON Web 
 Signature and Encryption Algorithms" registry <xref target="IANA.JOSE" format="default" sectionFormat="of" derivedContent="IANA.JOSE"/>
 established by <xref target="RFC7518" format="default" sectionFormat="of" derivedContent="RFC7518"/> and has listed this document as an additional reference for the registry.
        </t>
        <section anchor="new-jose-regs" numbered="true" removeInRFC="false" toc="include" pn="section-4.1.1">
          <name slugifiedName="name-fully-specified-jose-algori">Fully-Specified JOSE Algorithm Registrations</name>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.1.1-1">
            <dt pn="section-4.1.1-1.1">Algorithm Name:</dt>
            <dd pn="section-4.1.1-1.2">Ed25519</dd>
            <dt pn="section-4.1.1-1.3">Algorithm Description:</dt>
            <dd pn="section-4.1.1-1.4">EdDSA using the Ed25519 parameter set in <xref target="RFC8032" section="5.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8032#section-5.1" derivedContent="RFC8032"/></dd>
            <dt pn="section-4.1.1-1.5">Algorithm Usage Locations:</dt>
            <dd pn="section-4.1.1-1.6">alg</dd>
            <dt pn="section-4.1.1-1.7">JOSE Implementation Requirements:</dt>
            <dd pn="section-4.1.1-1.8">Optional</dd>
            <dt pn="section-4.1.1-1.9">Change Controller:</dt>
            <dd pn="section-4.1.1-1.10">IETF</dd>
            <dt pn="section-4.1.1-1.11">Reference:</dt>
            <dd pn="section-4.1.1-1.12">
              <xref target="EdDSA" format="default" sectionFormat="of" derivedContent="Section 2.2"/> of RFC 9864</dd>
            <dt pn="section-4.1.1-1.13">Algorithm Analysis Document(s):</dt>
            <dd pn="section-4.1.1-1.14">
              <xref target="RFC8032" format="default" sectionFormat="of" derivedContent="RFC8032"/></dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.1.1-2">
            <dt pn="section-4.1.1-2.1">Algorithm Name:</dt>
            <dd pn="section-4.1.1-2.2">Ed448</dd>
            <dt pn="section-4.1.1-2.3">Algorithm Description:</dt>
            <dd pn="section-4.1.1-2.4">EdDSA using the Ed448 parameter set in <xref target="RFC8032" section="5.2" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8032#section-5.2" derivedContent="RFC8032"/></dd>
            <dt pn="section-4.1.1-2.5">Algorithm Usage Locations:</dt>
            <dd pn="section-4.1.1-2.6">alg</dd>
            <dt pn="section-4.1.1-2.7">JOSE Implementation Requirements:</dt>
            <dd pn="section-4.1.1-2.8">Optional</dd>
            <dt pn="section-4.1.1-2.9">Change Controller:</dt>
            <dd pn="section-4.1.1-2.10">IETF</dd>
            <dt pn="section-4.1.1-2.11">Reference:</dt>
            <dd pn="section-4.1.1-2.12">
              <xref target="EdDSA" format="default" sectionFormat="of" derivedContent="Section 2.2"/> of RFC 9864</dd>
            <dt pn="section-4.1.1-2.13">Algorithm Analysis Document(s):</dt>
            <dd pn="section-4.1.1-2.14">
              <xref target="RFC8032" format="default" sectionFormat="of" derivedContent="RFC8032"/></dd>
          </dl>
        </section>
        <section anchor="deprecated-jose-regs" numbered="true" removeInRFC="false" toc="include" pn="section-4.1.2">
          <name slugifiedName="name-deprecated-polymorphic-jose">Deprecated Polymorphic JOSE Algorithm Registration</name>
          <t indent="0" pn="section-4.1.2-1">
	    IANA has updated the status to "Deprecated" for the following registration.
          </t>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.1.2-2">
            <dt pn="section-4.1.2-2.1">Algorithm Name:</dt>
            <dd pn="section-4.1.2-2.2">EdDSA</dd>
            <dt pn="section-4.1.2-2.3">Algorithm Description:</dt>
            <dd pn="section-4.1.2-2.4">EdDSA signature algorithms</dd>
            <dt pn="section-4.1.2-2.5">Algorithm Usage Locations:</dt>
            <dd pn="section-4.1.2-2.6">alg</dd>
            <dt pn="section-4.1.2-2.7">JOSE Implementation Requirements:</dt>
            <dd pn="section-4.1.2-2.8">Deprecated</dd>
            <dt pn="section-4.1.2-2.9">Change Controller:</dt>
            <dd pn="section-4.1.2-2.10">IETF</dd>
            <dt pn="section-4.1.2-2.11">Reference:</dt>
            <dd pn="section-4.1.2-2.12">
              <xref target="EdDSA" format="default" sectionFormat="of" derivedContent="Section 2.2"/> of RFC 9864</dd>
            <dt pn="section-4.1.2-2.13">Algorithm Analysis Document(s):</dt>
            <dd pn="section-4.1.2-2.14">
              <xref target="RFC8032" format="default" sectionFormat="of" derivedContent="RFC8032"/></dd>
          </dl>
        </section>
      </section>
      <section anchor="cose-algorithms-registrations" numbered="true" removeInRFC="false" toc="include" pn="section-4.2">
        <name slugifiedName="name-cose-algorithm-registration">COSE Algorithm Registrations</name>
        <t indent="0" pn="section-4.2-1">
	  IANA has registered the following values in the
	  "COSE Algorithms" registry <xref target="IANA.COSE" format="default" sectionFormat="of" derivedContent="IANA.COSE"/> established by <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/> and <xref target="RFC9054" format="default" sectionFormat="of" derivedContent="RFC9054"/> and has added this document as an additional reference for the registry.
        </t>
        <section anchor="new-cose-regs" numbered="true" removeInRFC="false" toc="include" pn="section-4.2.1">
          <name slugifiedName="name-fully-specified-cose-algori">Fully-Specified COSE Algorithm Registrations</name>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.1-1">
            <dt pn="section-4.2.1-1.1">Name:</dt>
            <dd pn="section-4.2.1-1.2">ESP256</dd>
            <dt pn="section-4.2.1-1.3">Value:</dt>
            <dd pn="section-4.2.1-1.4">-9</dd>
            <dt pn="section-4.2.1-1.5">Description:</dt>
            <dd pn="section-4.2.1-1.6">ECDSA using P-256 curve and SHA-256</dd>
            <dt pn="section-4.2.1-1.7">Capabilities:</dt>
            <dd pn="section-4.2.1-1.8">[kty]</dd>
            <dt pn="section-4.2.1-1.9">Change Controller:</dt>
            <dd pn="section-4.2.1-1.10">IETF</dd>
            <dt pn="section-4.2.1-1.11">Reference:</dt>
            <dd pn="section-4.2.1-1.12">
              <xref target="ECDSA" format="default" sectionFormat="of" derivedContent="Section 2.1"/> of RFC 9864</dd>
            <dt pn="section-4.2.1-1.13">Recommended:</dt>
            <dd pn="section-4.2.1-1.14">Yes</dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.1-2">
            <dt pn="section-4.2.1-2.1">Name:</dt>
            <dd pn="section-4.2.1-2.2">ESP384</dd>
            <dt pn="section-4.2.1-2.3">Value:</dt>
            <dd pn="section-4.2.1-2.4">-51</dd>
            <dt pn="section-4.2.1-2.5">Description:</dt>
            <dd pn="section-4.2.1-2.6">ECDSA using P-384 curve and SHA-384</dd>
            <dt pn="section-4.2.1-2.7">Capabilities:</dt>
            <dd pn="section-4.2.1-2.8">[kty]</dd>
            <dt pn="section-4.2.1-2.9">Change Controller:</dt>
            <dd pn="section-4.2.1-2.10">IETF</dd>
            <dt pn="section-4.2.1-2.11">Reference:</dt>
            <dd pn="section-4.2.1-2.12">
              <xref target="ECDSA" format="default" sectionFormat="of" derivedContent="Section 2.1"/> of RFC 9864</dd>
            <dt pn="section-4.2.1-2.13">Recommended:</dt>
            <dd pn="section-4.2.1-2.14">Yes</dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.1-3">
            <dt pn="section-4.2.1-3.1">Name:</dt>
            <dd pn="section-4.2.1-3.2">ESP512</dd>
            <dt pn="section-4.2.1-3.3">Value:</dt>
            <dd pn="section-4.2.1-3.4">-52</dd>
            <dt pn="section-4.2.1-3.5">Description:</dt>
            <dd pn="section-4.2.1-3.6">ECDSA using P-521 curve and SHA-512</dd>
            <dt pn="section-4.2.1-3.7">Capabilities:</dt>
            <dd pn="section-4.2.1-3.8">[kty]</dd>
            <dt pn="section-4.2.1-3.9">Change Controller:</dt>
            <dd pn="section-4.2.1-3.10">IETF</dd>
            <dt pn="section-4.2.1-3.11">Reference:</dt>
            <dd pn="section-4.2.1-3.12">
              <xref target="ECDSA" format="default" sectionFormat="of" derivedContent="Section 2.1"/> of RFC 9864</dd>
            <dt pn="section-4.2.1-3.13">Recommended:</dt>
            <dd pn="section-4.2.1-3.14">Yes</dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.1-4">
            <dt pn="section-4.2.1-4.1">Name:</dt>
            <dd pn="section-4.2.1-4.2">ESB256</dd>
            <dt pn="section-4.2.1-4.3">Value:</dt>
            <dd pn="section-4.2.1-4.4">-265</dd>
            <dt pn="section-4.2.1-4.5">Description:</dt>
            <dd pn="section-4.2.1-4.6">ECDSA using BrainpoolP256r1 curve and SHA-256</dd>
            <dt pn="section-4.2.1-4.7">Capabilities:</dt>
            <dd pn="section-4.2.1-4.8">[kty]</dd>
            <dt pn="section-4.2.1-4.9">Change Controller:</dt>
            <dd pn="section-4.2.1-4.10">IETF</dd>
            <dt pn="section-4.2.1-4.11">Reference:</dt>
            <dd pn="section-4.2.1-4.12">
              <xref target="ECDSA" format="default" sectionFormat="of" derivedContent="Section 2.1"/> of RFC 9864</dd>
            <dt pn="section-4.2.1-4.13">Recommended:</dt>
            <dd pn="section-4.2.1-4.14">No</dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.1-5">
            <dt pn="section-4.2.1-5.1">Name:</dt>
            <dd pn="section-4.2.1-5.2">ESB320</dd>
            <dt pn="section-4.2.1-5.3">Value:</dt>
            <dd pn="section-4.2.1-5.4">-266</dd>
            <dt pn="section-4.2.1-5.5">Description:</dt>
            <dd pn="section-4.2.1-5.6">ECDSA using BrainpoolP320r1 curve and SHA-384</dd>
            <dt pn="section-4.2.1-5.7">Capabilities:</dt>
            <dd pn="section-4.2.1-5.8">[kty]</dd>
            <dt pn="section-4.2.1-5.9">Change Controller:</dt>
            <dd pn="section-4.2.1-5.10">IETF</dd>
            <dt pn="section-4.2.1-5.11">Reference:</dt>
            <dd pn="section-4.2.1-5.12">
              <xref target="ECDSA" format="default" sectionFormat="of" derivedContent="Section 2.1"/> of RFC 9864</dd>
            <dt pn="section-4.2.1-5.13">Recommended:</dt>
            <dd pn="section-4.2.1-5.14">No</dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.1-6">
            <dt pn="section-4.2.1-6.1">Name:</dt>
            <dd pn="section-4.2.1-6.2">ESB384</dd>
            <dt pn="section-4.2.1-6.3">Value:</dt>
            <dd pn="section-4.2.1-6.4">-267</dd>
            <dt pn="section-4.2.1-6.5">Description:</dt>
            <dd pn="section-4.2.1-6.6">ECDSA using BrainpoolP384r1 curve and SHA-384</dd>
            <dt pn="section-4.2.1-6.7">Capabilities:</dt>
            <dd pn="section-4.2.1-6.8">[kty]</dd>
            <dt pn="section-4.2.1-6.9">Change Controller:</dt>
            <dd pn="section-4.2.1-6.10">IETF</dd>
            <dt pn="section-4.2.1-6.11">Reference:</dt>
            <dd pn="section-4.2.1-6.12">
              <xref target="ECDSA" format="default" sectionFormat="of" derivedContent="Section 2.1"/> of RFC 9864</dd>
            <dt pn="section-4.2.1-6.13">Recommended:</dt>
            <dd pn="section-4.2.1-6.14">No</dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.1-7">
            <dt pn="section-4.2.1-7.1">Name:</dt>
            <dd pn="section-4.2.1-7.2">ESB512</dd>
            <dt pn="section-4.2.1-7.3">Value:</dt>
            <dd pn="section-4.2.1-7.4">-268</dd>
            <dt pn="section-4.2.1-7.5">Description:</dt>
            <dd pn="section-4.2.1-7.6">ECDSA using BrainpoolP512r1 curve and SHA-512</dd>
            <dt pn="section-4.2.1-7.7">Capabilities:</dt>
            <dd pn="section-4.2.1-7.8">[kty]</dd>
            <dt pn="section-4.2.1-7.9">Change Controller:</dt>
            <dd pn="section-4.2.1-7.10">IETF</dd>
            <dt pn="section-4.2.1-7.11">Reference:</dt>
            <dd pn="section-4.2.1-7.12">
              <xref target="ECDSA" format="default" sectionFormat="of" derivedContent="Section 2.1"/> of RFC 9864</dd>
            <dt pn="section-4.2.1-7.13">Recommended:</dt>
            <dd pn="section-4.2.1-7.14">No</dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.1-8">
            <dt pn="section-4.2.1-8.1">Name:</dt>
            <dd pn="section-4.2.1-8.2">Ed25519</dd>
            <dt pn="section-4.2.1-8.3">Value:</dt>
            <dd pn="section-4.2.1-8.4">-19</dd>
            <dt pn="section-4.2.1-8.5">Description:</dt>
            <dd pn="section-4.2.1-8.6">EdDSA using the Ed25519 parameter set in <xref target="RFC8032" section="5.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8032#section-5.1" derivedContent="RFC8032"/></dd>
            <dt pn="section-4.2.1-8.7">Capabilities:</dt>
            <dd pn="section-4.2.1-8.8">[kty]</dd>
            <dt pn="section-4.2.1-8.9">Change Controller:</dt>
            <dd pn="section-4.2.1-8.10">IETF</dd>
            <dt pn="section-4.2.1-8.11">Reference:</dt>
            <dd pn="section-4.2.1-8.12">
              <xref target="EdDSA" format="default" sectionFormat="of" derivedContent="Section 2.2"/> of RFC 9864</dd>
            <dt pn="section-4.2.1-8.13">Recommended:</dt>
            <dd pn="section-4.2.1-8.14">Yes</dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.1-9">
            <dt pn="section-4.2.1-9.1">Name:</dt>
            <dd pn="section-4.2.1-9.2">Ed448</dd>
            <dt pn="section-4.2.1-9.3">Value:</dt>
            <dd pn="section-4.2.1-9.4">-53</dd>
            <dt pn="section-4.2.1-9.5">Description:</dt>
            <dd pn="section-4.2.1-9.6">EdDSA using the Ed448 parameter set in <xref target="RFC8032" section="5.2" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc8032#section-5.2" derivedContent="RFC8032"/></dd>
            <dt pn="section-4.2.1-9.7">Capabilities:</dt>
            <dd pn="section-4.2.1-9.8">[kty]</dd>
            <dt pn="section-4.2.1-9.9">Change Controller:</dt>
            <dd pn="section-4.2.1-9.10">IETF</dd>
            <dt pn="section-4.2.1-9.11">Reference:</dt>
            <dd pn="section-4.2.1-9.12">
              <xref target="EdDSA" format="default" sectionFormat="of" derivedContent="Section 2.2"/> of RFC 9864</dd>
            <dt pn="section-4.2.1-9.13">Recommended:</dt>
            <dd pn="section-4.2.1-9.14">Yes</dd>
          </dl>
        </section>
        <section anchor="deprecated-cose-regs" numbered="true" removeInRFC="false" toc="include" pn="section-4.2.2">
          <name slugifiedName="name-deprecated-polymorphic-cose">Deprecated Polymorphic COSE Algorithm Registrations</name>
          <t indent="0" pn="section-4.2.2-1">
	    IANA has updated the status to "Deprecated" and has added this document as a reference for the following registrations.
          </t>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.2-2">
            <dt pn="section-4.2.2-2.1">Name:</dt>
            <dd pn="section-4.2.2-2.2">ES256</dd>
            <dt pn="section-4.2.2-2.3">Value:</dt>
            <dd pn="section-4.2.2-2.4">-7</dd>
            <dt pn="section-4.2.2-2.5">Description:</dt>
            <dd pn="section-4.2.2-2.6">ECDSA w/ SHA-256</dd>
            <dt pn="section-4.2.2-2.7">Capabilities:</dt>
            <dd pn="section-4.2.2-2.8">[kty]</dd>
            <dt pn="section-4.2.2-2.9">Change Controller:</dt>
            <dd pn="section-4.2.2-2.10">IETF</dd>
            <dt pn="section-4.2.2-2.11">Reference:</dt>
            <dd pn="section-4.2.2-2.12">
              <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/> and RFC 9864</dd>
            <dt pn="section-4.2.2-2.13">Recommended:</dt>
            <dd pn="section-4.2.2-2.14">Deprecated</dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.2-3">
            <dt pn="section-4.2.2-3.1">Name:</dt>
            <dd pn="section-4.2.2-3.2">ES384</dd>
            <dt pn="section-4.2.2-3.3">Value:</dt>
            <dd pn="section-4.2.2-3.4">-35</dd>
            <dt pn="section-4.2.2-3.5">Description:</dt>
            <dd pn="section-4.2.2-3.6">ECDSA w/ SHA-384</dd>
            <dt pn="section-4.2.2-3.7">Capabilities:</dt>
            <dd pn="section-4.2.2-3.8">[kty]</dd>
            <dt pn="section-4.2.2-3.9">Change Controller:</dt>
            <dd pn="section-4.2.2-3.10">IETF</dd>
            <dt pn="section-4.2.2-3.11">Reference:</dt>
            <dd pn="section-4.2.2-3.12">
              <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/> and RFC 9864</dd>
            <dt pn="section-4.2.2-3.13">Recommended:</dt>
            <dd pn="section-4.2.2-3.14">Deprecated</dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.2-4">
            <dt pn="section-4.2.2-4.1">Name:</dt>
            <dd pn="section-4.2.2-4.2">ES512</dd>
            <dt pn="section-4.2.2-4.3">Value:</dt>
            <dd pn="section-4.2.2-4.4">-36</dd>
            <dt pn="section-4.2.2-4.5">Description:</dt>
            <dd pn="section-4.2.2-4.6">ECDSA w/ SHA-512</dd>
            <dt pn="section-4.2.2-4.7">Capabilities:</dt>
            <dd pn="section-4.2.2-4.8">[kty]</dd>
            <dt pn="section-4.2.2-4.9">Change Controller:</dt>
            <dd pn="section-4.2.2-4.10">IETF</dd>
            <dt pn="section-4.2.2-4.11">Reference:</dt>
            <dd pn="section-4.2.2-4.12">
              <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/> and RFC 9864</dd>
            <dt pn="section-4.2.2-4.13">Recommended:</dt>
            <dd pn="section-4.2.2-4.14">Deprecated</dd>
          </dl>
          <dl newline="false" spacing="compact" indent="3" pn="section-4.2.2-5">
            <dt pn="section-4.2.2-5.1">Name:</dt>
            <dd pn="section-4.2.2-5.2">EdDSA</dd>
            <dt pn="section-4.2.2-5.3">Value:</dt>
            <dd pn="section-4.2.2-5.4">-8</dd>
            <dt pn="section-4.2.2-5.5">Description:</dt>
            <dd pn="section-4.2.2-5.6">EdDSA</dd>
            <dt pn="section-4.2.2-5.7">Capabilities:</dt>
            <dd pn="section-4.2.2-5.8">[kty]</dd>
            <dt pn="section-4.2.2-5.9">Change Controller:</dt>
            <dd pn="section-4.2.2-5.10">IETF</dd>
            <dt pn="section-4.2.2-5.11">Reference:</dt>
            <dd pn="section-4.2.2-5.12">
              <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/> and RFC 9864</dd>
            <dt pn="section-4.2.2-5.13">Recommended:</dt>
            <dd pn="section-4.2.2-5.14">Deprecated</dd>
          </dl>
        </section>
      </section>
      <section anchor="UpdatedInstructions" numbered="true" removeInRFC="false" toc="include" pn="section-4.3">
        <name slugifiedName="name-updated-review-instructions">Updated Review Instructions for Designated Experts</name>
        <section anchor="UpdatedInstructions1" numbered="true" removeInRFC="false" toc="include" pn="section-4.3.1">
          <name slugifiedName="name-json-web-signature-and-encr">JSON Web Signature and Encryption Algorithms</name>
          <t indent="0" pn="section-4.3.1-1">
	  The review instructions for the designated experts <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/> for the
	  "JSON Web Signature and Encryption Algorithms" registry <xref target="IANA.JOSE" format="default" sectionFormat="of" derivedContent="IANA.JOSE"/>
	  in <xref target="RFC7518" section="7.1" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc7518#section-7.1" derivedContent="RFC7518"/>
	  have been updated to include an additional review criterion:
          </t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.3.1-2">
            <li pn="section-4.3.1-2.1">
              <t indent="0" pn="section-4.3.1-2.1.1">
				Only fully-specified algorithm identifiers may be registered.
	      Polymorphic algorithm identifiers must not be registered.
              </t>
            </li>
          </ul>
        </section>
        <section anchor="UpdatedInstructions2" numbered="true" removeInRFC="false" toc="include" pn="section-4.3.2">
          <name slugifiedName="name-cose-algorithms">COSE Algorithms</name>
          <t indent="0" pn="section-4.3.2-1">
	  The review instructions for the designated experts <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/> for the
	  "COSE Algorithms" registry <xref target="IANA.COSE" format="default" sectionFormat="of" derivedContent="IANA.COSE"/>
	  in <xref target="RFC9053" section="10.4" format="default" sectionFormat="of" derivedLink="https://rfc-editor.org/rfc/rfc9053#section-10.4" derivedContent="RFC9053"/>
	  have been updated to include an additional review criterion:
          </t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.3.2-2">
            <li pn="section-4.3.2-2.1">
              <t indent="0" pn="section-4.3.2-2.1.1">
				Only fully-specified algorithm identifiers may be registered.
	      Polymorphic algorithm identifiers must not be registered.
              </t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="DeprecatedProhibited" numbered="true" removeInRFC="false" toc="include" pn="section-4.4">
        <name slugifiedName="name-defining-deprecated-and-pro">Defining "Deprecated" and "Prohibited"</name>
        <t indent="0" pn="section-4.4-1">
	  The terms "Deprecated" and "Prohibited"
	  as used by JOSE and COSE registrations are currently undefined.
	  Furthermore, while in <xref target="RFC7518" format="default" sectionFormat="of" derivedContent="RFC7518"/> JOSE specifies that both
	  "Deprecated" and "Prohibited" can be used,
	  in <xref target="RFC8152" format="default" sectionFormat="of" derivedContent="RFC8152"/> COSE specifies
	  the use of "Deprecated" but not "Prohibited".
          (Note that <xref target="RFC8152" format="default" sectionFormat="of" derivedContent="RFC8152"/> has been obsoleted by <xref target="RFC9052" format="default" sectionFormat="of" derivedContent="RFC9052"/>.)
	  This section defines these terms for use by both
	  JOSE and COSE IANA registrations in a consistent manner,
	  eliminating this potentially confusing inconsistency.
        </t>
        <t indent="0" pn="section-4.4-2">
	  For purposes of use in the "JOSE Implementation Requirements" columns
	  in the IANA JOSE registries <xref target="IANA.JOSE" format="default" sectionFormat="of" derivedContent="IANA.JOSE"/> and
	  in the "Recommended" columns
	  in the IANA COSE registries <xref target="IANA.COSE" format="default" sectionFormat="of" derivedContent="IANA.COSE"/>,
	  these terms are defined as follows:
        </t>
        <dl newline="true" spacing="normal" indent="3" pn="section-4.4-3">
          <dt pn="section-4.4-3.1">Deprecated</dt>
          <dd pn="section-4.4-3.2">
	      There is a preferred mechanism to achieve functionality
	      similar to that referenced by the identifier;
	      this replacement functionality <bcp14>SHOULD</bcp14> be utilized in new deployments
	      in preference to the deprecated identifier, unless there exist documented operational
	      or regulatory requirements that prevent migration away from the deprecated identifier.
	    </dd>
          <dt pn="section-4.4-3.3">Prohibited</dt>
          <dd pn="section-4.4-3.4">
	      The identifier and the functionality that it references <bcp14>MUST NOT</bcp14> be used.
	      (Identifiers may be designated as "Prohibited" due to security flaws,
	      for instance.)
	    </dd>
        </dl>
        <t indent="0" pn="section-4.4-4">
	  For completeness, these definitions bring the set of defined terms
	  for use in the "Recommended" columns
	  in the IANA COSE registries <xref target="IANA.COSE" format="default" sectionFormat="of" derivedContent="IANA.COSE"/> to
	  "Yes" <xref target="RFC8152" format="default" sectionFormat="of" derivedContent="RFC8152"/>,
	  "No" <xref target="RFC8152" format="default" sectionFormat="of" derivedContent="RFC8152"/>,
	  "Filter Only" <xref target="RFC9054" format="default" sectionFormat="of" derivedContent="RFC9054"/>,
	  "Prohibited",
	  and
	  "Deprecated".
	  This updates the definitions of the "Recommended" columns
	  in these registries to be:
        </t>
        <dl newline="true" spacing="normal" indent="3" pn="section-4.4-5">
          <dt pn="section-4.4-5.1">Recommended</dt>
          <dd pn="section-4.4-5.2">
	      Does the IETF have a consensus recommendation to use the algorithm?
	      The legal values are
	      "Yes",
	      "No",
	      "Filter Only",
	      "Prohibited",
	      and
	      "Deprecated".
	    </dd>
        </dl>
        <t indent="0" pn="section-4.4-6">
	  The set of defined terms
	  for use in the "JOSE Implementation Requirements" columns
	  in the IANA JOSE registries <xref target="IANA.JOSE" format="default" sectionFormat="of" derivedContent="IANA.JOSE"/>
	  are unchanged.
        </t>
        <t indent="0" pn="section-4.4-7">
	  Note that the terms "Deprecated" and "Prohibited" have been used
	  with a multiplicity of different meanings in various specifications,
	  sometimes without actually being defined in those specifications.
	  For instance, a variation of the term "Deprecated" is used in the title of
	  <xref target="RFC8996" format="default" sectionFormat="of" derivedContent="RFC8996"/>, but the actual specification text
	  uses the terminology "<bcp14>MUST NOT</bcp14> be used".
        </t>
        <t indent="0" pn="section-4.4-8">
	  The definitions above were chosen because they are consistent with
	  all existing registrations in both JOSE and COSE;
	  none will need to change.
	  Furthermore, they are consistent with their existing usage in JOSE.
	  The only net change is to enable a clear distinction between
	  "Deprecated" and "Prohibited" in future COSE registrations.
        </t>
      </section>
    </section>
    <section anchor="Keys" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-key-representations">Key Representations</name>
      <t indent="0" pn="section-5-1">
	The key representations for the new fully-specified algorithms
	defined by this specification are the same as those for the
	polymorphic algorithms that they replace,
	other than the <tt>"alg"</tt> value, if included.
	For instance, the representation for a key used with the
	<tt>Ed25519</tt> algorithm is the same as that specified
	in <xref target="RFC8037" format="default" sectionFormat="of" derivedContent="RFC8037"/>, except that the <tt>"alg"</tt>
	value would be <tt>Ed25519</tt> rather than
	<tt>EdDSA</tt>, if included.
      </t>
    </section>
    <section anchor="NotUpdated" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-notes-on-algorithms-not-upd">Notes on Algorithms Not Updated</name>
      <t indent="0" pn="section-6-1">
	Some existing polymorphic algorithms
	are not updated by this specification.
	This section discusses why they have not been updated.
      </t>
      <section anchor="RSA" numbered="true" removeInRFC="false" toc="include" pn="section-6.1">
        <name slugifiedName="name-rsa-signing-algorithms">RSA Signing Algorithms</name>
        <t indent="0" pn="section-6.1-1">
	  There are different points of view on whether the
	  <tt>RS256</tt>,
	  <tt>RS384</tt>, and
	  <tt>RS512</tt> algorithms
	  should be considered fully specified or not,
	  because they can operate on keys of different sizes.
	  For instance, they can use both 2048- and 4096-bit keys.
	  The same is true of the <tt>PS*</tt> algorithms.
        </t>
        <t indent="0" pn="section-6.1-2">
	  This document does not describe or request registration of any
 fully-specified RSA algorithms. Some RSA signing implementations, such as
	  FIPS-compliant Hardware Security Modules (HSMs) <xref target="FIPS.140-3" format="default" sectionFormat="of" derivedContent="FIPS.140-3"/>
	  limit RSA key parameters to specific values with acceptable security characteristics.
	  This approach could be extended to define fully-specified RSA algorithms in the future.
        </t>
        <t indent="0" pn="section-6.1-3">
	  That said, should it be useful at some point to have
	  RSA algorithm identifiers that are specific to particular key characteristics,
	  a future specification could always register them.
        </t>
      </section>
      <section anchor="ECDH" numbered="true" removeInRFC="false" toc="include" pn="section-6.2">
        <name slugifiedName="name-ecdh-key-agreement-algorith">ECDH Key Agreement Algorithms</name>
        <t indent="0" pn="section-6.2-1">
	  This specification does not update the
	  ECDH algorithms,
	  but it describes how to potentially do so in the future, if needed.
	  The registered JOSE and COSE ECDH algorithms are polymorphic
	  because they do not specify the curve to be used for the ephemeral key.
        </t>
        <t indent="0" pn="section-6.2-2">
	  Fully-specified versions of these algorithms would specify all choices
	  needed, including the KDF and the curve.
	  For instance, an algorithm performing
	  ECDH-ES using the Concat KDF and the P-256 curve
	  would be fully specified and could be defined and registered.
	  While this specification does not
	  define and register such replacement algorithms,
	  other specifications could do so in the future, if desired.
        </t>
      </section>
      <section anchor="HSS-LMS" numbered="true" removeInRFC="false" toc="include" pn="section-6.3">
        <name slugifiedName="name-hss-lms-hash-based-digital-">HSS/LMS Hash-Based Digital Signature Algorithm</name>
        <t indent="0" pn="section-6.3-1">
	  The HSS-LMS algorithm registered by COSE is polymorphic.
	  It is polymorphic because the algorithm identifier does not specify
	  the hash function to be used.
	  Like ECDH, this specification does not register replacement
	  algorithms, but future specifications could do so.
        </t>
      </section>
    </section>
    <section anchor="Security" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-7-1">
	The security considerations for ECDSA in <xref target="RFC7518" format="default" sectionFormat="of" derivedContent="RFC7518"/>,
	for EdDSA in <xref target="RFC8037" format="default" sectionFormat="of" derivedContent="RFC8037"/>, and
	for ECDSA and EdDSA in <xref target="RFC9053" format="default" sectionFormat="of" derivedContent="RFC9053"/> apply.
      </t>
      <t indent="0" pn="section-7-2">
	The security considerations for preventing cross-protocol attacks
	described in <xref target="RFC9459" format="default" sectionFormat="of" derivedContent="RFC9459"/> apply.
      </t>
      <t indent="0" pn="section-7-3">
	An "attack signature" is a unique pattern or characteristic used to identify malicious activity, enabling systems to detect and respond to known threats.
	The digital signature and key establishment algorithms used by software can contribute to an attack signature.
	By varying the identifier used for an algorithm, some software systems may attempt to evade rule-based detection and classification.
	Rule-based detection and classification systems may need to update their rules to account for fully-specified algorithms.
	These systems should be aware that writing rules for polymorphic algorithms is more difficult, as each variant of the algorithm must be accounted for.
	For example, ES384 in COSE might be used with three different keys, each with a different curve.
      </t>
      <t indent="0" pn="section-7-4">
A cryptographic key <bcp14>MUST</bcp14> be used with only a single algorithm
unless the use of the same key with different algorithms is proven secure.
See <xref target="Reuse25519" format="default" sectionFormat="of" derivedContent="Reuse25519"/> for an example of such a proof.
As a result, it is <bcp14>RECOMMENDED</bcp14> that the algorithm parameter of JSON Web Keys and COSE Keys be present,
unless there exists some other mechanism for ensuring that the key is used as intended.
      </t>
      <t indent="0" pn="section-7-5">
	In COSE, preventing cross-protocol attacks,
	such as those described in <xref target="RFC9459" format="default" sectionFormat="of" derivedContent="RFC9459"/>,
	can be accomplished in two ways:
      </t>
      <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-7-6"><li pn="section-7-6.1" derivedCounter="1.">
          <t indent="0" pn="section-7-6.1.1">
	    Allow only authenticated content encryption (Authenticated Encryption with Associated Data (AEAD)) algorithms.
          </t>
        </li>
        <li pn="section-7-6.2" derivedCounter="2.">
          <t indent="0" pn="section-7-6.2.1">
	    Bind the potentially unauthenticated content encryption algorithm
	    to be used to the key protection algorithm so that different
	    content encryption algorithms result in different content encryption keys.
          </t>
        </li>
      </ol>
      <t indent="0" pn="section-7-7">
	Which choice to use in which circumstances is beyond the scope of this specification.
      </t>
    </section>
  </middle>
  <back>
    <references pn="section-8">
      <name slugifiedName="name-references">References</name>
      <references pn="section-8.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <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="RFC7516" target="https://www.rfc-editor.org/info/rfc7516" quoteTitle="true" derivedAnchor="RFC7516">
          <front>
            <title>JSON Web Encryption (JWE)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Hildebrand" initials="J." surname="Hildebrand"/>
            <date month="May" year="2015"/>
            <abstract>
              <t indent="0">JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries defined by that specification. Related digital signature and Message Authentication Code (MAC) capabilities are described in the separate JSON Web Signature (JWS) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7516"/>
          <seriesInfo name="DOI" value="10.17487/RFC7516"/>
        </reference>
        <reference anchor="RFC8037" target="https://www.rfc-editor.org/info/rfc8037" quoteTitle="true" derivedAnchor="RFC8037">
          <front>
            <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t indent="0">This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8037"/>
          <seriesInfo name="DOI" value="10.17487/RFC8037"/>
        </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="RFC9052" target="https://www.rfc-editor.org/info/rfc9052" quoteTitle="true" derivedAnchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t indent="0">Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t indent="0">This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053" target="https://www.rfc-editor.org/info/rfc9053" quoteTitle="true" derivedAnchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t indent="0">Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t indent="0">This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
      </references>
      <references pn="section-8.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="FIDO2" target="https://fidoalliance.org/specs/fido-v2.2-ps-20250714/fido-client-to-authenticator-protocol-v2.2-ps-20250714.html" quoteTitle="true" derivedAnchor="FIDO2">
          <front>
            <title>Client to Authenticator Protocol (CTAP)</title>
            <author initials="J." surname="Bradley" fullname="John Bradley">
              <organization showOnFrontPage="true">Yubico</organization>
              <address>
                <email>jbradley@yubico.com</email>
              </address>
            </author>
            <author initials="M.B." surname="Jones" fullname="Michael B. Jones">
              <organization showOnFrontPage="true">independent</organization>
              <address>
                <email>michael_b_jones@hotmail.com</email>
                <uri>http://self-issued.info/</uri>
              </address>
            </author>
            <author initials="A." surname="Kumar" fullname="Akshay Kumar">
              <organization showOnFrontPage="true">Microsoft</organization>
              <address>
                <email>akshayku@microsoft.com</email>
              </address>
            </author>
            <author initials="R." surname="Lindemann" fullname="Rolf Lindemann">
              <organization showOnFrontPage="true">Nok Nok Labs</organization>
              <address>
                <email>rolf@noknok.com</email>
              </address>
            </author>
            <author initials="J." surname="Verrept" fullname="Johan Verrept">
              <organization showOnFrontPage="true">OneSpan</organization>
              <address>
                <email>johan.verrept@onespan.com</email>
              </address>
            </author>
            <author initials="D." surname="Waite" fullname="David Waite">
              <organization showOnFrontPage="true">Ping Identity</organization>
              <address>
                <email>dwaite@pingidentity.com</email>
              </address>
            </author>
            <date day="14" month="July" year="2025"/>
          </front>
          <refcontent>FIDO Alliance Proposed Standard</refcontent>
        </reference>
        <reference anchor="FIPS.140-3" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-3.pdf" quoteTitle="true" derivedAnchor="FIPS.140-3">
          <front>
            <title>Security Requirements for Cryptographic Modules</title>
            <author>
              <organization showOnFrontPage="true">NIST</organization>
            </author>
            <date month="March" year="2019"/>
          </front>
          <seriesInfo name="NIST FIPS" value="140-3"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.140-3"/>
        </reference>
        <reference anchor="IANA.COSE" target="https://www.iana.org/assignments/cose/" quoteTitle="true" derivedAnchor="IANA.COSE">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="IANA.JOSE" target="https://www.iana.org/assignments/jose/" quoteTitle="true" derivedAnchor="IANA.JOSE">
          <front>
            <title>JSON Object Signing and Encryption (JOSE)</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="OpenID.Discovery" target="https://openid.net/specs/openid-connect-discovery-1_0.html" quoteTitle="true" derivedAnchor="OpenID.Discovery">
          <front>
            <title>OpenID Connect Discovery 1.0 incorporating errata set 2</title>
            <author fullname="Nat Sakimura" initials="N." surname="Sakimura">
              <organization abbrev="NAT.Consulting (was at NRI)" showOnFrontPage="true">NAT.Consulting</organization>
            </author>
            <author fullname="John Bradley" initials="J." surname="Bradley">
              <organization abbrev="Yubico (was at Ping Identity)" showOnFrontPage="true">Yubico</organization>
            </author>
            <author fullname="Michael B. Jones" initials="M." surname="Jones">
              <organization abbrev="Self-Issued Consulting (was at Microsoft)" showOnFrontPage="true">Self-Issued Consulting</organization>
            </author>
            <author fullname="Edmund Jay" initials="E." surname="Jay">
              <organization abbrev="Illumila" showOnFrontPage="true">Illumila</organization>
            </author>
            <date day="15" month="December" year="2023"/>
          </front>
        </reference>
        <reference anchor="Reuse25519" target="https://eprint.iacr.org/2021/509.pdf" quoteTitle="true" derivedAnchor="Reuse25519">
          <front>
            <title>On using the same key pair for Ed25519 and an X25519 based KEM</title>
            <author fullname="Erik Thormarker" initials="E." surname="Thormarker">
              <organization abbrev="Ericsson" showOnFrontPage="true">Ericsson</organization>
            </author>
            <date day="23" month="April" year="2021"/>
          </front>
        </reference>
        <reference anchor="RFC7518" target="https://www.rfc-editor.org/info/rfc7518" quoteTitle="true" derivedAnchor="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t indent="0">This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </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="RFC8126" target="https://www.rfc-editor.org/info/rfc8126" quoteTitle="true" derivedAnchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t indent="0">Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t indent="0">To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t indent="0">This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8152" target="https://www.rfc-editor.org/info/rfc8152" quoteTitle="true" derivedAnchor="RFC8152">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="July" year="2017"/>
            <abstract>
              <t indent="0">Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8152"/>
          <seriesInfo name="DOI" value="10.17487/RFC8152"/>
        </reference>
        <reference anchor="RFC8414" target="https://www.rfc-editor.org/info/rfc8414" quoteTitle="true" derivedAnchor="RFC8414">
          <front>
            <title>OAuth 2.0 Authorization Server Metadata</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t indent="0">This specification defines a metadata format that an OAuth 2.0 client can use to obtain the information needed to interact with an OAuth 2.0 authorization server, including its endpoint locations and authorization server capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8414"/>
          <seriesInfo name="DOI" value="10.17487/RFC8414"/>
        </reference>
        <reference anchor="RFC8996" target="https://www.rfc-editor.org/info/rfc8996" quoteTitle="true" derivedAnchor="RFC8996">
          <front>
            <title>Deprecating TLS 1.0 and TLS 1.1</title>
            <author fullname="K. Moriarty" initials="K." surname="Moriarty"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <date month="March" year="2021"/>
            <abstract>
              <t indent="0">This document formally deprecates Transport Layer Security (TLS) versions 1.0 (RFC 2246) and 1.1 (RFC 4346). Accordingly, those documents have been moved to Historic status. These versions lack support for current and recommended cryptographic algorithms and mechanisms, and various government and industry profiles of applications using TLS now mandate avoiding these old TLS versions. TLS version 1.2 became the recommended version for IETF protocols in 2008 (subsequently being obsoleted by TLS version 1.3 in 2018), providing sufficient time to transition away from older versions. Removing support for older versions from implementations reduces the attack surface, reduces opportunity for misconfiguration, and streamlines library and product maintenance.</t>
              <t indent="0">This document also deprecates Datagram TLS (DTLS) version 1.0 (RFC 4347) but not DTLS version 1.2, and there is no DTLS version 1.1.</t>
              <t indent="0">This document updates many RFCs that normatively refer to TLS version 1.0 or TLS version 1.1, as described herein. This document also updates the best practices for TLS usage in RFC 7525; hence, it is part of BCP 195.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="195"/>
          <seriesInfo name="RFC" value="8996"/>
          <seriesInfo name="DOI" value="10.17487/RFC8996"/>
        </reference>
        <reference anchor="RFC9054" target="https://www.rfc-editor.org/info/rfc9054" quoteTitle="true" derivedAnchor="RFC9054">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Hash Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t indent="0">The CBOR Object Signing and Encryption (COSE) syntax (see RFC 9052) does not define any direct methods for using hash algorithms. There are, however, circumstances where hash algorithms are used, such as indirect signatures, where the hash of one or more contents are signed, and identification of an X.509 certificate or other object by the use of a fingerprint. This document defines hash algorithms that are identified by COSE algorithm identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9054"/>
          <seriesInfo name="DOI" value="10.17487/RFC9054"/>
        </reference>
        <reference anchor="RFC9459" target="https://www.rfc-editor.org/info/rfc9459" quoteTitle="true" derivedAnchor="RFC9459">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): AES-CTR and AES-CBC</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="September" year="2023"/>
            <abstract>
              <t indent="0">The Concise Binary Object Representation (CBOR) data format is designed for small code size and small message size. CBOR Object Signing and Encryption (COSE) is specified in RFC 9052 to provide basic security services using the CBOR data format. This document specifies the conventions for using AES-CTR and AES-CBC as content encryption algorithms with COSE.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9459"/>
          <seriesInfo name="DOI" value="10.17487/RFC9459"/>
        </reference>
        <reference anchor="WebAuthn" target="https://www.w3.org/TR/2021/REC-webauthn-2-20210408/" quoteTitle="true" derivedAnchor="WebAuthn">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials - Level 2</title>
            <author initials="J." surname="Hodges" fullname="Jeff Hodges" role="editor">
              <organization showOnFrontPage="true">PayPal</organization>
              <address>
                <email>jdhodges@google.com</email>
              </address>
            </author>
            <author initials="J.C." surname="Jones" fullname="J.C. Jones" role="editor">
              <organization showOnFrontPage="true">Mozilla</organization>
              <address>
                <email>jc@mozilla.com</email>
              </address>
            </author>
            <author initials="M.B." surname="Jones" fullname="Michael B. Jones" role="editor">
              <organization showOnFrontPage="true">Microsoft</organization>
              <address>
                <email>mbj@microsoft.com</email>
                <uri>http://self-issued.info/</uri>
              </address>
            </author>
            <author initials="A." surname="Kumar" fullname="Akshay Kumar" role="editor">
              <organization showOnFrontPage="true">Microsoft</organization>
              <address>
                <email>akshayku@microsoft.com</email>
              </address>
            </author>
            <author initials="E." surname="Lundberg" fullname="Emil Lundberg" role="editor">
              <organization showOnFrontPage="true">Yubico</organization>
              <address>
                <email>emil@yubico.com</email>
              </address>
            </author>
            <date day="8" month="April" year="2021"/>
          </front>
          <refcontent>W3C Recommendation</refcontent>
        </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">
	The authors thank <contact fullname="Mike Bishop"/>, <contact fullname="Carsten Bormann"/>, <contact fullname="Mohamed Boucadair"/>,
	<contact fullname="John Bradley"/>, <contact fullname="Tim Bray"/>,
	<contact fullname="Brian Campbell"/>, <contact fullname="Deb  Cooley"/>, <contact fullname="Roman Danyliw"/>, <contact fullname="Stephen Farrell"/>, <contact fullname="Vijay Gurbani"/>,
	<contact fullname="Ilari Liusvaara"/>, <contact fullname="Tobias  Looker"/>, <contact fullname="Neil Madden"/>, <contact fullname="Kathleen Moriarty"/>, <contact fullname="Jeremy O'Donoghue"/>, <contact fullname="John Preuß Mattsson"/>, <contact fullname="Anders Rundgren"/>,
	<contact fullname="Göran Selander"/>, <contact fullname="Filip  Skokan"/>, <contact fullname="Oliver Terbu"/>, <contact fullname="Hannes Tschofenig"/>, <contact fullname="Sean Turner"/>,
	<contact fullname="Éric Vyncke"/>, <contact fullname="David Waite"/>,
	<contact fullname="Paul Wouters"/>, and <contact fullname="Jiankang  Yao"/> for their contributions to this specification.
      </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="Michael B. Jones" initials="M.B." surname="Jones">
        <organization showOnFrontPage="true">Self-Issued Consulting</organization>
        <address>
          <email>michael_b_jones@hotmail.com</email>
          <uri>https://self-issued.info/</uri>
        </address>
      </author>
      <author fullname="Orie Steele" initials="O." surname="Steele">
        <organization showOnFrontPage="true">Tradeverifyd</organization>
        <address>
          <email>orie@or13.io</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
