<?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.17 (Ruby 3.3.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-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.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-01"/>
    <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/>
      <address>
        <postal>
          <country>Austria</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="2024" month="July" day="07"/>
    <area>Security</area>
    <workgroup>JOSE</workgroup>
    <keyword>HPKE</keyword>
    <keyword>JOSE</keyword>
    <keyword>PQC</keyword>
    <keyword>Hybrid</keyword>
    <abstract>
      <?line 92?>

<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 106?>

<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" and "enc" are both present in a protected header and when "iv" and "tag" are empty, the mode is HPKE JWE Integrated Encryption.</t>
      <t>When "enc" is present in a protected header and "alg" is absent, the mode is HPKE JWE Key Encryption when a valid HPKE "alg" value is present in the unprotected headers.</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 "Setup info" <bcp14>MUST NOT</bcp14> be used with either HPKE JWE Integrated Encryption and HPKE JWE Key Encryption.</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>
        <t>The HPKE AEAD AAD <bcp14>MUST</bcp14> be set to the "JWE Additional Authenticated Data encryption parameter" defined in Step 14 of Section 5.1 of <xref target="RFC7516"/> which is repeated here for clarity:</t>
        <t>Let the Additional Authenticated Data encryption parameter be ASCII(Encoded Protected Header).
However, if a JWE AAD value is present (which can only be the case when using the JWE JSON Serialization), instead let the Additional Authenticated Data encryption parameter be ASCII(Encoded Protected Header || '.' || BASE64URL(JWE AAD)).</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 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" that is registered in both the IANA HPKE AEAD Identifiers Registry, and the IANA JSON Web Signature and Encryption Algorithms Registry.</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 parameters "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>
      </ul>
    </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.</t>
      <t>In HPKE JWE Key Encryption:</t>
      <ul spacing="normal">
        <li>
          <t>The protected header <bcp14>MUST NOT</bcp14> contain an "alg".</t>
        </li>
        <li>
          <t>The protected header <bcp14>MUST</bcp14> contain an "enc" that is registered in both the IANA HPKE AEAD Identifiers Registry, and the IANA JSON Web Signature and Encryption Algorithms Registry.</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 parameter <bcp14>MAY</bcp14> contain "alg" and "enc" values.</t>
        </li>
        <li>
          <t>The "encrypted_key" <bcp14>MUST</bcp14> be the base64url encoded content encryption key as described in Step 15 in { Section 5.1 of RFC7516 }.</t>
        </li>
        <li>
          <t>The recipient "encrypted_key" is as described in { Section 7.2.1 of RFC7516 } .</t>
        </li>
        <li>
          <t>The "iv", "tag" JWE members <bcp14>MUST</bcp14> be present.</t>
        </li>
        <li>
          <t>The "aad" JWE member <bcp14>MAY</bcp14> be present.</t>
        </li>
        <li>
          <t>The "ciphertext" <bcp14>MUST</bcp14> be the base64url encoded ciphertext as described in Step 19 in { Section 5.1 of RFC7516 }.</t>
        </li>
      </ul>
    </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="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.
An HPKE ciphersuite, 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>For readability the algorithm ciphersuites labels are built according to the following scheme:</t>
        <artwork><![CDATA[
HPKE-<KEM>-<KDF>-<AEAD>
]]></artwork>
        <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-p256-sha256-a128gcm">
          <name>HPKE-P256-SHA256-A128GCM</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-P256-SHA256-A128GCM</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-p384-sha384-a256gcm">
          <name>HPKE-P384-SHA384-A256GCM</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-P384-SHA384-A256GCM</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-p521-sha512-a256gcm">
          <name>HPKE-P521-SHA512-A256GCM</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-P521-SHA512-A256GCM</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-x25519-sha256-a128gcm">
          <name>HPKE-X25519-SHA256-A128GCM</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-X25519-SHA256-A128GCM</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-x25519-sha256-chacha20poly1305">
          <name>HPKE-X25519-SHA256-ChaCha20Poly1305</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-X25519-SHA256-ChaCha20Poly1305</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-x448-sha512-a256gcm">
          <name>HPKE-X448-SHA512-A256GCM</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-X448-SHA512-A256GCM</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-x448-sha512-chacha20poly1305">
          <name>HPKE-X448-SHA512-ChaCha20Poly1305</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-X448-SHA512-ChaCha20Poly1305</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>
      <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">
         </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Transmute</organization>
            </author>
            <author fullname="Ajitomi, Daisuke" initials="A." surname="Daisuke">
         </author>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="22" month="October" year="2023"/>
            <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-07"/>
        </reference>
      </references>
    </references>
    <?line 417?>

<section anchor="examples">
      <name>Examples</name>
      <t>The following examples contain newlines for readability.</t>
      <t>This private key and it implied public key are used in the following examples:</t>
      <sourcecode type="text"><![CDATA[
{
  "kid": "S6AXfdU_6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s",
  "alg": "HPKE-P256-SHA256-A128GCM",
  "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 following examples:</t>
      <sourcecode type="text"><![CDATA[
{
  "kty": "oct",
  "kid": "our-pre-shared-key-id",
  "k": "anVnZW11anVnZW11Z29rb3Vub3N1cmlraXJla2FpamE"
}
]]></sourcecode>
      <section anchor="integrated-encryption-1">
        <name>Integrated Encryption</name>
        <section anchor="example-0">
          <name>Example 0</name>
          <t>This example demonstrates the use of Integrated Encryption with Auth Mode and a Pre shared key.</t>
          <t>The compact serialization is:</t>
          <sourcecode type="text"><![CDATA[
eyJhbGciOiJIUEtFLVAyNTYtU0hBMjU2LUExMjhHQ00iLCJlbmMiOiJBMTI4R0NNIiwi
a2lkIjoidXJuOmlldGY6cGFyYW1zOm9hdXRoOmp3ay10aHVtYnByaW50OnNoYS0yNTY6
UzZBWGZkVV82WWZ6dnUwS0RESmIwc0Z1d25JV1BrNkxNVEVyWWhQYjMycyIsInBza19p
ZCI6Im91ci1wcmUtc2hhcmVkLWtleS1pZCIsImF1dGhfa2lkIjoidXJuOmlldGY6cGFy
YW1zOm9hdXRoOmp3ay10aHVtYnByaW50OnNoYS0yNTY6UzZBWGZkVV82WWZ6dnUwS0RE
SmIwc0Z1d25JV1BrNkxNVEVyWWhQYjMycyJ9.BL_K7-o0jtNcCtYfoFhgh42jPxrz4aW
1jvjeSyHnAXKsomGQ1VCvwjSduwaWJ1Ewrrh3G1vf94xJ_Bb9YwYE9JU..Fl0HsSaXA-
ICfSz97iRRW6qApb5MFQct9llEPvkL0gEim9GmrDm8REJcquETwdTTaGitDZ_IbnwTwk
57ic1nfyRjWTFzEZLs_IAqZphP2J6KcqKHHBJJraeTkN9r1kNrDP6yg4xqcceCVmcn_f
dd2Oudij-FlU2IXsQKRyo2B2H9Q2si.
]]></sourcecode>
          <t>The json serialization is:</t>
          <sourcecode type="text"><![CDATA[
{
  "protected":"eyJhbGciOiJIUEtFLVAyNTYtU0hBMjU2LUExMjhHQ00iLCJlbmMiO
  iJBMTI4R0NNIiwia2lkIjoidXJuOmlldGY6cGFyYW1zOm9hdXRoOmp3ay10aHVtYnB
  yaW50OnNoYS0yNTY6UzZBWGZkVV82WWZ6dnUwS0RESmIwc0Z1d25JV1BrNkxNVEVyW
  WhQYjMycyIsInBza19pZCI6Im91ci1wcmUtc2hhcmVkLWtleS1pZCIsImF1dGhfa2l
  kIjoidXJuOmlldGY6cGFyYW1zOm9hdXRoOmp3ay10aHVtYnByaW50OnNoYS0yNTY6U
  zZBWGZkVV82WWZ6dnUwS0RESmIwc0Z1d25JV1BrNkxNVEVyWWhQYjMycyJ9",

  "encrypted_key":"BL_K7-o0jtNcCtYfoFhgh42jPxrz4aW1jvjeSyHnAXKsomGQ1
  VCvwjSduwaWJ1Ewrrh3G1vf94xJ_Bb9YwYE9JU",

  "ciphertext":"Fl0HsSaXA-ICfSz97iRRW6qApb5MFQct9llEPvkL0gEim9GmrDm8
  REJcquETwdTTaGitDZ_IbnwTwk57ic1nfyRjWTFzEZLs_IAqZphP2J6KcqKHHBJJra
  eTkN9r1kNrDP6yg4xqcceCVmcn_fdd2Oudij-FlU2IXsQKRyo2B2H9Q2si"
}
]]></sourcecode>
          <t>The decoded protected header is:</t>
          <sourcecode type="text"><![CDATA[
{
  "alg": "HPKE-P256-SHA256-A128GCM",
  "enc": "A128GCM",
  "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzv
  u0KDDJb0sFuwnIWPk6LMTErYhPb32s",
  "psk_id": "our-pre-shared-key-id",
  "auth_kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_
  6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s"
}
]]></sourcecode>
          <t>The decrypted plaintext is:</t>
          <sourcecode type="text"><![CDATA[
{
  "urn:example:claim":true,
  "iss":"urn:example:issuer",
  "aud":"urn:example:audience",
  "iat":1720387513,
  "exp":1720394713
}
]]></sourcecode>
        </section>
        <section anchor="example-1">
          <name>Example 1</name>
          <t>This example demonstrates the use of Integrated Encryption with Auth Mode and a Pre shared key as well as JWE Additional Authenticated Data.</t>
          <t>There is way to express a JWE with aad in Compact JWE Serialization.</t>
          <sourcecode type="text"><![CDATA[
{
  "protected":"eyJhbGciOiJIUEtFLVAyNTYtU0hBMjU2LUExMjhHQ00iLCJlbmMiO
  iJBMTI4R0NNIiwia2lkIjoidXJuOmlldGY6cGFyYW1zOm9hdXRoOmp3ay10aHVtYnB
  yaW50OnNoYS0yNTY6UzZBWGZkVV82WWZ6dnUwS0RESmIwc0Z1d25JV1BrNkxNVEVyW
  WhQYjMycyIsInBza19pZCI6Im91ci1wcmUtc2hhcmVkLWtleS1pZCIsImF1dGhfa2l
  kIjoidXJuOmlldGY6cGFyYW1zOm9hdXRoOmp3ay10aHVtYnByaW50OnNoYS0yNTY6U
  zZBWGZkVV82WWZ6dnUwS0RESmIwc0Z1d25JV1BrNkxNVEVyWWhQYjMycyJ9",

  "encrypted_key":"BPlPRS-eX1m6zcxNScg4f_W6-eZTvu9n0F-wUcTuJZNsnf7Z1
  wasEW_g4sdbhFiDxBdd1_gCtyXpAatukbunN_I",

  "ciphertext":"RM7Bhz3WHSTeVYDlzLuYMhvECfKXhFIJPgMb1gUGMMkyUZeR",

  "aad":"8J-PtOKAjeKYoO-4jyBiZXdhcmUgdGhlIGFhZCE"
}
]]></sourcecode>
          <t>The decoded protected header is:</t>
          <sourcecode type="text"><![CDATA[
{
  "alg": "HPKE-P256-SHA256-A128GCM",
  "enc": "A128GCM",
  "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_6Yfzv
  u0KDDJb0sFuwnIWPk6LMTErYhPb32s",
  "psk_id": "our-pre-shared-key-id",
  "auth_kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:S6AXfdU_
  6Yfzvu0KDDJb0sFuwnIWPk6LMTErYhPb32s"
}
]]></sourcecode>
          <t>The decrypted plaintext is:</t>
          <sourcecode type="text"><![CDATA[
🖤 this plaintext!
]]></sourcecode>
          <t>The decoded aad is:</t>
          <sourcecode type="text"><![CDATA[
🏴‍☠️ beware the aad!
]]></sourcecode>
        </section>
      </section>
      <section anchor="key-encryption-1">
        <name>Key Encryption</name>
        <section anchor="example-2">
          <name>Example 2</name>
          <t>This example demonstrates the use of Key Encryption with Auth Mode and a Pre shared key, in both Compact JWE Serialization and General JWE JSON Serialization.</t>
          <sourcecode type="text"><![CDATA[
 eyJlbmMiOiJBMTI4R0NNIn0.S_y3YPaLfjiwGz5o65BHciu14AZv-0J4Kzgtp2s7p7Q
 .EfX5ELXllga3S6Xx.up_VjB87-VSXd7d5ycPmhK9RtHx6vxOQJNjHjcqdrNKAWJcqb
 QEFzypSRhtSn9GmmlRQKl2j0DxUbT9q9mVZ.PutkemRFtDPkog7lh3aqbw
]]></sourcecode>
          <t>Note that the recipient structure is destroyed when converting to compact serialization, and that "ek" moves to "encrypted_key".</t>
          <sourcecode type="text"><![CDATA[
{
  "protected": "eyJlbmMiOiJBMTI4R0NNIn0",
  "iv": "EfX5ELXllga3S6Xx",
  "ciphertext": "up_VjB87-VSXd7d5ycPmhK9RtHx6vxOQJNjHjcqdrNKAWJcqbQE
  FzypSRhtSn9GmmlRQKl2j0DxUbT9q9mVZ",
  "tag": "PutkemRFtDPkog7lh3aqbw",
  "recipients": [
    {
      "encrypted_key": "S_y3YPaLfjiwGz5o65BHciu14AZv-0J4Kzgtp2s7p7Q",
      "header": {
        "alg": "HPKE-P256-SHA256-A128GCM",
        "enc": "A128GCM",
        "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:bVviD6o
        OxaE-bCceWhaMYxOA7V-uy8fUl1xxvZ-Krvc",
        "psk_id": "our-pre-shared-key-id",
        "auth_kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:bV
        viD6oOxaE-bCceWhaMYxOA7V-uy8fUl1xxvZ-Krvc",
        "ek": "BKVLrAsOZ81MrTY3oyvSHnbBQWBp0viMZi0xYJkrOWcFIJThiyHkl
        LwplWoLQsQyE3xM6glXxWhJyb4LCzMGOLc"
      }
    }
  ]
}
]]></sourcecode>
          <t>The decoded protected header is:</t>
          <sourcecode type="text"><![CDATA[
{
  "enc": "A128GCM"
}
]]></sourcecode>
          <t>The decrypted plaintext is:</t>
          <sourcecode type="text"><![CDATA[
⌛ My lungs taste the air of Time Blown past falling sands ⌛
]]></sourcecode>
        </section>
        <section anchor="example-3">
          <name>Example 3</name>
          <t>This example demonstrates the use of Key Encryption with Auth Mode and a Pre shared key, JWE Additional Authenticated Data and General JWE JSON Serialization.</t>
          <t>There is way to express a JWE with aad in Compact JWE Serialization.</t>
          <sourcecode type="text"><![CDATA[
{
  "protected": "eyJlbmMiOiJBMTI4R0NNIn0",
  "iv": "Koo4oayn9ooLgbKp",
  "ciphertext": "rGtay4qzhd_PyahVR7YcjmVd9txM1xndn74Bo5xGG3EIQJ5CPXl
  O7VqA8H_YDTWICdpoUWJbJNKI1wniEwhO",
  "tag": "Q68sYFCFFYH6CGXUbPcU0g",
  "aad": "cGF1bCBhdHJlaWRlcw",
  "recipients": [
    {
      "encrypted_key": "hSi_NAlaas0QarPbpESlBXuE9d204faW",
      "header": {
        "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:gnW5wb1
        7yYOST5_wEv87Y6Cf_bqF7dV5b0v_8Lxsrko",
        "alg": "ECDH-ES+A128KW",
        "epk": {
          "kty": "EC",
          "crv": "P-256",
          "x": "41mLA3QKwfhO9yWbPeMV6Xw35Vwpn1di6deLdK0kGjc",
          "y": "SzVzu3IWH6YaPA9DjgKh81jDcRvhcmRgpP9S_qEechU"
        }
      }
    },
    {
      "encrypted_key": "2WJXQE3eKLITL7m61gz4MXA37bE8QfPHjwnt0Kgq3u8",
      "header": {
        "alg": "HPKE-P256-SHA256-A128GCM",
        "enc": "A128GCM",
        "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:1x34RWo
        fdglrdlAhqUJotlSnknAc0pcsarZtZPADNxk",
        "psk_id": "our-pre-shared-key-id",
        "auth_kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:1x
        34RWofdglrdlAhqUJotlSnknAc0pcsarZtZPADNxk",
        "ek": "BLRK__E3XUC75sGRAo8de-wDasg_IDNcmmC-Lfnvk1S-uJ00fccdf
        TKKXgDeo4cGGYviPYdq7xhEWbAA4VpIxVg"
      }
    }
  ]
}
]]></sourcecode>
          <t>The decoded protected header is:</t>
          <sourcecode type="text"><![CDATA[
{
  "enc": "A128GCM"
}
]]></sourcecode>
          <t>The decrypted plaintext is:</t>
          <sourcecode type="text"><![CDATA[
⌛ My lungs taste the air of Time Blown past falling sands ⌛
]]></sourcecode>
          <t>The decoded aad is:</t>
          <sourcecode type="text"><![CDATA[
paul atreides
]]></sourcecode>
        </section>
      </section>
    </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 feedback.</t>
    </section>
    <section numbered="false" anchor="document-history">
      <name>Document History</name>
      <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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
AJWmxWEAAA==

-->

</rfc>
