)]}'
{
  "commit": "9e9c7a0aec0f821b54006681d4fdfba8a0cd6679",
  "tree": "c8c1442c614906bb1989389b854230c57260e494",
  "parents": [
    "0ec08283c8e3a673d9916c186f8d2f5428846862"
  ],
  "author": {
    "name": "Russ Cox",
    "email": "rsc@golang.org",
    "time": "Wed Apr 27 09:02:53 2022 -0400"
  },
  "committer": {
    "name": "Russ Cox",
    "email": "rsc@golang.org",
    "time": "Fri Apr 29 14:23:28 2022 +0000"
  },
  "message": "[dev.boringcrypto] crypto/..., go/build: align deps test with standard rules\n\nOne annoying difference between dev.boringcrypto and master is that\nthere is not a clear separation between low-level (math/big-free)\ncrypto and high-level crypto, because crypto/internal/boring imports\nboth encoding/asn1 and math/big.\n\nThis CL removes both those problematic imports and aligns the\ndependency rules in the go/build test with the ones in the main\nbranch.\n\nTo remove encoding/asn1, the crypto/internal/boring APIs change to\naccepting and returning encoded ASN.1, leaving crypto/ecdsa to do the\nmarshaling and unmarshaling, which it already contains code to do.\n\nTo remove math/big, the crypto/internal/boring package defines\ntype BigInt []uint, which is the same representation as a big.Int\u0027s\ninternal storage. The new package crypto/internal/boring/bbig provides\nconversions between BigInt and *big.Int. The boring package can then\nbe in the low-level crypto set, and any package needing to use bignum\nAPIs (necessarily in the high-level crypto set) can import bbig to\nconvert.\n\nTo simplify everything we hide from the test the fact that\ncrypto/internal/boring imports cgo. Better to pretend it doesn\u0027t and\nkeep the prohibitions that other packages like crypto/aes must not use\ncgo (outside of BoringCrypto).\n\n\t$ git diff origin/master src/go/build/deps_test.go\n\tdiff --git a/src/go/build/deps_test.go b/src/go/build/deps_test.go\n\tindex 6ce872e297..a63979cc93 100644\n\t--- a/src/go/build/deps_test.go\n\t+++ b/src/go/build/deps_test.go\n\t@@ -402,9 +402,13 @@ var depsRules \u003d `\n\t \tNET, log\n\t \t\u003c net/mail;\n\n\t+\tNONE \u003c crypto/internal/boring/sig;\n\t+\tsync/atomic \u003c crypto/internal/boring/fipstls;\n\t+\tcrypto/internal/boring/sig, crypto/internal/boring/fipstls \u003c crypto/tls/fipsonly;\n\t+\n\t \t# CRYPTO is core crypto algorithms - no cgo, fmt, net.\n\t \t# Unfortunately, stuck with reflect via encoding/binary.\n\t-\tencoding/binary, golang.org/x/sys/cpu, hash\n\t+\tcrypto/internal/boring/sig, encoding/binary, golang.org/x/sys/cpu, hash\n\t \t\u003c crypto\n\t \t\u003c crypto/subtle\n\t \t\u003c crypto/internal/subtle\n\t@@ -413,6 +417,8 @@ var depsRules \u003d `\n\t \t\u003c crypto/ed25519/internal/edwards25519/field, golang.org/x/crypto/curve25519/internal/field\n\t \t\u003c crypto/ed25519/internal/edwards25519\n\t \t\u003c crypto/cipher\n\t+\t\u003c crypto/internal/boring\n\t+\t\u003c crypto/boring\n\t \t\u003c crypto/aes, crypto/des, crypto/hmac, crypto/md5, crypto/rc4,\n\t \t  crypto/sha1, crypto/sha256, crypto/sha512\n\t \t\u003c CRYPTO;\n\t@@ -421,6 +427,7 @@ var depsRules \u003d `\n\n\t \t# CRYPTO-MATH is core bignum-based crypto - no cgo, net; fmt now ok.\n\t \tCRYPTO, FMT, math/big, embed\n\t+\t\u003c crypto/internal/boring/bbig\n\t \t\u003c crypto/rand\n\t \t\u003c crypto/internal/randutil\n\t \t\u003c crypto/ed25519\n\t@@ -443,7 +450,8 @@ var depsRules \u003d `\n\t \t\u003c golang.org/x/crypto/hkdf\n\t \t\u003c crypto/x509/internal/macos\n\t \t\u003c crypto/x509/pkix\n\t-\t\u003c crypto/x509\n\t+\t\u003c crypto/x509;\n\t+\tcrypto/internal/boring/fipstls, crypto/x509\n\t \t\u003c crypto/tls;\n\n\t \t# crypto-aware packages\n\t@@ -653,6 +661,9 @@ func findImports(pkg string) ([]string, error) {\n\t \t}\n\t \tvar imports []string\n\t \tvar haveImport \u003d map[string]bool{}\n\t+\tif pkg \u003d\u003d \"crypto/internal/boring\" {\n\t+\t\thaveImport[\"C\"] \u003d true // kludge: prevent C from appearing in crypto/internal/boring imports\n\t+\t}\n\t \tfset :\u003d token.NewFileSet()\n\t \tfor _, file :\u003d range files {\n\t \t\tname :\u003d file.Name()\n\nFor #51940.\n\nChange-Id: I26fc752484310d77d22adb06495120a361568d04\nReviewed-on: https://go-review.googlesource.com/c/go/+/395877\nTryBot-Result: Gopher Robot \u003cgobot@golang.org\u003e\nReviewed-by: Roland Shoemaker \u003croland@golang.org\u003e\nRun-TryBot: Russ Cox \u003crsc@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d7de5c96e5387759f89e0c3332c4531ac8c74476",
      "old_mode": 33188,
      "old_path": "src/crypto/ecdsa/boring.go",
      "new_id": "1529de3f2bc2a43715c7fc929555283dabedc95e",
      "new_mode": 33188,
      "new_path": "src/crypto/ecdsa/boring.go"
    },
    {
      "type": "modify",
      "old_id": "d3ae456b844a4f75ecb5effd64d7bb5511906c1f",
      "old_mode": 33188,
      "old_path": "src/crypto/ecdsa/ecdsa.go",
      "new_id": "efc5dd506737c069e32c1fc1a442c0876e10b26d",
      "new_mode": 33188,
      "new_path": "src/crypto/ecdsa/ecdsa.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5ce46972b31074b714e91775ac16e39d191dc673",
      "new_mode": 33188,
      "new_path": "src/crypto/internal/boring/bbig/big.go"
    },
    {
      "type": "modify",
      "old_id": "dd9eac569b84e587ba5e9df4259f4793d6825b2d",
      "old_mode": 33188,
      "old_path": "src/crypto/internal/boring/boring.go",
      "new_id": "d46166e4e16e694020d1482e2e0a85a09186dfc9",
      "new_mode": 33188,
      "new_path": "src/crypto/internal/boring/boring.go"
    },
    {
      "type": "modify",
      "old_id": "64f41e3c823e8437e00629740022ea0ddd06ae01",
      "old_mode": 33188,
      "old_path": "src/crypto/internal/boring/doc.go",
      "new_id": "6060fe5951afb53c9387381c95ef20000187f4d7",
      "new_mode": 33188,
      "new_path": "src/crypto/internal/boring/doc.go"
    },
    {
      "type": "modify",
      "old_id": "20612e6a2c042b12c26c59f831d618298dde3099",
      "old_mode": 33188,
      "old_path": "src/crypto/internal/boring/ecdsa.go",
      "new_id": "884c4b746d295824bda5f94c9237260e1b5295c7",
      "new_mode": 33188,
      "new_path": "src/crypto/internal/boring/ecdsa.go"
    },
    {
      "type": "modify",
      "old_id": "df165885849a4981f30d5791d98f58cc3ac0f465",
      "old_mode": 33188,
      "old_path": "src/crypto/internal/boring/notboring.go",
      "new_id": "bb88fb00048cddc40f507567c1d98ffb64432635",
      "new_mode": 33188,
      "new_path": "src/crypto/internal/boring/notboring.go"
    },
    {
      "type": "modify",
      "old_id": "642287709e5c157046d0c6dc1ca37af891563de9",
      "old_mode": 33188,
      "old_path": "src/crypto/internal/boring/rsa.go",
      "new_id": "64c83c21c5bd041b7ff3cb2fac31d535e1a5ad00",
      "new_mode": 33188,
      "new_path": "src/crypto/internal/boring/rsa.go"
    },
    {
      "type": "modify",
      "old_id": "49a195f0f4e2634756e625035d63e3ecc26e74fe",
      "old_mode": 33188,
      "old_path": "src/crypto/rsa/boring.go",
      "new_id": "362e9307f8608f2664aa07fe62cef7492531ca05",
      "new_mode": 33188,
      "new_path": "src/crypto/rsa/boring.go"
    },
    {
      "type": "modify",
      "old_id": "eef967f826ea1d99fafc04ff78a330184944b8a0",
      "old_mode": 33188,
      "old_path": "src/crypto/rsa/rsa.go",
      "new_id": "e084be15cc1b59a87db1d084e86ab959847f5b30",
      "new_mode": 33188,
      "new_path": "src/crypto/rsa/rsa.go"
    },
    {
      "type": "modify",
      "old_id": "d955081869cc4f69263e8a6fb1b48b3e03b2e25f",
      "old_mode": 33188,
      "old_path": "src/go/build/deps_test.go",
      "new_id": "91220a88bbad45164b6d280c81a4eb9269d7cc88",
      "new_mode": 33188,
      "new_path": "src/go/build/deps_test.go"
    }
  ]
}
