<?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.5 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-steele-jose-cose-hpke-cookbook-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.4 -->
  <front>
    <title>JOSE-COSE HPKE Cookbook</title>
    <seriesInfo name="Internet-Draft" value="draft-steele-jose-cose-hpke-cookbook-00"/>
    <author fullname="Orie Steele">
      <organization>Transmute</organization>
      <address>
        <email>orie@transmute.industries</email>
      </address>
    </author>
    <date year="2024" month="March" day="02"/>
    <area>Security</area>
    <workgroup>Javascript Object Signing and Encryption</workgroup>
    <keyword>JOSE</keyword>
    <keyword>COSE</keyword>
    <keyword>HPKE</keyword>
    <abstract>
      <?line 42?>

<t>This document contains a set of examples using JSON Object Signing and Encryption (JOSE), CBOR Object Signing and Encryption (COSE) and Hybrid Public Key Encryption (HPKE) to protect data.
These examples are meant to coverage the edge cases of both JOSE and COSE, including different structures for single and multiple recipients, external additional authenticated data, and key derivation function (KDF) context binding.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://OR13.github.io/draft-steele-jose-cose-hpke-cookbook/draft-steele-jose-cose-hpke-cookbook.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-steele-jose-cose-hpke-cookbook/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Javascript Object Signing and Encryption 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/OR13/draft-steele-jose-cose-hpke-cookbook"/>.</t>
    </note>
  </front>
  <middle>
    <?line 47?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document is inspired by Examples of Protecting Content Using JSON Object Signing and Encryption (JOSE) <xref target="RFC7520"/>.</t>
      <t>JOSE support for HPKE is described in <xref target="I-D.draft-rha-jose-hpke-encrypt"/>.</t>
      <t>COSE support for HPKE is described in <xref target="I-D.draft-ietf-cose-hpke"/>.</t>
      <t>Both drafts are still work in progress.</t>
      <t>The current set of examples are incomplete.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</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?>

