<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.21 (Ruby 3.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-jose-hpke-encrypt-13" category="std" consensus="true" submissionType="IETF" updates="7516" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Use of HPKE in JOSE">Use of Hybrid Public Key Encryption (HPKE) with JSON Object Signing and Encryption (JOSE)</title>

    <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>Tradeverifyd</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>orie@or13.io</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="October" day="19"/>

    <area>Security</area>
    <workgroup>JOSE</workgroup>
    <keyword>HPKE</keyword> <keyword>JOSE</keyword> <keyword>JWE</keyword> <keyword>Hybrid</keyword>

    <abstract>


<?line 107?>

<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, and provides security
against adaptive chosen ciphertext attacks (IND-CCA2-secure).</t>

<t>HPKE also includes a variant that authenticates possession of a pre-shared key.
HPKE works for any combination of an asymmetric KEM, key derivation
function (KDF), and authenticated encryption with additional data
(AEAD) encryption function.</t>

<t>This document defines the use of HPKE with JOSE.
The specification chooses a specific subset of the HPKE features to use with JOSE.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-jose.github.io/draft-ietf-jose-hpke-encrypt/draft-ietf-jose-hpke-encrypt.html"/>.
        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>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-jose/draft-ietf-jose-hpke-encrypt"/>.</t>
    </note>


  </front>

  <middle>


<?line 124?>

<section anchor="introduction"><name>Introduction</name>

<t>Hybrid Public Key Encryption (HPKE) <xref target="I-D.ietf-hpke-hpke"/> is a public key encryption
(PKE) scheme that provides 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 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>

<t><list style="symbols">
  <t>Content Encryption Key (CEK), is defined in <xref target="RFC7517"/>.</t>
  <t>Hybrid Public Key Encryption (HPKE) is defined in <xref target="I-D.ietf-hpke-hpke"/>.</t>
  <t>pkR is the public key of the recipient, as defined in <xref target="I-D.ietf-hpke-hpke"/>.</t>
  <t>skR is the private key of the recipient, as defined in <xref target="I-D.ietf-hpke-hpke"/>.</t>
  <t>Key Encapsulation Mechanism (KEM), see <xref target="I-D.ietf-hpke-hpke"/>.</t>
  <t>Key Derivation Function (KDF), see <xref target="I-D.ietf-hpke-hpke"/>.</t>
  <t>Authenticated Encryption with Associated Data (AEAD), see <xref target="I-D.ietf-hpke-hpke"/> and <xref target="RFC7516"/>.</t>
  <t>Additional Authenticated Data (AAD), see <xref target="I-D.ietf-hpke-hpke"/> and <xref target="RFC7516"/>.</t>
</list></t>

</section>
<section anchor="overview"><name>Overview</name>

<t>This specification defines two modes of use for HPKE in JWE:</t>

<t><list style="symbols">
  <t>HPKE JWE Integrated Encryption, where HPKE is used to encrypt the plaintext.</t>
  <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>
</list></t>

<t>When "alg" is a JOSE-HPKE algorithm:</t>

<t><list style="symbols">
  <t>If "enc" is "int", HPKE JWE Integrated Encryption is used.</t>
  <t>If "enc" is an AEAD algorithm, the recipient Key Management mode is Key Encryption.</t>
</list></t>

<t>The HPKE KEM, KDF, and AEAD used depend on the JOSE-HPKE algorithm used. This HPKE AEAD is used internally by HPKE and is distinct from the AEAD algorithm specified in "enc".</t>

<t>HPKE supports two modes, which are described in Table 1 of <xref target="I-D.ietf-hpke-hpke"/>.</t>

<t>In JOSE-HPKE, both "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 <xref section="3.1" sectionFormat="of" target="RFC7516"/>, General JWE JSON Serialization as described in <xref section="3.2" sectionFormat="of" 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>

<t><list style="symbols">
  <t>additional authenticated data</t>
  <t>multiple recipients</t>
  <t>unprotected headers</t>
</list></t>

<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 <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>.</t>

<t>This specification updates the "enc" definition in <xref section="4.1.2" sectionFormat="of" target="RFC7516"/>
by allowing the "enc" value "int" when the "alg" value is a JOSE-HPKE algorithm.
When "alg" is not a JOSE-HPKE algorithm and the "enc" value is "int",
the input <bcp14>MUST NOT</bcp14> be used and <bcp14>MUST</bcp14> be rejected.</t>

<section anchor="auxiliary-authenticated-application-information"><name>Auxiliary Authenticated Application Information</name>

<t>The HPKE "aad parameter" for Open() and Seal()
specified in <xref section="8.1" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>
is used with both HPKE JWE Integrated Encryption and HPKE JWE Key Encryption.
Its value is the Additional Authenticated Data encryption parameter value
computed in Step 14 of <xref section="5.1" sectionFormat="of" target="RFC7518"/> (Message Encryption).</t>

<t>Despite similarities to ECDH-ES,
this specification does not use the <spanx style="verb">apu</spanx> and <spanx style="verb">apv</spanx> header parameters,
which are described in <xref section="4.6.1" sectionFormat="of" target="RFC7518"/>.</t>

</section>
<section anchor="encapsulated-keys"><name>Encapsulated Keys</name>

<t>HPKE encapsulated key is defined in <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>.</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>

<t><list style="symbols">
  <t>The protected header <bcp14>MUST</bcp14> contain an "alg" that is JOSE-HPKE algorithm.</t>
  <t>The protected header <bcp14>MUST</bcp14> contain an "enc" with value "int". This is an explicit exception to requirement in <xref section="4.1.2" sectionFormat="of" target="RFC7516"/> that
"enc" must be an AEAD algorithm. This is appropriate, as HPKE will perform plaintext encryption.</t>
  <t>The protected header parameters "psk_id" <bcp14>MAY</bcp14> be present.</t>
  <t>The protected header parameter "ek" <bcp14>MUST NOT</bcp14> be present.</t>
  <t>There <bcp14>MUST</bcp14> be exactly one recipient.</t>
  <t>The JWE Encrypted Key <bcp14>MUST</bcp14> be encapsulated key, as defined in <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>.</t>
  <t>The JWE Initialization Vector and JWE Authentication Tag <bcp14>MUST</bcp14> be the empty octet sequence.</t>
  <t>The JWE AAD <bcp14>MAY</bcp14> be present when using the JWE JSON Serialization.</t>
  <t>The JWE Ciphertext is the ciphertext defined in <xref section="5.2" sectionFormat="of" target="I-D.ietf-hpke-hpke"/>.</t>
  <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>
  <t>The HPKE aad parameter <bcp14>MUST</bcp14> be set to the "Additional Authenticated Data encryption parameter", as specified in Step 14 of <xref section="5.1" sectionFormat="of" target="RFC7516"/>.</t>
  <t>Then follow Steps 11-19 of <xref section="5.1" sectionFormat="of" target="RFC7516"/> (Message Encryption).</t>
</list></t>

<t>When decrypting, the checks in <xref section="5.2" sectionFormat="of" target="RFC7516"/>,
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>Below is an example of a Compact JWE using HPKE integrated encryption:</t>

<figure><artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

eyJhbGciOiAiSFBLRS0wIiwgImVuYyI6ICJpbnQiLCAia2lkIjogIkc1Tl9fQ3FNdl9r\
SkdpZUdTRnVBdWd2bDBqclFKQ1ozeUt3Vks2c1VNNG8ifQ.BIh6I40uiBbK8-\
UK7nHdo3ISEfgwJ_MF3zWjQzLt00GhFF2-\
1VgWKHSYLXdeVeRV7AinyocYiCYmISvW0yqiDmc..Ov-\
                                    llz6VUyiw8nZL0OPGLGZckLTm5UcTZFg.
]]></artwork></figure>

