)]}'
{
  "commit": "7a22a65098b6c067fc8f30e0454030d930f67167",
  "tree": "c501a4c50267b687dafdf4fdc2dfbf7b597fd66a",
  "parents": [
    "ea53011c6e8e68bd1c1d2883cc11cbf2d004835f"
  ],
  "author": {
    "name": "Adam Langley",
    "email": "alangley@gmail.com",
    "time": "Tue Apr 07 10:53:24 2020 -0700"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Wed Apr 08 18:29:21 2020 +0000"
  },
  "message": "Only draw from RDRAND for additional_data if it\u0027s fast.\n\nWe seek to incorporate entropy into every |RAND_bytes| call to avoid\nproblems with fork() and VM cloning. However, on some chips, RDRAND is\nsignificantly slower than a system call thus crushing the performance of\n|RAND_bytes|.\n\nThis change disables use of RDRAND for this opportunistic draw for\nnon-Intel chips. BoringSSL will then fall back to either the OS, or\nnothing (if fork-unsafe mode has been set).\n\nRDRAND is still used for seeding the PRNG whenever it is available.\n\nThis now adds a new blocking case: RDRAND may be used for seeding, but\nthe syscall to get additional_data was still blocking. Previously that\ndidn\u0027t matter because, if a syscall was used to get additional_data,\nthen a blocking one had already been used to seed. Thus the syscall for\nadditional_data is now non-blocking.\n\nAlso, we had both |hwrand| and |rdrand| names hanging around. We don\u0027t\nsupport entropy instructions other than RDRAND, so unify around |rdrand|\nnaming. If we ever do add support for more we can properly abstract at\nthat time.\n\nChange-Id: I91121b270a2ebc667543dad1324f37285daad893\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/40565\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cc41fc47ff2d585dec7b1e12cac3cb4b691e57d1",
      "old_mode": 33188,
      "old_path": "crypto/cpu-intel.c",
      "new_id": "53ece950243b117c062a3dae661f1a934d6c4b13",
      "new_mode": 33188,
      "new_path": "crypto/cpu-intel.c"
    },
    {
      "type": "modify",
      "old_id": "280aae428d2ec4240471cfb2aec9a99a63875f81",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/rand/internal.h",
      "new_id": "cf77bb3a22945b287f124be57eac5853246d6f1e",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/rand/internal.h"
    },
    {
      "type": "modify",
      "old_id": "87d7b30a06c7b54b4cd56df7200f6001d20098d7",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/rand/rand.c",
      "new_id": "7bed5797a90518406e5be00ed6f11d986d6917f7",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/rand/rand.c"
    },
    {
      "type": "modify",
      "old_id": "6ca34005d4b8b18302da8fde4ae4cafa436181d9",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/rand/urandom.c",
      "new_id": "c20340a64c53329da49f985115333f3fbb5432ea",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/rand/urandom.c"
    },
    {
      "type": "modify",
      "old_id": "38b0202df3e1c6882591e97f081acef6992f5058",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/rand/urandom_test.cc",
      "new_id": "266a603488ba68d838c626877ca87e6a1b0bdd5f",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/rand/urandom_test.cc"
    },
    {
      "type": "modify",
      "old_id": "34547ea5555aaef58d42640b33f9709e7823d964",
      "old_mode": 33188,
      "old_path": "crypto/rand_extra/deterministic.c",
      "new_id": "36774c8087eb60934da3e8f4972ef8d4519d8ce9",
      "new_mode": 33188,
      "new_path": "crypto/rand_extra/deterministic.c"
    },
    {
      "type": "modify",
      "old_id": "c4c27871169ebff247b4500e2ff84f150c6d695f",
      "old_mode": 33188,
      "old_path": "util/all_tests.json",
      "new_id": "a251e5c695c636cf1d036cff6f90de432a9b048f",
      "new_mode": 33188,
      "new_path": "util/all_tests.json"
    }
  ]
}
