)]}'
{
  "commit": "eda47f5d98d46cca612152c648ad98c74619d946",
  "tree": "acd09c83b0c74dbae009edc2b98de1fe234d99d6",
  "parents": [
    "56986f905f973d478b0ba44ccdc569be0074d5fb"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sun Apr 01 14:31:44 2018 -0400"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Wed Apr 04 21:33:22 2018 +0000"
  },
  "message": "Make generic point arithmetic slightly less variable-time.\n\nThe generic code special-cases affine points, but this leaks\ninformation. (Of course, the generic code also doesn\u0027t have a\nconstant-time multiply and other problems, but one thing at a time.)\n\nThe optimization in point doubling is not useful. Point multiplication\nmore-or-less never doubles an affine point. The optimization in point\naddition *is* useful because the wNAF code converts the tables to\naffine. Accordingly, align with the P-256 code which adds a \u0027mixed\u0027\nparameter.\n\n(I haven\u0027t aligned the formally-verified point formulas themselves yet;\ninitial testing suggests that the large number of temporaries take a\nperf hit with BIGNUM. I\u0027ll check the results in EC_FELEM, which will be\nstack-allocated, to see if we still need to help the compiler out.)\n\nStrangly, it actually got a bit faster with this change. I\u0027m guessing\nbecause now it doesn\u0027t need to bother with unnecessary comparisons and\nmaybe was kinder to the branch predictor?\n\nBefore:\nDid 2201 ECDH P-384 operations in 3068341us (717.3 ops/sec)\nDid 4092 ECDSA P-384 signing operations in 3076981us (1329.9 ops/sec)\nDid 3503 ECDSA P-384 verify operations in 3024753us (1158.1 ops/sec)\nDid 992 ECDH P-521 operations in 3017884us (328.7 ops/sec)\nDid 1798 ECDSA P-521 signing operations in 3059000us (587.8 ops/sec)\nDid 1581 ECDSA P-521 verify operations in 3033142us (521.2 ops/sec)\n\nAfter:\nDid 2310 ECDH P-384 operations in 3092648us (746.9 ops/sec)\nDid 4080 ECDSA P-384 signing operations in 3044588us (1340.1 ops/sec)\nDid 3520 ECDSA P-384 verify operations in 3056070us (1151.8 ops/sec)\nDid 992 ECDH P-521 operations in 3012779us (329.3 ops/sec)\nDid 1792 ECDSA P-521 signing operations in 3019459us (593.5 ops/sec)\nDid 1600 ECDSA P-521 verify operations in 3047749us (525.0 ops/sec)\n\nBug: 239\nChange-Id: If5d13825fc98e4c58bdd1580cf0245bf7ce93a82\nReviewed-on: https://boringssl-review.googlesource.com/27004\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nCQ-Verified: CQ bot account: commit-bot@chromium.org \u003ccommit-bot@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "904466af3e3026cc390999cc27a9fd1b911f9a26",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/ec.c",
      "new_id": "ee7ec55e6a1304e960780ac499b2ba31fe402f7c",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/ec.c"
    },
    {
      "type": "modify",
      "old_id": "742e94e1fa3b1ab9992384f4e7c9c5788ca13198",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/internal.h",
      "new_id": "c5d7291341ded89e3523b232f75d0d746587b690",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/internal.h"
    },
    {
      "type": "modify",
      "old_id": "e87409c60aeb5479fc5d4dee07c296b35a69545c",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/simple.c",
      "new_id": "4fb394c55edd5d60d11f66072bd9fc88af3a7e5a",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/simple.c"
    },
    {
      "type": "modify",
      "old_id": "7bc0bc7bc5e952c250e052c8e4640ac79cdb702b",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/wnaf.c",
      "new_id": "49fc8bca348f3c2fd99dcb99192c988f8b9c0af5",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/wnaf.c"
    }
  ]
}
