)]}'
{
  "commit": "e2e41dadaefec8961cc4b799f96703073b7a683d",
  "tree": "ced9c4da9f37d6810ac4b2232a3e40797e39e8ca",
  "parents": [
    "6bf2625ee0435a2d07e5609318a86c3ce1d533b6"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Mon Nov 25 15:43:04 2024 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Dec 05 16:42:51 2024 +0000"
  },
  "message": "Check for message sequence overflow in DTLS\n\nIn DTLS 1.2, message sequence number overflow was impossible. The\ncounter reset on every handshake, and every handshake had a bounded\nnumber of messages. (The counter reset was actually problematic. The end\nof one handshake and the start of the next shared epochs, so sequence\nnumbers become ambiguous. 1.3 fixes this by removing the reset but, in\nhindsight, resetting on each epoch would probably have been better.)\n\nIn DTLS 1.3, there is no bound and overflow is possible. Check for\noverflow. Somewhat annoyingly, because we tend to store the next\nsequence number, we actually need 17 bits per sequence number to\nrepresent this, if we want to accept up to the maximum possible message.\nTest this on the read side with KeyUpdate. (To test this on the write\nside, we must be able to send KeyUpdate.)\n\nBug: 42290594\nChange-Id: I691855dc72427afb9e82d8de0fb2eeea6818f2ea\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/73507\nReviewed-by: Nick Harper \u003cnharper@chromium.org\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e5cc7acaf1e49472386f9588b816c1896396eb0c",
      "old_mode": 33188,
      "old_path": "ssl/d1_both.cc",
      "new_id": "b337b3764fdfbf3989cb0881ab33ef4e0fa90ddb",
      "new_mode": 33188,
      "new_path": "ssl/d1_both.cc"
    },
    {
      "type": "modify",
      "old_id": "2c7a1cd8ab7dc3303550a59788baa93c65b08201",
      "old_mode": 33188,
      "old_path": "ssl/d1_lib.cc",
      "new_id": "520bde3e0ecf2040962773e5d16f6eb25e8371e6",
      "new_mode": 33188,
      "new_path": "ssl/d1_lib.cc"
    },
    {
      "type": "modify",
      "old_id": "a8ceb16a9098d3b03fa73d884a7267a83a40dc3a",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "9721cb1fb36b48b418390d12e24015ac489e40e1",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "5ec13821fb78d0fbf1b4fff0c4520797e4e87e4f",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/runner.go",
      "new_id": "fbb8bf9dcf7d10812bba49e558af229411670387",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/runner.go"
    }
  ]
}
