)]}'
{
  "commit": "7a817f48bafee508b2d23ad278f892ee1cb32b91",
  "tree": "e8bd63d365369d48964356eca3899ffbaa6cbd4c",
  "parents": [
    "e38cf79cdf47606f6768fb85dc066d7ebce304ac"
  ],
  "author": {
    "name": "Dan McArdle",
    "email": "dmcardle@google.com",
    "time": "Wed Jul 14 17:19:16 2021 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jul 20 20:07:58 2021 +0000"
  },
  "message": "Add \u0027generate-ech\u0027 command to bssl tool\n\nThe tool generates three files: an ECHConfig, its corresponding private\nkey, and the ECHConfig wrapped in an ECHConfigList.\n\nFor example, the following invocation generates the files:\n\n    bssl generate-ech \\\n      -out-ech-config-list ech_config_list.data \\\n      -out-ech-config ech_config.data \\\n      -out-private-key ech.key \\\n      -public-name foo.example \\\n      -config-id 0\n\nNow, we can pass the ECHConfig and private key into the \u0027server\u0027 and\n\u0027client\u0027 commands:\n\n    bssl server -accept 4430 \\\n        -ech-config ech_config.data \\\n        -ech-key    ech.key\n\n    bssl client -connect localhost:4430 \\\n        -ech-config-list ech_config_list.data\n\nBug: 275\nChange-Id: Id4342855483fb01aa956f9aff356105c4a8ca4f6\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/48466\nReviewed-by: David Benjamin \u003cdavidben@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e9e387b6aeb12544e1bfdbc6d3d0220e13837f26",
      "old_mode": 33188,
      "old_path": "tool/CMakeLists.txt",
      "new_id": "a591b7def10a43862476d3f2847d650cded703e3",
      "new_mode": 33188,
      "new_path": "tool/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "9b5ff1b8ebd1fe96df2923763eabe1f70b64c734",
      "old_mode": 33188,
      "old_path": "tool/file.cc",
      "new_id": "8d74e635bcb40ad9323e0a565827293d78eee3de",
      "new_mode": 33188,
      "new_path": "tool/file.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1fe501db0b05fa9546dc1ea6f80b03a5a385703e",
      "new_mode": 33188,
      "new_path": "tool/generate_ech.cc"
    },
    {
      "type": "modify",
      "old_id": "6499dbea14b4a53565712fb657ee1086d50f4e26",
      "old_mode": 33188,
      "old_path": "tool/generate_ed25519.cc",
      "new_id": "892009940d016508f00825a6abfd45612b746b35",
      "new_mode": 33188,
      "new_path": "tool/generate_ed25519.cc"
    },
    {
      "type": "modify",
      "old_id": "eb9e4ba8f5a9220a3c95ce80428930cd4a03340f",
      "old_mode": 33188,
      "old_path": "tool/internal.h",
      "new_id": "7f3692a5eed46dc9bef654ac0c4c781fc59ca2b9",
      "new_mode": 33188,
      "new_path": "tool/internal.h"
    },
    {
      "type": "modify",
      "old_id": "d2785352e5048f53ba99468d313cdb244153d61c",
      "old_mode": 33188,
      "old_path": "tool/tool.cc",
      "new_id": "7bec7a2b61f6a65d524f17a17f83ff12f1e787b7",
      "new_mode": 33188,
      "new_path": "tool/tool.cc"
    }
  ]
}