<t>The keys used for this example are in <xref target="keys-used"/>.</t>

</section>
</section>
<section anchor="key-encryption"><name>Key Encryption</name>

<t>When using the JWE JSON Serialization,
recipients using JOSE-HPKE can be added alongside other recipients
(e.g., those using <spanx style="verb">ECDH-ES+A128KW</spanx> or <spanx style="verb">RSA-OAEP-256</spanx>),
since 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 remains consistent with existing JWE rules.</t>

<t>In HPKE JWE Key Encryption:</t>

<t><list style="symbols">
  <t>The Key Management Mode is Key Encryption.</t>
  <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>
  <t>JOSE Header parameter "alg" <bcp14>MUST</bcp14> be a JOSE-HPKE algorithm.</t>
  <t>JOSE Header parameter "psk_id" <bcp14>MAY</bcp14> be present.</t>
  <t>JOSE Header parameter "ek" <bcp14>MUST</bcp14> be present and contain the base64url-encoded HPKE encapsulated key.</t>
  <t>Recipient JWE Encrypted Key <bcp14>MUST</bcp14> be the ciphertext from HPKE Encryption.</t>
  <t>The HPKE info parameter contains the encoding of the Recipient_structure, which is described in <xref target="recipient_structure"/>.</t>
  <t>The HPKE AAD parameter defaults to the empty string; externally provided information <bcp14>MAY</bcp14> be used instead.</t>
  <t>THE HPKE plaintext <bcp14>MUST</bcp14> be set to the CEK.</t>
</list></t>

<t>The processing of "enc", "iv", "tag", "aad", and "ciphertext" is as already defined in <xref target="RFC7516"/>.
Implementations process these parameters as defined in <xref target="RFC7516"/>;
no additional processing requirements are introduced by HPKE-based key encryption.</t>

<section anchor="recipient_structure"><name>Recipient_structure</name>

<t>The <spanx style="verb">Recipient_structure</spanx> is a JSON object with the following members:</t>

<t><list style="symbols">
  <t>context (string): This member <bcp14>MUST</bcp14> include the constant string value "JOSE HPKE Recipient".</t>
  <t>next_layer_alg (string): Identifies the algorithm with which the HPKE-encrypted key <bcp14>MUST</bcp14> be used. Its value <bcp14>MUST</bcp14> match the "enc" (encryption algorithm) header parameter in the JWE protected header. This field is included for alignment with the COSE HPKE <xref target="I-D.ietf-cose-hpke"/> specification. Currently, there are no known attacks that allow a downgrade attack of the content encryption algorithm.</t>
  <t>recipient_protected_header (object): This member contains the base64url-encoded JWE Per-Recipient Unprotected Header (see JWE JSON Serialization in <xref section="7.1" sectionFormat="of" target="RFC7156"/> of the recipients member. To serialize this header member the procedure from Section 3.3 of RFC 7638 <bcp14>MUST</bcp14> be used. Unlike with RFC 7638, all members from this member are included except for the "ek" member. The inclusion of this data in the <spanx style="verb">Recipient_structure</spanx> allows context information to be included in the key derivation.</t>
  <t>recipient_extra_info (string): Contains additional context information that the application includes in the key derivation via the HPKE <spanx style="verb">info</spanx> parameter. Mutually known private information, which is defined in <xref target="NIST.SP.800-56Ar3"/>, <bcp14>MAY</bcp14> be used in this input parameter. If no additional context is provided, this value <bcp14>MUST</bcp14> be the empty string "".</t>
</list></t>

<section anchor="deterministic-serialization-for-hpke-info"><name>Deterministic Serialization for HPKE <spanx style="verb">info</spanx></name>

<t>JSON texts that are semantically identical can serialize differently (e.g., member order, whitespace), which would lead to divergent <spanx style="verb">info</spanx> values and failed key agreement.</t>

<t>To produce the HPKE <spanx style="verb">info</spanx> byte string from a <spanx style="verb">Recipient_structure</spanx>, both sides <bcp14>MUST</bcp14> produce the deterministic JSON representation using the JSON Web Key (JWK) Thumbprint serialization rules <xref target="RFC7638"/>:</t>

<t><list style="numbers" type="1">
  <t>Construct the <spanx style="verb">Recipient_structure</spanx> JSON object exactly as defined <xref target="recipient_structure"/>.</t>
  <t>Prepare the JSON structure based on Section 3.3 of RFC 7638.</t>
  <t>Use the resulting JSON structure, base64url-encode it and use the octets as the HPKE <spanx style="verb">info</spanx> value.</t>
</list></t>

<section anchor="example"><name>Example</name>

<t>The example below shows a pretty-printed JSON object with an empty <spanx style="verb">recipient_extra_info</spanx> member.</t>

<figure><artwork><![CDATA[
{
  "context": "JOSE HPKE Recipient",
  "next_layer_alg": "A128GCM",
  "recipient_protected_header": {
    "alg": "HPKE-0",
    "kid": "G5N__CqMv_kJGieGSFuAugvl0jrQJCZ3yKwVK6sUM4o"
  },
  "recipient_extra_info": ""
}

]]></artwork></figure>

<t>The serialized JSON leads to:</t>

<figure><artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

RFC7638-serialized recipient_protected_header (JSON string):
{"alg":"HPKE-0","kid":"G5N__CqMv_kJGieGSFuAugvl0jrQJCZ3yKwVK6sUM4o"}

RFC7638-serialized Recipient_structure (JSON string):
{"context":"JOSE HPKE Recipient","next_layer_alg":"A128GCM","\
recipient_extra_info":"","recipient_protected_header":"\
eyJhbGciOiJIUEtFLTAiLCJraWQiOiJHNU5fX0NxTXZfa0pHaWVHU0Z1QXVndmwwanJR\
                                            SkNaM3lLd1ZLNnNVTTRvIn0"}

HPKE info (base64url):
eyJjb250ZXh0IjoiSk9TRSBIUEtFIFJlY2lwaWVudCIsIm5leHRfbGF5ZXJfYWxnIjoi\
QTEyOEdDTSIsInJlY2lwaWVudF9leHRyYV9pbmZvIjoiIiwicmVjaXBpZW50X3Byb3Rl\
Y3RlZF9oZWFkZXIiOiJleUpoYkdjaU9pSklVRXRGTFRBaUxDSnJhV1FpT2lKSE5VNWZY\
ME54VFhaZmEwcEhhV1ZIVTBaMVFYVm5kbXd3YW5KUlNrTmFNM2xMZDFaTE5uTlZUVFJ2\
                                                              SW4wIn0
]]></artwork></figure>

