)]}'
{
  "commit": "2fe0360a4e1b988e7b0aa0b4348bf55805512c09",
  "tree": "4d41735dbd152eb5ed9958cb56183caf7374a55d",
  "parents": [
    "72f015562c145a15e12af5ec588c7596a5de120c"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sat Jan 12 18:43:18 2019 +0000"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Tue Jan 22 23:18:36 2019 +0000"
  },
  "message": "Fix undefined pointer casts in SHA-512 code.\n\nCasting an unaligned pointer to uint64_t* is undefined, even on\nplatforms that support unaligned access. Additionally, dereferencing as\nuint64_t violates strict aliasing rules. Instead, use memcpys which we\nassume any sensible compiler can optimize. Also simplify the PULL64\nbusiness with the existing CRYPTO_bswap8.\n\nThis also removes the need for the\nSHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA logic. The generic C code now\nhandles unaligned data and the assembly already can as well. (The only\nproblematic platform with assembly is old ARM, but sha512-armv4.pl\nalready handles this via an __ARM_ARCH__ check.  See also OpenSSL\u0027s\nversion of this file which always defines\nSHA512_BLOCK_CAN_MANAGE_UNALIGNED_DATA if SHA512_ASM is defined.)\n\nAdd unaligned tests to digest_test.cc, so we retain coverage of\nunaligned EVP_MD inputs.\n\nChange-Id: Idfd8586c64bab2a77292af2fa8eebbd193e57c7d\nReviewed-on: https://boringssl-review.googlesource.com/c/34444\nCommit-Queue: Adam Langley \u003cagl@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "72e10b1154478484cb4f7d1de957669c2025f800",
      "old_mode": 33188,
      "old_path": "crypto/digest_extra/digest_test.cc",
      "new_id": "de2e9d134f92e1f2e41c9f88fd779db2ed561e84",
      "new_mode": 33188,
      "new_path": "crypto/digest_extra/digest_test.cc"
    },
    {
      "type": "modify",
      "old_id": "4def7f3a2155879b0ee10cb1e616d0a33dd0e9af",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/internal.h",
      "new_id": "a5d70c376df7672a18a14fbaf53a07d5f2763588",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/internal.h"
    },
    {
      "type": "modify",
      "old_id": "a68905637ecfd2c2808c9e80493c6dda01d3dad9",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/sha512.c",
      "new_id": "517e9b0d3d48caac9eeb8112b031845c3f85031e",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/sha512.c"
    },
    {
      "type": "modify",
      "old_id": "9cac47f13d582c173bf9df6366063f6e327e8478",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/sha/sha_test.cc",
      "new_id": "5b248b4ea70690da25a23e5cf53ebc625e7f8727",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/sha/sha_test.cc"
    }
  ]
}
