<?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.23 (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-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <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-06"/>
    <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="March" day="01"/>
    <area>Security</area>
    <workgroup>JOSE</workgroup>
    <keyword>HPKE</keyword>
    <keyword>JOSE</keyword>
    <keyword>PQC</keyword>
    <keyword>Hybrid</keyword>
    <abstract>
      <?line 94?>

<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. Authentication for HPKE in JOSE is provided by
JOSE-native security mechanisms or by one of the authenticated variants of HPKE.</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 108?>

<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 "dir", 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 JWE, the use of specific HPKE modes such as "mode_base" or "mode_auth_psk" is determined by the presence of the header parameters "psk_id" and "auth_kid".</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>Encapsulated keys <bcp14>MUST</bcp14> be the base64url encoded encapsulated key as defined in Section 5.1.1 of <xref target="RFC9180"/>.</t>
        <t>In HPKE JWE Integrated Encryption, JWE Encrypted Key is the encapsulated key.</t>
        <t>In HPKE JWE Key Encryption, each recipient JWE Encrypted Key is the encrypted content encryption key, and the encapsulated key (ek) is found in the recipient header.</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 starts with "HPKE".</t>
        </li>
        <li>
          <t>The protected header <bcp14>MUST</bcp14> contain an "enc" and it <bcp14>MUST</bcp14> be set to the value "dir". It updates Section 4.1.2 of <xref target="RFC7516"/> to clarify that in case where HPKE JWE Integrated Encryption is used, setting "enc" set to "dir" is appropriate, as both the derivation of the CEK and the encryption of the plaintext are fully handled within the HPKE encryption.</t>
        </li>
        <li>
          <t>The protected header parameters "psk_id" and "auth_kid" <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>The protected header parameter "ek" <bcp14>MUST NOT</bcp14> be present.</t>
        </li>
        <li>
          <t>The "encrypted_key" <bcp14>MUST</bcp14> be the base64url encoded encapsulated key as defined in Section 5.1.1 of <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>The "iv", "tag" and "aad" members <bcp14>MUST NOT</bcp14> be present.</t>
        </li>
        <li>
          <t>The "ciphertext" <bcp14>MUST</bcp14> be the base64url encoded ciphertext as defined in Section 5.2 of <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>The HPKE Setup info parameter <bcp14>MUST</bcp14> be set to an empty string.</t>
        </li>
        <li>
          <t>The HPKE AEAD AAD <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>
      </ul>
      <t>Note that compression is possible with integrated encryption, see Section 4.1.3 of <xref target="RFC7516"/>.</t>
      <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": "dir",
    "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": "dir",
    "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
    "psk_id": "our-pre-shared-key-id",
    "auth_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>HPKE based recipients can be added alongside existing <tt>ECDH-ES+A128KW</tt> or <tt>RSA-OAEP-384</tt> recipients because HPKE is only used to encrypt the content encryption key, and because the protected header used in content encryption is passed to HPKE as Additional Authenticated Data.
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 JWE protected header <bcp14>MUST NOT</bcp14> contain the "alg" when recipients use different algorithms to secure the content encryption key.</t>
        </li>
        <li>
          <t>The JWE protected header <bcp14>SHOULD</bcp14> contain the "alg" when all recipients use the same HPKE algorithm to secure the content encryption key.</t>
        </li>
        <li>
          <t>The recipient unprotected header parameters "psk_id" and "auth_kid" <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>The recipient unprotected header parameter "ek" <bcp14>MUST</bcp14> be present.</t>
        </li>
        <li>
          <t>The recipient unprotected header <bcp14>MUST</bcp14> contain a registered HPKE "alg" value.</t>
        </li>
        <li>
          <t>Recipient JWE Encrypted Key <bcp14>MUST</bcp14> be the ciphertext from HPKE Encryption.</t>
        </li>
        <li>
          <t>The "encrypted_key" <bcp14>MUST</bcp14> be the base64url encoded JWE Encrypted Key as described in Step 15 in Section 5.1 of <xref target="RFC7516"/>. The recipient
"encrypted_key" is as described in Section 7.2.1 of <xref target="RFC7516"/>.</t>
        </li>
        <li>
          <t>The HPKE Setup info parameter <bcp14>MUST</bcp14> be set to an 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",
        "psk_id": "our-pre-shared-key-id",
        "auth_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": "dir",
    "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
    "psk_id": "our-pre-shared-key-id",
    "auth_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="mapping-hpke-keys-to-jwk-for-jose">
      <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>
      <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="authentication-using-an-asymmetric-key">
        <name>Authentication using an Asymmetric Key</name>
        <t>Implementers are cautioned to note that the use of authenticated KEMs has different meaning when considering integrated encryption and key encryption.
In integrated encryption the KEM operations secure the message plaintext, whereas with key encryption, the KEM operations secure the content encryption key.
For this reason, the use of authenticated KEMs with key encryption is <bcp14>NOT RECOMMENDED</bcp14>, as it gives a false sense of security.
See RFC9180 Section 5.1.3 for details authentication using asymmetric keys.</t>
      </section>
      <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>
    <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>HPKE Mode</t>
          </li>
          <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>
        <t>The "HPKE Mode" is described in Table 1 of <xref target="RFC9180"/>:</t>
        <ul spacing="normal">
          <li>
            <t>"Base" refers to "mode_base" described in Section 5.1.1 of <xref target="RFC9180"/>,
which only enables encryption to the holder of a given KEM private key.</t>
          </li>
          <li>
            <t>"PSK" refers to "mode_psk", described in Section 5.1.2 of <xref target="RFC9180"/>,
which authenticates using a pre-shared key.</t>
          </li>
          <li>
            <t>"Auth" refers to "mode_auth", described in Section 5.1.3 of <xref target="RFC9180"/>,
which authenticates using an asymmetric key.</t>
          </li>
          <li>
            <t>"Auth_Psk" refers to "mode_auth_psk", described in Section 5.1.4 of <xref target="RFC9180"/>,
which authenticates using both a PSK and an asymmetric key.</t>
          </li>
        </ul>
        <t>Implementations detect the use of modes by inspecting header parameters.</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses the DHKEM(X25519, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and the ChaCha20Poly1305 AEAD.</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): "alg, enc"</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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 in Base Mode that uses 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):   RFCXXXX</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TODO</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):   RFCXXXX</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):   RFCXXXX</t>
            </li>
          </ul>
        </section>
        <section anchor="authkid">
          <name>auth_kid</name>
          <ul spacing="normal">
            <li>
              <t>Header Parameter Name: "auth_kid"</t>
            </li>
            <li>
              <t>Header Parameter Description: A key identifier (kid) for the asymmetric key as defined in { Section 5.1.3 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):   RFCXXXX</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="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="18" month="January" 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-10"/>
        </reference>
      </references>
    </references>
    <?line 587?>

<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>-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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
BY7c4RF/EsObaTv+IkbhUPl/VNNIvs9jAAA=

-->

</rfc>
