)]}'
{
  "log": [
    {
      "commit": "b1f854d636c50fd93850a7e1e2fbe1931f2fd338",
      "tree": "e7be67e7ae57cc44ca2a45a8a8e18f92ec197264",
      "parents": [
        "cfe2ea97ac8fa0b2852cbb8dbdde1ecc83b4ca33",
        "78448b48c6e09461334f5b141c2afbe2126b4f79"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu May 07 17:00:58 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 17:00:58 2026 +0900"
      },
      "message": "Merge pull request #602 from h2o/kazuho/loganaden-patch-memory_failure_aes_gcm\n\n[fusion] add assertions to detect memory allocation failure, add doc-comments for each algorithm"
    },
    {
      "commit": "78448b48c6e09461334f5b141c2afbe2126b4f79",
      "tree": "e7be67e7ae57cc44ca2a45a8a8e18f92ec197264",
      "parents": [
        "817131c83f5aa8cb3e01631eafff21e58f836f88"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu May 07 16:45:10 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu May 07 16:45:10 2026 +0900"
      },
      "message": "add doc-comments to the algorithms exposed by lib/fusion.c\n"
    },
    {
      "commit": "817131c83f5aa8cb3e01631eafff21e58f836f88",
      "tree": "35f57facfc6c7bbc5400d08a3bad26dac803ef5b",
      "parents": [
        "371ca8c19ef925c4d74d3345363f10e5c62633b4"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu May 07 16:18:17 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu May 07 16:18:17 2026 +0900"
      },
      "message": "here also\n"
    },
    {
      "commit": "371ca8c19ef925c4d74d3345363f10e5c62633b4",
      "tree": "1860e901c2e4ca8e3683185dcbb5d421cf83b5e3",
      "parents": [
        "2d5934db0beff708cfc6f60b5694814eca5437c5"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu May 07 16:17:17 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu May 07 16:17:17 2026 +0900"
      },
      "message": "for the purpose of detecting misuse, follow the precedence of using assert in fusion\n"
    },
    {
      "commit": "2d5934db0beff708cfc6f60b5694814eca5437c5",
      "tree": "1582bc6cb41301d66e782c1ac0863176efb0ad08",
      "parents": [
        "e8ea612c4acd5990a5484b35d9d07e640537de89"
      ],
      "author": {
        "name": "Loganaden Velvindron",
        "email": "logan@cyberstorm.mu",
        "time": "Thu May 07 11:06:52 2026 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 11:06:52 2026 +0400"
      },
      "message": "abort() instead of returning in AES-GCM"
    },
    {
      "commit": "e8ea612c4acd5990a5484b35d9d07e640537de89",
      "tree": "6edd14628e63b836eb3ccc5ecea4ee6a29893fc5",
      "parents": [
        "cfe2ea97ac8fa0b2852cbb8dbdde1ecc83b4ca33"
      ],
      "author": {
        "name": "Loganaden Velvindron",
        "email": "logan@cyberstorm.mu",
        "time": "Thu May 07 07:11:22 2026 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 07:11:22 2026 +0400"
      },
      "message": "Check for memory allocation failure in AES-GCM"
    },
    {
      "commit": "cfe2ea97ac8fa0b2852cbb8dbdde1ecc83b4ca33",
      "tree": "429905d281475dd3c9ca2518e24d2bc5d0d19527",
      "parents": [
        "bfa67875982afc4c24f21e146cef4747fa189c2f",
        "8f00e1c11916d8ccbd01b6461a95d111e88a10fe"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu Apr 30 09:42:28 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 09:42:28 2026 +0900"
      },
      "message": "Merge pull request #600 from robguima/robguima/increase_max_sign_algos\n\nIncrease max number of signature algorithms to address Erland RC failure"
    },
    {
      "commit": "8f00e1c11916d8ccbd01b6461a95d111e88a10fe",
      "tree": "942eb0582332d64e42bf3b591cec0b1887e86281",
      "parents": [
        "703553c94048ba22987e8529590f4c060c0407f8"
      ],
      "author": {
        "name": "Roberto Guimaraes",
        "email": "rguimaraes@fastly.com",
        "time": "Mon Apr 20 14:29:39 2026 -0600"
      },
      "committer": {
        "name": "Roberto Guimaraes",
        "email": "rguimaraes@fastly.com",
        "time": "Mon Apr 20 14:29:39 2026 -0600"
      },
      "message": "latest Erland/OTP RC 29.0-rc3 sends 34 signature algorithms which go over the current maximum allowed of 16. So bump that to 64 via new macro and add a test.\n"
    },
    {
      "commit": "bfa67875982afc4c24f21e146cef4747fa189c2f",
      "tree": "03c8a2df2892eb34217289bf08b453e37b7caf4b",
      "parents": [
        "4e5e3572d3f86979c7f8c76c285c2e0e03bc2885",
        "a83ce982630efc962ba402f661a7baa2fd75961d"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 20 14:45:49 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 14:45:49 2026 +0900"
      },
      "message": "Merge pull request #596 from h2o/topic/fix-grease-ech-0rtt\n\nfix three client-side ECH bugs (grease 0-RTT, HRR/SH, NULL configs)"
    },
    {
      "commit": "a83ce982630efc962ba402f661a7baa2fd75961d",
      "tree": "a8a57d9cb786ed366b9a56f259a7969820da493a",
      "parents": [
        "e9028983426b731ceea50552d071a83ff2c09748"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 20 08:25:57 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 20 08:29:04 2026 +0900"
      },
      "message": "skip ECH grease when client.ech.configs has NULL base\n\nThe header documented that {NULL, 0} disables ECH, but the client-side\nimplementation took the grease branch whenever configs.len was zero --\nincluding the zero-initialized {NULL, 0} default. That forced grease on\nany handshake that supplied handshake_properties for unrelated reasons\n(e.g., QUIC additional extensions), even though the context\u0027s ECH setup\nwasn\u0027t meant to apply. Gate the grease branch on configs.base !\u003d NULL to\nmatch the documented API, and expand the comment in picotls.h to cover\nall three states explicitly.\n\nCo-Authored-By: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "e9028983426b731ceea50552d071a83ff2c09748",
      "tree": "a33faae30ca742e29ec26e24d7eac04c2dd7b121",
      "parents": [
        "61fd8f1ce41bed27de1b5018446a9993e3092af1"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 20 08:25:51 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 20 08:25:51 2026 +0900"
      },
      "message": "add test that {NULL, 0} ech.configs does not trigger grease\n\nObserves the ClientHello extensions seen by the server. With\nhandshake_properties passed and client.ech.configs left zero-initialized\n({NULL, 0}), the client must not send the ECH extension, matching the\nbehavior documented in picotls.h.\n\nCo-Authored-By: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "61fd8f1ce41bed27de1b5018446a9993e3092af1",
      "tree": "084c76ccdef12ab04bcc68b489be4021cad7ca7f",
      "parents": [
        "ba911a882b8a1027e1111bf8273b66d20e2e17d1"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 20 07:20:12 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 20 07:38:16 2026 +0900"
      },
      "message": "abort with illegal_parameter when SH rejects ECH after HRR accepted it\n\nPer RFC 9849 Section 6.1.5, if HelloRetryRequest confirms ECH\nacceptance, the ServerHello MUST also confirm it; otherwise the client\nterminates with an illegal_parameter alert. Previously, the client\nsilently demoted state from ACCEPTED back to OFFERED and fell back to\nthe outer ClientHello.\n\nCo-Authored-By: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "ba911a882b8a1027e1111bf8273b66d20e2e17d1",
      "tree": "596b0bdb79d678420f2b23031b3b155977a8a833",
      "parents": [
        "5957a9a89c019bf69e59e9361d6c206913b958af"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 20 07:30:15 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 20 07:38:16 2026 +0900"
      },
      "message": "add test for HRR-accept-SH-reject ECH abort path\n\nCovers the RFC 9849 §6.1.5 case: client offers ECH, HRR confirms\nacceptance, but the ServerHello\u0027s ECH confirmation is corrupted. The\nclient must abort with illegal_parameter rather than fall back to the\nouter ClientHello.\n\nCo-Authored-By: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "5957a9a89c019bf69e59e9361d6c206913b958af",
      "tree": "38898b458211fbab47bc90f3ad1df1f9f9c76194",
      "parents": [
        "0208e201e50c8595cda22de2100dfeb65c5014f7"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 20 07:05:09 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 20 07:38:16 2026 +0900"
      },
      "message": "collapse ech offered/offered_grease/accepted flags into a state enum\n\nThe three bit fields encoded only four reachable states. Replace them\nwith a single state enum (NONE/OFFERED/ACCEPTED/GREASE); GREASE is\nclient-only.\n\nCo-Authored-By: Claude Opus 4.7 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "4e5e3572d3f86979c7f8c76c285c2e0e03bc2885",
      "tree": "a95d032b4b8d92e05db6461b480f474cbaa31a25",
      "parents": [
        "b94160979a92a201898801b1c1630e1837817889",
        "f985d95565792f3b9d773ea5c0a79517b33e98d5"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Apr 18 14:26:52 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 18 14:26:52 2026 +0900"
      },
      "message": "Merge pull request #599 from dip-proto/aes-256-ctr-advertises-the-aes128-ctr-identifier\n\nmbedtls: AES-256-CTR misadvertises as AES128-CTR"
    },
    {
      "commit": "0208e201e50c8595cda22de2100dfeb65c5014f7",
      "tree": "a65df07a0c4223edb3b8a679b9318e87cafe320d",
      "parents": [
        "41a5e5e8343903352315043d98c86ff56fbb7124"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Apr 18 10:53:01 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Apr 18 10:53:01 2026 +0900"
      },
      "message": "replace get_test_ech_mode with direct ech.configs global\n\nExpose the ECH configs iovec as a test-wide global (analogous to ctx /\nctx_peer) and use the library\u0027s own convention: base \u003d\u003d NULL means no\nECH, len \u003d\u003d 0 means grease, len \u003e 0 means real ECH. This eliminates\nthe enum, sentinel cipher list, and translation function.\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "41a5e5e8343903352315043d98c86ff56fbb7124",
      "tree": "3d46936eeb55fad5cdc2c264df7fd3ea564ab756",
      "parents": [
        "df71e0797c001798040036bf148f41f314f7e053"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Apr 18 10:35:35 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Apr 18 10:35:35 2026 +0900"
      },
      "message": "replace test_client_ech_mode global with grease_ciphers sentinel\n\nInstead of a global variable to signal grease mode, use a distinct\nciphers pointer that get_test_ech_mode recognizes. This encodes the\nmode into ctx-\u003eech.client.ciphers which is already being manipulated\nby the test harness.\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "df71e0797c001798040036bf148f41f314f7e053",
      "tree": "b0af7404f6bc71983f54dbab2ceebe82fd6ab019",
      "parents": [
        "97ae9fbf63bf22c682b6f1483bcc02e2f5ef8bb0"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Apr 18 10:28:31 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Apr 18 10:28:31 2026 +0900"
      },
      "message": "deduplicate subtest lines in test_grease_resumption\n\nReuse test_resumption(0, 0) instead of repeating the three subtest\ncalls.\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "97ae9fbf63bf22c682b6f1483bcc02e2f5ef8bb0",
      "tree": "cca9f570ffa4c9a67af8fae619b1203a6d5638b7",
      "parents": [
        "5ea6379319441bfaf1c8505ccc4f14f3a26b540f"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 18:51:57 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 18:51:57 2026 +0900"
      },
      "message": "cleanup: revert unnecessary scoping, fix EE handler coding pattern\n\n- Revert block-scoped random_secret back to function scope\n- Remove early break in ECH EE handler; use if/else instead so the\n  case follows the standard src \u003d end pattern\n- Deduplicate client_decode_ech_config_list call between grease and\n  real ECH paths\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "5ea6379319441bfaf1c8505ccc4f14f3a26b540f",
      "tree": "6250406e54b6bc27ae5343bd8975dd5a4b14e85e",
      "parents": [
        "55ecc925e6b2110f86aab85b792939e1bebbfa13"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 18:43:55 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 18:43:55 2026 +0900"
      },
      "message": "extract update_ch_hash_and_binder to deduplicate binder computation\n\nThe transcript hash update and PSK binder computation pattern was\nduplicated between the inner CH path and the grease ECH path. Extract\nit into a shared helper function.\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "55ecc925e6b2110f86aab85b792939e1bebbfa13",
      "tree": "2ba6317808c8ff68cf568165b46c4334554bb946",
      "parents": [
        "71fb2fcc62260d6b0b40abb4d46c58bc39087707"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 18:37:12 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 18:37:12 2026 +0900"
      },
      "message": "refactor grease ECH to share code path with real ECH\n\nInstead of building a separate grease ECH extension, reuse the real ECH\nmachinery (inner/outer CH split) then discard the inner state and adopt\nthe outer. This removes the duplicate `build_grease_ech_extension`\nfunction and ensures the PSK binder is correctly computed over the outer\nCH that the server actually sees.\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "f985d95565792f3b9d773ea5c0a79517b33e98d5",
      "tree": "a95d032b4b8d92e05db6461b480f474cbaa31a25",
      "parents": [
        "b94160979a92a201898801b1c1630e1837817889"
      ],
      "author": {
        "name": "Frank Denis",
        "email": "github@pureftpd.org",
        "time": "Fri Apr 17 10:03:44 2026 +0200"
      },
      "committer": {
        "name": "Frank Denis",
        "email": "github@pureftpd.org",
        "time": "Fri Apr 17 10:03:44 2026 +0200"
      },
      "message": "mbedtls: AES-256-CTR misadvertises as AES128-CTR\n\n`ptls_mbedtls_aes256ctr` is the AES-256-CTR algorithm descriptor,\nbut its public `name` field is set to `\"AES128-CTR\"`.\n"
    },
    {
      "commit": "71fb2fcc62260d6b0b40abb4d46c58bc39087707",
      "tree": "430f86a7de5c98d61a1974ec08be0660d38e6bd0",
      "parents": [
        "955b0e09f4d1c4058944028aa65e23284321995d"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 15:50:49 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 15:50:49 2026 +0900"
      },
      "message": "fix grease ECH 0-RTT resumption\n\nCo-authored-by: OpenAI Codex \u003ccodex@openai.com\u003e\n"
    },
    {
      "commit": "955b0e09f4d1c4058944028aa65e23284321995d",
      "tree": "ba0f6977c301e10da0aa68747ee85cd868bacd3f",
      "parents": [
        "b94160979a92a201898801b1c1630e1837817889"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 15:50:41 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 15:50:41 2026 +0900"
      },
      "message": "add grease ECH resumption regression test\n\nCo-authored-by: OpenAI Codex \u003ccodex@openai.com\u003e\n"
    },
    {
      "commit": "b94160979a92a201898801b1c1630e1837817889",
      "tree": "b483ddcda4b477d400bee632ad43fb7a87ce3f59",
      "parents": [
        "8bc9f3609059a6e4bbae706ac55aa5e9996c0422",
        "47c9ba33f94d7c79e7f041b1b651989d1eae9198"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 14:41:38 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 14:41:38 2026 +0900"
      },
      "message": "Merge pull request #595 from h2o/codex/fix-ccs-alerts\n\n[codex] fix TLS 1.3 CCS and cert alert codes"
    },
    {
      "commit": "47c9ba33f94d7c79e7f041b1b651989d1eae9198",
      "tree": "b483ddcda4b477d400bee632ad43fb7a87ce3f59",
      "parents": [
        "b1d103ea07ef19573a509ce7fc20f418801a0891"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 14:25:38 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 14:25:38 2026 +0900"
      },
      "message": "map MD5-related cert errors to bad_certificate\n\nCo-authored-by: OpenAI Codex \u003ccodex@openai.com\u003e\n"
    },
    {
      "commit": "b1d103ea07ef19573a509ce7fc20f418801a0891",
      "tree": "55454e19316493db69cac0306acc9d597043125c",
      "parents": [
        "8bc9f3609059a6e4bbae706ac55aa5e9996c0422"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 14:15:30 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 14:15:30 2026 +0900"
      },
      "message": "fix CCS alert codes\n\nCo-authored-by: OpenAI Codex \u003ccodex@openai.com\u003e\n"
    },
    {
      "commit": "8bc9f3609059a6e4bbae706ac55aa5e9996c0422",
      "tree": "5a8a8973c010505d483450402ba7cd54cd622e67",
      "parents": [
        "fe3940d5b9b1546a9f1f2895a39424066e825109",
        "0e54cc0a6c15f9c3c3172368609a26a88494e4e3"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 13:57:33 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 13:57:33 2026 +0900"
      },
      "message": "Merge pull request #593 from dip-proto/decrypt-underflows-ciphertext-length-before-tag-split\n\nReject undersized ciphertext in bcrypt AEAD decrypt"
    },
    {
      "commit": "fe3940d5b9b1546a9f1f2895a39424066e825109",
      "tree": "7256e25333b65d608e01be1bdbe026c80b173d8e",
      "parents": [
        "50c479847d141f137d2b9e76d1ee85f97a570dbb",
        "2146bd9ddc5739f8f79db3b96280a0a656569aae"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 13:56:58 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 13:56:58 2026 +0900"
      },
      "message": "Merge pull request #592 from dip-proto/rsa-key-bit-parser-reads-past-short-buffer\n\nmbedtls: add bounds checks in RSA key-bit parser"
    },
    {
      "commit": "50c479847d141f137d2b9e76d1ee85f97a570dbb",
      "tree": "3dbe701d8bc16704900b030fbc02445effab44ad",
      "parents": [
        "3b4d709fb413317aadbd7ba7c040b7b988c3c310",
        "be4ac87f84c5ca8f22278f38e0185ce9dc623f53"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Apr 17 13:56:21 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 13:56:21 2026 +0900"
      },
      "message": "Merge pull request #591 from dip-proto/tls-1-2-receive-path-suppresses-decryption-errors\n\nFix error propagation in TLS 1.2 receive path"
    },
    {
      "commit": "0e54cc0a6c15f9c3c3172368609a26a88494e4e3",
      "tree": "6655b6669d8c976b791ce8208b81be55e1c9a048",
      "parents": [
        "3b4d709fb413317aadbd7ba7c040b7b988c3c310"
      ],
      "author": {
        "name": "Frank Denis",
        "email": "github@pureftpd.org",
        "time": "Thu Apr 16 22:07:18 2026 +0200"
      },
      "committer": {
        "name": "Frank Denis",
        "email": "github@pureftpd.org",
        "time": "Thu Apr 16 22:07:18 2026 +0200"
      },
      "message": "Reject undersized ciphertext in bcrypt AEAD decrypt\n\nptls_bcrypt_aead_do_decrypt subtracted the tag size from inlen without\nfirst checking that inlen is large enough.\n\nWhen inlen is smaller than the tag, the size_t subtraction wraps,\nproducing a bogus textLen and an out-of-bounds tag pointer that get\nforwarded to BCryptDecrypt.\n"
    },
    {
      "commit": "2146bd9ddc5739f8f79db3b96280a0a656569aae",
      "tree": "06bcc364a72776d8f5930dd4ba8f4a5c07155fbc",
      "parents": [
        "3b4d709fb413317aadbd7ba7c040b7b988c3c310"
      ],
      "author": {
        "name": "Frank Denis",
        "email": "github@pureftpd.org",
        "time": "Thu Apr 16 22:02:38 2026 +0200"
      },
      "committer": {
        "name": "Frank Denis",
        "email": "github@pureftpd.org",
        "time": "Thu Apr 16 22:02:38 2026 +0200"
      },
      "message": "Add bounds checks in RSA key-bit parser\n\nptls_mbedtls_rsa_get_key_bits accessed key_value[x] through key_value[x+3]\nwithout verifying that these indices are within the buffer.\n\nOn truncated or malformed DER input this caused out-of-bounds reads\nbefore the function could reject the key.\n"
    },
    {
      "commit": "be4ac87f84c5ca8f22278f38e0185ce9dc623f53",
      "tree": "3dbe701d8bc16704900b030fbc02445effab44ad",
      "parents": [
        "3b4d709fb413317aadbd7ba7c040b7b988c3c310"
      ],
      "author": {
        "name": "Frank Denis",
        "email": "github@pureftpd.org",
        "time": "Thu Apr 16 21:58:23 2026 +0200"
      },
      "committer": {
        "name": "Frank Denis",
        "email": "github@pureftpd.org",
        "time": "Thu Apr 16 21:58:23 2026 +0200"
      },
      "message": "Fix error propagation in TLS 1.2 receive path\n\nhandle_input_tls12 unconditionally returned 0, silently discarding\nAEAD decryption failures, bad MAC errors, and other fatal conditions\non imported/resumed TLS 1.2 connections.\n\nCallers of ptls_receive had no way to observe that a record failed\nauthentication.\n"
    },
    {
      "commit": "3b4d709fb413317aadbd7ba7c040b7b988c3c310",
      "tree": "22b23756c360de2d62e8f9ebe8ab00277d12251b",
      "parents": [
        "5568cf53f3e1676263f487e6e7487e1744f74649",
        "8e9b3648dbce1f92d9af30ac0254254a73e74991"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 13 14:32:09 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 13 14:32:09 2026 +0900"
      },
      "message": "Merge pull request #590 from h2o/kazuho/more-cert-types-when-verifiation-is-skipped\n\nwhen peer verification is off, accept RSA-PSS-RSAE-SHA384 / ECDSA-SECP384R1-SHA384"
    },
    {
      "commit": "8e9b3648dbce1f92d9af30ac0254254a73e74991",
      "tree": "22b23756c360de2d62e8f9ebe8ab00277d12251b",
      "parents": [
        "5568cf53f3e1676263f487e6e7487e1744f74649"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 13 14:14:59 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Apr 13 14:14:59 2026 +0900"
      },
      "message": "when peer verification is off, accept RSA-PSS-RSAE-SHA384 / ECDSA-SECP384R1-SHA384 too; the purpose of skipping verification is to test transport interop and therefore it is better to be lax\n"
    },
    {
      "commit": "5568cf53f3e1676263f487e6e7487e1744f74649",
      "tree": "c7f482474f8fde38653c202b483fa696fc71da35",
      "parents": [
        "bb37a1709889eba08c6bfcdf5ef477e3d7008302",
        "b94f08fbf27229d62b038380c14ca55d8f7983bd"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu Apr 09 15:46:45 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 15:46:45 2026 +0900"
      },
      "message": "Merge pull request #589 from dip-proto/asn1fix\n\nFix out-of-bounds read in ASN.1 type-and-length parser"
    },
    {
      "commit": "b94f08fbf27229d62b038380c14ca55d8f7983bd",
      "tree": "c7f482474f8fde38653c202b483fa696fc71da35",
      "parents": [
        "bb37a1709889eba08c6bfcdf5ef477e3d7008302"
      ],
      "author": {
        "name": "Frank Denis",
        "email": "github@pureftpd.org",
        "time": "Wed Apr 08 22:10:47 2026 +0200"
      },
      "committer": {
        "name": "Frank Denis",
        "email": "github@pureftpd.org",
        "time": "Wed Apr 08 22:10:47 2026 +0200"
      },
      "message": "Fix out-of-bounds read in ASN.1 type-and-length parser\n\nptls_asn1_get_expected_type_and_length, which is part of the public API,\ncould read past the end of the input buffer.\n"
    },
    {
      "commit": "bb37a1709889eba08c6bfcdf5ef477e3d7008302",
      "tree": "6969153b994df101372df1e208df8ca5373bf76e",
      "parents": [
        "b84869f41414b6d0148db7728f1cf12f5b544874",
        "a22cafdc684c570dda13b0051bef8cb8b2022214"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Apr 01 09:59:54 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 01 09:59:54 2026 +0900"
      },
      "message": "Merge pull request #588 from h2o/kazuho/typesafe-getsni\n\ngetsni object for logging"
    },
    {
      "commit": "a22cafdc684c570dda13b0051bef8cb8b2022214",
      "tree": "6969153b994df101372df1e208df8ca5373bf76e",
      "parents": [
        "b84869f41414b6d0148db7728f1cf12f5b544874"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Mar 31 10:03:00 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Mar 31 10:03:00 2026 +0900"
      },
      "message": "Avoid UB by using a wrapper object to obtain SNI lazily. The cost of the wrapper is assumed to be negligible because, under many calling conventions, an object containing two pointers is passed using two registers, just like two separate pointer arguments.\n"
    },
    {
      "commit": "b84869f41414b6d0148db7728f1cf12f5b544874",
      "tree": "0e904329e58e0e3855473795b05626c62c2936d1",
      "parents": [
        "aef22626bbe696581dcd46af1d63be1c8e803751",
        "39606968c62b0dfaea009b33c4a28ed2ce811402"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sun Mar 15 11:25:25 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Mar 15 11:25:25 2026 +0900"
      },
      "message": "Merge pull request #587 from afrind/fix-brotli-link-dirs\n\nFix spurious ( ) in CORE_EXTRA_LIBS_DIRS when brotli is found"
    },
    {
      "commit": "39606968c62b0dfaea009b33c4a28ed2ce811402",
      "tree": "0e904329e58e0e3855473795b05626c62c2936d1",
      "parents": [
        "aef22626bbe696581dcd46af1d63be1c8e803751"
      ],
      "author": {
        "name": "afrind",
        "email": "afrind@openmoq.org",
        "time": "Thu Mar 05 09:25:34 2026 -0500"
      },
      "committer": {
        "name": "afrind",
        "email": "afrind@openmoq.org",
        "time": "Thu Mar 05 09:29:33 2026 -0500"
      },
      "message": "Fix spurious ( ) in CORE_EXTRA_LIBS_DIRS when brotli is found\n\nLIST(APPEND ...) treats ( and ) as literal list elements, not grouping\nsyntax. When libbrotlidec/libbrotlienc are found via pkg-config,\nCORE_EXTRA_LIBS_DIRS ends up containing bare \"(\" and \")\" which are then\npassed to TARGET_LINK_DIRECTORIES, causing a CMake configure error.\n\nTest plan: reproduced via moxygen\u0027s standalone build, which pulls\npicoquic (and transitively picotls) via CMake FetchContent. In that\nlayout picotls source lives inside the build tree, so the relative\npath \"(\" resolves to a build-prefixed path and CMake raises a hard\nerror. Installing libbrotli-dev/brotli triggers the bug; this fix\nresolves it.\n"
    },
    {
      "commit": "aef22626bbe696581dcd46af1d63be1c8e803751",
      "tree": "62969c3435e1dd401dd9174de1596d1a2dd648d8",
      "parents": [
        "946b4bda8df5431891a8f14b67d63e46fa6bb0ae",
        "721e9fa593f47b3b37fd1466c61592813d31fe9f"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Feb 28 11:17:21 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 28 11:17:21 2026 +0900"
      },
      "message": "Merge pull request #586 from h2o/kazuho/ci-centos-stream10\n\n[ci] add CentOS Stream 10 to the mix"
    },
    {
      "commit": "721e9fa593f47b3b37fd1466c61592813d31fe9f",
      "tree": "62969c3435e1dd401dd9174de1596d1a2dd648d8",
      "parents": [
        "9bcaa87f90df0262337098bfdd5edbae7581844b"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Feb 28 09:48:30 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Feb 28 09:54:25 2026 +0900"
      },
      "message": "stop app-armor to avoid sudo errors\n"
    },
    {
      "commit": "9bcaa87f90df0262337098bfdd5edbae7581844b",
      "tree": "3b57f822c085f13d59fdf88d2d9a53455229ed5b",
      "parents": [
        "946b4bda8df5431891a8f14b67d63e46fa6bb0ae"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Feb 28 09:36:44 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Feb 28 09:36:44 2026 +0900"
      },
      "message": "add CentOS Stream 10 to the mix, renaming \"Linux\" to \"Ubuntu\"\n"
    },
    {
      "commit": "946b4bda8df5431891a8f14b67d63e46fa6bb0ae",
      "tree": "8fa2823d575fcc4a55926600a196efb5ecc46ff8",
      "parents": [
        "6ef3a4302d3a6f7ea48b5e82fbe91b2e64418b0b",
        "31d156adf7160fd05dcb7c389d10df1ffc6f98c1"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Feb 28 09:33:21 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 28 09:33:21 2026 +0900"
      },
      "message": "Merge pull request #585 from afrind/openssl-3.5-engine-fix\n\nFix build with OpenSSL 3.5+ where ENGINE API is removed"
    },
    {
      "commit": "6ef3a4302d3a6f7ea48b5e82fbe91b2e64418b0b",
      "tree": "bdc77c9cb7f271818fd4af78507e50b3d8c64168",
      "parents": [
        "34d4d6496cec80bc3b56dbdab45f21bd9fbc17aa",
        "b1a50a1da59cfd413c7fbb73876f2cca1474c79b"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sat Feb 28 09:11:10 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 28 09:11:10 2026 +0900"
      },
      "message": "Merge pull request #584 from Ramblurr/fix/libaegis-0.9\n\nfix aegis call sites after breaking changes in 0.9.0"
    },
    {
      "commit": "31d156adf7160fd05dcb7c389d10df1ffc6f98c1",
      "tree": "a5e49221a4dee06ce55789d58e3db963a9cffc90",
      "parents": [
        "314a1397a26f290c7ada57813d33dcdff1e859e8"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Feb 27 19:45:29 2026 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Feb 27 19:45:29 2026 +0900"
      },
      "message": "Using just OPENSSL_NO_ENGINE is fine.\n\nCo-Authored-By: OpenCode with Qwen3.5-27B \u003ckazuhooku+opencode@gmail.com\u003e\n"
    },
    {
      "commit": "314a1397a26f290c7ada57813d33dcdff1e859e8",
      "tree": "0d2c069ba5afdf83a2198ead1dcb347bb699679f",
      "parents": [
        "34d4d6496cec80bc3b56dbdab45f21bd9fbc17aa"
      ],
      "author": {
        "name": "afrind",
        "email": "afrind@openmoq.org",
        "time": "Tue Feb 24 20:13:43 2026 -0500"
      },
      "committer": {
        "name": "afrind",
        "email": "afrind@openmoq.org",
        "time": "Tue Feb 24 20:13:43 2026 -0500"
      },
      "message": "Fix build with OpenSSL 3.5+ where ENGINE API is removed\n\nOpenSSL removed the ENGINE API in version 3.5. The engine.h header\nstill exists but is empty, causing implicit function declaration errors\nfor ENGINE_by_id, ENGINE_free, etc.\n\nGuard all ENGINE usage in the test with a PICOTLS_HAVE_ENGINE macro\nthat checks both OPENSSL_NO_ENGINE and OPENSSL_VERSION_MAJOR. The\naffected code is only used for QAT hardware accelerator benchmarks\nand loading built-in engines on pre-3.0 OpenSSL, so no test coverage\nis lost on modern OpenSSL.\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "b1a50a1da59cfd413c7fbb73876f2cca1474c79b",
      "tree": "bdc77c9cb7f271818fd4af78507e50b3d8c64168",
      "parents": [
        "34d4d6496cec80bc3b56dbdab45f21bd9fbc17aa"
      ],
      "author": {
        "name": "Casey Link",
        "email": "casey@outskirtslabs.com",
        "time": "Tue Jan 06 13:11:10 2026 +0100"
      },
      "committer": {
        "name": "Casey Link",
        "email": "casey@outskirtslabs.com",
        "time": "Tue Jan 06 13:19:26 2026 +0100"
      },
      "message": "fix aegis call sites after breaking changes in 0.9.0\n"
    },
    {
      "commit": "34d4d6496cec80bc3b56dbdab45f21bd9fbc17aa",
      "tree": "a172747489ea5bff218cee6e156fc8bea4856a3a",
      "parents": [
        "e68c72bcb2766dcce61b40de7d6f4f14c8e514db",
        "ce442fbb39a12e6dfd5fbdae142be297a97a0a46"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Oct 27 09:01:09 2025 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 27 09:01:09 2025 +0900"
      },
      "message": "Merge pull request #582 from h2o/kazuho/no-tcpip-in-headers\n\navoid dependency: picotls.h -\u003e TCP/IP"
    },
    {
      "commit": "ce442fbb39a12e6dfd5fbdae142be297a97a0a46",
      "tree": "07077334102bf085e398ab57b0b676617c05be4d",
      "parents": [
        "565090aac4644335e84246bf8f94da935945f2d3"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sun Oct 26 18:23:58 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sun Oct 26 18:23:58 2025 +0900"
      },
      "message": "MSVC\n"
    },
    {
      "commit": "565090aac4644335e84246bf8f94da935945f2d3",
      "tree": "0d45348437d29ac4454f6d99ac125ab8d7467156",
      "parents": [
        "4e443c11eb48949e597911b1b772a9d2588b4769"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sun Oct 26 13:28:59 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Sun Oct 26 13:30:31 2025 +0900"
      },
      "message": "avoid dependency: picotls.h -\u003e TCP/IP\n"
    },
    {
      "commit": "e68c72bcb2766dcce61b40de7d6f4f14c8e514db",
      "tree": "873bdf8084a688ed399f376d2f13de8bf16a12be",
      "parents": [
        "4e443c11eb48949e597911b1b772a9d2588b4769",
        "a2c3ac2b4a16f6de7b69dfff0b11de4db1cb8ca8"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Oct 24 18:39:15 2025 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 24 18:39:15 2025 +0900"
      },
      "message": "Merge pull request #581 from HektikR/577-unconditionally-log-hexdump-length\n\nLog the hexdump length unconditionally"
    },
    {
      "commit": "a2c3ac2b4a16f6de7b69dfff0b11de4db1cb8ca8",
      "tree": "873bdf8084a688ed399f376d2f13de8bf16a12be",
      "parents": [
        "4e443c11eb48949e597911b1b772a9d2588b4769"
      ],
      "author": {
        "name": "Marco Angerer",
        "email": "mail@marco-angerer.de",
        "time": "Fri Oct 24 09:53:45 2025 +0200"
      },
      "committer": {
        "name": "Marco Angerer",
        "email": "mail@marco-angerer.de",
        "time": "Fri Oct 24 09:53:45 2025 +0200"
      },
      "message": "Log the hexdump length unconditionally\n"
    },
    {
      "commit": "4e443c11eb48949e597911b1b772a9d2588b4769",
      "tree": "ac13859ec8b31ec26d50e101aaa30787209172d6",
      "parents": [
        "7d344ae6b09b05ffe2c26773e47a43cb65ab77e1",
        "7c475fa2e79c1d1d11db590852af35193d2d71e6"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 16:19:28 2025 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 12 16:19:28 2025 +0900"
      },
      "message": "Merge pull request #579 from h2o/kazuho/quiclb-oops\n\n[quiclb] preserve `ctx-\u003esuper.algo` already set by the caller"
    },
    {
      "commit": "7c475fa2e79c1d1d11db590852af35193d2d71e6",
      "tree": "ac13859ec8b31ec26d50e101aaa30787209172d6",
      "parents": [
        "55e9839d9a9331e36b575bd20cc9359b704cb37a"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 15:53:00 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 15:53:00 2025 +0900"
      },
      "message": "clarify the default block size\n"
    },
    {
      "commit": "55e9839d9a9331e36b575bd20cc9359b704cb37a",
      "tree": "2aa13f5cbfb3a0bbdb94585665362ee9fbdc1c27",
      "parents": [
        "7d344ae6b09b05ffe2c26773e47a43cb65ab77e1"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 15:43:20 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 15:43:30 2025 +0900"
      },
      "message": "preserve `ctx-\u003esuper.algo` already set by the caller\n"
    },
    {
      "commit": "7d344ae6b09b05ffe2c26773e47a43cb65ab77e1",
      "tree": "55cba05e0afdd8eb403f7548e8fe095daa5b262c",
      "parents": [
        "3bcdd52faa04a9e7913564d63e783b64155ab43e"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 14:32:15 2025 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 12 14:32:15 2025 +0900"
      },
      "message": "Update README.md"
    },
    {
      "commit": "3bcdd52faa04a9e7913564d63e783b64155ab43e",
      "tree": "a7580d6845a086e03d4ff6d66e8b99d36274aac3",
      "parents": [
        "f350eab60742138ac62b42ee444adf04c7898b0d",
        "fcb84f7a117b09701c3d562f99f60c26008443d6"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 14:26:59 2025 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 12 14:26:59 2025 +0900"
      },
      "message": "Merge pull request #578 from h2o/kazuho/aes64\n\nimplement 64-bit block cipher based on AES"
    },
    {
      "commit": "fcb84f7a117b09701c3d562f99f60c26008443d6",
      "tree": "a7580d6845a086e03d4ff6d66e8b99d36274aac3",
      "parents": [
        "445ba850b27ac8b8a761acecd7ad7727bd20dc4a"
      ],
      "author": {
        "name": "huitema",
        "email": "huitema@huitema.net",
        "time": "Thu Sep 11 22:09:22 2025 -0700"
      },
      "committer": {
        "name": "huitema",
        "email": "huitema@huitema.net",
        "time": "Thu Sep 11 22:09:22 2025 -0700"
      },
      "message": "Fix the fusion tes project.\n"
    },
    {
      "commit": "445ba850b27ac8b8a761acecd7ad7727bd20dc4a",
      "tree": "73f93a36c23e71e62ad7fc51fdfdcca7f7a50e25",
      "parents": [
        "7870ee9890047dcca84c2dd5d0ee7a2aff0e53ff"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 13:45:34 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 13:45:34 2025 +0900"
      },
      "message": "MSVC does not like returning void (here also)\n"
    },
    {
      "commit": "7870ee9890047dcca84c2dd5d0ee7a2aff0e53ff",
      "tree": "2f99ef5b05ad6d2ef92aa498659223c134649c55",
      "parents": [
        "41e0f89b51207ac2914e108bcca2a0c9c58da594"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 13:40:07 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 13:40:07 2025 +0900"
      },
      "message": "on MSVC, bit operators cannot be used on _m128i\n"
    },
    {
      "commit": "41e0f89b51207ac2914e108bcca2a0c9c58da594",
      "tree": "704630e168815c4421e9d2f8c9299682d7148ef6",
      "parents": [
        "a31884c4b96b12cb2b0bf4f4a6915635aadd4486"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 13:28:20 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 13:28:20 2025 +0900"
      },
      "message": "_m128i is part of SSE, and x86-64 always has SSE2\n"
    },
    {
      "commit": "a31884c4b96b12cb2b0bf4f4a6915635aadd4486",
      "tree": "df6a0b8fbabdc614138caae8701a0f43074674bd",
      "parents": [
        "de056de1b1fc7d2b46b8d078f25a7e7a6d7e37a1"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 13:13:47 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 13:13:47 2025 +0900"
      },
      "message": "[MSVC] update project\n"
    },
    {
      "commit": "de056de1b1fc7d2b46b8d078f25a7e7a6d7e37a1",
      "tree": "d94dc19786e88ad9cf1772b7302a1bab5716b120",
      "parents": [
        "a76d929021029af2e7c16eee0664ac3da303a5ca"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 13:07:45 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 13:07:45 2025 +0900"
      },
      "message": "MSVC does not like returning void\n"
    },
    {
      "commit": "a76d929021029af2e7c16eee0664ac3da303a5ca",
      "tree": "a7ce5bcd2bf0f4dd934b12244f42a56ace93d1cd",
      "parents": [
        "c49d81ccf34161a8360f44e9e8cf5fcee01c021b"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 10:48:39 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 10:48:39 2025 +0900"
      },
      "message": "test ptls_fusion_quiclb\n"
    },
    {
      "commit": "c49d81ccf34161a8360f44e9e8cf5fcee01c021b",
      "tree": "921cbc0189d4436321929963595f8c7f9b10de67",
      "parents": [
        "830cec4ea0e1dbcce20cd41d970301f0561e5f9e"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 10:47:26 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 10:48:03 2025 +0900"
      },
      "message": "extract quiclb test\n"
    },
    {
      "commit": "830cec4ea0e1dbcce20cd41d970301f0561e5f9e",
      "tree": "58cbdc9d7a2cb9596685ec342efbf767119cbcf7",
      "parents": [
        "66cc1a0a93f307a7d7d2738a36b6bc1e24f01e4d"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 09:11:40 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 10:46:36 2025 +0900"
      },
      "message": "ptls_fusion_quiclb\n"
    },
    {
      "commit": "66cc1a0a93f307a7d7d2738a36b6bc1e24f01e4d",
      "tree": "a679ca27749bbd37f4a895b22718959118ddf3c4",
      "parents": [
        "b56d086850a924f8fa8501e841e1fbb9bd8668ea"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 08:55:07 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 10:38:17 2025 +0900"
      },
      "message": "only the core AES logic needs to be swappable\n"
    },
    {
      "commit": "b56d086850a924f8fa8501e841e1fbb9bd8668ea",
      "tree": "a328f43d61ae371d851ba52fa2016be4fac89aac",
      "parents": [
        "3f0511a93c79781e1d25a84da5d4fc598ce3a95f"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 08:46:59 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 10:38:01 2025 +0900"
      },
      "message": "use xmm registers on x86-64\n"
    },
    {
      "commit": "3f0511a93c79781e1d25a84da5d4fc598ce3a95f",
      "tree": "2893e7594c321552dab146ba9c7af7bf53f05a04",
      "parents": [
        "bc77fd474604c7fc73fbd18f5460e6d6a07ccb69"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 07:29:04 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 07:30:02 2025 +0900"
      },
      "message": "do_init can be shared\n"
    },
    {
      "commit": "bc77fd474604c7fc73fbd18f5460e6d6a07ccb69",
      "tree": "a476f52cb3b8a8903921e96e560ee3380fc7f24f",
      "parents": [
        "325fad865259d41353fe1e815d2b648c71c1876b"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 07:24:56 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 07:24:56 2025 +0900"
      },
      "message": "proper types\n"
    },
    {
      "commit": "325fad865259d41353fe1e815d2b648c71c1876b",
      "tree": "a70f864a94dc74376b8263c3544696bf0c84b393",
      "parents": [
        "a0c7205cd2f2040e1b5f2c222111f5b7cc1721de"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 07:10:03 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Fri Sep 12 07:24:42 2025 +0900"
      },
      "message": "extract the logic so that AES backend can be replaced\n"
    },
    {
      "commit": "a0c7205cd2f2040e1b5f2c222111f5b7cc1721de",
      "tree": "a6949192ce656888900da754ea7aee84803152b4",
      "parents": [
        "80a69cc90ebc5cb00af30a509d8a80cd2a7085cf"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu Sep 11 16:49:46 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu Sep 11 16:51:24 2025 +0900"
      },
      "message": "use 16-byte vectors throughout to avoid partial stalls when the compiler vectorizes the insns\n"
    },
    {
      "commit": "80a69cc90ebc5cb00af30a509d8a80cd2a7085cf",
      "tree": "a90027ced7360a1e0f6c26103476073a9ee0fcac",
      "parents": [
        "a3211ebcbc43bb61ead25d13bcfadb772b7e13dd"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu Sep 11 12:39:08 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu Sep 11 12:39:08 2025 +0900"
      },
      "message": "localize\n"
    },
    {
      "commit": "a3211ebcbc43bb61ead25d13bcfadb772b7e13dd",
      "tree": "3458613e59ddda776dd1cd0d0d2a508eaa16f05a",
      "parents": [
        "5b1eb59f135e16e1dbd7e529427a3148deb02af8"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu Sep 11 11:13:19 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Thu Sep 11 12:17:39 2025 +0900"
      },
      "message": "switch to one defined in draft-ietf-quic-load-balancers-21 S5.5.2\n"
    },
    {
      "commit": "5b1eb59f135e16e1dbd7e529427a3148deb02af8",
      "tree": "5c1a912ddf29a2faeceddd89a5adf39f282eb8b7",
      "parents": [
        "c1fb4ea6758200e563ba8f92519991df91b558d4"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Sep 10 21:30:09 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Sep 10 21:30:09 2025 +0900"
      },
      "message": "msvc compatibility\n"
    },
    {
      "commit": "c1fb4ea6758200e563ba8f92519991df91b558d4",
      "tree": "4085059660a208028cfc145f200320d18e70a202",
      "parents": [
        "940120d4801e031a406ca8a89c1b8c3143e6e535"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Sep 10 17:17:48 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Sep 10 17:18:03 2025 +0900"
      },
      "message": "use different AES key for each round\n"
    },
    {
      "commit": "940120d4801e031a406ca8a89c1b8c3143e6e535",
      "tree": "f91c7fd42c710b9399f799e675176a658908c121",
      "parents": [
        "f350eab60742138ac62b42ee444adf04c7898b0d"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Sep 10 16:08:46 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Sep 10 17:02:52 2025 +0900"
      },
      "message": "implement 64-bit block cipher based on AES\n"
    },
    {
      "commit": "f350eab60742138ac62b42ee444adf04c7898b0d",
      "tree": "59eb946405d896614bc3376a3e2e7065e151be0f",
      "parents": [
        "05f1d219efae0193c4b74ff25fd531c814831f7c",
        "c5154424d4eddc55db2329c5a2f813f24ca0e2b3"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Jul 16 15:55:42 2025 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 16 15:55:42 2025 +0900"
      },
      "message": "Merge pull request #574 from h2o/kazuho/pr570\n\n[openssl] add support for post-quantum key agreement methods (openssl \u003e\u003d 3.5)"
    },
    {
      "commit": "c5154424d4eddc55db2329c5a2f813f24ca0e2b3",
      "tree": "8335c312a38f32f2f31f528fb46124cb5386a187",
      "parents": [
        "04feee0b77cffafbc52cdb9f45e439e7252d4918"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Jul 16 14:58:31 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Jul 16 14:58:31 2025 +0900"
      },
      "message": "fix path\n"
    },
    {
      "commit": "04feee0b77cffafbc52cdb9f45e439e7252d4918",
      "tree": "735cf2d68149bc8f23efafb93babaeca9ece914d",
      "parents": [
        "9ed9e1b36b82b5614e9af9ce42e6517a44947fff"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Jul 16 14:38:22 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Jul 16 14:38:22 2025 +0900"
      },
      "message": "add openssl 3.5 to the CI matrix\n"
    },
    {
      "commit": "9ed9e1b36b82b5614e9af9ce42e6517a44947fff",
      "tree": "9d4eab82f9b8bb5113e52fc581f5dcb0981c65d0",
      "parents": [
        "a5d36d150fd78a534a66860abfe0790904007f4e"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Jul 16 14:15:32 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Wed Jul 16 14:15:32 2025 +0900"
      },
      "message": "bump to rerun CI\n"
    },
    {
      "commit": "a5d36d150fd78a534a66860abfe0790904007f4e",
      "tree": "9d4eab82f9b8bb5113e52fc581f5dcb0981c65d0",
      "parents": [
        "66da7edd2bc2c60aec1afa5b0976f97b71753f60"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:40:24 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:40:24 2025 +0900"
      },
      "message": "[cli] use defined names\n"
    },
    {
      "commit": "66da7edd2bc2c60aec1afa5b0976f97b71753f60",
      "tree": "d4f45b435fb43687291c67a476c4647ca84dc6d1",
      "parents": [
        "8a0281d8be69bb8bbbf21bd8c92ed01607bfcd26"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:34:32 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:34:32 2025 +0900"
      },
      "message": "add comments regarding the behavior of the HAVE macros\n"
    },
    {
      "commit": "8a0281d8be69bb8bbbf21bd8c92ed01607bfcd26",
      "tree": "74967cc65f8a12857e585d3cef63d169968fcdc6",
      "parents": [
        "6bf14858ec73ba96815b5d67db40bf3b8281c5c5"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:21:11 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:21:11 2025 +0900"
      },
      "message": "maybe we can call it just kem (key encapsulation mechanism), omitting key\n"
    },
    {
      "commit": "6bf14858ec73ba96815b5d67db40bf3b8281c5c5",
      "tree": "d96786743b3cdcb28ef09b4745c4b7b1bc86d760",
      "parents": [
        "4b113012fd058d1dd925906a4034a53049ac184a"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:16:17 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:16:17 2025 +0900"
      },
      "message": "no need to have init as a separate function\n"
    },
    {
      "commit": "4b113012fd058d1dd925906a4034a53049ac184a",
      "tree": "5325e8b474077d5d55ce4b49c6e841b7b1da15e4",
      "parents": [
        "3189fea0c84ce48816d4c70c9f61473d583af181"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:13:34 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:13:34 2025 +0900"
      },
      "message": "wip\n"
    },
    {
      "commit": "3189fea0c84ce48816d4c70c9f61473d583af181",
      "tree": "6b8415a91be6fefa799b9cc95c47e27cc24690e9",
      "parents": [
        "8bba561cda71c2292167192ad06850b7b1cd6a0a"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:08:33 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 14:08:33 2025 +0900"
      },
      "message": "remove unnecessary invocation and empty lines\n"
    },
    {
      "commit": "8bba561cda71c2292167192ad06850b7b1cd6a0a",
      "tree": "e9d9bf833f0b2ddb9933bfb9b226411aefc57296",
      "parents": [
        "10a0a029da0d8263ab80b749345eeb0315b43466"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 13:40:58 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 13:40:58 2025 +0900"
      },
      "message": "fix names in tests\n"
    },
    {
      "commit": "10a0a029da0d8263ab80b749345eeb0315b43466",
      "tree": "dcc7f5138787cc056ad9a646e8261655b693afea",
      "parents": [
        "ffbe194c4133cc07af00b14ed6e92c1ed8c1f21b"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 13:36:17 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 13:36:17 2025 +0900"
      },
      "message": "standardardized names omit underscores\n"
    },
    {
      "commit": "ffbe194c4133cc07af00b14ed6e92c1ed8c1f21b",
      "tree": "64d7d828cc90fa47620dada64840878ea32e296b",
      "parents": [
        "228d3908e646e90fe4fcfacfc99a722bbdba1076"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 13:34:02 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 13:34:02 2025 +0900"
      },
      "message": "lint\n"
    },
    {
      "commit": "228d3908e646e90fe4fcfacfc99a722bbdba1076",
      "tree": "9c34b646a13d0c5ea78c65bb2835e4d1d362ae01",
      "parents": [
        "d324e2b18020d7738e19304e9da6b52c31f1a60b"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 13:33:53 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 13:33:53 2025 +0900"
      },
      "message": "supply algo from `data` using char *\n"
    },
    {
      "commit": "d324e2b18020d7738e19304e9da6b52c31f1a60b",
      "tree": "a87d3da20d4ba6b98116dc418f7eaf789134653f",
      "parents": [
        "c3599a193757abc9ca4b0719628828b1718ad71b"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 12:40:47 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 12:40:47 2025 +0900"
      },
      "message": "dedupe x25519mlkem768 from the all list, while retaining hybrids and mlkems near the end\n"
    },
    {
      "commit": "c3599a193757abc9ca4b0719628828b1718ad71b",
      "tree": "fadb1a409a94077cc152eb0177d0acb5292bdbfb",
      "parents": [
        "97eedeb1f3467811f053527ccbfdf10a5122929f"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 11:41:30 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 12:23:36 2025 +0900"
      },
      "message": "we want to have PTLS_OPENSSL_HAVE_X25519MLKEM768 defined for !boringssl but the code must not be activated\n"
    },
    {
      "commit": "97eedeb1f3467811f053527ccbfdf10a5122929f",
      "tree": "fc8ea531259bd571a324db3b5df4e3137177d287",
      "parents": [
        "0834f6213e620467e12ae94419c4e58370c4e392"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 11:22:33 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 11:22:33 2025 +0900"
      },
      "message": "wip\n"
    },
    {
      "commit": "0834f6213e620467e12ae94419c4e58370c4e392",
      "tree": "637baba26d5c3d1c3f3004b21b18e48f39ae1727",
      "parents": [
        "5fcc8733b8c6145a799fdf2571288aab17b75925"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 11:20:19 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 11:20:19 2025 +0900"
      },
      "message": "use names defined by the IANA registry\n"
    },
    {
      "commit": "5fcc8733b8c6145a799fdf2571288aab17b75925",
      "tree": "1b24d25c99a7daeb95fe7db79e24df16fa9859b0",
      "parents": [
        "74956e184d3519a3d778b79b8e64f10ada3f330f"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 11:18:42 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 11:19:17 2025 +0900"
      },
      "message": "deduplicate declarations, PTLS_OPENSSL_HAVE_X25519MLKEM768 exposes x25519mlkem768 regardless of the backend\n"
    },
    {
      "commit": "74956e184d3519a3d778b79b8e64f10ada3f330f",
      "tree": "fcbab74ee54f4bbc30eadf534ebb1a7b96958e3c",
      "parents": [
        "9765aecf0229f835968b9dc2aa83630917b16800",
        "048606e63f49917b93e6971fa6161eabdf6e616f"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 11:13:03 2025 +0900"
      },
      "committer": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Tue Jul 15 11:13:03 2025 +0900"
      },
      "message": "Merge branch \u0027master\u0027 into kazuho/pr570\n"
    },
    {
      "commit": "05f1d219efae0193c4b74ff25fd531c814831f7c",
      "tree": "00740fc16cdc5a2e087ee48c8af0893fe8222ae5",
      "parents": [
        "048606e63f49917b93e6971fa6161eabdf6e616f",
        "a3212a2423b103bd3772609a019fd8fc809e5859"
      ],
      "author": {
        "name": "Kazuho Oku",
        "email": "kazuhooku@gmail.com",
        "time": "Mon Jul 14 16:54:17 2025 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 14 16:54:17 2025 +0900"
      },
      "message": "Merge pull request #573 from h2o/kazuho/cmake-4.0\n\nsupport CMake 4.0"
    }
  ],
  "next": "048606e63f49917b93e6971fa6161eabdf6e616f"
}
