)]}'
{
  "commit": "3c19830f6f696b3b3dabacd3a4d55e36810a4c88",
  "tree": "3ffcad49194923653fe4b6e8489df73646ca1602",
  "parents": [
    "c18353d214c04da5349e97283d6d70b8176a96f8"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sun Feb 10 04:05:43 2019 +0000"
  },
  "committer": {
    "name": "Adam Langley",
    "email": "agl@google.com",
    "time": "Fri Feb 22 22:51:51 2019 +0000"
  },
  "message": "Avoid double-dispatch with AES_* vs aes_nohw_*.\n\nIn particular, consistently pair bsaes with aes_nohw.\n\nIdeally the aes_nohw_* calls in bsaes-*.pl would be patched out and\nbsaes grows its own constant-time key setup\n(https://crbug.com/boringssl/256), but I\u0027ll sort that out separately. In\nthe meantime, avoid going through AES_* which now dispatch. This avoids\nseveral nuisances:\n\n1. If we were to add, say, a vpaes-armv7.pl the ABI tests would break.\n   Fundamentally, we cannot assume that an AES_KEY has one and only one\n   representation and must keep everything matching up.\n\n2. AES_* functions should enable vpaes. This makes AES_* faster and\n   constant-time for vector-capable CPUs\n   (https://crbug.com/boringssl/263), relevant for QUIC packet number\n   encryption, allowing us to add vpaes-armv8.pl\n   (https://crbug.com/boringssl/246) without carrying a (likely) mostly\n   unused AES implementation.\n\n3. It\u0027s silly to double-dispatch when the EVP layer has already\n   dispatched.\n\n4. We should avoid asm calling into C. Otherwise, we need to test asm\n   for ABI compliance as both caller and callee. Currently we only test\n   it for callee compliance. When asm calls into asm, it *should* comply\n   with the ABI as caller too, but mistakes don\u0027t matter as long as the\n   called function triggers it. If the function is asm, this is fixed.\n   If it is C, we must care about arbitrary C compiler output.\n\nBug: 263\nChange-Id: Ic85af5c765fd57cbffeaf301c3872bad6c5bbf78\nReviewed-on: https://boringssl-review.googlesource.com/c/34874\nCommit-Queue: Adam Langley \u003cagl@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5387d38c07e06b0043951d460c323545cafcb7f2",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/aes/asm/bsaes-armv7.pl",
      "new_id": "9df81c1667225cf033f1be717aaa30b0c4dc86e9",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/aes/asm/bsaes-armv7.pl"
    },
    {
      "type": "modify",
      "old_id": "7745036f74f33cf754e95d2bf982aedd6e29d6d8",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/cipher/e_aes.c",
      "new_id": "69bf4353ac34a5b7dc0e6714207cba32c47023db",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/cipher/e_aes.c"
    }
  ]
}
