<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cose-split-signing-algs-02" category="std" consensus="true" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Split Signing Algorithms for COSE">Split Signing Algorithms for COSE</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cose-split-signing-algs-02"/>
    <author fullname="Emil Lundberg" role="editor">
      <organization>Yubico</organization>
      <address>
        <postal>
          <street>Gävlegatan 22</street>
          <city>Stockholm</city>
          <country>SE</country>
        </postal>
        <email>emil@emlun.se</email>
      </address>
    </author>
    <author initials="M. B." surname="Jones" fullname="Michael B. Jones">
      <organization>Self-Issued Consulting</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>michael_b_jones@hotmail.com</email>
        <uri>https://self-issued.info/</uri>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>COSE</keyword>
    <keyword>Signing</keyword>
    <keyword>Algorithms</keyword>
    <keyword>Split Algorithms</keyword>
    <keyword>Split Signing</keyword>
    <keyword>HashEdDSA</keyword>
    <keyword>Ed25519ph</keyword>
    <keyword>Ed448ph</keyword>
    <abstract>
      <?line 147?>

<t>This specification defines COSE algorithm identifiers
for negotiating how to split a signature algorithm between two cooperating parties.
Typically the first party hashes the data to be signed
and the second party finishes the signature over the hashed data.
This is a common technique, useful for example when the signing private key is held in a smart card
or similar hardware component with limited processing power and communication bandwidth.
The resulting signatures are identical in structure to those computed by a single party,
and can be verified using the same verification algorithm
without additional steps to preprocess the signed data.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-cose-split-signing-algs/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        COSE Working Group mailing list (<eref target="mailto:cose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cose/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cose-wg/draft-ietf-cose-split-signing-algs"/>.</t>
    </note>
  </front>
  <middle>
    <?line 159?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/>
algorithm identifiers are used for algorithm negotiation
and to annotate cryptographic objects with how to interpret them,
for example which algorithm to use to verify a signature or decapsulate a shared key.
Existing COSE algorithm identifiers omit some internal details of how the object was constructed,
since those details are typically irrelevant for the recipient.</t>
      <t>The algorithm identifiers defined in this specification are meant for a complementary use case:
to divide responsibilities during <em>construction</em> of a cryptographic object,
instead of describing how to <em>consume</em> the object.
Specifically, they provide an interoperable way to negotiate
how a signing operation is split between two cooperating parties,
for example, a smart card and a software application,
while the verification algorithm for the resulting signature remains the same
as if the signature was created by a single party.
These split algorithm identifiers are therefore not meant for annotating signature objects,
since the verification algorithm is better indicated using already existing algorithm identifiers.</t>
      <t>As mentioned above, a primary use case for this is for algorithm negotiation
between a software application and a smart card or other hardware security module (HSM) holding the signing private key.
Since the HSM may have limited processing power and communication bandwidth,
it may not be practical to send the entire original message to the HSM.
Instead, since most signature algorithms begin with digesting the message
into a fixed-length intermediate input, this initial digest can be computed by the software application
while the HSM performs the rest of the signature algorithm on the digest.
This is a common technique used in standards such as OpenPGP <xref target="OPENPGPCARD"/>,
PKCS #11 <xref target="PKCS11-Spec-v3.1"/>, and PIV <xref target="NIST-SP-800-73-5"/>.</t>
      <t>Since different signature algorithms digest the message in different ways
and at different stages of the algorithm,
it is not possible for a cryptographic API to specify that, for example, "the hash digest is computed by the caller"
generically for all algorithms.
Security considerations for this split may also differ between algorithms.
Instead, the algorithm identifiers defined in this specification
enable the parties of that cryptographic API to signal precisely, for each signature algorithm individually,
which steps of the algorithm are performed by which party.
We thus define two roles:
the <em>digester</em> (e.g., a software application) that initializes the signing procedure,
and the <em>signer</em> (e.g., an HSM) that holds exclusive control of the signing private key.</t>
      <t>Note that these algorithm identifiers do not define new "pre-hashed" variants of the base signature algorithm,
nor an intermediate "hash envelope" data structure, such as that defined in <xref target="I-D.COSE-Hash-Envelope"/>.
Rather, these identifiers denote existing signature algorithms
that would typically be executed by a single party,
but split into two stages.</t>
      <t>Some signature algorithms,
such as PureEdDSA <xref target="RFC8032"/>,
by their design, cannot be split in this way, and therefore cannot be assigned split signing algorithm identifiers.
However, if such a signature algorithm defines a "pre-hashed" variant,
that "pre-hashed" algorithm can be assigned a split signing algorithm identifier,
enabling the pre-hashing step to be performed by the <em>digester</em>
and the remaining steps by the <em>signer</em>.
For example, this specification defines Ed25519ph-split (<xref target="eddsa-split"/>) as a split variant of Ed25519ph <xref target="RFC8032"/>.
Note that Ed25519 and Ed25519ph have distinct verification algorithms,
but Ed25519ph and Ed25519ph-split use the same verification algorithm.</t>
      <section anchor="requirements-notation-and-conventions">
        <name>Requirements Notation and Conventions</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC8174">RFC2119</xref> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="prior-art">
        <name>Prior Art</name>
        <t>Split signing is a common technique used in existing smart card standards.
The following subsections expand on how the technique is applied in OpenPGP <xref target="OPENPGPCARD"/>,
PKCS #11 <xref target="PKCS11-Spec-v3.1"/>, and PIV <xref target="NIST-SP-800-73-5"/>.</t>
        <section anchor="openpgp">
          <name>OpenPGP</name>
          <t>The OpenPGP smart card protocol <xref target="OPENPGPCARD"/>
defines the format of signing commands in section "7.2.10 PSO: COMPUTE DIGITAL SIGNATURE":</t>
          <ul empty="true">
            <li>
              <t><strong>7.2.10 PSO: COMPUTE DIGITAL SIGNATURE</strong></t>
              <t>The command for digital signature computation is shown in the table below.
The hash value (ECDSA) or the DigestInfo is delivered in the data field of the command. [...]</t>
            </li>
          </ul>
          <t>The "Data field" parameter is subsequently defined as "Data to be integrated in the DSI: hash value (ELC) or DigestInfo (RSA)".
Thus both ECDSA and RSA signatures are computed jointly by the host computing the digest of the signed data
and the smart card finalizing the signature on the digest;
the host acts as <em>digester</em> and the smart card acts as <em>signer</em>.</t>
          <t>OpenPGP does not split EdDSA signatures in this way.
<xref section="12.7" sectionFormat="of" target="RFC9580"/> explains how input data for EdDSA signatures such as Ed25519 and Ed448
is first hashed on the application level before signing the hash digest with the signature algorithm.
If a smart card is used, the smart card performs the entire Ed25519 or Ed448 signing procedure as defined in <xref target="RFC8032"/>.</t>
        </section>
        <section anchor="pkcs-11">
          <name>PKCS #11</name>
          <t>PKCS #11 <xref target="PKCS11-Spec-v3.1"/>
defines signing commands in sections "5.13 Signing and MACing functions" and "5.14 Message-based signing and MACing functions".
These sections define <tt>C_SignInit</tt> and <tt>C_MessageSignInit</tt> functions that both take a <tt>pMechanism</tt> parameter indicating the signature mechanism.
Mechanisms are defined in section "6 Mechanisms", which notably includes the subsections
"6.3.12 ECDSA without hashing" and "6.3.13 ECDSA with hashing":</t>
          <ul empty="true">
            <li>
              <t><strong>6.3.12 ECDSA without hashing</strong></t>
              <t>[...]</t>
              <t>The ECDSA without hashing mechanism, denoted <strong>CKM_ECDSA</strong>, is a mechanism for single-part signatures and verification for ECDSA.
(This mechanism corresponds only to the part of ECDSA that processes the hash value, which should not be longer than 1024 bits;
it does not compute the hash value.)</t>
              <t>[...]</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t><strong>6.3.13 ECDSA with hashing</strong></t>
              <t>[...]</t>
              <t>The ECDSA with SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512 mechanism,
denoted <strong>CKM_ECDSA_[SHA1|SHA224|SHA256|SHA384|SHA512|SHA3_224|SHA3_256|SHA3_384|SHA3_512]</strong> respectively,
is a mechanism for single- and multiple-part signatures and verification for ECDSA.
This mechanism computes the entire ECDSA specification, including the hashing with
SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512 respectively.</t>
              <t>[...]</t>
            </li>
          </ul>
          <t>Thus PKCS #11 supports both split signing using the <strong>CKM_ECDSA</strong> mechanism
and "non-split" signing using the <strong>CKM_ECDSA_SHA*</strong> mechanisms;
when using <strong>CKM_ECDSA</strong>,
the PKCS #11 caller acts as <em>digester</em> and the Cryptoki implementation acts as <em>signer</em>.</t>
        </section>
        <section anchor="piv-fips-201-nist-sp-800">
          <name>PIV: FIPS-201, NIST SP 800</name>
          <t>NIST Special Publication 800 <xref target="NIST-SP-800-73-5"/>
contains technical specifications for the Personal Identity Verification (PIV) standard <xref target="FIPS-201"/>,
and defines the format of signing commands in section "3.2.4. GENERAL AUTHENTICATE Card Command":</t>
          <ul empty="true">
            <li>
              <t><strong>3.2.4. GENERAL AUTHENTICATE Card Command</strong>
[...]</t>
              <t>The GENERAL AUTHENTICATE command SHALL be used with the digital signature key ('9C') to
realize the signing functionality on the PIV client application programming interface. Data to be
signed is expected to be hashed off-card. Appendix A.4 illustrates the use of the GENERAL
AUTHENTICATE command for signature generation.</t>
              <t>[...]</t>
            </li>
          </ul>
          <t>Appendix A.4 gives examples of RSA and ECDSA signature generation commands.
For RSA the command needs to be sent in two parts,
giving the "Data Field" argument first as "'7C' – L1 { '82' '00' '81' L2 {first part of the PKCS #1 v1.5 or PSS padded message hash value }}"
and then "{second and last part of the PKCS #1 v1.5 or PSS padded message hash value}";
for ECDSA the "Data Field" argument is given as "'7C' – L1 { '82' '00' '81' L2 {hash value of message}}".</t>
          <t>Thus both ECDSA and RSA signatures are computed jointly by the host computing the digest of the signed data
and the smart card finalizing the signature on the digest;
the host acts as <em>digester</em> and the smart card acts as <em>signer</em>.</t>
        </section>
      </section>
    </section>
    <section anchor="split-algs">
      <name>Split Signing Algorithms</name>
      <t>This section defines divisions of signing algorithm steps between a <em>digester</em> and a <em>signer</em>
in a split signing protocol,
and assigns algorithm identifiers to these algorithm divisions.
The <em>digester</em> performs the first part of the split algorithm and does not have access to the signing private key,
while the <em>signer</em> performs the second part of the split algorithm and has access to the signing private key.
For signing algorithms that format the message to insert domain separation tags,
as described in <xref section="2.2.5" sectionFormat="of" target="RFC9380"/>,
this message formatting is also performed by the <em>signer</em>.</t>
      <t>How the digest, and any related <tt>COSE_Sign_Args</tt> structure (see <xref target="cose-sign-args"/>),
are transported from <em>digester</em> to <em>signer</em> is out of scope for this specification,
but it is expected that the digest will usually be transmitted as the "data to be signed" argument.</t>
      <t>The algorithm identifiers defined in this specification with "-split" in their names
MAY appear in COSE structures used internally between the <em>digester</em> and the <em>signer</em> in a split signing protocol,
but SHOULD NOT appear in COSE structures consumed by signature verifiers.
COSE structures consumed by signature verifiers
SHOULD instead use the corresponding conventional algorithm identifiers for the verification algorithm.
These are listed in the "Verification algorithm" column in the tables defining split signing algorithm identifiers.</t>
      <t>The following subsections define an initial set of split signing algorithm identifiers.
The last subsection provides guidance for defining additional identifiers beyond this initial set.</t>
      <section anchor="ecdsa-split">
        <name>ECDSA</name>
        <t>ECDSA <xref target="FIPS-186-5"/> split signing uses the following division between the <em>digester</em> and the <em>signer</em>
of the steps of the ECDSA signature generation algorithm <xref target="FIPS-186-5"/>:</t>
        <ul spacing="normal">
          <li>
            <t>The signing procedure is defined in Section 6.4.1 of <xref target="FIPS-186-5"/>.</t>
          </li>
          <li>
            <t>The <em>digester</em> performs Step 1 of the signing procedure - hashing the message, producing the value <em>H</em>.</t>
          </li>
          <li>
            <t>The message input to the <em>signer</em> is the value <em>H</em> defined in the signing procedure.</t>
          </li>
          <li>
            <t>The <em>signer</em> resumes the signing procedure from Step 2.</t>
          </li>
        </ul>
        <t>The following algorithm identifiers are defined:</t>
        <table anchor="tbl-ecdsa-split">
          <name>ECDSA split signing algorithm values.</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">COSE Value</th>
              <th align="left">Verification algorithm</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ESP256-split</td>
              <td align="left">TBD</td>
              <td align="left">ESP256</td>
              <td align="left">ESP256 <xref target="RFC9864"/> split signing as defined in <xref target="ecdsa-split"/></td>
            </tr>
            <tr>
              <td align="left">ESP384-split</td>
              <td align="left">TBD</td>
              <td align="left">ESP384</td>
              <td align="left">ESP384 <xref target="RFC9864"/> split signing as defined in <xref target="ecdsa-split"/></td>
            </tr>
            <tr>
              <td align="left">ESP512-split</td>
              <td align="left">TBD</td>
              <td align="left">ESP512</td>
              <td align="left">ESP512 <xref target="RFC9864"/> split signing as defined in <xref target="ecdsa-split"/></td>
            </tr>
          </tbody>
        </table>
        <t>Note: This is distinct from the similarly named Split-ECDSA (SECDSA) <xref target="SECDSA"/>,
although SECDSA can be implemented using this split procedure as a component.</t>
      </section>
      <section anchor="eddsa-split">
        <name>HashEdDSA</name>
        <t>Split HashEdDSA <xref target="RFC8032"/> uses the following division between the <em>digester</em> and the <em>signer</em>
of the steps of the HashEdDSA signing algorithm <xref target="RFC8032"/>:</t>
        <ul spacing="normal">
          <li>
            <t>HashEdDSA is a combination of the EdDSA signing procedure and the PureEdDSA signing procedure.
The EdDSA signing procedure is defined in the first paragraph of <xref section="3.3" sectionFormat="of" target="RFC8032"/>.
The PureEdDSA signing procedure is defined in the second paragraph of <xref section="3.3" sectionFormat="of" target="RFC8032"/>.</t>
          </li>
          <li>
            <t>The <em>digester</em> computes the value <tt>PH(M)</tt> defined in the EdDSA signing procedure.</t>
          </li>
          <li>
            <t>The message input to the <em>signer</em> is the value <tt>PH(M)</tt> defined in the EdDSA signing procedure.
This value is represented as <tt>M</tt> in the PureEdDSA signing procedure.</t>
          </li>
          <li>
            <t>The <tt>context</tt> input MAY be conveyed to the <em>signer</em> using the <tt>COSE_Sign_Args</tt> structure defined in <xref target="cose-sign-args"/>.
If not given, <tt>context</tt> defaults to an empty octet string.</t>
          </li>
          <li>
            <t>The <em>signer</em> executes the PureEdDSA signing procedure,
where the value denoted <tt>M</tt> in the PureEdDSA signing procedure
takes the value denoted <tt>PH(M)</tt> in the EdDSA signing procedure.</t>
          </li>
        </ul>
        <t>PureEdDSA <xref target="RFC8032"/> cannot be divided in this way
since such a division would require that the <em>digester</em> has access to the private key.</t>
        <t>The following algorithm identifiers are defined:</t>
        <table anchor="tbl-eddsa-split">
          <name>HashEdDSA algorithm values.</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">COSE Value</th>
              <th align="left">Verification algorithm</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Ed25519ph</td>
              <td align="left">TBD</td>
              <td align="left">Ed25519ph</td>
              <td align="left">EdDSA using the Ed25519ph parameter set in <xref section="5.1" sectionFormat="of" target="RFC8032"/></td>
            </tr>
            <tr>
              <td align="left">Ed25519ph-split</td>
              <td align="left">TBD</td>
              <td align="left">Ed25519ph</td>
              <td align="left">EdDSA using the Ed25519ph parameter set in <xref section="5.1" sectionFormat="of" target="RFC8032"/> and split as defined in <xref target="eddsa-split"/></td>
            </tr>
            <tr>
              <td align="left">Ed448ph</td>
              <td align="left">TBD</td>
              <td align="left">Ed448ph</td>
              <td align="left">EdDSA using the Ed448ph parameter set in <xref section="5.2" sectionFormat="of" target="RFC8032"/></td>
            </tr>
            <tr>
              <td align="left">Ed448ph-split</td>
              <td align="left">TBD</td>
              <td align="left">Ed448ph</td>
              <td align="left">EdDSA using the Ed448ph parameter set in <xref section="5.2" sectionFormat="of" target="RFC8032"/> and split as defined in <xref target="eddsa-split"/></td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t>The <tt>context</tt> input MUST be the empty octet string
when the signature result is used in COSE structures without a way to convey a <tt>context</tt> argument.
This includes the <tt>COSE_Sign1</tt> and <tt>COSE_Signature</tt> structures.</t>
          </li>
        </ul>
        <t><xref target="tbl-cose-args-hasheddsa"/> defines a HashEdDSA-specific parameter for the <tt>COSE_Sign_Args</tt> structure defined in <xref target="cose-sign-args"/>.
The parameter -1 conveys the <tt>context</tt> input to HashEdDSA signing,
and is REQUIRED for all the relevant <tt>alg</tt> values.</t>
        <table anchor="tbl-cose-args-hasheddsa">
          <name>HashEdDSA algorithm parameters for COSE_Sign_Args.</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Label</th>
              <th align="left">Type</th>
              <th align="left">Required?</th>
              <th align="left">Algorithm</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">context</td>
              <td align="left">-1</td>
              <td align="left">bstr</td>
              <td align="left">Required</td>
              <td align="left">Ed25519ph, Ed25519ph-split, Ed448ph, Ed448ph-split</td>
              <td align="left">
                <tt>context</tt> argument to HashEdDSA signing. <xref target="RFC8032"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="defining-split-algs">
        <name>Defining Split Signing Algorithms</name>
        <t>Future definitions of additional split signing algorithm identifiers
SHOULD follow the conventions established in <xref target="split-algs"/> as far as possible.
For example, if a signature algorithm prescribes insertion of domain separation tags
in a way that requires processing the entirety of the data to be signed,
it might be necessary to delegate the domain separation responsibility to the <em>digester</em>.
Per the considerations in <xref target="sec-cons-trusted-roles-comp"/>,
split signing algorithm identifiers SHOULD be defined in ways that minimize
how much responsibility is delegated to the <em>digester</em>.</t>
        <t>As a concrete example, consider ML-DSA and HashML-DSA <xref target="FIPS-204"/>.
ML-DSA and HashML-DSA prefix the input data with a 0 octet and a 1 octet respectively,
which enforces domain separation between ML-DSA and HashML-DSA signatures.
<xref section="D" sectionFormat="of" target="RFC9881"/> describes a mode of ML-DSA
that could be assigned a split signing algorithm identifier
where the <em>digester</em> performs <tt>Computeμ</tt> and the <em>signer</em> performs <tt>Signμ</tt>.
Note that this puts the <em>digester</em> in control of the domain separation tags;
this is necessary if the hash step is not performed by the <em>signer</em>.
Therefore with this construction, it is the <em>digester</em> that decides
whether the signing protocol will produce an ML-DSA signature or a HashML-DSA signature.
In contrast, HashML-DSA first hashes the input data alone and then another time with domain separation tags;
therefore HashML-DSA can be assigned a split signing algorithm identifier
that keeps the <em>signer</em> in control of the domain separation tags
and ensures that the signing protocol can only produce HashML-DSA signatures.</t>
      </section>
    </section>
    <section anchor="cose-sign-args">
      <name>COSE Signing Arguments</name>
      <t>While many signature algorithms take the private key and data to be signed as the only two parameters,
some signature algorithms have additional parameters that must also be set.
For example,
Ed25519ph and Ed25519ctx <xref target="RFC8032"/> have a <tt>context</tt> parameter in addition to the message <tt>M</tt>.
Similarly the ML-DSA <xref target="FIPS-204"/> signing function has a <em>ctx</em> parameter,
although the algorithm identifiers in <xref target="RFC9964"/> are defined to take a constant empty value for <em>ctx</em>.</t>
      <t>While such additional arguments are simple to provide to the API of the signing procedure in a single-party context,
in a split signing context these additional arguments also need to be conveyed from the <em>digester</em> to the <em>signer</em>.
For this purpose, we define a new COSE structure <tt>COSE_Sign_Args</tt> for "COSE signing arguments".
This enables defining a unified, algorithm-agnostic protocol between the <em>digester</em> and the <em>signer</em>,
rather than requiring a distinct protocol for each signature algorithm for the sake of conveying algorithm-specific parameters.</t>
      <t><tt>COSE_Sign_Args</tt> is built on a CBOR map.
The set of common parameters that can appear in a <tt>COSE_Sign_Args</tt>
can be found in the IANA "COSE Signing Arguments Common Parameters" registry established in <xref target="common-params-reg"/>.
Additional parameters defined for specific signing algorithms
can be found in the IANA "COSE Signing Arguments Algorithm Parameters" registry established in <xref target="alg-params-reg"/>.</t>
      <t>The CDDL <xref target="RFC8610"/> grammar describing <tt>COSE_Sign_Args</tt>, using the CDDL fragment defined in <xref section="1.5" sectionFormat="of" target="RFC9052"/>, is:</t>
      <sourcecode type="cddl"><![CDATA[
COSE_Sign_Args = {
    3 ^ => tstr / int,  ; alg
    * label => values,
}
]]></sourcecode>
      <section anchor="cose-sign-args-common">
        <name>COSE Signing Arguments Common Parameters</name>
        <t>This document defines a set of common parameters for a COSE Signing Arguments object.
<xref target="tbl-cose-sign-args-common"/> provides a summary of the parameters defined in this section.</t>
        <table anchor="tbl-cose-sign-args-common">
          <name>Common parameters of the COSE_Sign_Args structure.</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Label</th>
              <th align="left">CBOR Type</th>
              <th align="left">Value Registry</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">alg</td>
              <td align="left">3</td>
              <td align="left">tstr / int</td>
              <td align="left">COSE Algorithms</td>
              <td align="left">Signing algorithm to use</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t>alg: This parameter identifies the signing algorithm the additional arguments apply to.
The signer MUST verify that this algorithm matches any key usage restrictions set on the key to be used.
If the algorithms do not match, then the signature operation MUST be aborted with an error.</t>
          </li>
        </ul>
        <t>Definitions of COSE algorithms MAY define additional algorithm-specific parameters for <tt>COSE_Sign_Args</tt>.</t>
        <t>The following CDDL <xref target="RFC8610"/> example conveys the <tt>context</tt> argument
for signing data using the Ed25519ph-split algorithm (see <xref target="eddsa-split"/>):</t>
        <sourcecode type="cddl"><![CDATA[
example = {
  3: -303,    ; alg: Ed25519ph-split (registration pending)

              ; Ed25519ph context (byte string of 0 to 255 octets)
  -1: 'Split Signing Algorithms for COSE',
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="security-cons">
      <name>Security Considerations</name>
      <section anchor="sec-cons-trusted-roles-protocol">
        <name>Protocol-Level Trusted Roles</name>
        <t>This specification assumes that both the <em>digester</em> and <em>signer</em> roles
described in <xref target="split-algs"/> are trusted and cooperate honestly.
This is because a similar division between "application" and "secure element"
typically exists already:
even if all steps of the signing algorithm are executed in a trusted secure element,
the inputs to the secure element are provided by some outside component such as a software application.
If the application can provide any input to be signed,
then for all practical purposes it is trusted with possession of any private keys
for as long as it is authorized to exercise the secure element.
The application can in practice obtain a signature over any chosen message
without needing to perform a forgery attack.
The same relationship exists between <em>digester</em> and <em>signer</em>.
Applications that cannot trust an external <em>digester</em> -
for example a hardware security device with an integrated secure display of what data is about to be signed -
by definition have no use for split signing algorithm identifiers.</t>
        <t>Similarly from a verifier's perspective,
these split signing procedures are implementation details.
When a signature is generated by a single party,
that single party takes on both the <em>digester</em> and the <em>signer</em> roles,
and obviously trusts itself to perform the <em>digester</em> role honestly.
From the verifier's perspective,
a malicious <em>digester</em> in the split signing model would have the same powers
as a malicious signature generator in a single-party signing model.
Thus, on the application or protocol level,
assuming an honest <em>digester</em> is no more restrictive than assuming an honest signature generator.</t>
      </section>
      <section anchor="sec-cons-trusted-roles-comp">
        <name>Component-Level Trusted Roles</name>
        <t>The reasoning in <xref target="sec-cons-trusted-roles-protocol"/> does not hold on the component level.
A <em>signer</em> implementation MUST NOT assume that the <em>digester</em> implementation
it interoperates with is necessarily honest.
Split signing algorithms MUST NOT be defined in a way
that enables a malicious <em>digester</em> with access to an honest <em>signer</em> to produce forgeries -
any that could not be produced by simply requesting a signature over the desired message -
or extract secrets from the <em>signer</em>.</t>
        <t>For example, for ECDSA (<xref target="ecdsa-split"/>), a malicious <em>digester</em> can choose <em>H</em>
in such a way that the <em>signer</em> will derive any <em>digester</em>-chosen value of <em>e</em>,
including zero or other potentially problematic values.
Fortunately, in this case, this does not enable the <em>digester</em> to extract the signature nonce or private key.
It also does not make forgeries easier,
since the <em>digester</em> still needs to find a preimage of <em>e</em> for the relevant hash function.
Definitions of other algorithms need to ensure that similar chosen-input attacks
do not enable extracting secrets or forging protocol-level messages.</t>
        <t>For example, a naively prehashed version of FALCON <xref target="FALCON"/> would allow such a key compromise:
A FALCON signature is a value <tt>s</tt> such that both <tt>s</tt> and <tt>s * h - hash(r || m)</tt> are short,
where <tt>h</tt> is the public key and <tt>r</tt> a randomizer.
If the digester gets to query the signer for signatures of arbitrary stand-ins for <tt>hash(r || m)</tt>,
they can extract the private key by for example asking for repeated signatures of 0.
Therefore, definitions of split signing algorithms need to be reviewed and potentially have security proofs adjusted.</t>
      </section>
      <section anchor="sec-cons-invalid-alg-use">
        <name>Incorrect Use of Split Signing Algorithm Identifiers</name>
        <t><xref target="split-algs"/> recommends against exposing split signing algorithm identifiers -
including those defined in this specification with "-split" in their names -
to signature verifiers.
For example, they should not appear as the "alg" parameter of a COSE_Key public key sent to a signature verifier.
If a split signing algorithm identifier is encountered in an invalid context like this,
the recipient SHOULD reject the message with a fatal error.</t>
        <t>This is because the purpose of these split signing algorithm identifiers
is to enable more flexible production of signatures that can be verified by existing implementations of existing verification algorithms.
A prevalence of these identifiers appearing outside the split signing context would defeat this purpose;
we therefore recommend such use SHOULD NOT be tolerated.</t>
        <t>This recommendation is the opposite of the oft-cited "robustness principle" stated in paragraph 3.9 of <xref target="RFC1958"/>.
Implementations MAY choose to instead follow the robustness principle and tolerate incorrect use of split signing algorithm identifiers,
instead interpreting the identifier as referencing the defined corresponding verification algorithm.
Note however that this is no longer considered a best practice and is likely to harm interoperability <xref target="RFC9413"/>.</t>
        <t>A verifier's choice to tolerate or not tolerate incorrect use of split signing algorithm identifiers
is expected to not affect security,
assuming a split algorithm identifier is interpreted as an alias representing the same verification algorithm as a non-split algorithm identifier.</t>
      </section>
    </section>
    <section anchor="impl-cons">
      <name>Implementation Considerations</name>
      <section anchor="impl-cons-non-split-algs">
        <name>Using Non-Split Signing Algorithm Identifiers in a Split Signing Protocol</name>
        <t>A protocol designed to use split signing algorithm identifiers such as those defined in this specification
MAY also allow use of algorithm identifiers that do not represent split signing algorithms.
In this case, the <em>signer</em> performs all steps of the signing procedure as usual.
For example, if the <em>signer</em> receives a signature request with an the algorithm identifier "ESP256",
then the <em>digester</em> passes the input data through unmodified
and it is the <em>signer</em> that computes the SHA-256 digest of the input data as defined in the ESP256 definition <xref target="RFC9864"/>.</t>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="cose-alg-reg">
        <name>COSE Algorithms Registrations</name>
        <t>This section registers the following values in the IANA "COSE Algorithms" registry <xref target="IANA.COSE"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Name: ESP256-split
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD (Requested Assignment -300)</t>
              </li>
              <li>
                <t>Description: ESP256 split signing</t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: <xref target="ecdsa-split"/> of this specification</t>
              </li>
              <li>
                <t>Recommended: Yes</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: ESP384-split
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD (Requested Assignment -301)</t>
              </li>
              <li>
                <t>Description: ESP384 split signing</t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: <xref target="ecdsa-split"/> of this specification</t>
              </li>
              <li>
                <t>Recommended: Yes</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: ESP512-split
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD (Requested Assignment -302)</t>
              </li>
              <li>
                <t>Description: ESP512 split signing</t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: <xref target="ecdsa-split"/> of this specification</t>
              </li>
              <li>
                <t>Recommended: Yes</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: Ed25519ph
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD</t>
              </li>
              <li>
                <t>Description: EdDSA using the Ed25519ph parameter set in <xref section="5.1" sectionFormat="of" target="RFC8032"/></t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: <xref section="5.1" sectionFormat="of" target="RFC8032"/></t>
              </li>
              <li>
                <t>Recommended: Yes</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: Ed25519ph-split
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD (Requested Assignment -303)</t>
              </li>
              <li>
                <t>Description: Ed25519ph split as defined in <xref target="eddsa-split"/></t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: <xref target="eddsa-split"/> of this specification</t>
              </li>
              <li>
                <t>Recommended: Yes</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: Ed448ph
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD</t>
              </li>
              <li>
                <t>Description: EdDSA using the Ed448ph parameter set in <xref section="5.2" sectionFormat="of" target="RFC8032"/></t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: <xref section="5.2" sectionFormat="of" target="RFC8032"/></t>
              </li>
              <li>
                <t>Recommended: Yes</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: Ed448ph-split
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD (Requested Assignment -304)</t>
              </li>
              <li>
                <t>Description: Ed448ph split as defined in <xref target="eddsa-split"/></t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: <xref target="eddsa-split"/> of this specification</t>
              </li>
              <li>
                <t>Recommended: Yes</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="common-params-reg">
        <name>COSE Signing Arguments Common Parameters Registry</name>
        <t>This specification establishes the "COSE Signing Arguments Common Parameters" registry.
The registry uses the "Expert Review Required" registration procedure.
Guidelines for the experts are the same as those in <xref section="11.6" sectionFormat="of" target="RFC9052"/>.
It should be noted that, in addition to the expert review,
some portions of the registry require a specification,
potentially a Standards Track RFC, be supplied as well.</t>
        <t>The columns of the registry are:</t>
        <dl>
          <dt>Name:</dt>
          <dd>
            <t>A descriptive name that enables easier reference to the item.
It is not used in the encoding.</t>
          </dd>
          <dt>Label:</dt>
          <dd>
            <t>The value used as the CBOR map label for this parameter.
Labels MUST be unique.
The label can be a positive integer, a negative integer, or a string.
Integer values between 0 and 255 and strings of length 1 are designated as "Standards Action".
Integer values from 256 to 65535 and strings of length 2 are designated as "Specification Required".
Integer values of greater than 65535 and strings of length greater than 2 are designated as "Expert Review".
Integer values in the range -65536 to -1 are
"used for signing arguments specific to a single algorithm delegated
to the COSE Signing Arguments Algorithm Parameters registry".
Integer values less than -65536 are marked as private use.</t>
          </dd>
          <dt>CBOR Type:</dt>
          <dd>
            <t>The CBOR type of the parameter's value.</t>
          </dd>
          <dt>Value Registry:</dt>
          <dd>
            <t>The registry that values come from, if one exists.</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>A brief description for the parameter.</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>A pointer to the public specification for the parameter, if one exists.</t>
          </dd>
        </dl>
        <section anchor="initial-contents">
          <name>Initial Contents</name>
          <t>The initial contents of this registry are the values in <xref target="tbl-cose-sign-args-common"/>.
All of the entries in the "References" column of this registry point to this document.</t>
        </section>
      </section>
      <section anchor="alg-params-reg">
        <name>COSE Signing Arguments Algorithm Parameters Registry</name>
        <t>This specification establishes the "COSE Signing Arguments Algorithm Parameters" registry.
The registry uses the "Expert Review Required" registration procedure.
Guidelines for the experts are the same as those in <xref section="11.6" sectionFormat="of" target="RFC9052"/>.</t>
        <t>The columns of the table are:</t>
        <dl>
          <dt>Name:</dt>
          <dd>
            <t>A descriptive name that enables easier reference to the item.
It is not used in the encoding.</t>
          </dd>
          <dt>Algorithms:</dt>
          <dd>
            <t>The algorithm(s) that this registry entry is used for.
Values are taken from the "COSE Algorithms" registry.
Multiple algorithms can be specified in this entry.
For the table, the algorithm/label pair MUST be unique.</t>
          </dd>
          <dt>Label:</dt>
          <dd>
            <t>The value used as the CBOR map label for this parameter.
The label is a negative integer value in the range -65536 to -1.
Labels are expected to be reused for multiple algorithms.</t>
          </dd>
          <dt>CBOR Type:</dt>
          <dd>
            <t>The CBOR type of the parameter's value.</t>
          </dd>
          <dt>Required:</dt>
          <dd>
            <t>"Required" if the parameter is required for this algorithm, otherwise "Optional".</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>A brief description for the parameter.</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>A pointer to the public specification for the parameter, if one exists.</t>
          </dd>
        </dl>
        <section anchor="alg-params-reg-initial">
          <name>Initial Contents</name>
          <t>The initial contents of this registry are as follows.</t>
          <section anchor="context">
            <name>context</name>
            <dl>
              <dt>Name:</dt>
              <dd>
                <t>context</t>
              </dd>
              <dt>Algorithms:</dt>
              <dd>
                <t>Ed25519ph, Ed25519ph-split, Ed448ph, Ed448ph-split</t>
              </dd>
              <dt>Label:</dt>
              <dd>
                <t>-1</t>
              </dd>
              <dt>Cbor Type:</dt>
              <dd>
                <t>bstr</t>
              </dd>
              <dt>Required:</dt>
              <dd>
                <t>Required</t>
              </dd>
              <dt>Description:</dt>
              <dd>
                <t>context argument to EdDSA signing and verification.</t>
              </dd>
              <dt>Reference:</dt>
              <dd>
                <t><xref target="eddsa-split"/></t>
              </dd>
            </dl>
          </section>
        </section>
      </section>
    </section>
    <section anchor="impl-status">
      <name>Implementation Status</name>
      <t>This section is to be removed from the specification by the RFC Editor before publication as an RFC.</t>
      <t>There are currently two known implementations using features defined by this specification:</t>
      <ul spacing="normal">
        <li>
          <t><eref target="https://github.com/wwWallet">wwWallet</eref>, an EU Digital Identity pilot project.
wwWallet was entered into the
<eref target="https://www.sprind.org/en/actions/challenges/eudi-wallet-prototypes">"EUDI Wallet Prototypes" competition held by SprinD GmbH</eref>,
and a branch of the wallet was submitted in the competition.
The competition entry implements ARKG <xref target="I-D.bradleylundberg-ARKG"/>
for efficiently generating single-use hardware-bound holder binding keys.  </t>
          <t>
The <eref target="https://github.com/gunet/funke-s3a-wallet-frontend/blob/stage-3/src/services/keystore.ts">implementation</eref>
uses the <tt>COSE_Key_Ref</tt> data structure defined in version 01 of this specification
in order to send ARKG inputs to a WebAuthn authenticator,
and uses the placeholder value for the experimental split algorithm identifier ESP256-split-ARKG
defined in Section 5.2 of <xref target="I-D.bradleylundberg-ARKG"/>
to negotiate creation and usage of ARKG-derived keys for signing operations.
Thus wwWallet assumes the <em>digester</em> role while the WebAuthn authenticator assumes the <em>signer</em> role.</t>
        </li>
        <li>
          <t><eref target="https://www.yubico.com/">Yubico</eref>, a hardware security key vendor,
has produced limited-availability prototypes of their YubiKey product
with an ARKG implementation interoperable with wwWallet.
The YubiKey implementation uses the <tt>COSE_Key_Ref</tt> data structure defined in version 01 of this specification
to receive ARKG inputs from a WebAuthn Relying Party,
and uses the placeholder value for the experimental split algorithm identifier ESP256-split-ARKG
defined in Section 5.2 of <xref target="I-D.bradleylundberg-ARKG"/>
to negotiate creation and usage of ARKG-derived keys for signing operations.
Thus the YubiKey assumes the <em>signer</em> role while the WebAuthn Relying Party assumes the <em>digester</em> role.</t>
        </li>
      </ul>
      <t><xref target="tbl-impl-status-matrix"/> summarizes implementation status for individual features.</t>
      <table anchor="tbl-impl-status-matrix">
        <name>Implementation status of individual features.</name>
        <thead>
          <tr>
            <th align="left">Feature</th>
            <th align="left">Defined by</th>
            <th align="left">Digester</th>
            <th align="left">Signer</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">ESP256-split</td>
            <td align="left">This specification</td>
            <td align="left">-</td>
            <td align="left">-</td>
          </tr>
          <tr>
            <td align="left">ESP384-split</td>
            <td align="left">This specification</td>
            <td align="left">-</td>
            <td align="left">-</td>
          </tr>
          <tr>
            <td align="left">ESP512-split</td>
            <td align="left">This specification</td>
            <td align="left">-</td>
            <td align="left">-</td>
          </tr>
          <tr>
            <td align="left">Ed25519ph-split</td>
            <td align="left">This specification</td>
            <td align="left">-</td>
            <td align="left">-</td>
          </tr>
          <tr>
            <td align="left">Ed448ph-split</td>
            <td align="left">This specification</td>
            <td align="left">-</td>
            <td align="left">-</td>
          </tr>
          <tr>
            <td align="left">ESP256-split-ARKG</td>
            <td align="left">
              <xref target="I-D.bradleylundberg-ARKG"/></td>
            <td align="left">wwWallet</td>
            <td align="left">Yubico</td>
          </tr>
          <tr>
            <td align="left">ESP384-split-ARKG</td>
            <td align="left">
              <xref target="I-D.bradleylundberg-ARKG"/></td>
            <td align="left">-</td>
            <td align="left">-</td>
          </tr>
          <tr>
            <td align="left">ESP512-split-ARKG</td>
            <td align="left">
              <xref target="I-D.bradleylundberg-ARKG"/></td>
            <td align="left">-</td>
            <td align="left">-</td>
          </tr>
          <tr>
            <td align="left">
              <tt>COSE_Sign_Args</tt></td>
            <td align="left">This specification</td>
            <td align="left">wwWallet</td>
            <td align="left">Yubico</td>
          </tr>
        </tbody>
      </table>
      <section anchor="impl-status-dependents">
        <name>Dependent Specifications</name>
        <t>As indicated in the previous section,
the Internet-Draft of ARKG <xref target="I-D.bradleylundberg-ARKG"/> extends this specification with definitions for ARKG:</t>
        <ul spacing="normal">
          <li>
            <t>Its section "5.2 COSE algorithms" defines COSE algorithm identifiers ESP256-split-ARKG, ESP384-split-ARKG
and ESP512-split-ARKG based on the ECDSA identifiers defined in this specification (<xref target="ecdsa-split"/>).</t>
          </li>
          <li>
            <t>Its section "5.3 COSE signing arguments" defines a representation for ARKG arguments
using the <tt>COSE_Sign_Args</tt> data structure defined in this specification (<xref target="cose-sign-args"/>).</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS-186-5" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf">
          <front>
            <title>Digital Signature Standard (DSS)</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2023" month="February"/>
          </front>
        </reference>
        <reference anchor="IANA.COSE" target="https://www.iana.org/assignments/cose/">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="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>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="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>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>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="RFC9864">
          <front>
            <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>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>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>
          </front>
          <seriesInfo name="RFC" value="9864"/>
          <seriesInfo name="DOI" value="10.17487/RFC9864"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="FALCON" target="https://falcon-sign.info/">
          <front>
            <title>FALCON: Fast-Fourier Lattice-based Compact Signatures over NTRU</title>
            <author fullname="Pierre-Alain Fouque">
              <organization/>
            </author>
            <author fullname="Jeffrey Hoffstein">
              <organization/>
            </author>
            <author fullname="Paul Kirchner">
              <organization/>
            </author>
            <author fullname="Vadim Lyubashevsky">
              <organization/>
            </author>
            <author fullname="Thomas Pornin">
              <organization/>
            </author>
            <author fullname="Thomas Prest">
              <organization/>
            </author>
            <author fullname="Thomas Ricosset">
              <organization/>
            </author>
            <author fullname="Gregor Seiler">
              <organization/>
            </author>
            <author fullname="William Whyte">
              <organization/>
            </author>
            <author fullname="Zhenfei Zhang">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="FIPS-201" target="https://csrc.nist.gov/pubs/fips/201-3/final">
          <front>
            <title>Personal Identity Verification (PIV) of Federal Employees and Contractors</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="FIPS-204" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
        </reference>
        <reference anchor="I-D.COSE-Hash-Envelope">
          <front>
            <title>COSE Hash Envelope</title>
            <author fullname="Orie Steele" initials="O." surname="Steele">
         </author>
            <author fullname="Steve Lasker" initials="S." surname="Lasker">
         </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="15" month="November" year="2025"/>
            <abstract>
              <t>   This document defines new COSE header parameters for signaling a
   payload as an output of a hash function.  This mechanism enables
   faster validation, as access to the original payload is not required
   for signature validation.  Additionally, hints of the hashed
   payload's content format and availability are defined, providing
   references to optional discovery mechanisms that can help to find
   original payload content.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-hash-envelope-10"/>
        </reference>
        <reference anchor="I-D.bradleylundberg-ARKG">
          <front>
            <title>The Asynchronous Remote Key Generation (ARKG) algorithm</title>
            <author fullname="Emil Lundberg" initials="E." surname="Lundberg">
              <organization>Yubico</organization>
            </author>
            <author fullname="John Bradley" initials="J." surname="Bradley">
              <organization>Yubico</organization>
            </author>
            <date day="5" month="July" year="2026"/>
            <abstract>
              <t>   Asynchronous Remote Key Generation (ARKG) is an abstract algorithm
   that enables delegation of asymmetric public key generation without
   giving access to the corresponding private keys.  This capability
   enables a variety of applications: a user agent can generate
   pseudonymous public keys to prevent tracking; a message sender can
   generate ephemeral recipient public keys to enhance forward secrecy;
   two paired authentication devices can each have their own private
   keys while each can register public keys on behalf of the other.

   This document provides three main contributions: a specification of
   the generic ARKG algorithm using abstract primitives; a set of
   formulae for instantiating the abstract primitives using concrete
   primitives; and an initial set of fully specified concrete ARKG
   instances.  We expect that additional instances will be defined in
   the future.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bradleylundberg-cfrg-arkg-11"/>
        </reference>
        <reference anchor="NIST-SP-800-73-5" target="https://doi.org/10.6028/NIST.SP.800-73pt2-5">
          <front>
            <title>Interfaces for Personal Identity Verification: Part 2 – PIV Card Application Card Command Interface</title>
            <author fullname="Hildegard Ferraiolo">
              <organization>National Institute of Standards and Technology, Gaithersburg, MD</organization>
            </author>
            <author fullname="Ketan Mehta">
              <organization>National Institute of Standards and Technology, Gaithersburg, MD</organization>
            </author>
            <author fullname="Salvatore Francomacaro">
              <organization>National Institute of Standards and Technology, Gaithersburg, MD</organization>
            </author>
            <author fullname="Ramaswamy Chandramouli">
              <organization>National Institute of Standards and Technology, Gaithersburg, MD</organization>
            </author>
            <author fullname="Sarbari Gupta">
              <organization>National Institute of Standards and Technology, Gaithersburg, MD</organization>
            </author>
            <date year="2024"/>
          </front>
          <refcontent>NIST Special Publication (SP) NIST SP 800-73pt2-5</refcontent>
        </reference>
        <reference anchor="PKCS11-Spec-v3.1" target="https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/os/pkcs11-spec-v3.1-os.html">
          <front>
            <title>PKCS #11 Specification Version 3.1.</title>
            <author fullname="Dieter Bong">
              <organization/>
            </author>
            <author fullname="Tony Cox">
              <organization/>
            </author>
            <date year="2023" month="July" day="23"/>
          </front>
          <annotation>Latest stage: <eref target="https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/pkcs11-spec-v3.1.html">https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.1/pkcs11-spec-v3.1.html</eref>.</annotation>
          <refcontent>OASIS Standard</refcontent>
        </reference>
        <reference anchor="OPENPGPCARD" target="https://gnupg.org/ftp/specs/OpenPGP-smart-card-application-3.4.1.pdf">
          <front>
            <title>Functional Specification of the OpenPGP application on ISO Smart Card Operating Systems</title>
            <author fullname="Achim Pietig">
              <organization/>
            </author>
            <date year="2020" month="March"/>
          </front>
          <refcontent>Version 3.4.1</refcontent>
        </reference>
        <reference anchor="RFC1958">
          <front>
            <title>Architectural Principles of the Internet</title>
            <author fullname="B. Carpenter" initials="B." role="editor" surname="Carpenter"/>
            <date month="June" year="1996"/>
            <abstract>
              <t>The Internet and its architecture have grown in evolutionary fashion from modest beginnings, rather than from a Grand Plan. While this process of evolution is one of the main reasons for the technology's success, it nevertheless seems useful to record a snapshot of the current principles of the Internet architecture. This is intended for general guidance and general interest, and is in no way intended to be a formal or invariant reference model. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1958"/>
          <seriesInfo name="DOI" value="10.17487/RFC1958"/>
        </reference>
        <reference anchor="RFC9380">
          <front>
            <title>Hashing to Elliptic Curves</title>
            <author fullname="A. Faz-Hernandez" initials="A." surname="Faz-Hernandez"/>
            <author fullname="S. Scott" initials="S." surname="Scott"/>
            <author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
            <author fullname="R. S. Wahby" initials="R. S." surname="Wahby"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="August" year="2023"/>
            <abstract>
              <t>This document specifies a number of algorithms for encoding or hashing an arbitrary string to a point on an elliptic curve. This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9380"/>
          <seriesInfo name="DOI" value="10.17487/RFC9380"/>
        </reference>
        <reference anchor="RFC9413">
          <front>
            <title>Maintaining Robust Protocols</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="June" year="2023"/>
            <abstract>
              <t>The main goal of the networking standards process is to enable the long-term interoperability of protocols. This document describes active protocol maintenance, a means to accomplish that goal. By evolving specifications and implementations, it is possible to reduce ambiguity over time and create a healthy ecosystem.</t>
              <t>The robustness principle, often phrased as "be conservative in what you send, and liberal in what you accept", has long guided the design and implementation of Internet protocols. However, it has been interpreted in a variety of ways. While some interpretations help ensure the health of the Internet, others can negatively affect interoperability over time. When a protocol is actively maintained, protocol designers and implementers can avoid these pitfalls.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9413"/>
          <seriesInfo name="DOI" value="10.17487/RFC9413"/>
        </reference>
        <reference anchor="RFC9580">
          <front>
            <title>OpenPGP</title>
            <author fullname="P. Wouters" initials="P." role="editor" surname="Wouters"/>
            <author fullname="D. Huigens" initials="D." surname="Huigens"/>
            <author fullname="J. Winter" initials="J." surname="Winter"/>
            <author fullname="Y. Niibe" initials="Y." surname="Niibe"/>
            <date month="July" year="2024"/>
            <abstract>
              <t>This document specifies the message formats used in OpenPGP. OpenPGP provides encryption with public key or symmetric cryptographic algorithms, digital signatures, compression, and key management.</t>
              <t>This document is maintained in order to publish all necessary information needed to develop interoperable applications based on the OpenPGP format. It is not a step-by-step cookbook for writing an application. It describes only the format and methods needed to read, check, generate, and write conforming packets crossing any network. It does not deal with storage and implementation questions. It does, however, discuss implementation issues necessary to avoid security flaws.</t>
              <t>This document obsoletes RFCs 4880 ("OpenPGP Message Format"), 5581 ("The Camellia Cipher in OpenPGP"), and 6637 ("Elliptic Curve Cryptography (ECC) in OpenPGP").</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9580"/>
          <seriesInfo name="DOI" value="10.17487/RFC9580"/>
        </reference>
        <reference anchor="RFC9881">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- Algorithm Identifiers for the Module-Lattice-Based Digital Signature Algorithm (ML-DSA)</title>
            <author fullname="J. Massimo" initials="J." surname="Massimo"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="B. E. Westerbaan" initials="B. E." surname="Westerbaan"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>Digital signatures are used within X.509 certificates and Certificate Revocation Lists (CRLs), and to sign messages. This document specifies the conventions for using FIPS 204, the Module-Lattice-Based Digital Signature Algorithm (ML-DSA) in Internet X.509 certificates and CRLs. The conventions for the associated signatures, subject public keys, and private key are also described.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9881"/>
          <seriesInfo name="DOI" value="10.17487/RFC9881"/>
        </reference>
        <reference anchor="RFC9964">
          <front>
            <title>ML-DSA for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M. Prorock" initials="M." surname="Prorock"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="May" year="2026"/>
            <abstract>
              <t>This document specifies JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) serializations for the Module-Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum Cryptography (PQC) digital signature scheme defined in US NIST FIPS 204.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9964"/>
          <seriesInfo name="DOI" value="10.17487/RFC9964"/>
        </reference>
        <reference anchor="SECDSA" target="https://eprint.iacr.org/2021/910">
          <front>
            <title>SECDSA: Mobile signing and authentication under classical "sole control"</title>
            <author fullname="Eric Verheul">
              <organization/>
            </author>
            <date year="2021" month="July"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 827?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>We would like to thank
David Dong,
Ilari Liusvaara,
Lucas Prabel,
Sophie Schmieg,
and
Falko Strenzke
for their reviews of and contributions to this specification.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>Reference RFC 9580 in "Prior art" section for how OpenPGP smart cards handle EdDSA.</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Moved reference FIPS-186-5 from informative to normative references.</t>
        </li>
        <li>
          <t>Fixed subtly incorrect CDDL syntax in example in section "COSE Signing Arguments Common Parameters".</t>
        </li>
        <li>
          <t>Added missing references to RFC 8610 and RFC 9864.</t>
        </li>
        <li>
          <t>Removed unused reference SEC1.</t>
        </li>
        <li>
          <t>Fixed digester referred to as host in "Prior Art" subsection "PKCS #11".</t>
        </li>
        <li>
          <t>Reverted import of COSE Algorithms registrations from draft-bradleylundberg-cfrg-arkg made in individual-draft -07:
ESP256-split-ARKG, ESP384-ARKG, ESP384-split-ARKG, ESP512-ARKG, ESP512-split-ARKG, ESP256K-ARKG.</t>
        </li>
        <li>
          <t>Removed placeholder section "ECDSA with ARKG" added in individual-draft -07.</t>
        </li>
        <li>
          <t>Replaced ARKG examples with Ed25519ph and ML-DSA examples.</t>
        </li>
        <li>
          <t>Removed COSE_Sign_args registry definitions for ARKG.</t>
        </li>
        <li>
          <t>Moved draft-bradleylundberg-cfrg-arkg from normative to informative references.</t>
        </li>
        <li>
          <t>Defined context input for Ed25519ph and Ed448ph.</t>
        </li>
        <li>
          <t>Added COSE_Sign_Args member for context argument for Ed25519ph-split and Ed448ph-split.</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Created initial working group draft from draft-lundberg-cose-two-party-signing-algs-07</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
hQPlRALOgv8PwZKKpAubAAA=

-->

</rfc>