<t>The base64url-encoded JSON structure above is used as the HPKE <spanx style="verb">info</spanx> bytes.</t>

</section>
</section>
</section>
<section anchor="json-example"><name>JSON Example</name>

<t>Below is an example of a JWE using the JSON Serialization and HPKE key encryption:</t>

<figure><artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "protected": "eyJlbmMiOiAiQTEyOEdDTSJ9",
  "ciphertext": "9AxOd65ROJY1cQ",
  "iv": "2u3NRi3CSr-x7Wuj",
  "tag": "1NKYSWVV4pw5thsq7t6m6Q",
  "recipients": [
    {
      "encrypted_key": "l9VRW1K5CA037fY2ZqVF4bDej413TaAtfjoe3k89-eI",
      "header": {
        "alg": "HPKE-0",
        "kid": "G5N__CqMv_kJGieGSFuAugvl0jrQJCZ3yKwVK6sUM4o",
        "ek": "BJl0V6KLl3HOAZbzFwiAL9eaYbFQPg7-\
             ROmIJpluIQjNS5zultZsC4rGhGzmW1GUWG8bzJUWLQtxFF9oze0AKhU"
      }
    }
  ]
}
]]></artwork></figure>

<t>The keys used for this example are in <xref target="keys-used"/>.</t>

</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 title="JWK Types and Curves for JOSE-HPKE Ciphersuites" anchor="ciphersuite-kty-crv"><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>The example below is a JWK representation of a JOSE-HPKE public and private key:</t>

<figure><artwork><![CDATA[
{
  "kty": "OKP",
  "crv": "X25519",
  "x": "3pPHgcHYVYpOpB6ISwHdoPRB6jNgd8mM4nRyyj4H3aE",
  "d": "nWGxne0tAiV8Hk6kcy4rN0wMskjl9yND0N3Xeho9n6g",
  "kid": "recipient-key-1",
  "alg": "HPKE-3",
  "key_ops": "encrypt"
}
]]></artwork></figure>

<t>It uses the "key_ops" value of "encrypt",
which is appropriate when using integrated encryption.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This specification is based on HPKE and the security considerations of
<xref target="I-D.ietf-hpke-hpke"/> 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.</t>

<t>HPKE relies on a source of randomness being available on the device.
In Key Agreement with Key Wrapping mode, the CEK has to be randomly generated.
The guidance on randomness in <xref target="RFC4086"/> applies.</t>

<section anchor="key-management"><name>Key Management</name>

<t>A single KEM key <bcp14>MUST NOT</bcp14> be used with multiple KEM 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 algorithms,
ensuring the integrity and security guarantees of each algorithm are preserved.
Additionally, the same key should not 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>

</section>
<section anchor="review-jwt-best-current-practices"><name>Review JWT Best Current Practices</name>

<t>The guidance in <xref target="RFC8725"/> about encryption is also pertinent to this specification.</t>

</section>
</section>
<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 makes choices for the following HPKE parameters:</t>

<t><list style="symbols">
  <t>KEM Algorithm</t>
  <t>KDF Algorithm</t>
  <t>AEAD Algorithm</t>
</list></t>

<t>The "KEM", "KDF", and "AEAD" values are chosen from the IANA HPKE registry <xref target="IANA.HPKE"/>.</t>

<t>All JOSE-HPKE algorithm identifiers registered by this specification begin with the string "HPKE-".
Future JOSE-HPKE ciphersuite names registered <bcp14>MUST</bcp14> also follow this convention.</t>

</section>
<section anchor="IANA"><name>IANA Considerations</name>

<section anchor="json-web-signature-and-encryption-algorithms"><name>JSON Web Signature and Encryption Algorithms</name>

<t>The following entries are added to the IANA "JSON Web Signature and Encryption Algorithms" registry <xref target="IANA.JOSE"/>:</t>

<section anchor="hpke-0"><name>HPKE-0</name>

<t><list style="symbols">
  <t>Algorithm Name: HPKE-0</t>
  <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>
  <t>Algorithm Usage Location(s): "alg"</t>
  <t>JOSE Implementation Requirements: Optional</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
  <t>Algorithm Analysis Documents(s): <xref target="I-D.ietf-hpke-hpke"/></t>
