<?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.34 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-lundberg-cose-two-party-signing-algs-07" category="std" consensus="true" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="Split Signing Algorithms for COSE">Split Signing Algorithms for COSE</title>
    <seriesInfo name="Internet-Draft" value="draft-lundberg-cose-two-party-signing-algs-07"/>
    <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="March" day="19"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>COSE</keyword>
    <keyword>Signing</keyword>
    <keyword>Algorithms</keyword>
    <keyword>Split Algorithms</keyword>
    <keyword>Split Signing</keyword>
    <keyword>ARKG</keyword>
    <abstract>
      <?line 149?>

<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-lundberg-cose-two-party-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/YubicoLabs/cose-two-party-signing-algs-rfc"/>.</t>
    </note>
  </front>
  <middle>
    <?line 161?>

<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>TODO: Spec 3.4.1 only covers ECDSA and RSA, but some implementations also support Ed25519.
Identify and include good references for how OpenPGP smart cards handle Ed25519.</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>host</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 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 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 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 <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>
      </section>
      <section anchor="ecdsa-arkg">
        <name>ECDSA with ARKG</name>
        <t>TODO: Move <xref section="5" sectionFormat="of" target="I-D.bradleylundberg-ARKG"/> to this document</t>
      </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,
to sign using a key derived by ARKG <xref target="I-D.bradleylundberg-ARKG"/>,
two additional arguments <tt>kh</tt> and <tt>ctx</tt> are needed in <tt>ARKG-Derive-Private-Key</tt> to derive the signing private key.</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 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 example conveys additional arguments for signing data
using the ESP256-split algorithm (see <xref target="ecdsa-split"/>)
and a key derived using <tt>ARKG-P256</tt> <xref target="I-D.bradleylundberg-ARKG"/>:</t>
        <sourcecode type="cddl"><![CDATA[
{
  3: -65539,   ; alg: ESP256-split with ARKG-P256 (placeholder value)

               ; ARKG-P256 key handle
               ; (HMAC-SHA-256-128 followed by
                  SEC1 uncompressed ECDH public key)
  -1: h'27987995f184a44cfa548d104b0a461d
        0487fc739dbcdabc293ac5469221da91b220e04c681074ec4692a76ffacb9043de
          c2847ea9060fd42da267f66852e63589f0c00dc88f290d660c65a65a50c86361',

               ; ctx argument to ARKG-Derive-Private-Key
  -2: 'ARKG-P256.test vectors',
}
]]></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>
          <li>
            <t>Name: ESP256-ARKG
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD</t>
              </li>
              <li>
                <t>Description: ESP256 using private key derived by ARKG-P256</t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: <xref target="RFC9864"/>, <xref target="I-D.bradleylundberg-ARKG"/></t>
              </li>
              <li>
                <t>Recommended: TBD</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: ESP256-split-ARKG
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD (placeholder -65539)</t>
              </li>
              <li>
                <t>Description: ESP256-split using private key derived by ARKG-P256</t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: This document, <xref target="I-D.bradleylundberg-ARKG"/></t>
              </li>
              <li>
                <t>Recommended: TBD</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: ESP384-ARKG
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD</t>
              </li>
              <li>
                <t>Description: ESP384 using private key derived by ARKG-P384</t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: <xref target="RFC9864"/>, <xref target="I-D.bradleylundberg-ARKG"/></t>
              </li>
              <li>
                <t>Recommended: TBD</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: ESP384-split-ARKG
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD</t>
              </li>
              <li>
                <t>Description: ESP384-split using private key derived by ARKG-P384</t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: This document, <xref target="I-D.bradleylundberg-ARKG"/></t>
              </li>
              <li>
                <t>Recommended: TBD</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: ESP512-ARKG
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD</t>
              </li>
              <li>
                <t>Description: ESP512 using private key derived by ARKG-P521</t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: <xref target="RFC9864"/>, <xref target="I-D.bradleylundberg-ARKG"/></t>
              </li>
              <li>
                <t>Recommended: TBD</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: ESP512-split-ARKG
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD</t>
              </li>
              <li>
                <t>Description: ESP512-split using private key derived by ARKG-P521</t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: This document, <xref target="I-D.bradleylundberg-ARKG"/></t>
              </li>
              <li>
                <t>Recommended: TBD</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Name: ESP256K-ARKG
            </t>
            <ul spacing="normal">
              <li>
                <t>Value: TBD</t>
              </li>
              <li>
                <t>Description: ESP256K using private key derived by ARKG-P256k</t>
              </li>
              <li>
                <t>Capabilities: [kty]</t>
              </li>
              <li>
                <t>Change Controller: IETF</t>
              </li>
              <li>
                <t>Reference: [RFC8812], <xref target="I-D.bradleylundberg-ARKG"/></t>
              </li>
              <li>
                <t>Recommended: TBD</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.
