hpke-http 4.0.1

HPKE engine for bounded HTTP requests and checked response records
Documentation
{
  "case": "two-data-post-finite-and-sse",
  "compressed_request": {
    "clear_body_byte": 97,
    "clear_body_size": 4096,
    "enc": "358072d6365880d1aeea329adf9121383851ed21a28e3b75e965d0d2cd166254",
    "envelope": "48485251030f09002000010003000000006b49d2017072696d6172792d323032362d303974656e616e742d3432358072d6365880d1aeea329adf9121383851ed21a28e3b75e965d0d2cd1662540000007152cb7f7184c2176a53e14239c874f35305b4dfe14e8a77a3ea92052141e651faca9b5d548a10783bb8711e0211d89697bcbdb343143242ba1f9bcf4ba4be41a49565ea9575f302cd8de9f6ad0eed53d92a03beb1ab3955b4ab1cc7cd432fb7b02a33b20909431c3f746736e7cae222447e000000285936be360df77e9fe629f3eff261cb67d1a34364538126eb6ce6709b206481338ef7554f8497616c000000117c8f7c09a5185cae26b9cc96b7496a4740",
    "ephemeral_private_key": "202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f",
    "head": {
      "authority": "api.example.test",
      "headers": [
        [
          "content-type",
          "application/octet-stream"
        ],
        [
          "content-length",
          "4096"
        ]
      ],
      "method": "POST",
      "path": "/v3/compressed"
    },
    "header": "48485251030f09002000010003000000006b49d2017072696d6172792d323032362d303974656e616e742d3432",
    "issued_at_unix_s": 1800000001,
    "records": [
      {
        "aad": "68706b652d687474702f332072657175657374207265636f72640048485251030f09002000010003000000006b49d2017072696d6172792d323032362d303974656e616e742d3432000000000000000000000071",
        "frame": "0000007152cb7f7184c2176a53e14239c874f35305b4dfe14e8a77a3ea92052141e651faca9b5d548a10783bb8711e0211d89697bcbdb343143242ba1f9bcf4ba4be41a49565ea9575f302cd8de9f6ad0eed53d92a03beb1ab3955b4ab1cc7cd432fb7b02a33b20909431c3f746736e7cae222447e",
        "nonce": "3e0764a9c0220fde5895e92b",
        "plaintext": "0104504f5354106170692e6578616d706c652e746573740e2f76332f636f6d707265737365643a0c636f6e74656e742d74797065186170706c69636174696f6e2f6f637465742d73747265616d0e636f6e74656e742d6c656e6774680434303936",
        "sequence": 0
      },
      {
        "aad": "68706b652d687474702f332072657175657374207265636f72640048485251030f09002000010003000000006b49d2017072696d6172792d323032362d303974656e616e742d3432000000000000000100000028",
        "frame": "000000285936be360df77e9fe629f3eff261cb67d1a34364538126eb6ce6709b206481338ef7554f8497616c",
        "nonce": "3e0764a9c0220fde5895e92a",
        "plaintext": "020128b52ffd04484d00001061610100fbf7011603162c89",
        "sequence": 1
      },
      {
        "aad": "68706b652d687474702f332072657175657374207265636f72640048485251030f09002000010003000000006b49d2017072696d6172792d323032362d303974656e616e742d3432000000000000000200000011",
        "frame": "000000117c8f7c09a5185cae26b9cc96b7496a4740",
        "nonce": "3e0764a9c0220fde5895e929",
        "plaintext": "03",
        "sequence": 2
      }
    ],
    "request_base_nonce": "3e0764a9c0220fde5895e92b",
    "request_key": "2a38c38033f5ee71d3d1e3dc5120ed65d0ff76ce902333477ce7d232983a797a",
    "zstd_frame": "28b52ffd04484d00001061610100fbf7011603162c89"
  },
  "ephemeral_private_key": "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f",
  "generator": "independent-python-cryptography/3",
  "intermediates": {
    "dh": "6d54cc9c397e31691401110f58da1e182a635d7e44c21dc2d7be93624652ab15",
    "enc": "8f40c5adb68f25624ae5b214ea767a6ec94d829d3d7b5e1ad1ba6f3e2138285f",
    "exporter_secret": "a9f828b724ccf0e6c5f21d47a2daa432dc3ca8c65f38406dcf0d2c8c63ab58ce",
    "finite_response": {
      "base_nonce": "c6b8a58ee8d597d2ea6efae9",
      "key": "73b8d130ebbd828bfba479ab1239967fa3a02dfb3e63ec0624f84df30a004959",
      "prefix": "4848525003606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f",
      "records": [
        {
          "aad": "68706b652d687474702f3320726573706f6e7365207265636f7264004848525003606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f000000000000000000000042",
          "ciphertext": "fe220df7245afea45acf6a05e95199ca9436a1f4acdd236bc29160969e09d3ca08a94443976152a093f80367497fe5a6f394155af68fb4776dc1ac5e6480840fc0fd",
          "frame": "00000042fe220df7245afea45acf6a05e95199ca9436a1f4acdd236bc29160969e09d3ca08a94443976152a093f80367497fe5a6f394155af68fb4776dc1ac5e6480840fc0fd",
          "nonce": "c6b8a58ee8d597d2ea6efae9",
          "plaintext": "0100c90c636f6e74656e742d74797065106170706c69636174696f6e2f6a736f6e08782d726573756c740763726561746564",
          "sequence": 0
        },
        {
          "aad": "68706b652d687474702f3320726573706f6e7365207265636f7264004848525003606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f000000000000000100000021",
          "ciphertext": "20b48e99c5ec6571f84971737f94a3e928b3256395ae72ab4903de6de8373d2e65",
          "frame": "0000002120b48e99c5ec6571f84971737f94a3e928b3256395ae72ab4903de6de8373d2e65",
          "nonce": "c6b8a58ee8d597d2ea6efae8",
          "plaintext": "02007b226964223a226974656d2d31227d",
          "sequence": 1
        },
        {
          "aad": "68706b652d687474702f3320726573706f6e7365207265636f7264004848525003606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f000000000000000200000011",
          "ciphertext": "5fec4554775c35e2d7e3a1d17e5c233f8f",
          "frame": "000000115fec4554775c35e2d7e3a1d17e5c233f8f",
          "nonce": "c6b8a58ee8d597d2ea6efaeb",
          "plaintext": "03",
          "sequence": 2
        }
      ]
    },
    "header": "48485251030f09002000010003000000006b49d2007072696d6172792d323032362d303974656e616e742d3432",
    "replay_id": "c56154ac5c57b67a3564d6d9f0b620f2efddd1f96e86184d3b88b02a29e37e87",
    "request_base_nonce": "94a2978fb1145b860b72c904",
    "request_key": "8f176c76099817a3327af64b3c315cc08cc6a8d5d49c92ab3c10936c1b33d36f",
    "request_records": [
      {
        "aad": "68706b652d687474702f332072657175657374207265636f72640048485251030f09002000010003000000006b49d2007072696d6172792d323032362d303974656e616e742d3432000000000000000000000078",
        "ciphertext": "8ceb42cad7ce8f302b1dfcde0b6c887e37e942fe26a93488b4b7c5e43a78f28e9640c59502b5ddfb3ee6a3c0c292e52304a2088d1231a0af7af624cde6e0bf4917825dd908c2db820b147c3708127f3a2ce09aba5e5c8e0cfcde6f23594fb284c24294e0fd3b4f5af60edaf10b0b8e92d21d9e755d2ddae4",
        "frame": "000000788ceb42cad7ce8f302b1dfcde0b6c887e37e942fe26a93488b4b7c5e43a78f28e9640c59502b5ddfb3ee6a3c0c292e52304a2088d1231a0af7af624cde6e0bf4917825dd908c2db820b147c3708127f3a2ce09aba5e5c8e0cfcde6f23594fb284c24294e0fd3b4f5af60edaf10b0b8e92d21d9e755d2ddae4",
        "nonce": "94a2978fb1145b860b72c904",
        "plaintext": "0104504f5354106170692e6578616d706c652e74657374112f76332f6974656d733f6c696d69743d323e0c636f6e74656e742d74797065106170706c69636174696f6e2f6a736f6e06782d7465737406737461626c650e636f6e74656e742d6c656e677468023134",
        "sequence": 0
      },
      {
        "aad": "68706b652d687474702f332072657175657374207265636f72640048485251030f09002000010003000000006b49d2007072696d6172792d323032362d303974656e616e742d343200000000000000010000001a",
        "ciphertext": "41741e23dbb46808d8546496c8800e3e466bccf6237f25fdb6d3",
        "frame": "0000001a41741e23dbb46808d8546496c8800e3e466bccf6237f25fdb6d3",
        "nonce": "94a2978fb1145b860b72c905",
        "plaintext": "02007b226e616d65223a",
        "sequence": 1
      },
      {
        "aad": "68706b652d687474702f332072657175657374207265636f72640048485251030f09002000010003000000006b49d2007072696d6172792d323032362d303974656e616e742d3432000000000000000200000018",
        "ciphertext": "8fbfa9edb5ee29dd47dafeaf52892d7d81c07626c7cafa87",
        "frame": "000000188fbfa9edb5ee29dd47dafeaf52892d7d81c07626c7cafa87",
        "nonce": "94a2978fb1145b860b72c906",
        "plaintext": "020022416461227d",
        "sequence": 2
      },
      {
        "aad": "68706b652d687474702f332072657175657374207265636f72640048485251030f09002000010003000000006b49d2007072696d6172792d323032362d303974656e616e742d3432000000000000000300000011",
        "ciphertext": "fc416b66bc1cb9d99b86490c2113eeb9b5",
        "frame": "00000011fc416b66bc1cb9d99b86490c2113eeb9b5",
        "nonce": "94a2978fb1145b860b72c907",
        "plaintext": "03",
        "sequence": 3
      }
    ],
    "response_secret": "0b77200c75d619867f458f3508f5ae7651fe0a99f923c6a749e7bf0e7972bb6b",
    "shared_secret": "c8e2254df7338f28e0865a3c8584d6df602faaefcdb0e8407f209653797f83cd",
    "sse_response": {
      "base_nonce": "5fa3859e1425596388d75afa",
      "key": "78e5ceffd5e7000c20fddb154ebc44e296c6ca0ae0e6d73768544bd9cf7af90e",
      "prefix": "4848525003808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f",
      "records": [
        {
          "aad": "68706b652d687474702f3320726573706f6e7365207265636f7264004848525003808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f000000000000000000000041",
          "ciphertext": "bc22421f8913f13fe84e8bc692a415c6ff258f16eebf0a6442df3222533182cca3381e03fa988b8d78bbdd2512ce4562e5a4ae63425fff21627aa5e9fb31b96988",
          "frame": "00000041bc22421f8913f13fe84e8bc692a415c6ff258f16eebf0a6442df3222533182cca3381e03fa988b8d78bbdd2512ce4562e5a4ae63425fff21627aa5e9fb31b96988",
          "nonce": "5fa3859e1425596388d75afa",
          "plaintext": "0100c80c636f6e74656e742d7479706520746578742f6576656e742d73747265616d3b20636861727365743d7574662d38",
          "sequence": 0
        },
        {
          "aad": "68706b652d687474702f3320726573706f6e7365207265636f7264004848525003808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f00000000000000010000001b",
          "ciphertext": "ef71567f27ededf4628b9106cfdfe3f4804ed54c2a3d9a076f047f",
          "frame": "0000001bef71567f27ededf4628b9106cfdfe3f4804ed54c2a3d9a076f047f",
          "nonce": "5fa3859e1425596388d75afb",
          "plaintext": "02003a2072656164790a0a",
          "sequence": 1
        },
        {
          "aad": "68706b652d687474702f3320726573706f6e7365207265636f7264004848525003808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f00000000000000020000001d",
          "ciphertext": "aa8c4e343f2f608d231c2c6f7b8592e01753494e7565d94781402b92d3",
          "frame": "0000001daa8c4e343f2f608d231c2c6f7b8592e01753494e7565d94781402b92d3",
          "nonce": "5fa3859e1425596388d75af8",
          "plaintext": "0200646174613a2074776f0a0a",
          "sequence": 2
        },
        {
          "aad": "68706b652d687474702f3320726573706f6e7365207265636f7264004848525003808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f000000000000000300000011",
          "ciphertext": "12fc91b87757a98e2c2f4f2bcc7e2e318d",
          "frame": "0000001112fc91b87757a98e2c2f4f2bcc7e2e318d",
          "nonce": "5fa3859e1425596388d75af9",
          "plaintext": "03",
          "sequence": 3
        }
      ]
    }
  },
  "issued_at_unix_s": 1800000000,
  "protocol": "hpke-http/3",
  "psk": "612033322d62797465206d696e696d756d20746573742063726564656e7469616c21",
  "psk_id": "74656e616e742d3432",
  "recipient_key_id": "7072696d6172792d323032362d3039",
  "recipient_private_key": "404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f",
  "recipient_public_key": "79a631eede1bf9c98f12032cdeadd0e7a079398fc786b88cc846ec89af85a51a",
  "request": {
    "authority": "api.example.test",
    "body": "7b226e616d65223a22416461227d",
    "headers": [
      [
        "content-type",
        "application/json"
      ],
      [
        "x-test",
        "stable"
      ],
      [
        "content-length",
        "14"
      ]
    ],
    "method": "POST",
    "path": "/v3/items?limit=2"
  },
  "request_envelope": "48485251030f09002000010003000000006b49d2007072696d6172792d323032362d303974656e616e742d34328f40c5adb68f25624ae5b214ea767a6ec94d829d3d7b5e1ad1ba6f3e2138285f000000788ceb42cad7ce8f302b1dfcde0b6c887e37e942fe26a93488b4b7c5e43a78f28e9640c59502b5ddfb3ee6a3c0c292e52304a2088d1231a0af7af624cde6e0bf4917825dd908c2db820b147c3708127f3a2ce09aba5e5c8e0cfcde6f23594fb284c24294e0fd3b4f5af60edaf10b0b8e92d21d9e755d2ddae40000001a41741e23dbb46808d8546496c8800e3e466bccf6237f25fdb6d3000000188fbfa9edb5ee29dd47dafeaf52892d7d81c07626c7cafa8700000011fc416b66bc1cb9d99b86490c2113eeb9b5",
  "response": {
    "body": "7b226964223a226974656d2d31227d",
    "headers": [
      [
        "content-type",
        "application/json"
      ],
      [
        "x-result",
        "created"
      ]
    ],
    "status": 201
  },
  "response_envelope": "4848525003606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f00000042fe220df7245afea45acf6a05e95199ca9436a1f4acdd236bc29160969e09d3ca08a94443976152a093f80367497fe5a6f394155af68fb4776dc1ac5e6480840fc0fd0000002120b48e99c5ec6571f84971737f94a3e928b3256395ae72ab4903de6de8373d2e65000000115fec4554775c35e2d7e3a1d17e5c233f8f",
  "response_nonce": "606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f",
  "schema": "hpke-http-protocol-corpus/3",
  "sse_response": {
    "blocks": [
      "3a2072656164790a0a",
      "646174613a2074776f0a0a"
    ],
    "headers": [
      [
        "content-type",
        "text/event-stream; charset=utf-8"
      ]
    ],
    "status": 200
  },
  "sse_response_envelope": "4848525003808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f00000041bc22421f8913f13fe84e8bc692a415c6ff258f16eebf0a6442df3222533182cca3381e03fa988b8d78bbdd2512ce4562e5a4ae63425fff21627aa5e9fb31b969880000001bef71567f27ededf4628b9106cfdfe3f4804ed54c2a3d9a076f047f0000001daa8c4e343f2f608d231c2c6f7b8592e01753494e7565d94781402b92d30000001112fc91b87757a98e2c2f4f2bcc7e2e318d",
  "sse_response_nonce": "808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f",
  "verification": "Independent Python cryptography derives HPKE keys and checks every request and response record."
}