</list></t>

</section>
<section anchor="hpke-1"><name>HPKE-1</name>

<t><list style="symbols">
  <t>Algorithm Name: HPKE-1</t>
  <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>
  <t>Algorithm Usage Location(s): "alg"</t>
  <t>JOSE Implementation Requirements: Optional</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
  <t>Algorithm Analysis Documents(s): <xref target="I-D.ietf-hpke-hpke"/></t>
</list></t>

</section>
<section anchor="hpke-2"><name>HPKE-2</name>

<t><list style="symbols">
  <t>Algorithm Name: HPKE-2</t>
  <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>
  <t>Algorithm Usage Location(s): "alg"</t>
  <t>JOSE Implementation Requirements: Optional</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
  <t>Algorithm Analysis Documents(s): <xref target="I-D.ietf-hpke-hpke"/></t>
</list></t>

</section>
<section anchor="hpke-3"><name>HPKE-3</name>

<t><list style="symbols">
  <t>Algorithm Name: HPKE-3</t>
  <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>
  <t>Algorithm Usage Location(s): "alg"</t>
  <t>JOSE Implementation Requirements: Optional</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
  <t>Algorithm Analysis Documents(s): <xref target="I-D.ietf-hpke-hpke"/></t>
</list></t>

</section>
<section anchor="hpke-4"><name>HPKE-4</name>

