)]}'
{
  "commit": "e9c5d72c09e01a0f71f30f7c3454e5e7f8711476",
  "tree": "eba02e0e146d6c98bc732beb8562419377654575",
  "parents": [
    "5358cb50446ff38d7b41e84274bc36582cced621"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Jun 09 17:43:16 2021 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jun 14 20:15:12 2021 +0000"
  },
  "message": "Add an option to permute ClientHello extension order.\n\nAlthough not permitted by the TLS specification, systems sometimes\nossify TLS extension order, or byte offsets of various fields. To\nkeep the ecosystem healthy, add an API to reorder ClientHello\nextensions.\n\nSince ECH, HelloRetryRequest, and HelloVerifyRequest are sensitive to\nextension order, I\u0027ve implemented this by per-connection permutation of\nthe indices in the kExtensions structure. This ensures that all\nClientHellos within a connection are consistently ordered. As follow-up\nwork, permuting the other messages would also be nice, though any server\nmessages would need to be incorporated in handshake hints.\n\nChange-Id: I18ce39b4df5ee376c654943f07ec26a50e0923a9\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/48045\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b486f169f0fe79fc37a93e308398a5c0a6d74e42",
      "old_mode": 33188,
      "old_path": "include/openssl/base.h",
      "new_id": "88cfb8f1838b28af615cb0d3e13efd3d3eb0f701",
      "new_mode": 33188,
      "new_path": "include/openssl/base.h"
    },
    {
      "type": "modify",
      "old_id": "1ff9379e73f3297ba7c3c58d5007a43a98b36d37",
      "old_mode": 33188,
      "old_path": "include/openssl/ssl.h",
      "new_id": "dc3a79dfbd4b15740b07f3f0536ddc2206a31843",
      "new_mode": 33188,
      "new_path": "include/openssl/ssl.h"
    },
    {
      "type": "modify",
      "old_id": "ae8aabdeca21e609393c58f4b6eb53f01862effd",
      "old_mode": 33188,
      "old_path": "ssl/handshake_client.cc",
      "new_id": "1fb43fbddf05d55b3435f0aacf92fef4728a1682",
      "new_mode": 33188,
      "new_path": "ssl/handshake_client.cc"
    },
    {
      "type": "modify",
      "old_id": "3728f70cea5a3a4df4d52a1e91508ed0828202bd",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "cb5bf75591ef78adb2f955dc64359b0f36763f69",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "31ab3bbe6451800deb600a0e525cc76cce9cba57",
      "old_mode": 33188,
      "old_path": "ssl/ssl_lib.cc",
      "new_id": "12117616439d2852075e9c9b1d632b76c8337153",
      "new_mode": 33188,
      "new_path": "ssl/ssl_lib.cc"
    },
    {
      "type": "modify",
      "old_id": "e2708b1b0c0cbbd24d30198c25a0b1541b89304a",
      "old_mode": 33188,
      "old_path": "ssl/ssl_test.cc",
      "new_id": "e2a41b86654e798d9e4ce937d7ebdfe4df16fa1d",
      "new_mode": 33188,
      "new_path": "ssl/ssl_test.cc"
    },
    {
      "type": "modify",
      "old_id": "90ad5eb35242e695ea5ecf6a245a83df085d89ab",
      "old_mode": 33188,
      "old_path": "ssl/t1_lib.cc",
      "new_id": "69a2bdc1aab84ef86fba1b5881c4a3545fb3519e",
      "new_mode": 33188,
      "new_path": "ssl/t1_lib.cc"
    },
    {
      "type": "modify",
      "old_id": "d4dcd52259ff3680aacf8c46bbf299df38a87a6b",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/runner.go",
      "new_id": "fded062e0abf68bcf0c7c289bc96a8dca9bb9cac",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/runner.go"
    },
    {
      "type": "modify",
      "old_id": "c62c7651e944836814e5121aa10a763e6523ddf3",
      "old_mode": 33188,
      "old_path": "ssl/test/test_config.cc",
      "new_id": "6288da4616bf42d3fffd6bf372a7b1d0963a45c9",
      "new_mode": 33188,
      "new_path": "ssl/test/test_config.cc"
    },
    {
      "type": "modify",
      "old_id": "9ef0ceddad92f3cd36a1bcfde8d95ea0bc8101e2",
      "old_mode": 33188,
      "old_path": "ssl/test/test_config.h",
      "new_id": "377a757583e1d99ed034d2ba191abe0e86545eb1",
      "new_mode": 33188,
      "new_path": "ssl/test/test_config.h"
    },
    {
      "type": "modify",
      "old_id": "6f738e340daaece1e2997b47c4b08796250c5adb",
      "old_mode": 33188,
      "old_path": "tool/client.cc",
      "new_id": "4301c22c395978086b1100635e7f5ba10ee87b5a",
      "new_mode": 33188,
      "new_path": "tool/client.cc"
    }
  ]
}
