)]}'
{
  "commit": "83ff0b0c61c6ae99a058c851f4b0680064d46e8b",
  "tree": "4eb31aa54eb89da6e42c998705bb493c4355fbd6",
  "parents": [
    "6796a7924c20d2c58b0cf78766b94543abfadc1b"
  ],
  "author": {
    "name": "Filippo Valsorda",
    "email": "filippo@golang.org",
    "time": "Sat Oct 30 02:01:35 2021 -0400"
  },
  "committer": {
    "name": "Filippo Valsorda",
    "email": "filippo@golang.org",
    "time": "Wed Apr 27 14:22:53 2022 +0000"
  },
  "message": "crypto/elliptic: use generics for nistec-based curves\n\nThere was no way to use an interface because the methods on the Point\ntypes return concrete Point values, as they should.\n\nA couple somewhat minor annoyances:\n\n    - Allocations went up due to #48849. This is fine here, where\n      math/big causes allocations anyway, but would probably not be fine\n      in nistec itself.\n\n    - Carrying the newPoint/newGenerator functions around as a field is\n      a little weird, even if type-safe. It also means we have to make\n      what were functions methods so they can access newPoint to return\n      the zero value. This is #35966.\n\nFor #52182\n\nChange-Id: I050f3a27f15d3f189818da80da9de0cba0548931\nReviewed-on: https://go-review.googlesource.com/c/go/+/360015\nReviewed-by: Ian Lance Taylor \u003ciant@google.com\u003e\nRun-TryBot: Filippo Valsorda \u003cfilippo@golang.org\u003e\nTryBot-Result: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Roland Shoemaker \u003croland@golang.org\u003e\nReviewed-by: Russ Cox \u003crsc@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b4ecd95f7f13f71c42b207392c77aa7c71a92f43",
      "new_mode": 33188,
      "new_path": "src/crypto/elliptic/nistec.go"
    },
    {
      "type": "delete",
      "old_id": "8a431c47692e05294147adf0e010efe7e6b83430",
      "old_mode": 33188,
      "old_path": "src/crypto/elliptic/p224.go",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "33a441d090037bbea509faa958d7e4f8570e9db9",
      "old_mode": 33188,
      "old_path": "src/crypto/elliptic/p384.go",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "6a3ade3c3670d54caa44f1840eacbba50e363022",
      "old_mode": 33188,
      "old_path": "src/crypto/elliptic/p521.go",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
