)]}'
{
  "commit": "da663b7ca86d70f7da979f9a48d2238ca5762bdd",
  "tree": "13df35142658248ccb145553ad55c3ce04595ae7",
  "parents": [
    "10458977f6a803859808365fad071731369f655a"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Fri Nov 04 16:37:17 2022 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sun Nov 06 13:14:26 2022 +0000"
  },
  "message": "Skip the field inversion when just measuring output size.\n\nhttps://boringssl-review.googlesource.com/c/boringssl/+/41084\ninadvertently added a somewhat expensive operation (field inversion) in\nthe path of EC_POINT_point2oct when passed with buf \u003d\u003d NULL. The result\nis a caller that calls the function twice, first to measure and then to\nserialize, actually ends up doing the field inversion twice.\n\nFix this by removing the dual-use calling convention from the internal\nfunction and just have a separate function to measure the output size\nseparately. It\u0027s slightly subtle because EC_POINT_point2oct would check\nfor the point at infinity by way of converting to affine coordinates, so\nwe do need to repeat that check.\n\nAs part of this, add a unit test for\nhttps://boringssl-review.googlesource.com/6488, which rejected the point\nat infinity way back.\n\nChange-Id: I3b6c0f95cced9c00489386f064a2c3f0bb1776f8\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/55065\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "edcfeaac0a16747e20e71d8d3e886efbb2af5a3e",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/ec_test.cc",
      "new_id": "c54adb5405744b87e701a00ea220d21762c9829d",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/ec_test.cc"
    },
    {
      "type": "modify",
      "old_id": "f6c8e8a63b66dd317b512631783e52f04108b771",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/internal.h",
      "new_id": "0d535468d042bacfac1ed183af90a1c4b276fa22",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/internal.h"
    },
    {
      "type": "modify",
      "old_id": "ddd0f37a197cb01c3cd6b6473310bbb83ffacbde",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/oct.c",
      "new_id": "70326355cafdb9136319c2b9e69f02d6f7e2ef7c",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/oct.c"
    },
    {
      "type": "modify",
      "old_id": "68d8909b917045004bf807cdd6f7cdfd4b49836e",
      "old_mode": 33188,
      "old_path": "crypto/trust_token/pmbtoken.c",
      "new_id": "ab09f0199da053ca80a57b6e313957add1805db1",
      "new_mode": 33188,
      "new_path": "crypto/trust_token/pmbtoken.c"
    },
    {
      "type": "modify",
      "old_id": "cedee1e8033d184522997a66a1404d043e98a801",
      "old_mode": 33188,
      "old_path": "crypto/trust_token/voprf.c",
      "new_id": "f8e1c4cfd0cc7082e74fdbc9c7ed957702878d00",
      "new_mode": 33188,
      "new_path": "crypto/trust_token/voprf.c"
    }
  ]
}