<t><list style="symbols">
  <t>Algorithm Name: HPKE-4</t>
  <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(X25519, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and the ChaCha20Poly1305 AEAD</t>
  <t>Algorithm Usage Location(s): "alg"</t>
  <t>JOSE Implementation Requirements: Optional</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
  <t>Algorithm Analysis Documents(s): <xref target="I-D.ietf-hpke-hpke"/></t>
</list></t>

</section>
<section anchor="hpke-5"><name>HPKE-5</name>

<t><list style="symbols">
  <t>Algorithm Name: HPKE-5</t>
  <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>
  <t>Algorithm Usage Location(s): "alg"</t>
  <t>JOSE Implementation Requirements: Optional</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
  <t>Algorithm Analysis Documents(s): <xref target="I-D.ietf-hpke-hpke"/></t>
</list></t>

</section>
<section anchor="hpke-6"><name>HPKE-6</name>

<t><list style="symbols">
  <t>Algorithm Name: HPKE-6</t>
  <t>Algorithm Description: Cipher suite for JOSE-HPKE using the DHKEM(X448, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the ChaCha20Poly1305 AEAD</t>
  <t>Algorithm Usage Location(s): "alg"</t>
  <t>JOSE Implementation Requirements: Optional</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="alg-mapping"/> of this specification</t>
  <t>Algorithm Analysis Documents(s): <xref target="I-D.ietf-hpke-hpke"/></t>
</list></t>

</section>
<section anchor="int"><name>int</name>

<t><list style="symbols">
  <t>Algorithm Name: int</t>
  <t>Algorithm Description: Indicates that HPKE Integrated Encryption is being used</t>
  <t>Algorithm Usage Location(s): "enc"</t>
  <t>JOSE Implementation Requirements: Required</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="overview"/> of this specification</t>
  <t>Algorithm Analysis Documents(s): <xref target="I-D.ietf-hpke-hpke"/></t>
</list></t>

</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 IANA "JSON Web Key Parameters" registry <xref target="IANA.JOSE"/>:</t>

<section anchor="ek"><name>ek</name>

<t><list style="symbols">
  <t>Header Parameter Name: "ek"</t>
  <t>Header Parameter Description: A base64url-encoded encapsulated key, as defined in <xref section="5" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
  <t>Header Parameter Usage Location(s): JWE</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="encapsulated-keys"/> of this specification</t>
</list></t>

</section>
<section anchor="pskid"><name>psk_id</name>

<t><list style="symbols">
  <t>Header Parameter Name: "psk_id"</t>
  <t>Header Parameter Description: A base64url-encoded key identifier (kid) for the pre-shared key, as defined in <xref section="5.1.2" sectionFormat="of" target="I-D.ietf-hpke-hpke"/></t>
  <t>Header Parameter Usage Location(s): JWE</t>
  <t>Change Controller: IETF</t>
  <t>Specification Document(s): <xref target="overview"/> of this specification</t>
</list></t>

</section>
</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<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="I-D.ietf-hpke-hpke">
   <front>
      <title>Hybrid Public Key Encryption</title>
      <author fullname="Richard Barnes" initials="R." surname="Barnes">
         <organization>Cisco</organization>
      </author>
      <author fullname="Karthikeyan Bhargavan" initials="K." surname="Bhargavan">
         <organization>Inria</organization>
      </author>
      <author fullname="Benjamin Lipp" initials="B." surname="Lipp">
         <organization>Inria</organization>
      </author>
      <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
         <organization>Apple</organization>
      </author>
      <date day="24" month="June" year="2025"/>
      <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 a variant that authenticates possession of a pre-shared key.
   HPKE works for any combination of an asymmetric KEM, key derivation
   function (KDF), and authenticated encryption with additional data
   (AEAD) encryption function.  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>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-hpke-hpke-01"/>
   
</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="RFC7156">
  <front>
    <title>Diameter Support for Proxy Mobile IPv6 Localized Routing</title>
    <author fullname="G. Zorn" initials="G." surname="Zorn"/>
    <author fullname="Q. Wu" initials="Q." surname="Wu"/>
    <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
    <date month="April" year="2014"/>
    <abstract>
      <t>In Proxy Mobile IPv6, packets received from a Mobile Node (MN) by the Mobile Access Gateway (MAG) to which it is attached are typically tunneled to a Local Mobility Anchor (LMA) for routing. The term "localized routing" refers to a method by which packets are routed directly between an MN's MAG and the MAG of its Correspondent Node (CN) without involving any LMA. In a Proxy Mobile IPv6 deployment, it may be desirable to control the establishment of localized routing sessions between two MAGs in a Proxy Mobile IPv6 domain by requiring that the session be authorized. This document specifies how to accomplish this using the Diameter protocol.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7156"/>
  <seriesInfo name="DOI" value="10.17487/RFC7156"/>
</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="RFC7638">
  <front>
    <title>JSON Web Key (JWK) Thumbprint</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7638"/>
  <seriesInfo name="DOI" value="10.17487/RFC7638"/>
</reference>


<reference anchor="IANA.JOSE" target="https://www.iana.org/assignments/jose">
  <front>
    <title>JSON Web Signature and Encryption Algorithms</title>
    <author >
      <organization>IANA</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC4086">
  <front>
    <title>Randomness Requirements for Security</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="J. Schiller" initials="J." surname="Schiller"/>
    <author fullname="S. Crocker" initials="S." surname="Crocker"/>
    <date month="June" year="2005"/>
    <abstract>
      <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
      <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
  <seriesInfo name="RFC" value="4086"/>
  <seriesInfo name="DOI" value="10.17487/RFC4086"/>
</reference>


<reference anchor="I-D.ietf-cose-dilithium">
   <front>
      <title>ML-DSA for JOSE and COSE</title>
      <author fullname="Michael Prorock" initials="M." surname="Prorock">
         <organization>Tradeverifyd</organization>
      </author>
      <author fullname="Orie Steele" initials="O." surname="Steele">
         <organization>Tradeverifyd</organization>
      </author>
      <date day="14" month="October" year="2025"/>
      <abstract>
	 <t>   This document specifies JSON Object Signing and Encryption (JOSE) and
   CBOR Object Signing and Encryption (COSE) serializations for Module-
   Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum
   Cryptography (PQC) digital signature scheme defined in US NIST FIPS
   204.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-cose-dilithium-10"/>
   
</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="19" month="October" 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 is a general encryption framework utilizing an asymmetric key
   encapsulation mechanism (KEM), a key derivation function (KDF), and
   an Authenticated Encryption with Associated Data (AEAD) algorithm.

   This document defines the use of HPKE with COSE.  Authentication for
   HPKE in COSE is provided by COSE-native security mechanisms or by the
   pre-shared key authenticated variant of HPKE.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-cose-hpke-17"/>
   
</reference>


<reference anchor="IANA.HPKE" target="https://www.iana.org/assignments/hpke">
  <front>
    <title>Hybrid Public Key Encryption (HPKE)</title>
    <author >
      <organization>IANA</organization>
    </author>
    <date year="n.d."/>
  </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>


    </references>

</references>


<?line 573?>

<section anchor="keys-used"><name>Keys Used in Examples</name>

<t>This private key and its implied public key are used the examples:</t>

<figure><sourcecode type="text"><![CDATA[
{
  "kty": "EC",
  "use": "enc",
  "alg": "HPKE-0",
  "kid": "G5N__CqMv_kJGieGSFuAugvl0jrQJCZ3yKwVK6sUM4o",
  "crv": "P-256",
  "x": "gixQJ0qg4Ag-6HSMaIEDL_zbDhoXavMyKlmdn__AQVE",
  "y": "ZxTgRLWaKONCL_GbZKLNPsW9EW6nBsN4AwQGEFAFFbM",
  "d": "g2DXtKapi2oN2zL_RCWX8D4bWURHCKN2-ZNGC05ZaR8"
}
]]></sourcecode></figure>

</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,
Neil Madden,
Aaron Parecki,
Filip Skokan,
and
Sebastian Stenzel
for their contributions to the specification.</t>

</section>
<section numbered="false" anchor="document-history"><name>Document History</name>

<t>-13</t>

<t><list style="symbols">
  <t>Removed orphan text about AKP kty field</t>
  <t>Fixed bug in "include-fold" syntax</t>
  <t>Switched reference from RFC 9180 to
draft-ietf-hpke-hpke</t>
  <t>Editorial improvements to abstract and
introduction.</t>
  <t>Removed Section 8.2 "Static Asymmetric
Authentication in HPKE"</t>
</list></t>

<t>-12</t>

<t><list style="symbols">
  <t>Added the recipient_structure</t>
</list></t>

<t>-11</t>

<t><list style="symbols">
  <t>Fix too long lines</t>
</list></t>

<t>-10</t>

<t><list style="symbols">
  <t>Addressed WGLC review comments by Neil Madden and Sebastian Stenzel.</t>
</list></t>

<t>-09</t>

<t><list style="symbols">
  <t>Corrected examples.</t>
</list></t>

<t>-08</t>

<t><list style="symbols">
  <t>Use "enc":"int" for integrated encryption.</t>
  <t>Described reasons for excluding authenticated HPKE.</t>
  <t>Stated that mutually known private information <bcp14>MAY</bcp14> be used as the HPKE info value.</t>
</list></t>

<t>-07</t>

<t><list style="symbols">
  <t>Clarifications</t>
</list></t>

<t>-06</t>

<t><list style="symbols">
  <t>Remove auth mode and auth_kid from the specification.</t>
  <t>HPKE AAD for JOSE HPKE Key Encryption is now empty.</t>
</list></t>

<t>-05</t>

<t><list style="symbols">
  <t>Removed incorrect text about HPKE algorithm names.</t>
  <t>Fixed #21: Comply with NIST SP 800-227 Recommendations for Key-Encapsulation Mechanisms.</t>
  <t>Fixed #19: Binding the Application Context.</t>
  <t>Fixed #18: Use of apu and apv in Recipient context.</t>
  <t>Added new Section 7.1 (Authentication using an Asymmetric Key).</t>
  <t>Updated Section 7.2 (Key Management) to prevent cross-protocol attacks.</t>
  <t>Updated HPKE Setup info parameter to be empty.</t>
  <t>Added details on HPKE AEAD AAD, compression and decryption for HPKE Integrated Encryption.</t>
</list></t>

<t>-04</t>

<t><list style="symbols">
  <t>Fixed #8: Use short algorithm identifiers, per the JOSE naming conventions.</t>
</list></t>

<t>-03</t>

<t><list style="symbols">
  <t>Added new section 7.1 to discuss Key Management.</t>
  <t>HPKE Setup info parameter is updated to carry JOSE context-specific data for both modes.</t>
</list></t>

<t>-02</t>

<t><list style="symbols">
  <t>Fixed #4: HPKE Integrated Encryption "enc: dir".</t>
  <t>Updated text on the use of HPKE Setup info parameter.</t>
  <t>Added Examples in Sections 5.1, 5.2 and 6.1.</t>
  <t>Use of registered HPKE  "alg" value in the recipient unprotected header for Key Encryption.</t>
</list></t>

<t>-01</t>

<t><list style="symbols">
  <t>Apply feedback from call for adoption.</t>
  <t>Provide examples of auth and psk modes for JSON and Compact Serializations</t>
  <t>Simplify description of HPKE modes</t>
  <t>Adjust IANA registration requests</t>
  <t>Remove HPKE Mode from named algorithms</t>
  <t>Fix AEAD named algorithms</t>
</list></t>

<t>-00</t>

<t><list style="symbols">
  <t>Created initial working group version from draft-rha-jose-hpke-encrypt-07</t>
</list></t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+09a1fqSLbfs9b8h1zOh9Fu4PAQjzozdxoRFBV8gKJOz/KE
pIBISNKpBOTYzm+5v+X+srv3rsoLgnp6+q75MOM6SyGp2lW133vXrjqFQkHx
Td9iB2ruhjPVGakny6FnGuplMLRMXT1jS7Vp697S9U3HVrdOLs+a2+rC9Cfq
ae+iq14Mn5juqz1zbJv2WNVsI9X89KLX3M4p2nDosXliDICimraKr3OKrvls
7HjLA5X7hhK4BnznB+qXWnlXUQxHt7UZzM/wtJFfMJk/Kjw5nBUm7pQVmBir
YGEXX+HBcGZyDkP7Sxf6tJv9lmIHsyHzDhQEe6Dojs2ZzQMYwPcCpsCsqorm
MQ1m12N64Jn+MqcsHG869pzAhadiklO2hIfGgaIWaPr4F9/Q3wH9EZhTlDmz
AxhJVUMION8cfBeTyg0AOCLrGF/j85lmWrLZT7jAouON8bnm6RN4PvF9lx98
/ozN8JE5Z8Ww2Wd88HnoOQvOPiOAz9hxDPQJhtCV0LUYE8Y+v4VB7CWQmBgw
2bsoYBZN5004b74sTvyZlVMU7gOfPGqWYwM6lowrrnmg/s139LzKHc/32IjD
p+VMfvA9U/fzqu7MZsz24QnwxExzXcDh3xVFC/yJ4yFdYAmqOgosSzBM3/SC
mWYxvtA89ZoZxpIaANI02/ymIYMeqF1namr0XAfCH6iHmj2GiXmMnnlsTK3O
NM/WfG0qWzqB7SO7tm1DdmaShFPHNnzT+2mM34swY1jt2sRONNtmXO1zfeKM
mG2OM+Z1YwOVPQ5zQnmpu65lMkPt6SagEvoeOrZduJ4w0y70TCYAhEJ2Uji8
7qUnesy8mWYvU1Od0CyKfjQLmPRz0WZ+1pTrIBaehthh3hNjH0BkJ7BNffL+
NDSCXBxKyD/ZCCeNOdMGYb0oqj2fMUuMLWZ14Zks+TQ9o76nGQyQaI6WRnJI
B3r95HjlKvByen6AdB+x7KMgpIfvFNVTYFeeGL0D69OYpR4mX6Wn0GPWqNDm
PACoDVA8geUD0yYnMxNAHoePTwjjp4njh6xDzUAfHaihPHIEZxK4ommPnM9v
Tt92ANs+sBGqoutWo1Iu78uPe+UvO/ixXTgiTSKkFH/JBqh744978ccv4cdy
LWyw96VSC5/uVqltu96tF1E7HtAM1UhG5Q9g6YAaiSfSApFBGbAhWRPNDzy2
ak/qFtgJ0EMzLjtq3pj5MYIWi0XR1GxNaEYwBGObVAZpRkVBnKVxslPa200h
QkedZZgWDGIGs/VXAkfhEtEQfNcSP2Bcv3NlOCGcT7fd6xd7l8W9UqlQ2617
1bfm1SX+1CzQYBxmFvhklXuoljXP4IT2PtMntmM542VqBddM6GGDQKiAUPVS
M73CwATTDgsqNEG7w+r4BOcHGmvCZqCwbjhavCOT6x6D0c6dsUaEVBu4emfs
ae5kmadVqD2X6SZMTmBJjCOXBcPPTbTvYLQz8WTPLTcY8qJtcr84duaf8QM+
+SyhJoDyz2tIK7rGSAAmbwEUr2daaqVU3lOUAvhK9Bs0LdgkTffha39icpUj
6FE4VYONTNTvH3GkEH0BIA4dKuXDDlVROFDOaAQmQtXUOeBSA2QDDV0xGngr
Kou6KfBC84aoaL1lgZvfQEu4lmbaPnv2OU1CA1unm66JNIth5Gl813PmpgEr
4tI/UrQxdOa+qhmai9Kkgg0BrwpUvzthHkJVNd/X9ClXt9rdo0KjUa8UqDfb
LioKzV6zuAO6VbcCBB0vwp9oPnEtTAVRCi9dh3NGbh0uUYMJsQKfgNNm4CSL
Ah66bHIt9hKdhaFpC4JgH1vVwKGYMfQl1LNmJ08oMsA6zKmRMgpsXaD47Ki1
LRaenIWRwKfwfzXDMKUYAbNoyla9WT/aTjYLYRYln4DfEpBUhCwC4In8oUss
/GogcRE6sBW+AhwDkhFV4XMV/F3OiO4IiUCMGGlOgO1EnCVBCuadmYYB9lL5
BMLve44R0BSBKB9g15eXdYvx+qqaOKlsztuifpy0gCBtxE0JRL3Nn2PgMKCf
EnHoH3litGKmEDIblBAMEtmUlBANYE6AHwvdA20sMJdXYP32GIWOB64Lfigx
E/CK0IeIYWREc4jWYZkIlagJgAOwRcQrWPo5sg1oGOp5hNQmVuEK0RVxhMEE
V3Odm14/lxd/1e4Ffb5uXt20r5tH+Ll3Uj8/jz4oskXv5OLm/Cj+FPdsXHQ6
ze6R6AxP1dQjJdep3+cEc+cuLvvti279PIeRmJ/iTxAtXNCQqUgDz0WdDeLA
FaCb7plD+AJ9DhuX//s/5R3giv+S7gXwgviCDgZ8WYD4iNEc21rKr4BI0CCu
y8AtByiaZam65po+KARoC4ScOAtbBT3CAJs//A0x8/cD9c9D3S3v/Ld8gAtO
PQxxlnpIOFt/stZZIDHjUcYwETZTz1cwnZ5v/T71PcR74uGf/2qBPlAL5b2/
/reSxUJ98JxNaY2z2D3gUpuMHMtyFmQ5KBwwtRgIUHLGwXkpIHgf6ZwQChT4
rUbzDFQfcgIpKKLyy4v0/F5fi0rhQ1ZtFUCW0kBY7vQa25JkxdpDarNI2okp
PgSPJ+CRYmf/JEC5PM0Fz10gugNeETj4fAZ2otkBZHHG3gFwFBkZtbViZN7u
XE+Zn+aK+alz7oBDg6+OwPyowvy8BZOYICTnrhwjNmLp4STM7wYJzHsBWnVu
soX68smRH1/f9JT8haPOHLQJQCo0Wqh4oxzRoEkO9w+qeATf0XIxcBnTaMmj
fvGkGYSxAJCBWkzaGcEWoVUprkBMM/J7oDTwL4QEJYzYNJSgyFzAF+xNVvqX
AJqDDnxnVsoAaABRsTXOCbOKprsgHSYZ/Eh0tEdqDqBQuxz0B73+NoLClRTX
uoN7hNwTD5FPSwyhpwPhx5iRfUBiYb801orCutEkyMUCJhfan4DTyg3mMjIH
NEDG4sQMVeIWekN9QxqQOQJmBUQOl+I9wkeFA34+eJNgtD1nRsDTKwpZT4g8
rTz0RKW5T/Ah0h8Cc7KDKZPXR69CLSOfbpJbpW3H68qrQwdkNYdQH4caZzlh
e+m7y6c5GkJOACkjyA9vHk0jR3DUE6aBn6q6mqeB/wqfYLVgkTmzBfeExIiB
5lUYlHkLDMnWW9A0YJ7IJ9HSDRODCQTJQV1plkxhACaEi44WpeHMXIh6iMF6
yVZCnybQ9PLSY0LRVYuErEhB5NVjZoPTZREU8s4+DqqSAgVLaECwoQkdETu+
iFFyNyK0IpzYZ06tD4C0QNmwZ23mAmU3L9FwALTt+JFzmLK2ZFUTAUE6cqDw
ADxvTP/gKJFccXga2OAR+7BGaDghUnPJl+t6CRwlG70ykgWyAjlNAz4ZBn7s
YdEs2TOySNRs47pg/T2Yf3JSm5SigGQ7ckw5lXggQPLGYTCxq1oOuiV8RbWg
PAAvI4sHkl85MLqYRY/5gYshgw5jvMEbNeSMDfKY5S6JPQYaTChBI/LR04B3
iuUVtlNA8WihkxUDmGtWwIQeFlSgV6THxatN2ry4ovKRepkNI7OSHDDS/Qq+
MW0XOCF0kCNOwY70cIiIfyJeQ0v9CWz+M0QzEHWtWH9KOEtktcOsGUaJkYJH
Joh1Uo5M9gXo9i1h/npMs7a2lZTSjbG6J7RCFsGUUNUTt5H2fMeq4XAbWLao
tEG3RZgiq/Cmw5Mw57G+pf6KDrwdSGXS85mrQuRDZiDiwaSq2wPfaKsDTIvh
ZTwhzH4cMQ7RDnC5OcP9HJiNiNabjaOTQrOHlFz3lELtE4rIV80NvtLS4dP8
q9Qc8aR5XtlgwpK8vbsyZcEUsccLPQChHBw5lnhWAE+Hv0ollXxBLtCq8/8R
EQWT+Z5vR+4CvJbPxMxC1547KQUmSZ05v5XRVv0+pgHOYkjrI0rYLHqY7Qnm
I2kV3AcTzTbmOTbNIc+jVd7dCTwLN8vATBsbp/8pG0UfwCJZqT5FR2mLI7QD
rgStqRZqI8rXwNwytdZHIZGyImFOqEjp4AnXE0wIKBsTjZbOBAZBHDxwmU1P
+JvvqGSaqCJGmgXcRz235tImhnRh1hAgAnYoFJSpN8tSXeahrosd8gRVN644
lrnYcYOYHych3bT3uxIbpBR3uisIcajAwVXRMZBw7ATLhyOs82vUbYWR1oPg
DwhqPEgbjWXsHd1CX8q8GvQ2oVnxbV8bR/Mg4Zm5mEADTKC7iZGRzpLAIepc
waAwqQEPbW6285iE0YhT0VJkE8np7HULrnpr5TImHTkJygEsDRw7UuHx4nDT
2h7/CdjRDyhcmdqY1QrTEmZsU8OVyviG+8AaRRoNpAjlASf1ATCrendtbwOj
dZI34SXI6abT4ImUdWLFKVMfURIzzxJI7vutak7k+pL+wftWdTcihS19b+rE
1XK5UN5/u+Mmc0zel8HEI3ssLI0+Ybh5kcUfcSijyLGhh+cE4wlITogbqUiY
pGSGGZHLrUjuVNb1f5bq/xS52E0RsSjKIUM0hJpUhDG0S5J0xoXkSPaNLANL
WoZ//OMfyl/SP6iLmgfqH3/+o0r5yYUnqi5weYgHde/LfkVd6fQXRWHL08nw
WDcvzLrZax2eX/dKi7a5GLdnt8H9sr3bbpy6Q/vKPG/UTa1iTdtPzrg91ct9
a390VW11DWvf+1npTQ334cboX9u3h8bAqAyPDn/RrdbZVdn5xm786u2UV/Ty
bbd7vGeOroqH7clue6cUmIfDs73Cz8rN2Rf7xHCq7V5zNF6cPnZa1W+Dp6tv
536pdDxptSrQpnw7Hpyd9O7P7wx2y65vv9RNe+no92bjftbuzQel5S/m0Uwv
Fi/m0Fr9wI9lfdu9vVmaiz374bx0cXl8fvygT8/7s9qN3n9ojYuE53AXQLq6
6DuT0xfSD5024j1sU8A2MrWWdlck876nFvPxzgmXjWOLLsM4iF0xUMAQjZsG
EwmEZKC6xYrjIgqHw5kE8lV6rD/Wy5W9s8FXFZbx9bpXL1zUm5eFSm3363Ze
gZb62zm57GR06L8K8bDDGJC2IdJqQ2y79IVT5lCmQrqFa/bWw6oLm6Nm5San
UckzYc+UPRoTAr3AYvxNNzHyo1bSYp0NabGCSnTCnY4UJVaj3TjUAxSJ7dK3
MBSR/DJap3Qv5e5F6IaRN1dULsKk0Bs9t0IT3hP7qzeJ7IRosh27KSvwC5tc
XHImQ9W4IQje2HmzS7XZoY71sHQfcFXhbHHtH/a2C1jwsDEYSDo1CfeCUpAE
sLnmPma5EHJmUWSRYuJo/EfwKQIdc1xhetJcy4d4641XvBf0rT7qvMBawmyr
3LU13vVccKyTphgrdqMzfIZG80yKrRRtuWZy4/MQJszxt6+N8Q9mnOS2ZYxn
kbqGf5YHIy+zNq3IYWijTkUBlXthYToJZgEimHDfVz3iCMafFNtJpvcSM06E
KVzqbbGrDkBkirqA3Gas7IwLa55BXAi2s6goUPU1o8NXmVpCve+I6hFSaunt
wBnDKlix/UchK1BlSxB6+0CERqKJoJUszBCcDUjzsTRDNA/jOCF+SOdoUphW
Lqg2wH60tCXzHkHAE6O0DXQMR6bMvMXqjuYreDoM3AtxhD1NSJrYHYizOvQc
2FH2FDHgVsLhjAbZXg+6pDJAuV41FTJahLlatL0g8SFsNVhWUX4VI7oRISOx
LxBVjIH3mcrnFNVG4Hm0IUS62BMmH5hM+Pdh8YyohSE/V1MNeDPGmkb5OlQQ
GQmIhF4FesTsFK3yUeJiSzDMCgek9NG6qiTDwbxCrBnXrQRQnW3yR9Ju9ZfY
Ty/X0E9f3a4NpwUkcaLsPRMOk1yGnLcfKhMD5Yi0cLx5UJWjqFikuMJPN7Zl
TmWtTNgkT/Zaik24qxTjSIi6ZAqRuJB+HBMmKJr0RDYM65dEqQXGRZL/soWa
yM4jWU3q3bA0Q44uwaQjuRXKAwhPeyS7E8tjI6RzQrVljodsSBKbSAtHpVuZ
w6tzU4uTcF8R2tdY8opq592ANmXk3o5r8yuWSKBYhLmJMdsjNa3Go7XyyL7l
Rd+EcknlLKQGzOVIfX9SjxDyzMQiQ1Nf4fJoE1usXhH1faKkSQg2bv2BR0rB
MuLCNETgbJFXHrN6tDkHbaQfLrnQ8QDlhCmfcYj22HaItoUTgOayQD6QXQys
Jh+jqEpS0AJFWchIMy2pZbWxx8iUoWV2ECloyNboOFxi+lqgggRDy+ZhufvJ
qdyLkJmEaKRwR8jxmHTYwqqWKLAJy7ioTOV0cLYNchXMhsA3q1uWwn+X1hvk
+PUVbF65SPXXNLM3ZC5pQ8M8W8Ip2OhfVYrgSTNXk/46gYkNujD/MLMNyqio
VEEFyWgA1i+qxFeg5NcUsWoKvzaMIyifxsMNtiS9iNiCYz/FiQOKmGTAOaQk
AlZecVFf6fvLAiEX9f2qZ4GZBhKHr1kK5muo+kRO4eUPEDjnpKjlDrL9hjw1
SjsO2BYjy+NGR77fbMigLY2jimADepIPURId4ekUQgh4elzrPj42funMH6en
xyY77rWCejCeW6Un7+q08VBdni1uz3b5TWfHyWHP19WB42UiOGjz+gclDukj
kZVIQ/FD3/r3Ta9Ixi4kRnvLxId8RDpfeREIivAjMPNdiHnNnEKWK7s2dsQG
2VywxgExA+R+VrKpkIN3bzEGdIzzUaftm6bfOu/XzfPGqacNrvDZSfemNror
dZ/7dw8jreSeaIPbk5vSQ/nq7tY2ZouFZp9efyz9E/70pl2tU7XOjfLDedfu
3vb71/O2XcqFu2bCEEcSDbiBOT4NK7XSw92k1H5yzN50v3/dO6T5tlun1n3F
WsC8AqPR5u1ZzWIn16Phcav2cHc6uh8829jnZ+Wq31xeNI2jfg9a2YlerX3s
sby/3XeHs4c5tm6bC1Of3T5pd4fuw6BWuqseLofVa+tn5R5+P7T2nYdBa/pw
10YcWezGde6nxpN2s+/2ptbt9d31cb91fajdPB/17NPJbbnl9ivWWa9Zu+0O
Hu5/VjrN2s5ta6I9zJoLvTmBFg/t2/6h1rlt3d/OatPhnVG9H9TObqyu15+1
up3Kc+fhqKX1m7Wgbz3c3LZOK9+H9Qw6DHYWgPdYQjO82bSy1obOnEWpqgxl
isaPi+iNukp9CmHbE3fsgtSor28kZuOEbGQsVmpgwh3tdMj4+2qRF1Rskbig
NgMWtIazDqVtY0Y63c/lSYPHcTe03a8/Xxi7teuL0/uyfiVaQMQObypBtXtt
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

-->

</rfc>

