)]}'
{
  "commit": "86361a391062e02012c92d1eefa20df3deb897f3",
  "tree": "d5aa9138c127b7f1ecd5510e2952f7791a69bb06",
  "parents": [
    "d035730ac7ebb82fbf1895fea50c29048bb6edb2"
  ],
  "author": {
    "name": "Brian Smith",
    "email": "brian@briansmith.org",
    "time": "Sat Mar 26 19:42:31 2016 -1000"
  },
  "committer": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Mon Apr 18 23:34:46 2016 +0000"
  },
  "message": "Require the public exponent to be available in RSA blinding.\n\nRequire the public exponent to be available unless\n|RSA_FLAG_NO_BLINDING| is set on the key. Also, document this.\n\nIf the public exponent |e| is not available, then we could compute it\nfrom |p|, |q|, and |d|. However, there\u0027s no reasonable situation in\nwhich we\u0027d have |p| or |q| but not |e|; either we have all the CRT\nparameters, or we have (e, d, n), or we have only (d, n). The\ncalculation to compute |e| exposes the private key to risk of side\nchannel attacks.\n\nAlso, it was particularly wasteful to compute |e| for each\n|BN_BLINDING| created, instead of just once before the first\n|BN_BLINDING| was created.\n\n|BN_BLINDING| now no longer needs to contain a duplicate copy of |e|,\nso it is now more space-efficient.\n\nNote that the condition |b-\u003ee !\u003d NULL| in |bn_blinding_update| was\nalways true since commit cbf56a5683ddda831ff91c46ea48d1fba545db66.\n\nChange-Id: Ic2fd6980e0d359dcd53772a7c31bdd0267e316b4\nReviewed-on: https://boringssl-review.googlesource.com/7594\nReviewed-by: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "776839e51ff00e1969ef120b6172cdcd094b0b8e",
      "old_mode": 33188,
      "old_path": "crypto/rsa/blinding.c",
      "new_id": "d9d90c2b47d56b4e3b6b0c87f6f4a454726ebd23",
      "new_mode": 33188,
      "new_path": "crypto/rsa/blinding.c"
    },
    {
      "type": "modify",
      "old_id": "ae8cdb7c5435fd5492662692e9f2af2165fad49e",
      "old_mode": 33188,
      "old_path": "crypto/rsa/internal.h",
      "new_id": "c6ea97f09b062e6a8155b3701f8b78aa758da08a",
      "new_mode": 33188,
      "new_path": "crypto/rsa/internal.h"
    },
    {
      "type": "modify",
      "old_id": "ad8e3f91b6d0c7ca03eac45374fd67ea7f311175",
      "old_mode": 33188,
      "old_path": "crypto/rsa/rsa_impl.c",
      "new_id": "3e30d898077deac90815c7d4e91ebfdd06b32ceb",
      "new_mode": 33188,
      "new_path": "crypto/rsa/rsa_impl.c"
    },
    {
      "type": "modify",
      "old_id": "ea42525c1b821f79a29150963c0bf97eff2a5ec0",
      "old_mode": 33188,
      "old_path": "include/openssl/rsa.h",
      "new_id": "83fdf16353c900d9ec699c88f94375bbd05c158e",
      "new_mode": 33188,
      "new_path": "include/openssl/rsa.h"
    }
  ]
}
