)]}'
{
  "commit": "4b854a6db749707f9c7156b78e2ab8c892d107cb",
  "tree": "70d768ec7ff0679fc5baa229ba0bad49d6be0d3b",
  "parents": [
    "99f6d4bd183fa609c4474a64ee41372f1a575073"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sat Apr 03 00:00:07 2021 -0400"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Tue Apr 06 18:05:11 2021 +0000"
  },
  "message": "runner: Don\u0027t maintain two copies of the same transcript hash.\n\nThe \u0027client\u0027 and \u0027server\u0027 halves are remnants of SSL 3.0 and Go\n(originally) lacking a way to clone hash.Hash. The Go limitation meant\nthat computing SSL 3.0\u0027s proto-HMAC construction mutated the running\nhash on Finished, so crypto/tls just maintained two of them.\n\nWithout SSL 3.0, this is no longer needed. That, however, leaves us with\nhaving both a crypto.Hash and a hash.Hash, and both can\u0027t be named\n\u0027hash\u0027. I stepped around this by storing the cipher suite itself and\nusing cipherSuite.hash().\n\nChange-Id: Ia38880ae446949baa2181d33136c748cf5374664\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/46626\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "66674c09796a6e68ac759bfd0c45b45905e7f3d1",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/prf.go",
      "new_id": "2ba29c15eb3fd5f45658a819eef50046740a21a4",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/prf.go"
    }
  ]
}
