)]}'
{
  "commit": "d4d501c1596debd165f425b0364c4c678d04c741",
  "tree": "4966be672d1c5ca5ab6a05c403a0204131e329b7",
  "parents": [
    "a810d82575ecbde26406fa583371f807f8721ed7"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Thu Apr 30 20:23:33 2020 -0400"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Tue May 12 19:24:22 2020 +0000"
  },
  "message": "Trim Z coordinates from the OPENSSL_SMALL P-256 tables.\n\nThe small P-256 tables currently store 2 * 16 points in Jacobian\ncoordinates, but all the Z values are one, except for the two entries\nwhich store infinity. Instead, store only affine coordinates and omit\nthe infinity entries. (We can recover infinity with constant-time\nselects.)\n\nThis trims 1152 bytes from the table. Comparing the sizes of the bssl\ntool (stripped, otherwise debug symbols undo the size gain), the binary\nis 4096 bytes smaller, but I suspect this is just an artifact of\nsomething rounding to page sizes.\n\nAlong the way, I\u0027ve scripted the table generation and merged it into a\nmuch generalized version of make_p256-x86_64-table.go.\n\nAs a bonus, by cutting the size of the table we scan, it\u0027s faster!\n(ECDSA verify was already not scanning a table, so that one staying the\nsame is expected.)\n\nBefore:\nDid 22302 ECDH P-256 operations in 4009795us (5561.9 ops/sec)\nDid 62000 ECDSA P-256 signing operations in 4020075us (15422.6 ops/sec)\nDid 26544 ECDSA P-256 verify operations in 4056526us (6543.5 ops/sec)\n\nAfter:\nDid 23001 ECDH P-256 operations in 4016544us (5726.6 ops/sec) [+3.0%]\nDid 66000 ECDSA P-256 signing operations in 4043083us (16324.2 ops/sec) [+5.8%]\nDid 26544 ECDSA P-256 verify operations in 4051220us (6552.1 ops/sec) [+0.1%]\n\nChange-Id: Ie88898fd56e57505e3a325c50bbaf0dc5d42eeb3\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/41164\nReviewed-by: Steven Valdez \u003csvaldez@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "delete",
      "old_id": "604fb85b847a056ce8b9bebec1273f66e57e2ebe",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/make_p256-x86_64-table.go",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8abefad3ea0f402e9db5d4d92481d28188ae8857",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/make_tables.go"
    },
    {
      "type": "modify",
      "old_id": "ac0d657632dfbf0b44aa09fa066aa0425f6cb839",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/p256-x86_64-table.h",
      "new_id": "357045f6ae81ca109d65fbe8517465d6f21d8366",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/p256-x86_64-table.h"
    },
    {
      "type": "modify",
      "old_id": "542550f1c9166d18bbd9b98aa90ae4defb13d103",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/p256.c",
      "new_id": "9355ac1910bd6fd9910a4600ec470a60735b2ffd",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/p256.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "14129a36f34e8bd5263f6bec4091decde9c07f96",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/p256_table.h"
    }
  ]
}
