<?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.29 (Ruby 3.2.3) -->
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-jose-hpke-encrypt-08" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="Use of HPKE in JOSE">Use of Hybrid Public Key Encryption (HPKE) with JSON Object Signing and Encryption (JOSE)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-jose-hpke-encrypt-08"/>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="Hannes Tschofenig">
      <organization abbrev="H-BRS">University of Applied Sciences Bonn-Rhein-Sieg</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <author fullname="Aritra Banerjee">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Munich</city>
          <country>Germany</country>
        </postal>
        <email>aritra.banerjee@nokia.com</email>
      </address>
    </author>
    <author initials="O." surname="Steele" fullname="Orie Steele">
      <organization>Transmute</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>orie@transmute.industries</email>
      </address>
    </author>
    <author initials="M." 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="2025" month="April" day="25"/>
    <area>Security</area>
    <workgroup>JOSE</workgroup>
    <keyword>HPKE</keyword>
    <keyword>JOSE</keyword>
    <keyword>PQC</keyword>
    <keyword>Hybrid</keyword>
    <abstract>
      <?line 102?>

<t>This specification defines Hybrid Public Key Encryption (HPKE) for use with
JSON Object Signing and Encryption (JOSE). HPKE offers a variant of
public key encryption of arbitrary-sized plaintexts for a recipient public key.</t>
      <t>HPKE works for any combination of an asymmetric key encapsulation mechanism (KEM),
