)]}'
{
  "commit": "eb93c684d40de4924fc0664d7d9e98a84d5a100b",
  "tree": "ca46482d7a1ce6e76e5b058a1f32e18c0274f273",
  "parents": [
    "4b21642161570dad6e94fb7722cd3c9156874cea"
  ],
  "author": {
    "name": "Filippo Valsorda",
    "email": "filippo@golang.org",
    "time": "Sat Nov 02 14:43:34 2019 -0400"
  },
  "committer": {
    "name": "Filippo Valsorda",
    "email": "filippo@golang.org",
    "time": "Tue Nov 12 01:08:57 2019 +0000"
  },
  "message": "crypto/tls: select only compatible chains from Certificates\n\nNow that we have a full implementation of the logic to check certificate\ncompatibility, we can let applications just list multiple chains in\nCertificates (for example, an RSA and an ECDSA one) and choose the most\nappropriate automatically.\n\nNameToCertificate only maps each name to one chain, so simply deprecate\nit, and while at it simplify its implementation by not stripping\ntrailing dots from the SNI (which is specified not to have any, see RFC\n6066, Section 3) and by not supporting multi-level wildcards, which are\nnot a thing in the WebPKI (and in crypto/x509).\n\nThe performance of SupportsCertificate without Leaf is poor, but doesn\u0027t\naffect current users. For now document that, and address it properly in\nthe next cycle. See #35504.\n\nWhile cleaning up the Certificates/GetCertificate/GetConfigForClient\nbehavior, also support leaving Certificates/GetCertificate nil if\nGetConfigForClient is set, and send unrecognized_name when there are no\navailable certificates.\n\nFixes #29139\nFixes #18377\n\nChange-Id: I26604db48806fe4d608388e55da52f34b7ca4566\nReviewed-on: https://go-review.googlesource.com/c/go/+/205059\nRun-TryBot: Filippo Valsorda \u003cfilippo@golang.org\u003e\nTryBot-Result: Gobot Gobot \u003cgobot@golang.org\u003e\nReviewed-by: Katie Hockman \u003ckatie@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "24199a735a88dbdf53b3f59e12e991296fdc33fc",
      "old_mode": 33188,
      "old_path": "src/crypto/tls/alert.go",
      "new_id": "22b3eca92fa80c4853066d3a97afb4598500147d",
      "new_mode": 33188,
      "new_path": "src/crypto/tls/alert.go"
    },
    {
      "type": "modify",
      "old_id": "8011cebaa34f8b87fa207c4c220323465e344fb6",
      "old_mode": 33188,
      "old_path": "src/crypto/tls/common.go",
      "new_id": "2c1ff277185f3e14fcdff7a5d092b05e91a3905b",
      "new_mode": 33188,
      "new_path": "src/crypto/tls/common.go"
    },
    {
      "type": "modify",
      "old_id": "57f61050e5ff2c6319e54aa1a490950d5329d41b",
      "old_mode": 33188,
      "old_path": "src/crypto/tls/conn_test.go",
      "new_id": "78935b1234bc52c6308599a4dd94687ca1f3d612",
      "new_mode": 33188,
      "new_path": "src/crypto/tls/conn_test.go"
    },
    {
      "type": "modify",
      "old_id": "65988abf0ed96dd75ce59b432f4bb6393b8dd0aa",
      "old_mode": 33188,
      "old_path": "src/crypto/tls/handshake_server.go",
      "new_id": "59cbf908cce674503317a81e39747994f09d7111",
      "new_mode": 33188,
      "new_path": "src/crypto/tls/handshake_server.go"
    },
    {
      "type": "modify",
      "old_id": "571f56f327f8b1ca6b95b57461c61912f3c8218a",
      "old_mode": 33188,
      "old_path": "src/crypto/tls/handshake_server_test.go",
      "new_id": "ffeaef312d2c1dc12f2bfbfabe73f3da196aa7a9",
      "new_mode": 33188,
      "new_path": "src/crypto/tls/handshake_server_test.go"
    },
    {
      "type": "modify",
      "old_id": "9b05924571dd04a467c83eed7e52fbd9d919950e",
      "old_mode": 33188,
      "old_path": "src/crypto/tls/handshake_server_tls13.go",
      "new_id": "5432145de46292095403c8e95588c931d6e0595f",
      "new_mode": 33188,
      "new_path": "src/crypto/tls/handshake_server_tls13.go"
    },
    {
      "type": "modify",
      "old_id": "58c3a6b5ad2374932f49e3e50c2e4fa338e02ead",
      "old_mode": 33188,
      "old_path": "src/crypto/tls/tls.go",
      "new_id": "228f4a79ab205f758ccee60db5f8de171fd88f13",
      "new_mode": 33188,
      "new_path": "src/crypto/tls/tls.go"
    }
  ]
}