These values come from <xref section="5.3" sectionFormat="of" target="I-D.bradleylundberg-ARKG"/>.</t>
          <section anchor="kh">
            <name>kh</name>
            <dl>
              <dt>Name:</dt>
              <dd>
                <t>kh</t>
              </dd>
              <dt>Algorithms:</dt>
              <dd>
                <t>ESP256-ARKG, ESP256-split-ARKG, ESP384-ARKG, ESP384-split-ARKG, ESP512-ARKG, ESP512-split-ARKG, ESP256K-ARKG</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>kh argument to ARKG-Derive-Private-Key.</t>
              </dd>
              <dt>Reference:</dt>
              <dd>
                <t><xref section="5.3" sectionFormat="of" target="I-D.bradleylundberg-ARKG"/></t>
              </dd>
            </dl>
          </section>
          <section anchor="ctx">
            <name>ctx</name>
            <dl>
              <dt>Name:</dt>
              <dd>
                <t>ctx</t>
              </dd>
              <dt>Algorithms:</dt>
              <dd>
                <t>ESP256-ARKG, ESP256-split-ARKG, ESP384-ARKG, ESP384-split-ARKG, ESP512-ARKG, ESP512-split-ARKG, ESP256K-ARKG</t>
              </dd>
              <dt>Label:</dt>
              <dd>
                <t>-2</t>
              </dd>
              <dt>Cbor Type:</dt>
              <dd>
                <t>bstr</t>
              </dd>
              <dt>Required:</dt>
              <dd>
                <t>Required</t>
              </dd>
              <dt>Description:</dt>
              <dd>
                <t>ctx argument to ARKG-Derive-Private-Key.</t>
              </dd>
              <dt>Reference:</dt>
              <dd>
                <t><xref section="5.3" sectionFormat="of" target="I-D.bradleylundberg-ARKG"/></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>This specification is mutually dependent on <xref target="I-D.bradleylundberg-ARKG"/>:</t>
        <ul spacing="normal">
          <li>
            <t><xref section="5.2" sectionFormat="of" target="I-D.bradleylundberg-ARKG"/>
duplicates the definitions of the COSE algorithm identifiers
ESP256-ARKG, ESP256-split-ARKG, ESP384-ARKG, ESP384-split-ARKG, ESP512-ARKG and ESP512-split-ARKG
registered in <xref target="cose-alg-reg"/> of this specification.</t>
          </li>
          <li>
            <t>The initial contents of the COSE Signing Arguments Algorithm Parameters Registry registered in <xref target="alg-params-reg-initial"/>
are defined in <xref section="5.3" sectionFormat="of" target="I-D.bradleylundberg-ARKG"/>.</t>
          </li>
        </ul>
        <t>These sections of <xref target="I-D.bradleylundberg-ARKG"/> will likely be moved to <xref target="ecdsa-arkg"/>
in a future revision of this specification.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="27" month="February" 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-10"/>
        </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>
        <reference anchor="SEC1" target="https://www.secg.org/sec1-v2.pdf">
          <front>
            <title>SEC 1: Elliptic Curve Cryptography</title>
            <author>
              <organization>Certicom Research</organization>
            </author>
            <date year="2009" month="May"/>
          </front>
        </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="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="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="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="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="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 910?>

<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>-07</t>
      <ul spacing="normal">
        <li>
          <t>Populated IANA Considerations sections.</t>
        </li>
        <li>
          <t>Imported COSE Algorithms registrations from draft-bradleylundberg-cfrg-arkg:
