)]}'
{
  "commit": "947c8cf32db7e05b31b10d359e9480bf8aa58e28",
  "tree": "04d093ae790992808a5c8831453c0e8d4aad12fe",
  "parents": [
    "d6cf8bd92f80f3e001d491304937ff9a97ce02d3"
  ],
  "author": {
    "name": "dschinazi",
    "email": "dschinazi@google.com",
    "time": "Wed Mar 03 16:20:39 2021 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Mar 03 16:21:14 2021 -0800"
  },
  "message": "Allow QUIC Key Update on first received 1-RTT packet\n\nAs per the specification, the first key update is allowed even if we haven\u0027t decrypted any packets: \u003c\u003cAn endpoint MUST NOT initiate a key update prior to having confirmed the handshake (Section 4.1.2). An endpoint MUST NOT initiate a subsequent key update unless it has received an acknowledgment for a packet that was sent protected with keys from the current key phase.\u003e\u003e This issue was found during the IETF 110 hackathon, as another implementation was performing a key update immediately post handshake.\n\nProtected by FLAGS_quic_reloadable_flag_quic_fix_key_update_on_first_packet.\n\nPiperOrigin-RevId: 360781943\nChange-Id: I678cd85ffdd4d014184fa6db86e8c42c64c421cd\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0e9fa101d82c749c75d35e8fe550253e7ed5ffbe",
      "old_mode": 33188,
      "old_path": "quic/core/quic_flags_list.h",
      "new_id": "83b2a651cca46c014b3f659e48351a0b103e0c73",
      "new_mode": 33188,
      "new_path": "quic/core/quic_flags_list.h"
    },
    {
      "type": "modify",
      "old_id": "24034fd88efd76bf4c8fb9075496ec13689276d8",
      "old_mode": 33188,
      "old_path": "quic/core/quic_framer.cc",
      "new_id": "51fa3ea707552e685bc7828c9123a11fb5cde530",
      "new_mode": 33188,
      "new_path": "quic/core/quic_framer.cc"
    },
    {
      "type": "modify",
      "old_id": "0307594177ecd76944c3d80af6d19effb689870f",
      "old_mode": 33188,
      "old_path": "quic/core/quic_framer.h",
      "new_id": "fe395ce1d9f8b060cbb2ce95f70b8ca3dc00c989",
      "new_mode": 33188,
      "new_path": "quic/core/quic_framer.h"
    },
    {
      "type": "modify",
      "old_id": "dafe1f730c164efc2e846d77fb0ca6198219b04a",
      "old_mode": 33188,
      "old_path": "quic/core/quic_framer_test.cc",
      "new_id": "9f829e57b77d617f6cc5eacf31e51d46718b5e11",
      "new_mode": 33188,
      "new_path": "quic/core/quic_framer_test.cc"
    },
    {
      "type": "modify",
      "old_id": "97e2194091b72c9a2bf08f25bfa61afa98418ced",
      "old_mode": 33188,
      "old_path": "quic/core/quic_versions.cc",
      "new_id": "081791d7f9e45e24aef30c3002e2bf164a190e1d",
      "new_mode": 33188,
      "new_path": "quic/core/quic_versions.cc"
    }
  ]
}
