)]}'
{
  "commit": "a934ee9e1fe4397e682f9f18b1f4f061d7400f9d",
  "tree": "23348a22eff003adae76d745f72221db3f121409",
  "parents": [
    "0b535498eae6b66da8b9534e7ca55a561248d90b"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sat Mar 15 02:07:05 2025 +0700"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri May 16 11:04:33 2025 -0700"
  },
  "message": "Remove the need for scratch space when squaring\n\nBN_sqr only has scratch space because it needs to compute a temporary\nbuffer with the a[i]^2 terms to add into the final result. But those\nterms can be computed and added in a single pass.\n\nThis isn\u0027t expected to have any performance impact on assembly-enabled\nbuilds. All those builds have bn_mul_mont optimizations, which means the\nplain squaring operation is more-or-less unused. (This begs the question\nwhy we have assembly optimizations for it, when it\u0027s only used in\nconjunction with builds that barely use it, but ah well.) On NO_ASM\nbuilds, the plain square operation is used more, but this impacts\nlinearly many terms out of an overall quadratic operation.\n\nI was unable to measure a consistent difference with or without this\nchange. Really the benefit is that, by removing the dependency on\nscratch space, we can remove the dependency on BN_CTX and can unify our\nvarious Montgomery multiplication codepaths.\n\nBug: 42290433\nChange-Id: I1527bd212529bbd4a1abedec22bb1dc3d7e12cbb\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/79307\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fa7eb1207bc790387f7f07267af3e3abf42a044e",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/bn/asm/bn-586.pl",
      "new_id": "ad6c7add54f39506edb97bddffe835d0c04d8f85",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/bn/asm/bn-586.pl"
    },
    {
      "type": "modify",
      "old_id": "cbf7107b02848df7c4d421dc18d6e1304fb2c184",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc",
      "new_id": "adf32d376ea15ecdcf62d23c97fd7de504e01d9d",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc"
    },
    {
      "type": "modify",
      "old_id": "eb7e82dffcee62601df84d2a7d0e1ccccbdb1ef6",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/bn/bn_test.cc",
      "new_id": "10fd3b41f68619c7da7dc142d6f0f6bf9f24d289",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/bn/bn_test.cc"
    },
    {
      "type": "modify",
      "old_id": "9cbbd855bff3ad0e2dbfe5cf7e02fe5534f8b1a4",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/bn/generic.cc.inc",
      "new_id": "9a42fa0a42b35949d0abf49d0e33b63704d270ba",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/bn/generic.cc.inc"
    },
    {
      "type": "modify",
      "old_id": "9dfc114833921a24fda0ad16367345bde3ead556",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/bn/internal.h",
      "new_id": "1ec2562508ee3ac0beb82438b86982773c0bea9b",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/bn/internal.h"
    },
    {
      "type": "modify",
      "old_id": "4a39ee3798b33016c90d34a9f276b28b26905051",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/bn/mul.cc.inc",
      "new_id": "e33fb48d6a70f6e810e02a2ec7f2a03bbd39595d",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/bn/mul.cc.inc"
    },
    {
      "type": "modify",
      "old_id": "3e6f791f560d8e4a31a216e6a8bd5096c4871593",
      "old_mode": 33188,
      "old_path": "gen/bcm/bn-586-apple.S",
      "new_id": "e96d0a4d0f4fce662d71792ac0bb102605d98b26",
      "new_mode": 33188,
      "new_path": "gen/bcm/bn-586-apple.S"
    },
    {
      "type": "modify",
      "old_id": "808f63e663ca2dc9c076ef02e981c564491c733f",
      "old_mode": 33188,
      "old_path": "gen/bcm/bn-586-linux.S",
      "new_id": "8e2bdb0eb7884f6fa321bea7a80a552fcc2f4a8d",
      "new_mode": 33188,
      "new_path": "gen/bcm/bn-586-linux.S"
    },
    {
      "type": "modify",
      "old_id": "1250eb6f269f4ba95dc691c661d0ebe96d14d655",
      "old_mode": 33188,
      "old_path": "gen/bcm/bn-586-win.asm",
      "new_id": "fd3fe01290c69f861e69d44bcffdeaeff6a81ab7",
      "new_mode": 33188,
      "new_path": "gen/bcm/bn-586-win.asm"
    }
  ]
}