key derivation function (KDF), and authenticated encryption with additional data
(AEAD) function.</t>
      <t>This document defines the use of the HPKE with JOSE.</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-jose-hpke-encrypt/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        jose Working Group mailing list (<eref target="mailto:jose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/jose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/jose/"/>.
      </t>
    </note>
  </front>
  <middle>
    <?line 115?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Hybrid Public Key Encryption (HPKE) <xref target="RFC9180"/> is a scheme that
provides public key encryption of arbitrary-sized plaintexts given a
recipient's public key.</t>
      <t>This specification enables JSON Web Encryption (JWE) to leverage HPKE,
bringing support for KEMs and the possibility of Post Quantum or Hybrid KEMs to JWE.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>This specification uses the following abbreviations and terms:</t>
      <ul spacing="normal">
        <li>
          <t>Content Encryption Key (CEK), is defined in <xref target="RFC7517"/>.</t>
        </li>
        <li>
          <t>Hybrid Public Key Encryption (HPKE) is defined in <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>pkR is the public key of the recipient, as defined in <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>skR is the private key of the recipient, as defined in <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Key Encapsulation Mechanism (KEM), see <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Key Derivation Function (KDF), see <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Authenticated Encryption with Associated Data (AEAD), see <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Additional Authenticated Data (AAD), see <xref target="RFC9180"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>This specification describes two modes of use for HPKE in JWE:</t>
      <ul spacing="normal">
        <li>
          <t>HPKE JWE Integrated Encryption, where HPKE is used to encrypt the plaintext.</t>
        </li>
        <li>
          <t>HPKE JWE Key Encryption, where HPKE is used to encrypt a content encryption key (CEK) and the CEK is subsequently used to encrypt the plaintext.</t>
        </li>
      </ul>
      <t>When "alg" is a JOSE-HPKE algorithm:</t>
      <ul spacing="normal">
        <li>
          <t>If "enc" is "int", HPKE JWE Integrated Encryption is used.</t>
        </li>
        <li>
          <t>If "enc" is an AEAD algorithm, the recipient Key Managment mode is Key Encryption.</t>
        </li>
      </ul>
      <t>The HPKE KEM, KDF, and AEAD used depend on the JOSE-HPKE algorithm used.</t>
      <t>HPKE supports several modes, which are described in Table 1 of <xref target="RFC9180"/>.</t>
      <t>In JOSE-HPKE, only "mode_base" and "mode_psk" are supported.
When "psk_id" JOSE Header parameter is present the mode is "mode_psk", otherwise the mode is "mode_base".</t>
      <t>JWE supports different serializations, including Compact JWE Serialization as described in Section 3.1 of <xref target="RFC7516"/>, General JWE JSON Serialization as described in Section 3.2 of <xref target="RFC7516"/>.</t>
      <t>Certain JWE features are only supported in specific serializations.</t>
      <t>For example Compact JWE Serialization does not support the following:</t>
      <ul spacing="normal">
        <li>
          <t>additional authenticated data</t>
        </li>
        <li>
          <t>multiple recipients</t>
        </li>
        <li>
          <t>unprotected headers</t>
        </li>
      </ul>
      <t>HPKE JWE Key Encryption can be used with "aad" but only when not expressed with Compact JWE Serialization.</t>
      <t>Single recipient HPKE JWE Key Encryption with no "aad" can be expressed in Compact JWE Serialization, so long as the recipient and sender use the same HPKE Setup process as described in { Section 5 of RFC9180 }.</t>
      <section anchor="auxiliary-authenticated-application-information">
        <name>Auxiliary Authenticated Application Information</name>
        <t>HPKE has two places at which applications can specify auxiliary authenticated information as described in { Section 8.1 of RFC9180 }.</t>
        <t>HPKE algorithms are not required to process "apu" and "apv" as described in Section 4.6.1 of <xref target="RFC7518"/>, despite appearing to be similar to key agreement algorithms (such as "ECDH-ES").</t>
        <t>The "aad parameter" for Open() and Seal() <bcp14>MUST</bcp14> be used with both HPKE JWE Integrated Encryption and HPKE JWE Key Encryption.</t>
        <t>To avoid confusion between JWE AAD and HPKE AAD, this document uses the term "HPKE AEAD AAD" to refer the "aad parameter" for Open() and Seal().</t>
      </section>
      <section anchor="encapsulated-keys">
        <name>Encapsulated Keys</name>
        <t>HPKE encapsulated key is defined in Section 5.1.1 of <xref target="RFC9180"/>.</t>
        <t>In HPKE JWE Integrated Encryption, the JWE Encrypted Key of the sole recipient is the HPKE encapsulated key.</t>
        <t>In HPKE JWE Key Encryption, each recipient JWE Encrypted Key is the encrypted content encryption key, and the value of JOSE Header parameter "ek"
is base64url-encoded HPKE encapsulated key.</t>
      </section>
    </section>
    <section anchor="integrated-encryption">
      <name>Integrated Encryption</name>
      <t>In HPKE JWE Integrated Encryption:</t>
      <ul spacing="normal">
        <li>
          <t>The protected header <bcp14>MUST</bcp14> contain an "alg" that is JOSE-HPKE algorithm.</t>
        </li>
        <li>
          <t>The protected header <bcp14>MUST</bcp14> contain an "enc" with value "int". This is an explicit exception to requirement in Section 4.1.2 of <xref target="RFC7516"/> that
"enc" must be an AEAD algorithm. This is appropriate, as HPKE will perform plaintext encryption.</t>
        </li>
        <li>
          <t>The protected header parameters "psk_id" <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>The protected header parameter "ek" <bcp14>MUST NOT</bcp14> be present.</t>
        </li>
        <li>
          <t>There <bcp14>MUST</bcp14> be exactly one recipient.</t>
        </li>
        <li>
          <t>The JWE Encrypted Key <bcp14>MUST</bcp14> be encapsulated key as defined in Section 5.1.1 of <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>JWE Initialization Vector and JWE Authentication Tag <bcp14>MUST NOT</bcp14> be present.</t>
        </li>
        <li>
          <t>JWE AAD <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>JWE Ciphertext is ciphertext as defined in Section 5.2 of <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>The HPKE info parameter defaults to the empty string; mutually known private information <bcp14>MAY</bcp14> be used instead. The concept of mutually known private information is defined in <xref target="NIST.SP.800-56Ar3"/> as an input to the key derivation function.</t>
        </li>
        <li>
          <t>The HPKE aad parameter <bcp14>MUST</bcp14> be set to the "JWE Additional Authenticated Data encryption parameter", as defined in Step 14 of Section 5.1 of <xref target="RFC7516"/>.</t>
        </li>
        <li>
          <t>If protected header contains the parameter "zip" (Section 4.1.3 of <xref target="RFC7516"/>), the plaintext is the message compressed with the indicated algorithm.
Otherwise, the plaintext is the raw message.</t>
        </li>
      </ul>
      <t>When decrypting, the checks in <xref target="RFC7516"/> section 5.2, steps 1 through 5 <bcp14>MUST</bcp14> be performed. The JWE Encrypted Key in step 2 is the
base64url encoded encapsulated key.</t>
      <section anchor="compact-example">
        <name>Compact Example</name>
        <t>A Compact JWE or JSON Web Token:</t>
        <artwork><![CDATA[
eyJhbGciOiJIUEtFLVAyNTYtU0hBMjU2LUExMjhHQ00iLCJlbmMiOiJkaXIiLCJraWQiOiJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6andrLXRodW1icHJpbnQ6c2hhLTI1Njp2b2RIQ3FjVVdFbV83NUpWcXlhTjhaS1FVMjF3VEFSYzhkRzhuVU1jZlBVIn0.BCsvYxTHM4CO_OwQxL3lkJDdlw3UDjx2xN9MIXnbVzfTgFJmo_Es2xdH-fYs9EXfH_V53JgMWfUm7rBD_oE5efU..7_va6cnwClMsw7h7lqpm2tCrH9NkciM-g9UabdPWcOeIRmAf01NLYG7Wn8fFoohHlcGgd0nh7Jmo9nvHFi7sH6kOX7pplBnvLUoPrqeyW4TdXo_X8YThNKf9BFyWGyF6fjelbic5jSYClFaenMkTnjpHxFW1sWuiuZVmO1EOzrlNttWy.
]]></artwork>
        <t>After verification:</t>
        <artwork><![CDATA[
{
  "protectedHeader": {
    "alg": "HPKE-0",
    "enc": "int",
    "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:vodHCqcUWEm_75JVqyaN8ZKQU21wTARc8dG8nUMcfPU"
  },
  "payload": {
    "urn:example:claim": true,
    "iss": "urn:example:issuer",
    "aud": "urn:example:audience",
    "iat": 1729785491,
    "exp": 1729792691
  }
}
]]></artwork>
      </section>
      <section anchor="json-example">
        <name>JSON Example</name>
        <t>A JSON Encoded JWE:</t>
        <artwork><![CDATA[
{
  "protected": "eyJhbGciOiJIUEtFLVAyNTYtU0hBMjU2LUExMjhHQ00iLCJlbmMiOiJkaXIiLCJraWQiOiJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6andrLXRodW1icHJpbnQ6c2hhLTI1NjpTNkFYZmRVXzZZZnp2dTBLRERKYjBzRnV3bklXUGs2TE1URXJZaFBiMzJzIiwicHNrX2lkIjoib3VyLXByZS1zaGFyZWQta2V5LWlkIiwiYXV0aF9raWQiOiJ1cm46aWV0ZjpwYXJhbXM6b2F1dGg6andrLXRodW1icHJpbnQ6c2hhLTI1NjpTNkFYZmRVXzZZZnp2dTBLRERKYjBzRnV3bklXUGs2TE1URXJZaFBiMzJzIn0",
  "encrypted_key": "BD7QVodtG-FwYASgb36zuTzUCc80aiYwS6JOOE-6_heUGyAZt-cU0818e4oYqP7ebBuW3KTM9EQA0vM5fWp6hj0",
  "ciphertext": "ZxqtYoomgVQGctnv1I_EBVI1NIeJ7qJw2iVtqwUw3fXa8FK-",
  "aad": "8J-PtOKAjeKYoO-4jyBiZXdhcmUgdGhlIGFhZCE"
}
]]></artwork>
        <t>After verification:</t>
        <artwork><![CDATA[
{
  "protectedHeader": {
    "alg": "HPKE-0",
    "enc": "int",
    "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
  },
  "plaintext": "🖤 this plaintext!",
  "additionalAuthenticatedData": "🏴‍☠️ beware the aad!"
}
]]></artwork>
      </section>
    </section>
    <section anchor="key-encryption">
      <name>Key Encryption</name>
      <t>Recipients using JOSE-HPKE can be added alongside other recpients (e.g., <tt>ECDH-ES+A128KW</tt> or <tt>RSA-OAEP-384</tt>), as HPKE is used to encrypt the
Content Encryption Key, which is then processed as specified in JWE.</t>
      <t>The encoding of the protected header encoding remains consistent with existing JWE formatting rules.</t>
      <t>In HPKE JWE Key Encryption:</t>
      <ul spacing="normal">
        <li>
          <t>The Key Management Mode is Key Encryption.</t>
        </li>
        <li>
          <t>When all recipients use the same HPKE algorithm to secure the Content Encryption Key, the JWE Protected Header <bcp14>SHOULD</bcp14> contain "alg".
Otherwise, the JWE Protected Header (and JWE Shared Unprotected Header) <bcp14>MUST NOT</bcp14> contain "alg".</t>
        </li>
        <li>
          <t>JOSE Header parameter "alg" <bcp14>MUST</bcp14> be a JOSE-HPKE algorithm.</t>
        </li>
        <li>
          <t>JOSE Header parameter "psk_id" <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>JOSE Header parameter "ek" <bcp14>MUST</bcp14> be present and contain base64url-encoded HPKE encapsulated key.</t>
        </li>
        <li>
          <t>Recipient JWE Encrypted Key <bcp14>MUST</bcp14> be the ciphertext from HPKE Encryption.</t>
        </li>
        <li>
          <t>The HPKE info parameter defaults to the empty string; mutually known private information <bcp14>MAY</bcp14> be used instead.</t>
        </li>
        <li>
          <t>The HPKE AAD parameter <bcp14>MUST</bcp14> be set to the empty string.</t>
        </li>
        <li>
          <t>THE HPKE plaintext <bcp14>MUST</bcp14> be set to the CEK.</t>
        </li>
      </ul>
      <t>The processing of "enc", "iv", "tag", "aad", and "ciphertext" is already defined in <xref target="RFC7516"/>. Implementations should follow the existing
JWE specifications for handling these parameters, and no additional processing requirements are introduced by HPKE-based key encryption.</t>
      <section anchor="multiple-recipients-example">
        <name>Multiple Recipients Example</name>
        <t>For example:</t>
        <artwork><![CDATA[
{
  "protected": "eyJlbmMiOiJBMTI4R0NNIn0",
  "iv": "ZL0HDvZJizA6vyTV",
  "ciphertext": "Oq26x9vppULrGNzCn2jaB_Sl-Swjv7e0AcgnhUR5AtrjEf2v6jee09WN-Ne-HIGXBgQpgJPchg0eWNmgv4Ozi5I",
  "tag": "ULnlOiJRYfCzM_r5j9sLEQ",
  "aad": "cGF1bCBhdHJlaWRlcw",
  "recipients": [
    {
      "encrypted_key": "G3HmlpOgA4H1i_RQhT44Nw7svDwUqvNR",
      "header": {
        "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:cxQC_lWt22BIjH5AWSLHCZk_f-mU3-W4Ztcu5-ZbwTk",
        "alg": "ECDH-ES+A128KW",
        "epk": {
          "kty": "EC",
          "crv": "P-256",
          "x": "JnGWSQ90hlt0H7bfcgfaw2DZE-qqv_cwA4_Dn_CkLzE",
          "y": "6jw1AC5q9-qewwBh9DK5YzUHLOogToGDSpoYAJdNo-E"
        }
      }
    },
    {
      "encrypted_key": "pn6ED0ijngCiWF8Hd_PzTyayd2OmRF7QarTVfuWj6dw",
      "header": {
        "alg": "HPKE-0",
        "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
        "ek": "BI41YDnhTTI6jSd7T62rLwzCCt_tBqN5LFooiZ7eXJsh01O0-h-BQ6JToKX9UXDw_3ylbXTiYWmPXl2fNmr4BeQ"
      }
    }
  ]
}
]]></artwork>
        <t>After verification:</t>
        <artwork><![CDATA[
{
  "plaintext": "🎵 My lungs taste the air of Time Blown past falling sands 🎵",
  "protectedHeader": {
    "enc": "A128GCM"
  },
  "unprotectedHeader": {
    "alg": "HPKE-0",
    "enc": "int",
    "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
    "ek": "BI41YDnhTTI6jSd7T62rLwzCCt_tBqN5LFooiZ7eXJsh01O0-h-BQ6JToKX9UXDw_3ylbXTiYWmPXl2fNmr4BeQ"
  },
  "additionalAuthenticatedData": "paul atreides"
}
]]></artwork>
      </section>
    </section>
    <section anchor="alg-mapping">
      <name>Mapping HPKE Keys to JWK for JOSE</name>
      <t>JWKs can be used to represent JOSE-HPKE private or public keys. For the algorithms defined in this document, the valid combinations of the
JWE Algorithm, "kty", and "crv" are shown in <xref target="ciphersuite-kty-crv"/>.</t>
      <figure anchor="ciphersuite-kty-crv">
        <name>JWK Types and Curves for JOSE-HPKE Ciphersuites</name>
        <artwork><![CDATA[
+---------------------+-----------------+
| JWE Algorithm       | JWK |           |
|                     | kty | crv       |
+---------------------+-----+-----------+
| HPKE-0              | EC  | P-256     |
| HPKE-1              | EC  | P-384     |
| HPKE-2              | EC  | P-521     |
| HPKE-3, HPKE-4      | OKP | X25519    |
| HPKE-5, HPKE-6      | OKP | X448      |
+---------------------+-----+-----------+
]]></artwork>
      </figure>
      <t>When the "kty" field is "AKP" and "alg" is a JOSE-HPKE algorithm, the public and private keys <bcp14>MUST</bcp14> be raw HPKE public and private keys (respectively)
for the KEM used by HPKE.</t>
      <section anchor="jwk-representation-of-a-jose-hpke-key-with-hpke-ciphersuite">
        <name>JWK Representation of a JOSE-HPKE Key with HPKE Ciphersuite</name>
        <t>An example is illustrated below for representing a JOSE-HPKE public/private keys.</t>
        <artwork><![CDATA[
{
  "kty": "OKP",
  "crv": "X25519",
  "x": "3pPHgcHYVYpOpB6ISwHdoPRB6jNgd8mM4nRyyj4H3aE",
  "d": "nWGxne0tAiV8Hk6kcy4rN0wMskjl9yND0N3Xeho9n6g",
  "kid": "recipient-key-1",
  "alg": "HPKE-3",
  "key_ops": "encrypt"
}
]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This specification is based on HPKE and the security considerations of
<xref target="RFC9180"/> are therefore applicable also to this specification.</t>
      <t>HPKE assumes the sender is in possession of the public key of the recipient and
HPKE JOSE makes the same assumptions. Hence, some form of public key distribution
mechanism is assumed to exist but outside the scope of this document.</t>
      <t>HPKE in Base mode does not offer authentication as part of the HPKE KEM.
In this case JOSE constructs like JWS and JSON Web Tokens (JWTs) can be used to add authentication.
HPKE also offers modes that offer authentication.</t>
      <t>HPKE relies on a source of randomness to be available on the device.
In Key Agreement with Key Wrapping mode, CEK has to be randomly generated and it <bcp14>MUST</bcp14> be ensured that the guidelines in <xref target="RFC8937"/> for random number generations are followed.</t>
      <section anchor="key-management">
        <name>Key Management</name>
        <t>A single KEM key <bcp14>MUST NOT</bcp14> be used with multiple algorithms.  Each key and its
associated algorithm suite, comprising the KEM, KDF, and AEAD, should be managed independently.  This separation prevents unintended
interactions or vulnerabilities between suites, ensuring the integrity and security guarantees of each algorithm suite are
preserved.  Additionally, the same key <bcp14>MUST NOT</bcp14> be used for both key encryption and integrated encryption, as it may introduce security risks.
It creates algorithm confusion, increases the potential for key leakage, cross-suite attacks, and improper handling of the key.</t>
        <t>A single recipient or sender key <bcp14>MUST NOT</bcp14> be used with both JOSE-HPKE and other algorithms as this might enable cross-protocol attacks.</t>
      </section>
      <section anchor="plaintext-compression">
        <name>Plaintext Compression</name>
        <t>Implementers are advised to review Section 3.6 of <xref target="RFC8725"/>, which states:
Compression of data <bcp14>SHOULD NOT</bcp14> be done before encryption, because such compressed data often reveals information about the plaintext.</t>
      </section>
      <section anchor="header-parameters">
        <name>Header Parameters</name>
        <t>Implementers are advised to review Section 3.10 of <xref target="RFC8725"/>, which comments on application processing of JWE Protected Headers.
Additionally, Unprotected Headers can contain similar information which an attacker could leverage to mount denial of service, forgery or injection attacks.</t>
      </section>
      <section anchor="ensure-cryptographic-keys-have-sufficient-entropy">
        <name>Ensure Cryptographic Keys Have Sufficient Entropy</name>
        <t>Implementers are advised to review Section 3.5 of <xref target="RFC8725"/>, which provides comments on entropy requirements for keys.
This guidance is relevant to both public and private keys used in both Key Encryption and Integrated Encryption.
Additionally, this guidance is applicable to content encryption keys used in Key Encryption mode.</t>
      </section>
      <section anchor="validate-cryptographic-inputs">
        <name>Validate Cryptographic Inputs</name>
        <t>Implementers are advised to review Section 3.4 of <xref target="RFC8725"/>, which provides comments on the validation of cryptographic inputs.
This guidance is relevant to both public and private keys used in both Key Encryption and Integrated Encryption, specifically focusing on the structure of the public and private keys.
These inputs are crucial for the HPKE KEM operations.</t>
      </section>
      <section anchor="use-appropriate-algorithms">
        <name>Use Appropriate Algorithms</name>
        <t>Implementers are advised to review Section 3.2 of <xref target="RFC8725"/>, which comments on the selection of appropriate algorithms.
This is guidance is relevant to both Key Encryption and Integrated Encryption.
When using Key Encryption, the strength of the content encryption algorithm should not be significantly different from the strengh of the Key Encryption algorithms used.</t>
      </section>
      <section anchor="static-asymmetric-authentication-in-hpke">
        <name>Static Asymmetric Authentication in HPKE</name>
        <t>Authenticated KEMs based on static asymmetric key authentication are not supported in JOSE HPKE for the following reasons:</t>
        <ul spacing="normal">
          <li>
            <t>The security implications vary depending on whether they are applied to Key Encryption or Integrated Encryption. When used for Key Encryption, authenticated KEMs offer little meaningful security benefit and may give a false impression of data origin authentication.</t>
          </li>
          <li>
            <t>Authenticated KEMs are susceptible to Key-Compromise Impersonation (KCI) attacks. If the sender's static private key is
compromised, an attacker can generate ciphertexts that the recipient will accept as authentic, compromising message integrity.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document adds entries to <xref target="JOSE-IANA"/>.</t>
      <section anchor="ciphersuite-registration">
        <name>Ciphersuite Registration</name>
        <t>This specification registers a number of ciphersuites for use with HPKE.
A ciphersuite is a group of algorithms, often sharing component algorithms such as hash functions, targeting a security level.
A JOSE-HPKE algorithm, is composed of the following choices:</t>
        <ul spacing="normal">
          <li>
            <t>KEM Algorithm</t>
          </li>
          <li>
            <t>KDF Algorithm</t>
          </li>
          <li>
            <t>AEAD Algorithm</t>
          </li>
        </ul>
        <t>The "KEM", "KDF", and "AEAD" values are chosen from the HPKE IANA registry <xref target="HPKE-IANA"/>.</t>
      </section>
      <section anchor="json-web-signature-and-encryption-algorithms">
        <name>JSON Web Signature and Encryption Algorithms</name>
        <t>The following entries are added to the "JSON Web Signature and Encryption Algorithms" registry:</t>
        <section anchor="hpke-0">
          <name>HPKE-0</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-0</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(P-256, HKDF-SHA256) KEM, the HKDF-SHA256 KDF and the AES-128-GCM AEAD.</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-1">
          <name>HPKE-1</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-1</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(P-384, HKDF-SHA384) KEM, the HKDF-SHA384 KDF, and the AES-256-GCM AEAD.</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-2">
          <name>HPKE-2</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-2</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(P-521, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the AES-256-GCM AEAD.</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-3">
          <name>HPKE-3</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-3</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(X25519, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and the AES-128-GCM AEAD.</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-4">
          <name>HPKE-4</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-4</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(X25519, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and the ChaCha20Poly1305 AEAD.</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-5">
          <name>HPKE-5</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-5</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(X448, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the AES-256-GCM AEAD.</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="hpke-6">
          <name>HPKE-6</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-6</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(X448, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the ChaCha20Poly1305 AEAD.</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
        <section anchor="int">
          <name>int</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: "int"</t>
            </li>
            <li>
              <t>Algorithm Description: Indicates that Integrated Encryption is being used</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "enc"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Required</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="overview"/> of this specification</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): <xref target="RFC9180"/></t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="json-web-signature-and-encryption-header-parameters">
        <name>JSON Web Signature and Encryption Header Parameters</name>
        <t>The following entries are added to the "JSON Web Key Parameters" registry:</t>
        <section anchor="ek">
          <name>ek</name>
          <ul spacing="normal">
            <li>
              <t>Header Parameter Name: "ek"</t>
            </li>
            <li>
              <t>Header Parameter Description: An encapsulated key as defined in { Section 5.1.1 of RFC9180 }</t>
            </li>
            <li>
              <t>Header Parameter Usage Location(s): JWE</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="encapsulated-keys"/> of this specification</t>
            </li>
          </ul>
        </section>
        <section anchor="pskid">
          <name>psk_id</name>
          <ul spacing="normal">
            <li>
              <t>Header Parameter Name: "psk_id"</t>
            </li>
            <li>
              <t>Header Parameter Description: A key identifier (kid) for the pre-shared key as defined in { Section 5.1.2 of RFC9180 }</t>
            </li>
            <li>
              <t>Header Parameter Usage Location(s): JWE</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="overview"/> of this specification</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9180"/>
          <seriesInfo name="DOI" value="10.17487/RFC9180"/>
        </reference>
        <reference anchor="RFC7516">
          <front>
            <title>JSON Web Encryption (JWE)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Hildebrand" initials="J." surname="Hildebrand"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries defined by that specification. Related digital signature and Message Authentication Code (MAC) capabilities are described in the separate JSON Web Signature (JWS) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7516"/>
          <seriesInfo name="DOI" value="10.17487/RFC7516"/>
        </reference>
        <reference anchor="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </reference>
        <reference anchor="RFC7517">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
        <reference anchor="RFC8725">
          <front>
            <title>JSON Web Token Best Current Practices</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="225"/>
          <seriesInfo name="RFC" value="8725"/>
          <seriesInfo name="DOI" value="10.17487/RFC8725"/>
        </reference>
        <reference anchor="JOSE-IANA" target="https://www.iana.org/assignments/jose/jose.xhtml">
          <front>
            <title>JSON Web Signature and Encryption Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8937">
          <front>
            <title>Randomness Improvements for Security Protocols</title>
            <author fullname="C. Cremers" initials="C." surname="Cremers"/>
            <author fullname="L. Garratt" initials="L." surname="Garratt"/>
            <author fullname="S. Smyshlyaev" initials="S." surname="Smyshlyaev"/>
            <author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="October" year="2020"/>
            <abstract>
              <t>Randomness is a crucial ingredient for Transport Layer Security (TLS) and related security protocols. Weak or predictable "cryptographically secure" pseudorandom number generators (CSPRNGs) can be abused or exploited for malicious purposes. An initial entropy source that seeds a CSPRNG might be weak or broken as well, which can also lead to critical and systemic security problems. This document describes a way for security protocol implementations to augment their CSPRNGs using long-term private keys. This improves randomness from broken or otherwise subverted CSPRNGs.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8937"/>
          <seriesInfo name="DOI" value="10.17487/RFC8937"/>
        </reference>
        <reference anchor="HPKE-IANA" target="https://www.iana.org/assignments/hpke/hpke.xhtml">
          <front>
            <title>Hybrid Public Key Encryption (HPKE) IANA Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2023" month="October"/>
          </front>
        </reference>
        <reference anchor="NIST.SP.800-56Ar3" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf">
          <front>
            <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography, NIST Special Publication 800-56A Revision 3</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2018" month="April"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-cose-hpke">
          <front>
            <title>Use of Hybrid Public-Key Encryption (HPKE) with CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Transmute</organization>
            </author>
            <author fullname="Ajitomi, Daisuke" initials="A." surname="Daisuke">
              <organization>bibital</organization>
            </author>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="2" month="March" year="2025"/>
            <abstract>
              <t>   This specification defines hybrid public-key encryption (HPKE) for
   use with CBOR Object Signing and Encryption (COSE).  HPKE offers a
   variant of public-key encryption of arbitrary-sized plaintexts for a
   recipient public key.

   HPKE works for any combination of an asymmetric key encapsulation
   mechanism (KEM), key derivation function (KDF), and authenticated
   encryption with additional data (AEAD) function.  Authentication for
   HPKE in COSE is provided by COSE-native security mechanisms or by one
   of the authenticated variants of HPKE.

   This document defines the use of the HPKE with COSE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-hpke-11"/>
        </reference>
      </references>
    </references>
    <?line 591?>

<section anchor="keys-used-in-examples">
      <name>Keys Used in Examples</name>
      <t>This private key and its implied public key are used the examples:</t>
      <sourcecode type="text"><![CDATA[
{
  "kid": "S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
  "alg": "HPKE-0",
  "kty": "EC",
  "crv": "P-256",
  "x": "wt36K06T4T4APWfGtioqDBXCvRN9evqkZjNydib9MaM",
  "y": "eupgedeE_HAmVJ62kpSt2_EOoXb6e0y2YF1JPlfr1-I",
  "d": "O3KznUTAxw-ov-9ZokwNaJ289RgP9VxQc7GJthaXzWY"
}
]]></sourcecode>
      <t>This pre-shared key is used in the examples:</t>
      <sourcecode type="text"><![CDATA[
{
  "kty": "oct",
  "kid": "our-pre-shared-key-id",
  "k": "anVnZW11anVnZW11Z29rb3Vub3N1cmlraXJla2FpamE"
}
]]></sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This specification leverages text from <xref target="I-D.ietf-cose-hpke"/>.
We would like to thank
Matt Chanda,
Ilari Liusvaara,
Aaron Parecki,
and Filip Skokan
for their contributions to the specification.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <t>-08</t>
      <ul spacing="normal">
        <li>
          <t>Use "enc":"int" for integrated encryption.</t>
        </li>
        <li>
          <t>Described reasons for excluding authenticated HPKE.</t>
        </li>
        <li>
          <t>Stated that mutually known private information <bcp14>MAY</bcp14> be used as the HPKE info value.</t>
        </li>
      </ul>
      <t>-07</t>
      <ul spacing="normal">
        <li>
          <t>Clarifications</t>
        </li>
      </ul>
      <t>-06</t>
      <ul spacing="normal">
        <li>
          <t>Remove auth mode and auth_kid from the specification.</t>
        </li>
        <li>
          <t>HPKE AAD for JOSE HPKE Key Encryption is now empty.</t>
        </li>
      </ul>
      <t>-05</t>
      <ul spacing="normal">
        <li>
          <t>Removed incorrect text about HPKE algorithm names.</t>
        </li>
        <li>
          <t>Fixed #21: Comply with NIST SP 800-227 Recommendations for Key-Encapsulation Mechanisms.</t>
        </li>
        <li>
          <t>Fixed #19: Binding the Application Context.</t>
        </li>
        <li>
          <t>Fixed #18: Use of apu and apv in Recipeint context.</t>
        </li>
        <li>
          <t>Added new Section 7.1 (Authentication using an Asymmetric Key).</t>
        </li>
        <li>
          <t>Updated Section 7.2 (Key Management) to prevent cross-protocol attacks.</t>
        </li>
        <li>
          <t>Updated HPKE Setup info parameter to be empty.</t>
        </li>
        <li>
          <t>Added details on HPKE AEAD AAD, compression and decryption for HPKE Integrated Encryption.</t>
        </li>
      </ul>
      <t>-04</t>
      <ul spacing="normal">
        <li>
          <t>Fixed #8: Use short algorithm identifiers, per the JOSE naming conventions.</t>
        </li>
      </ul>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Added new section 7.1 to discuss Key Management.</t>
        </li>
        <li>
          <t>HPKE Setup info parameter is updated to carry JOSE context-specific data for both modes.</t>
        </li>
      </ul>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>Fixed #4: HPKE Integrated Encryption "enc: dir".</t>
        </li>
        <li>
          <t>Updated text on the use of HPKE Setup info parameter.</t>
        </li>
        <li>
          <t>Added Examples in Sections 5.1, 5.2 and 6.1.</t>
        </li>
        <li>
          <t>Use of registered HPKE  "alg" value in the recipient unprotected header for Key Encryption.</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Apply feedback from call for adoption.</t>
        </li>
        <li>
          <t>Provide examples of auth and psk modes for JSON and Compact Serializations</t>
        </li>
        <li>
          <t>Simplify description of HPKE modes</t>
        </li>
        <li>
          <t>Adjust IANA registration requests</t>
        </li>
        <li>
          <t>Remove HPKE Mode from named algorithms</t>
        </li>
        <li>
          <t>Fix AEAD named algorithms</t>
        </li>
      </ul>
      <t>-00</t>
      <ul spacing="normal">
        <li>
          <t>Created initial working group version from draft-rha-jose-hpke-encrypt-07</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
+JOfSAZpmBopfzaf3eSYvoVvyFfCZ/lOkBViUu6k7IIEr2tJe9PfKvhhGihK
3NbbPmXrLHq5Hg7tRkhorlkBhRDW+8wMm2a2t6BV9H7lUuBZuMEE7tB4ZwSf
1vPpQ8yUvqBL+D5t1YWW44DQb2khFMNABI57DVjJfrwpwlo0cwRHCLNlFQLI
AoKBjQa7ZaJf0JngJOkwWRJS+JSRyL9xuzJkIrqaBdzHGfsG2yX6dIFsWOQA
h2g5IwM8sHx2mYcmMYanCfFuHnMkVR4jJVirIhUSF32gLmmEEi7J19QFCxta
I8AFOiJrx05MgKiPt8ob1Vudsdr3zFhVKhdgiRiA3EIdivkZwnTFDga/drXR
xiGFlm4Np/BT1XRhzCQDEJke/9pEc2EdxREuR1+XYDa0oAHooYgTzeuZ6y9p
L9Ie/TfQIT/QLGDw1MYISrgeTvpLSXUgoAX3QZpZ6g10H7UYiflAM6sr+zeh
Z9BujWaJabsApCS5G6Kj6SGnTH+kA5xFrWRIBO8ufhPWLfYiqzGAjs9cJV+i
7YJYhd5iYxUXX29mgDQWMvQQT4cX080on5PzvrjS5M5uei0ZGukZoA6MUOqA
95JAE7+ZtiHHlzRm7XB5sqFFT1uErWZFYJ/WRQYT3LFHop4+ZvqUJ6M8aJ14
rKK43c1cDgs1f+w5wWgM0DAUjLQ9TOrRGhdkU22lIKna3op8hxL6jvVu41ME
fWtiRYFvKyk8DHM4Cvt2nSkT/uJPf/rT9hZbno8HZ7rZNs8bvZp/enlbWba6
934vNz5uTnqFy17tuTkZ169zOfOyem4NZk0sO9XuGvjb0/rX+Duvz0plrX+b
e5i4i/s7aPOuWR4UTvPG2agM9sO7vLtxjH7e1Ovn7sC+LuuF8fiy28i3Jm5h
ULhpXBdPJ7e3xung9qDY6rl9/c4adydjrZM/vW1OTou3tdPO/ct4evMyDm57
+cmDdXzbsHPZ4yqf3z93681Stf3YXlw/Xxat6fmJYS2KvZPJc+G5ddhs3NmD
25dhd3R6PnMea7zwbNTV4T0/rN0N64+3e8XzUbM/7M32veOTR6e2x4a9bHb/
ca6VdXtRtZp8sT/et57cWcGvevXD1lQ3m+rosKcNjKu+3maNm1llmMu3Lu/P
9vv2wfDUccZ1Sz8bGTl7vA99Htrz+qm5z+vlaftuH5D8sT2/7DlX3hNb9ktd
4855vDu4745bF8PD49Nl/2x5Wh5OmDUw9b1J575qnWrMbk679sStP5/287wf
mMHD7aydr7VfPKvl+31UBhIoyH6IU2wOFiQMT8Xi/opxkkw0TQVyyRwpX8UO
GGGDI4E61VxmV75F33skAzLy1RT8ILwKPPsIk0aOaG7zIwcXIUeTxVT1x8Fs
AFbR9o/4WFMLe+WjuWPUq096r1+bPe7vnd8+LbXWwcPFda+QX3QrN/qBcXZg
95r68KpHiSqvu4JabWk5mpGgEnuVy+cjHabzLCOScELiTM5D4sJitJfuReRr
gbFaAl5RUkZUBiAElMnvFw73D/ZKh/mIG89u+P6wUD7ME6nbW6+RAGBK0nRL
zUfxRs7kMA64TiZI11/ArOy2pqf3D7Ob27uXh4cH2y0Y3ePLm9rNxf3k+OXG
vi0OptZd74wXurV87+bu/EE7PTabL+cvDXMB7bW8u4I1bUwcc1C8XV7eHS8f
OvkX7ex0+dC/9rXC7d5lH75D2fu725x2evjr0mxLZc9Ea4BHMLAoiuOT/etb
x/DP1NPFfaUzGhTLL0H3pVfVD3Kaeb/olM/b7Zpafhyz3tmy8uCrei93kD9g
Jef+6WqfDY6DfvGi2zysXVdy8+besO+Wx5Owuxj6YF8Pz0/+vePMRrfXZ7pv
z/ONxxqYuXyrwc73n84XBfPWf1r0FsXhnXZweqHKRjSaHJmDc/XKb19UJuzi
3mmrpcny2Hy4M8b6rDcyzsZW4+x0/FDF/LPXv3xb0SlX7oZG77F8P3yZB7mL
k5PzQY6fBgu70b+ali+b3Zp3P74aFAtc9BMai9C7Y4//73//z/8jltfR69+E
PIuQUQoYIS4SNf/5X//zn/77f/6vf/m///7P4MAXtNcHnht4/ZsUBz+tLDfx
3U0UaQMMiVGNeJUlQ1fQPaEUxx5x02AihIpwX1b7zLKj7K7yRxna+G0lXzi4
6P8RPfkfbzoVtV2pXanFg9Ifd+JFzvpNgu2t9RtYYbRZwA07DOjQBmYYuxQI
MNy07YolskPBWblMfwP4ogIe5j1hrMqxucmJAMJp7Bl+EU8whEpYmX56gcX4
N5byiWVuFLwXi8jmpui9qhCYw+1TLymV1WhfHKoH9nHM3hQlNjEvDF5cRQyQ
UQC5JRqukmmWvAWha6t+DhdanbGGYbZeIkQriuzEC67VDtRNsQha7oc4dO32
y3u131nybo59xLBX7hzgwEKCPx4TUZWbd4I2YR+EzeMV5NBzZqLF2tvV/Z9t
tZjqEBfC767Vkl2KqvWaqBovVtZUq9Yuookpp6+cmmSFd8EKz/FPXxvhX+gm
ZFJDwu1QzMTygOjlup1sXNwpDYQxOM9k/JmPncAy5FaEGIGc1XKbJ7k3KvKG
xtCvRQHeMahEIqoiKLKd5EZGYjCJSJEIRJsyGwfIHCxFOh9qlLGSRBOujZrh
7kfCJidwWWIj5luALARZx81uo3STa7Vi0ABsRu99maufzB/OzZdKeb7s3q51
8e2nQvn5cO66vUvvrPVStQsT7fixY6mdxWS+z3IVfWSPezd7Fd+b1IaFeXnC
WO6w31JbTK03zu6OR9fu6PxKH49yrN+ajeal9ou515B9oaQxJf7StoDSm/th
9aX56O1NDvll7TqNFvSz0/ygejw26ueW1r+x9IX8HptJKPZ74cK/humEb/HR
WbE+s9z2qFKq583Hm+txt1RqLfb5/GTRe5q3bkIUAHXHKwjiZ4MD/fm6+mj1
/ULhuDGp71X6nct69WH6OFRnvaLaLz34erCnPgwW3WncfYxY0k41VYK50zR9
SKG/FLWSJVGwHon9Ckla+fSMH87ts37n+jA3tvxcfX8w1EdDbVE4eaipT0/z
R31RKT2e2I/V6eVLbaU69VeeLPKV6t7TofrEFovj8eHJxd79S69+2XZGXefs
pOM695Vzo+WotUxc+zV8lA+vu9+UoGuXayc5c2KPqmb/9KBuPF69dJfa0ii0
Zzen+9ea170dBv1J2Vh8S5hrIeGfDwOGI5wScG+U8vcn9rjbbZQnHWO/Wy54
l4uXatV/9I+fWnuXsEw3H/bZ3Tkf5/LtnDpWj6/L513n4u6wd3eyeCwurcFd
17zvz67urMKwNfNKx+w6s8pg/OsP34mp0yD1f/yb0lwqVgBYUPE1cCACaZoe
mvKuCRDl2CLnA9+UIXgjysgDs8kVrCzn7WagLiE5qvtZtZlcWic2gf/C4f2f
RayvH1obuAAXFM33GKZwrqwFmuJsi0wXwV02ynq8IB9IgOnrJ2CsKs/AvIrE
iAue2l+nDZIQOsV4LcQe0FKcCsazCvowUph4bzThyFO7i7vh7hVtT0ZZvFzC
eeG9K3HCDNm+EDN4c5lBQpmHhBGEb+OB6TMViqpQRu7/EUd+q6777+3b325v
/aSkupZT+Sfi3U+xaVR+wqLr/vtJAQLgTyAhLvoeAb9dJUBo+mqrtSr+SUY+
JoCK5jcVhXXZStHCpqJ7hfxK0aJIeVJLYdH2xRX8eVfY28sfpovuyaLllaKl
0sHP4YAwUEfKpzVSFWcB/iGD4uguXSbSJKuBN2c80m2hptW4Ns+8RuF02pNA
dVJgXQngETOEKhdXYe7Ae+lhu8n0RyyeyGHkETDGML6YJxsKfoYZ5WK4fs6s
5c721lDOm4taU8w7iSflJgBG8WC0N+FMjPPdEzTiQoSWtatDJ0dgR0k+uDdp
WXgkidY3A4bAGQmIJjoloiZnO43iS3IE2RU3IoEJSD2EmgKRCF2R7wiKFN2r
+kiv39/eu233uNzoLOqGc3VzXJ60RsbBrFmyb5bLSale1CQUyZBJt/tnzzbL
+RXz9qA+LU/1Zclr5RZNPp1Yh8vWSa5VvGNj59Auj2Q16QsiDIlZBWo+RJ4J
j1IMK7Dlo+NSuFYCkxWLGp6kpHNVYHE9LZEk/iYPU+65Uy6eUCK5Y8/DZvRU
M3RqIpmsL+M8HgPhsDDrBtPvNIs7YuG12mkiZ4bzYCbTN2RekUk7Rpglz+hI
aRQ42ZzMizSHiVjoMWbaNGwTwxXUiStyyWD5besMM5xmlGg6w8YSTRt4Eskc
BCIwFR/EwJlGtIpoES7eRCpX4FM4ijrTHVcek0h4kHiwmNoOrBb5flGqGh1L
SaYiyfwjAAV+6swFzLosxXqoeR1botGifHwv0GGdZplTjJR0xAZ0agOL45mF
Lt9Z9Zvgulc6z0b5TCA/eWhG5OdSCsQ6euMxeswyMZPXxhMcTuDpxBAP6HFm
NqY/iXQlbY5naFFLZAqoweamzsT40ERUogQmMhb4qu9JqIDE7FJuLeV+OcKW
YQ/WUhlR9iLtaAIPTD+x288DSsXCQWCXowAEZ9ERl3D5jsfeQKXJzFCDijjE
HLYq0t29MKdQZqh++rQSXBP7F1yk6qGxnIbRF7nxH+dPRbmGMRbJKkoN828o
I4HGAHNXixO448Ab2c1dsbFrchkrWJNzuxvGH6DrGVGJQEfk4FJSMnQpTAND
KCr2tz02F5E/G5E3FDTwpCAAdU2XhgAge2AhX+g0C4o9TNsSvmxX8Dyky6Q8
HLQoIotQmpdRAF3CJ5H/TZlHKyNEjuMRILD64D0NIDbepbdkZJEm+lo2ozAp
S23lzBCxNk4NYon0J9AqUJyZtoxjJzG9wOkpOpaGD8iJ4WnSBL1RBhul5cLn
MDfNdTAoiif2kB4kxWLaFCQB4vPA1qlypL6v6VMZ4jFnmJjDEqEgaQ7CnexI
x2JLCI1LO7pZ54gbCdSAidgUTU9mMHJhZmbmaOzLo1CSUlwAObpjhcSGc+Aq
irxVZaZBmIwVBsPo+B06CWNuRrCdzgvEScTlKKsBz9FiyqOIunM6uHuEwfmo
cSyKSbtKfKoGR2pgItBA+KOkWAdM1zCOTWmQiWwIasKBNaiN5DCwe+lc0IET
rEvThyHLWO5VFJv77uHmcxvGG14AQKY0kQKbDluui4qjQNIT5G1YXCyfwgBz
mDyaHLVMorWllCkzBU1IdODNx1MbAZ0TtFGvgRqcnyZ6V2hmxLwlaqNpT+Rg
V9SlRvY4ebZVHPjhSl2bM6UTDAEumGInASahu/xu3u5tYG10mDDJYyY6SYdP
5VxFmsk+osvQAD8gHABPx+Z4jBQdEM6oTShahrlFoZUsbSy8Nj/xjQz91f4T
SAsoWJ9/GXe+0i+60FAQt7i4RWrTomhghtX3K3Tpe5gera2jpYKeooGyvH4F
7u/GeBV3MoYA5cSMEyQLuIXam8amq50T4Ri8F+Mg3ulQNXQDSWinoKVPHHgA
weA9LZU4OTN16P87pVL4gJURGNySdXDZlug7AU+kNL4lkO/QdFruCg6vZiJL
djN7BE1Kbq/R9QRiEEgHkTWlxY9sEiMdvYrP0NCeV9x21PQq0bFDjM4jgWDw
EgkQdyU+w72S6Gna8pIamMWpLEI61hutt7hoZ+Us+OpSQJ4lSB2VETuJqDqh
HsWHMxF1gBZRCPUH2lOLsAsgivhMxByPQAgQKHV7MWaEA/AkrVApefsKyHSF
M9DremkqUpgSea3KU3vLDrGgAATpW5isqOFB/mFgxVQPAHwPTbEniqAMz3PD
8mIIjpoRSFpBAyCyEaZbv12iIEPWCESc8uKUbi3tKd7SQEjDmeExLZhsMM0c
eYT/80W1sRP5M0zjjNevf8dDsSbPjZp0T4ceNWjspl0r/AgXLomtWR4vVmKE
R5nZmk5ZtZgLGw5nN26eFkky6zNC3TJlXly5kQ4NKF8/4dv4qGZ8YNswOLlG
RPfAlq9fo0tNXqOTO4kgTniXR3REZ03EwaMi4ioGubxCw58IgqUueggjTJVk
ERH5oqudyFJF83RXAjk+FqdjkCcAB9MHYcJzMLB8HEfZwlBV3JMh4kqR9iHg
saj/tYE2k4s+aEoPV6aiPnYAD4XnotHKRzacXpycpl+IYyvxG3k2ByridjQU
D0PLWDAjjhBItzIGCuzYrhGZJGpP3q4Csouucoll931XzQh64vGFmiHcjyEs
hcil/o52MxGNR4KqTzKyLNgWh7hb4hYp+S355YROUImUF6mPcu2YDrUG0Sr5
pA5c/UxR6l2lDqxVO/UK/NgR62fiYfyWRBVGxiq1jpovHKhn1SZJLJumpUfz
7tIR6v6Z7xyJQF6UAZJODoApEyPOI6XtCsxHB+lh4TcSGTUe8Jx54dVqqrj/
JZpSJ3K+Umdfvyb3S16jgFRqFqZJrkCHSw5lwoa4bCkK86UEk39HMPlfSjDF
g1IsGPixRjC4bRAFOkLJgLT+eiVTeEcyhV9KMnuFfCyZvXxhjWTg7d8kk5JM
8R3JFH8ZyYhdjA9as92/mbNQNKV3RFP6VUUDHIP/C7krx1rmi7m9v0757L0j
n71fSD6l0sHfbNr3Cqb8jmDKv6Jg/uqnjSn2oN6KhtKQ3pFMQ54HlCvPjTfI
DBiKCVf53+YqJkB9jKvyl/Ff4Wp079AvytIPrJPW7gV893IJ4yVxE2tWRmwq
JLvaXShgOki/5nNKzJhn8f7h569vjz9HV16sbX+N5M/7tf+KJN/etbBRpII1
IvP+ffbI7PwPsEjEbXB/FM91eMrnqWnsROE212MqF4cOvsW8wq/BvG9PA3Ft
40DTp9GhHLyCVIxAJnzHSSPJYJbclBbRRLxqMU6fQM0WmQWU4i4aCZM5FYxp
Rak4Iu/lu9Ma12VZriYcr0k0Flk9C79YvsiVu6VuqXLVH54BJ55Oju+q85vW
IZs/TR8mraVhDg6bWlNWo3ZZ4I6YwWqP9crs9rxcmLodv/BYazt3gzLLLQv3
p/nzK2vo5dVGMhmoXbx4sXvdyvNCdebq4YMzXbS088LB4c3o6vD2+VrfPzsH
M3v30r9PpfBIhqcUzIx3Mr7NWsENR/fTOUZO4Klxs5RoBB9kESyg2bf2Qz+f
D/9+KBx6g+JtMCi28vrM8rS7c0srnLrarLaSc1TR8bSHxQy6GoxTVpyI7THj
HzIUqc1sugku3FHkSnwc5evX3zXUE7pdXdXDO+cpatVnykJsRGKuC9lPzQYV
bmq+T7PF0GBEDUvzTOXSDPhcg1kGbyqaB33BlGP61ITfqMSnpmW6SmfqTDU7
ym4zxRn8MAkoOuXyNoPpUzTplDoYaQdvMN40bronH8PPuKkjcoLJF5NBWZuG
kMXSJ9HNQDKqT+XZc3jjVzqcLiOlP4hbrmWqy3eex9ES98bQuR8KMoprXnP7
YgxV5G50WkV8KotPN2zmYHQ+wNwWzHMKr6Z9BCVMbLusMPOH+NxPlPcbpQum
oQeMQhz/kTTtJTvGCaI7nod3AovrMWjzfuXAGl5TzqnXU/MZ6nwq5I8oacGS
uYniiuUrulG5UNhfudCZhzsb6oarHVNt5w+PlGNT7LHQqiGxmU9n5SidIC5+
cKTIf6BBcwPBPneO857O4wDu8sUGmKxWIRxhJ3b79sFdf17ZkBKwGi+Bifea
YAA71ETPNUhd4gYKyud0RtOOuMGKUoI2p4HETSXuA1s5PCbStUIBhvQbzNdM
i0dJiOH9TbtRnka4hxheMuHY8T2Rm/YVUT1KQj0kdyVz+Rgvh4sVInbzfBdv
nhAnDlEJQVXENkJ0a6pstyh3kyL28wT7YZCGyfWA85XMsFjV1zIHrbzkIO7p
a563jHL8UOJqdEUebXRFqU2UnicJK6QGXDp6h0VkiI6AVC+Tkh7NHLkjHCT+
sZB1NCeEGIKGxEU0HBHQLl1Hg8IrAxwKjSCmBcqdoFBhZFazuBlJerp44+vt
/XtrdhglE/JSOi5O6SFjBuIcYX5wS19czG04saG9EukJkWOl+YdGjPb0+VRm
QA7Di0EomVteGJK6PI+T/SVoNFzKm92iS6pplNSS4NoEb2dK7tKEO2RPAeM+
TxhUqklndmkQaMESmYBcSlzMm7cfkSU5abspZw3tJF1cRBeVo4aLvTT6lzcc
uY8k/t0Xb6yt+2dfwBX8f88rwfy6ZgAA

-->

</rfc>