ESP256-split-ARKG, ESP384-ARKG, ESP384-split-ARKG, ESP512-ARKG, ESP512-split-ARKG, ESP256K-ARKG.</t>
        </li>
        <li>
          <t>Added placeholder section "ECDSA with ARKG" for additional definitions to be imported from draft-bradleylundberg-cfrg-arkg.</t>
        </li>
      </ul>
      <t>-06</t>
      <ul spacing="normal">
        <li>
          <t>Added "Prior Art" section to Introduction.</t>
        </li>
      </ul>
      <t>-05</t>
      <ul spacing="normal">
        <li>
          <t>Fixed ESP384-split misspelled as ESP381-split.</t>
        </li>
        <li>
          <t>Clarified that non-"-split" alg IDs defined here may be exposed to verifiers.</t>
        </li>
        <li>
          <t>Clarified that transport of digest is out of scope, but expected to be passed as data to be signed.</t>
        </li>
        <li>
          <t>Added Security Considerations section "Incorrect Use of Split Signing Algorithm Identifiers".</t>
        </li>
        <li>
          <t>Added Implementation Considerations section "Using Non-Split Signing Algorithm Identifiers in a Split Signing Protocol".</t>
        </li>
        <li>
          <t>Added section "Defining Split Signing Algorithms" with guidance for handling domain separation tags in new definitions.</t>
        </li>
        <li>
          <t>Clarified in introduction that Ed25519 and Ed25519ph(-split) have distinct verification algorithms.</t>
        </li>
        <li>
          <t>Clarified in section "Protocol-Level Trusted Roles" why digester is necessarily trusted.</t>
        </li>
        <li>
          <t>Clarified in section "Component-Level Trusted Roles" that redundant forgeries are acceptable,
and added example of key compromise concern for naively hashed FALCON.</t>
        </li>
      </ul>
      <t>-04</t>
      <ul spacing="normal">
        <li>
          <t>Added Implementation Status section.</t>
        </li>
      </ul>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Updated reference to ARKG parameter <tt>info</tt> renamed to <tt>ctx</tt>.</t>
        </li>
        <li>
          <t>Refined abstract and introduction to emphasize that the central novelty is not split algorithms as a concept,
but providing COSE algorithm identifiers for use cases that benefit from such splitting.</t>
        </li>
        <li>
          <t>Replaced reference to draft-ietf-jose-fully-specified-algorithms with RFC 9864.</t>
        </li>
        <li>
          <t>Added inline definitions of Ed25519ph and Ed448ph registrations,
replacing speculative references to registrations that do not exist elsewhere.</t>
        </li>
        <li>
          <t>Added missing captions to Tables 1 and 2.</t>
        </li>
        <li>
          <t>Added Security Considerations section.</t>
        </li>
      </ul>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>Renamed document from "COSE Algorithms for Two-Party Signing" to "Split signing algorithms for COSE"
and updated introduction and terminology accordingly.</t>
        </li>
        <li>
          <t>Dropped definitions for HashML-DSA, as split variants of ML-DSA are being actively discussed in other IETF groups.</t>
        </li>
        <li>
          <t>Changed "Base algorithm" heading in definition tables to "Verification algorithm".</t>
        </li>
        <li>
          <t>Remodeled COSE_Key_Ref as COSE_Sign_Args.
          </t>
          <ul spacing="normal">
            <li>
              <t>Dropped definitions of reference types for COSE Key Types registry.</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Added IANA registration requests for algorithms defined.</t>
        </li>
        <li>
          <t>Updated references and other editorial tweaks.</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Initial individual draft</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
