)]}'
{
  "commit": "fe006d641079e8943833573bd1275ef51eb7fb60",
  "tree": "3dbb788b864e749680f68ea0a658f0f6e33dfb20",
  "parents": [
    "ec7f5165ddc680efbac18dc15b4905844d9e8db9"
  ],
  "author": {
    "name": "Russ Cox",
    "email": "rsc@golang.org",
    "time": "Wed Apr 27 09:03:28 2022 -0400"
  },
  "committer": {
    "name": "Russ Cox",
    "email": "rsc@golang.org",
    "time": "Fri Apr 29 14:23:17 2022 +0000"
  },
  "message": "[dev.boringcrypto] cmd/internal/notsha256: add new package\n\nPackage notsha256 implements the NOTSHA256 hash,\ndefined as bitwise NOT of SHA-256.\n\nIt will be used from the Go compiler toolchain where an\narbitrary hash is needed and the code currently reaches\nfor MD5, SHA1, or SHA256. The problem with all of those\nis that when we add GOEXPERIMENT\u003dboringcrypto, the\nbootstrap process will not converge if the compiler itself\ndepends on the boringcrypto cgo code.\nUsing notsha256 avoids boringcrypto.\n\nIt is possible that I don\u0027t fully understand the convergence\nproblem and that there is a way to make the compiler converge\nwhen using cgo, but keeping cgo out of the compiler seems safest.\nIt also makes clear that (except for the hack in codesign)\nthe code using this package doesn\u0027t care which hash is used.\n\nFor #51940.\n\nChange-Id: Ie7c661183eacf8413a9d2074c96cbb9361e125ef\nReviewed-on: https://go-review.googlesource.com/c/go/+/402594\nReviewed-by: Ian Lance Taylor \u003ciant@google.com\u003e\nRun-TryBot: Russ Cox \u003crsc@golang.org\u003e\nTryBot-Result: Gopher Robot \u003cgobot@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "06e9c379c94a6512692f9ff0def44d7aadccf5e2",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/notsha256/example_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "080b34497984c5ab96593b80b1338f60d98a2350",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/notsha256/sha256.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fa38e565068f3bd84aea576438a4b8b7e0a6a09b",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/notsha256/sha256_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "57cdf2efd5529366db0fdc0bba4813e33740c390",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/notsha256/sha256block.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "086a0ab25c88c68bcd819b9a68cccd51663a911e",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/notsha256/sha256block_386.s"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "676c4f70d9a8f8fdd32e3eb6043d28702aaec05f",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/notsha256/sha256block_amd64.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b2ae7c5fc9c213f1b0b10f50c3166d475b2ef76b",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/notsha256/sha256block_amd64.s"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d5c1eb0b2e15ac92045fb80e973f9bb7b5dac19f",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/notsha256/sha256block_arm64.s"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5a822ee479aece0fa39a52d623c7ae47c9778f58",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/notsha256/sha256block_decl.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "20ae8413838b4e888773aa226475922e4aeb7b5f",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/notsha256/sha256block_generic.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f534c26aa0f6e802738792eda058e6a22dd95759",
      "new_mode": 33188,
      "new_path": "src/cmd/internal/notsha256/sha256block_ppc64x.s"
    }
  ]
}