<t>The term "JSON Web Key (JWK)" is defined in <xref target="RFC7517"/>.</t>
      <t>The term "COSE Key" is defined in <xref target="RFC9052"/>.</t>
      <t>The terms "JSON Web Encryption (JWE)", "Direct Key Agreement", "Key Agreement with Key Wrapping",  "JWE Compact Serialization" and "General JWE JSON Serialization" are defined in <xref target="RFC7516"/>.</t>
      <t>The terms "Direct Encryption", and "Key Agreement with Key Wrap" are defined in <xref target="RFC9052"/>.</t>
      <t>The term "encapsulated key" is defined in <xref target="RFC9180"/>.</t>
      <t>This document does not define any new terms for JOSE or COSE.</t>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>Note that JSON (JavaScript Object Notation) and EDN (Extended Diagnostic Notation) may not exactly match the bytes provided for each example.</t>
      <t>The hexadecimal encoded binary messages are the source of truth, the JSON and EDN examples are for readability.</t>
      <t>NOTE: '' line wrapping per <xref target="RFC8792"/> in HTTP examples.</t>
      <section anchor="private-key">
        <name>Private Key</name>
        <t>This section provides private key representations that are used throught the following sections.</t>
        <t>Public key representations for these keys are left as an excercise for the reader.</t>
        <t>The keys in this section are restricted to a single algorithm in both JOSE and COSE: <tt>HPKE-Base-P256-SHA256-AES128GCM</tt>.</t>
        <t>Additional algorithms and their private key representations may be provided in future versions of this draft.</t>
        <section anchor="applicationjwkjson">
          <name>application/jwk+json</name>
          <t>This section provides a JSON Web Key for <tt>HPKE-Base-P256-SHA256-AES128GCM</tt>.</t>
          <figure anchor="private-key-jwk-hex">
            <name>JSON Web Key Bytes</name>
            <artwork align="left"><![CDATA[
7b0a2020226b6964223a202275726e3a696574663a706172616d733a6f617574683a6a\
776b2d7468756d627072696e743a7368612d3235363a374a76784b756a755770596c4b\
49455f75726479543749457165345030635a33476d3163364554526c5130222c0a2020\
22616c67223a202248504b452d426173652d503235362d5348413235362d4145533132\
3847434d222c0a2020226b7479223a20224543222c0a202022637276223a2022502d32\
3536222c0a20202278223a2022646f37595f507a6f6c355f47326650686f50676f4f6f\
306b6b34632d386745386952345958715449596d34222c0a20202279223a2022616b6a\
4d396b56327a317057364b544c657148426b6d6d355332496d5f4f794f37526a527267\
6d66316455222c0a20202264223a20224b583649304a7554664430467231703243646c\
5239636f6e324851737759344673716a33437a533261704d220a7d
]]></artwork>
          </figure>
          <figure anchor="private-key-jwk">
            <name>JSON Web Key</name>
            <sourcecode type="json"><![CDATA[
{
  "kid": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:7JvxKujuWpYlKIE_urdyT7IEqe4P0cZ3Gm1c6ETRlQ0",
  "alg": "HPKE-Base-P256-SHA256-AES128GCM",
  "kty": "EC",
  "crv": "P-256",
  "x": "do7Y_Pzol5_G2fPhoPgoOo0kk4c-8gE8iR4YXqTIYm4",
  "y": "akjM9kV2z1pW6KTLeqHBkmm5S2Im_OyO7RjRrgmf1dU",
  "d": "KX6I0JuTfD0Fr1p2CdlR9con2HQswY4Fsqj3CzS2apM"
}
]]></sourcecode>
          </figure>
        </section>
        <section anchor="applicationcose-key">
          <name>application/cose-key</name>
          <t>This section provides a COSE Key for <tt>HPKE-Base-P256-SHA256-AES128GCM</tt>.</t>
          <figure anchor="private-key-cose-key-bytes">
            <name>COSE Key Bytes</name>
            <artwork align="left"><![CDATA[
a702784d75726e3a696574663a706172616d733a6f617574683a636b743a7368612d3\
235363a4b565f3339384668506158773761514d55595f4e5a497a7364416a7341544b\
7a73765a6f333058424e514d03182301022001215820768ed8fcfce8979fc6d9f3e1a\
0f8283a8d2493873ef2013c891e185ea4c8626e2258206a48ccf64576cf5a56e8a4cb\
7aa1c19269b94b6226fcec8eed18d1ae099fd5d5235820297e88d09b937c3d05af5a7\
609d951f5ca27d8742cc18e05b2a8f70b34b66a93
]]></artwork>
          </figure>
          <figure anchor="private-key-cose-key-diag">
            <name>COSE Key Diagnostic</name>
            <sourcecode type="cbor-diag"><![CDATA[
{
  / kid / 2: "urn:ietf:params:oauth:ckt:sha-256:KV_398FhPaXw7aQMUY_NZIzsdAjsATKzsvZo30XBNQM",
  / alg: ES256 /  3: 35,
  / kty: EC2   /  1: 2,
  / crv: P-256 / -1: 1,
  / x / -2: h'768ed8fcfce8979fc6d9f3e1a0f8283a8d2493873ef2013c891e185ea4c8626e',
  / y / -3: h'6a48ccf64576cf5a56e8a4cb7aa1c19269b94b6226fcec8eed18d1ae099fd5d5',
  / d / -4: h'297e88d09b937c3d05af5a7609d951f5ca27d8742cc18e05b2a8f70b34b66a93'
}
]]></sourcecode>
          </figure>
        </section>
      </section>
      <section anchor="direct-encryption">
        <name>Direct Encryption</name>
        <t>JOSE and COSE HPKE both support a "Direct Encryption Mode", where HPKE encrypt a plaintext message and optional additional authenticated data directly to a recipient public key.</t>
        <t>Note that HPKE Direct Encryption is not exactly the same as "Direct Encryption" as described in <xref target="RFC7516"/> and <xref target="RFC9052"/>.</t>
        <t>In this section we provide direct encryption examples to the private keys in the previous section.</t>
        <figure anchor="direct-encryption-message">
          <name>Direct Encryption Message</name>
          <artwork align="left"><![CDATA[
⌛ My lungs taste the air of Time Blown past falling sands ⌛
]]></artwork>
        </figure>
        <figure anchor="direct-encryption-addition-authenticated-data">
          <name>Direct Encryption AAD</name>
          <artwork align="left"><![CDATA[
✨ It’s a dangerous business, Frodo, going out your door. ✨
]]></artwork>
        </figure>
        <section anchor="applicationjosejson">
          <name>application/jose+json</name>
          <figure anchor="direct-ciphertext-jose-bytes">
            <name>JOSE Direct Encryption Bytes</name>
            <artwork align="left"><![CDATA[
7b0a20202270726f746563746564223a202265794a68624763694f694a6b615849694c\
434a6c626d4d694f694a49554574464c554a6863325574554449314e69315453454579\
4e545974515556544d54493452304e4e496977695a584272496a7037496d7430655349\
36496b564c496977695a5773694f694a43526d466a593073795546687859586c615130\
3078526b68366245307a4d6a46584e3268334d6a56485557677751544974616e426163\
553479516e564654575253595746464d7a5a7856306b315a5446766346687161474e4f\
56575234643164435a334e5a596b4e7056456f7a65453579537a5169665830222c0a20\
2022616164223a20223470796f49456c30346f435a6379426849475268626d646c636d\
39316379426964584e70626d567a63797767526e4a765a473873494764766157356e49\
47393164434235623356794947527662334975494f4b637141222c0a20202263697068\
657274657874223a20226449326b4b2d6634787634446d45647848706e4f474130732d\
695f4338735059444d3674664a456f6a6c6b5351355865586f41755151566d587a6479\
754c6255476a69416a6967744e3455414a556b556f2d55673430695771435632544662\
326e586579566436456167220a7d
]]></artwork>
          </figure>
          <figure anchor="direct-ciphertext-json">
            <name>JOSE Direct Encryption</name>
            <sourcecode type="json"><![CDATA[
{
  "protected": "eyJhbGciOiJkaXIiLCJlbmMiOiJIUEtFLUJhc2UtUDI1Ni1TSEEyNTYtQUVTMTI4R0NNIiwiZXBrIjp7Imt0eSI6IkVLIiwiZWsiOiJCRmFjY0syUFhxYXlaQ00xRkh6bE0zMjFXN2h3MjVHUWgwQTItanBacU4yQnVFTWRSYWFFMzZxV0k1ZTFvcFhqaGNOVWR4d1dCZ3NZYkNpVEozeE5ySzQifX0",
  "aad": "4pyoIEl04oCZcyBhIGRhbmdlcm91cyBidXNpbmVzcywgRnJvZG8sIGdvaW5nIG91dCB5b3VyIGRvb3IuIOKcqA",
  "ciphertext": "dI2kK-f4xv4DmEdxHpnOGA0s-i_C8sPYDM6tfJEojlkSQ5XeXoAuQQVmXzdyuLbUGjiAjigtN4UAJUkUo-Ug40iWqCV2TFb2nXeyVd6Eag"
}
]]></sourcecode>
          </figure>
          <figure anchor="direct-ciphertext-json-decoded-protected-header">
            <name>JOSE Direct Encryption Decoded Protected Header</name>
            <sourcecode type="json"><![CDATA[
{
  "alg": "dir",
  "enc": "HPKE-Base-P256-SHA256-AES128GCM",
  "epk": {
    "kty": "EK",
    "ek": "BFaccK2PXqayZCM1FHzlM321W7hw25GQh0A2-jpZqN2BuEMdRaaE36qWI5e1opXjhcNUdxwWBgsYbCiTJ3xNrK4"
  }
}
]]></sourcecode>
          </figure>
        </section>
        <section anchor="applicationcose">
          <name>application/cose</name>
          <figure anchor="direct-ciphertext-cose-bytes">
            <name>COSE Direct Encryption Bytes</name>
            <artwork align="left"><![CDATA[
d08344a1011823a204784d75726e3a696574663a706172616d733a6f617574683a636\
b743a7368612d3235363a4b565f3339384668506158773761514d55595f4e5a497a73\
64416a7341544b7a73765a6f333058424e514d235841048024424acb8a77edfbc461b\
c4947e5d3ac3e5d31bc5f8a9fe71d0e4ef79f4b27943418a3817a14f6de06b43b98ce\
ac551d4cf47e888293a271a9117db7abf19a584f693181d2479aca080d3e71ce37624\
10665415cab2b831cac4fef97105cdec3b3a71de61019ceb0431d1637de54bab7f855\
fe8bae7bd9ba5cc12a20d458baf08f4cf861da4a831964745eceb97f3bbf
]]></artwork>
          </figure>
          <figure anchor="direct-ciphertext-cose-diag">
            <name>COSE Direct Encryption Diagnostic</name>
            <sourcecode type="cbor-diag"><![CDATA[
16([ / Single Recipient Encryption /
  h'a1011823', / Protected Header
  { / Unprotected Header /
    / kid / 4: "urn:ietf:params:oauth:ckt:sha-256:KV_398FhPaXw7aQMUY_NZIzsdAjsATKzsvZo30XBNQM",
    / ek / -4: h'048024424acb8a77edfbc461bc4947e5d3ac3e5d31bc5f8a9fe71d0e4ef79f4b27943418a3817a14f6de06b43b98ceac551d4cf47e888293a271a9117db7abf19a'
  },
  h'693181d2479aca080d3e71ce3762410665415cab2b831cac4fef97105cdec3b3a71de61019ceb0431d1637de54bab7f855fe8bae7bd9ba5cc12a20d458baf08f4cf861da4a831964745eceb97f3bbf'
])
]]></sourcecode>
          </figure>
          <t>Note that JOSE and COSE transport the encapsulated key "ek" differently.</t>
        </section>
      </section>
      <section anchor="key-encryption">
        <name>Key Encryption</name>
        <t>JOSE and COSE HPKE both support a "Key Encryption Mode", where HPKE encrypt a content encryption key to a recipient public key, and a plaintext message and optional additional authenticated with the content encryption key.</t>
        <t>Note that HPKE Key Encryption Mode is not exactly the same as "Key Agreement with Key Wrap" as described in <xref target="RFC7516"/> and <xref target="RFC9052"/>.</t>
        <t>In this section we provide direct encryption examples to the private keys in the previous section.</t>
        <figure anchor="key-encryption-message">
          <name>Key Encryption Message</name>
          <artwork align="left"><![CDATA[
⌛ My lungs taste the air of Time Blown past falling sands ⌛
]]></artwork>
        </figure>
        <figure anchor="key-encryption-addition-authenticated-data">
          <name>Key Encryption AAD</name>
          <artwork align="left"><![CDATA[
✨ It’s a dangerous business, Frodo, going out your door. ✨
]]></artwork>
        </figure>
        <section anchor="applicationjosejson-1">
          <name>application/jose+json</name>
          <figure anchor="wrap-ciphertext-jose-bytes">
            <name>JOSE Key Encryption Bytes</name>
            <artwork align="left"><![CDATA[
7b0a20202270726f746563746564223a202265794a6c626d4d694f694a424d5449345\
2304e4e496977695a584272496a7037496d743065534936496b564c496977695a5773\
694f694a43526b524862456f77533045774e3364305a454668543270445644557a564\
5314c546e4266595578504f4467794d30525954314d32533370525557396e63555256\
576a6832515768335355396e513035345a574d78545735575345563361556c4d4d6e7\
07963334a50526d786b5255746865453069665830222c0a202022656e637279707465\
645f6b6579223a202274774d563367697a4c7a5f74674455425831564b2d505a6a6b2\
d503737415845745442445a44444c423973222c0a2020226976223a20223178716256\
53586e6654524253675947222c0a20202263697068657274657874223a20225a5f546\
6517a684643355a2d394a2d4f6b41676632784535364d75584b5f6b69793569594935\
4a444e6c76474e794338534856754a7956346e5a6e7867396e624953525a7561477a7\
8594971355a745469614434222c0a202022746167223a202259696844336762695a69\
47624458662d5851434d7241222c0a202022616164223a20223470796f49456c30346\
f435a6379426849475268626d646c636d39316379426964584e70626d567a63797767\
526e4a765a473873494764766157356e4947393164434235623356794947527662334\
975494f4b637141220a7d
]]></artwork>
          </figure>
          <figure anchor="wrap-ciphertext-jose-json">
            <name>JOSE Key Encryption JSON</name>
            <sourcecode type="json"><![CDATA[
{
  "protected": "eyJlbmMiOiJBMTI4R0NNIiwiZXBrIjp7Imt0eSI6IkVLIiwiZWsiOiJCRkRHbEowS0EwN3d0ZEFhT2pDVDUzVE1LTnBfYUxPODgyM0RYT1M2S3pRUW9ncURVWjh2QWh3SU9nQ054ZWMxTW5WSEV3aUlMMnpyc3JPRmxkRUtheE0ifX0",
  "encrypted_key": "twMV3gizLz_tgDUBX1VK-PZjk-P77AXEtTBDZDDLB9s",
  "iv": "1xqbVSXnfTRBSgYG",
  "ciphertext": "Z_TfQzhFC5Z-9J-OkAgf2xE56MuXK_kiy5iYI5JDNlvGNyC8SHVuJyV4nZnxg9nbISRZuaGzxYIq5ZtTiaD4",
  "tag": "YihD3gbiZiGbDXf-XQCMrA",
  "aad": "4pyoIEl04oCZcyBhIGRhbmdlcm91cyBidXNpbmVzcywgRnJvZG8sIGdvaW5nIG91dCB5b3VyIGRvb3IuIOKcqA"
}
]]></sourcecode>
          </figure>
          <figure anchor="key-encryption-protected-header">
            <name>JOSE Key Encryption Decoded Protected Header</name>
            <sourcecode type="json"><![CDATA[
{
  "enc": "A128GCM",
  "epk": {
    "kty": "EK",
    "ek": "BFDGlJ0KA07wtdAaOjCT53TMKNp_aLO8823DXOS6KzQQogqDUZ8vAhwIOgCNxec1MnVHEwiIL2zrsrOFldEKaxM"
  }
}
]]></sourcecode>
          </figure>
          <t>Note that the ephemeral public key (epk) is present in the protected header due to there only being a single recipient for this message.</t>
        </section>
        <section anchor="applicationcose-1">
          <name>application/cose</name>
          <figure anchor="wrap-ciphertext-cose-bytes">
            <name>COSE Key Encryption Bytes</name>
            <artwork align="left"><![CDATA[
d8608443a10101a10550335552a987fd47dc85016ccc760bb541584fa0d7678a14400\
1cc48d1ff514545df9e0da6b696a8ed3bceb529b78ba86c26bef93767d07b0111a48e\
38dd79bfe9c351d6508ec2805b30ea16f6b46156e3ba9cffc11a39c311554970c7bda\
a40d4c1818344a1011823a204784d75726e3a696574663a706172616d733a6f617574\
683a636b743a7368612d3235363a4b565f3339384668506158773761514d55595f4e5\
a497a7364416a7341544b7a73765a6f333058424e514d235841044e733517b62d8cf9\
00d3d84606f8907bea0e3481c123359197782f0869b36c0efe13e76ae4740bcaf2f7a\
f1e03523efe1b98dc4b81a94d45d9dfea583ef14e0f582000871c2c5f6a8b73aab9cf\
df26953dc026036f00a08b61d903dd4a72e9c01229
]]></artwork>
          </figure>
          <figure anchor="wrap-ciphertext-cose-diag">
            <name>COSE Key Encryption Diagnostic</name>
            <sourcecode type="cbor-diag"><![CDATA[
96([ / Multiple Recipient Encrypted Message /
  h'a10101',  / Protected Header /
  {
    / IV / 5: h'335552a987fd47dc85016ccc760bb541'
  },
  / Ciphertext / h'a0d7678a144001cc48d1ff514545df9e0da6b696a8ed3bceb529b78ba86c26bef93767d07b0111a48e38dd79bfe9c351d6508ec2805b30ea16f6b46156e3ba9cffc11a39c311554970c7bdaa40d4c1',
  [ / Recipients /
    [ / Recipient 0 /
      h'a1011823',  / Recipient Protected Header /
      { / Recipient Unprotected Header /
        / kid /  4: "urn:ietf:params:oauth:ckt:sha-256:KV_398FhPaXw7aQMUY_NZIzsdAjsATKzsvZo30XBNQM",
        / ek  / -4: h'044e733517b62d8cf900d3d84606f8907bea0e3481c123359197782f0869b36c0efe13e76ae4740bcaf2f7af1e03523efe1b98dc4b81a94d45d9dfea583ef14e0f'
      },
      / encrypted key / h'00871c2c5f6a8b73aab9cfdf26953dc026036f00a08b61d903dd4a72e9c01229'
    ]
  ]
])
]]></sourcecode>
          </figure>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.draft-rha-jose-hpke-encrypt">
          <front>
            <title>Use of Hybrid Public-Key Encryption (HPKE) with Javascript Object Signing and Encryption (JOSE)</title>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Aritra Banerjee" initials="A." surname="Banerjee">
              <organization>Nokia</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Transmute</organization>
            </author>
            <author fullname="Michael B. Jones" initials="M. B." surname="Jones">
              <organization>independent</organization>
            </author>
            <date day="2" month="March" year="2024"/>
            <abstract>
              <t>   This specification defines Hybrid public-key encryption (HPKE) for
   use with Javascript Object Signing and Encryption (JOSE).  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 JOSE is provided by JOSE-native security mechanisms or by one
   of the authenticated variants of HPKE.

   This document defines the use of the HPKE with JOSE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rha-jose-hpke-encrypt-05"/>
        </reference>
        <reference anchor="I-D.draft-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>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8792">
          <front>
            <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8792"/>
          <seriesInfo name="DOI" value="10.17487/RFC8792"/>
        </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="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="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="RFC7520">
          <front>
            <title>Examples of Protecting Content Using JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="M. Miller" initials="M." surname="Miller"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This document contains a set of examples using JSON Object Signing and Encryption (JOSE) technology to protect data. These examples present a representative sampling of JSON Web Key (JWK) objects as well as various JSON Web Signature (JWS) and JSON Web Encryption (JWE) results given similar inputs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7520"/>
          <seriesInfo name="DOI" value="10.17487/RFC7520"/>
        </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>
      </references>
    </references>
    <?line 370?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