6AuGX7WL3UlkNnpPPcrjDDBdJkrmc0q7NV5a5q+CSnd0j4ZKVa7Gm8kimFJ6
5y0J95JcpFgEnEU66EloxpSPd7Ckwng2TnXUqLW05YU0cJfVRrMVraLapgG0
OFQIR5xAwFZQIlSWpRlg0UHdkq93jMgFRtyNuHNAsordE2k0eciCy5AYiWl9
wYIkb4f62EkJoTwjxynjBqAqgOt0ilrA5Snn3tS0Kx6INSEc6HKFnuVwMGRY
67vC39rcXN8BNsV8are+GuvGoZHFk3ksA4UVp4AwxMKeel7D6fSDcz8uk0sT
Fu968vp4b9/Xubr+YLitwUr6YvN2wd1CQaFA0z/DrHBK4XsNGg0mmeJM2HbP
H+yK6ePh853t5zs7m+PB9obc2AjGcnNjOxz0N0Z9ubE1CO3o/Y3t5+Pg+fpO
OApCOQqGO+sy2NzY2hkOB6HcGYyGw77qbwRb24P+8w0V4BX5fGs8lsFop7+x
Hrr7CobbG8+V3Olv9cfhxjCUw63n462t7c2h2lrf3N4Z94N+Pwy2t8fDnX64
tdUPtjYl/LfZD7a31rcGj7stsASdt8qnA4Jaou/i1oe74rEFfY9acF0rbifp
yBlhC7/36/6Wz49MpwXyuNzp0jXWqPw36hp46Dl7YcQpemH4iTb3jNHD7lpb
MYFRp4PTtmRjUfOrQtk4otdIfqr70ii5iBfGXRyYb2AuHoi/Ir6tmg+MVCCR
rUrbuWghrNdxsmB1TQYBRgnFIciOV5UHU41ebnpr7HoKsx3RdxfH9cDfIn/G
ZdvSYtIBzSbq03EuN1naVdJZ7Q6uWmcxzHk4aOSlcD+aK1VHJlN13F6WDma/
5tBOFjAqdVXLl9sqIuZ4BolxmxYDVW8MbWrkxpGhN0ccBZ2eilqBk981uXUN
M+7EBevEig78ywNwd7DoNzaBAHIZFv+3gIPV7+YuosSsDdupYNJ5vRPRNfUA
ATsNuwElts+GqZtB04v4tc2ew+4baTZRoDzIopDBlVb7UeegZDmkqmk0Nzhi
8GsJovc8p/9lZSSggCTQkbT7pHscOWP4te5LsqVvSqiucdNGZDrVfhpuYD8B
Xye17Yb8S+hRQIiP0sZhw2yjW8dtzk6DhFUVNhDukzZ1ZnMCyHqVNl3scY7Q
NT5MQi3bSmfByNbtwOpFC7qNUw9se1U/YUxG5nyi9lJ+grj7kw50ImtYwqRq
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
d7pkX0CdppnP6wjV6Nslu/H7zz3vmThJ5yW/pqUtI9acUA/uBEnDnVSaqbFZ
LTWWlI8wk+PCbx5nMIZ/8LR2K8L6o1wAuOI9ehmVq9/YV7U1Ws52uBtB1YXF
ZRP6lbcz9000X9kgUmd/y7Nr6NgXOnfsGmDYI4yR67oaemQTH3kZfVJhXTzO
ohxOGpgx+Ufp0oAv4T73EevIPUs+YkyRt8VU2FTo6KCyzcm+n0n9mnosgiFa
cqqqFsazr+GhprGcg9145Q6/vrbhQKVEcH55drPhYHU6y3qL2JP6lmK3TjX+
6qIFO8t3K1ZwpraDf7XrcIcxsfaaFmqCQ61/WjtP4hqwC5+DqPWji8haqcq2
lr8z/gnjytP7vTt+YRa7zVWdX2CH09uqyLNRbK6r45cPvbIwvyN0p+IQ6BCL
fKsSYvIUB4Gac3jCeGPoeEy1J6BUvUCWOvOqjD3cpvZWF95y4SzR6oa3DMm0
B6/qWOb31/Hm9/OQOG0tRESaQeX2v4yScXoJt/C7L+AGamKJoDk17+JGFyaW
sfKrn90zToWazWGp/BpHXUYeoMsIeFoCgjPm9sQYhWoYdLl5FUaC4EJQIUlz
JxfqW7VUSyI4oQcJa1dMkx6VwGr1Sz2oxoamKyjShVshrtwABTPVSBVj/x+o
Ao1LUA19G3zynbUSvaBbE5PDKpKLEowMNpW8Koma8Z7zbGtiq0tqGC6Ka1yB
K8UcS3Jep03mtivr3CIfCnoIBdKVaqCrNSHvpmpEObfy5JxDhgNOzbg3NyRU
GnoEQMYP27mPAN0M8NHJnN+kPluwmvF0cAWdpY0d8Bkcp2McBRpra5hGVYQq
m0VJGqeTWySyNEM8wV4kz8RBls7nKqwdBI5b9b3tIroxCl4DxUutuZq+0kC3
I0UL072pkS8FZa4jp1yoj3llYpKl5Zy5EmWegbD9UbqvEeyAzJOhbsnhFATp
93chLJa88IsxldqVaLXH+G1w8XUrCr0N7fuGXTlYTt4nA2KBLolz+qmKxMIR
DxzWglpZLRauy7R0J0anNx6zh14bo+FXLDPUFAUC0GQobpS8ymnGPs5oInWO
64BI0vv/Jq53M1amAAA=

-->

</rfc>
