)]}'
{
  "commit": "c5a99415cc722455451175869580b5080acf0924",
  "tree": "113fa427f3e8b45fcea8ab87f9d94c3b0ae9f3ef",
  "parents": [
    "ad57528d2c978543106f9b115bd0eb658f3ebdd2"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Tue Nov 14 17:29:28 2023 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Nov 14 23:19:57 2023 +0000"
  },
  "message": "Limit the SHA_CTX workaround to C\n\nAnonymous unions are now standard in C, as of C11, but not in C++.\nEnabling sufficiently strict warnings in GCC and Clang flag this.\n\nI considered whether we should just remove this and go back to the\nOpenSSL formulation, but we actually rely on this being an array when\ncalling sha1_block_data_order. Upstream types these as taking pointers\nto the context, which would work, but taking a pointer to the state is a\nbit more accurate. (The assembly function should not touch the buffering\ninside the context.)\n\nThis anonymous union does mean wpa_supplicant\u0027s behavior is slightly\nquestionable from a strict aliasing perspective, but ah well.\nwpa_supplicant uses this to implement an old FIPS 186-2 PRF, which was\nbased on SHA-1\u0027s underlying permutation. Ideally we would either\nimplement this PRF for them, or have them use their own SHA-1\nimplementation. They\u0027ve actually done the latter for OpenSSL 3.0, but\nit\u0027s a little silly to duplicate the code.\n\nstrongswan and go/another-fips-186-2-prf seems to do this too. I\u0027m not\npositive what strongswan is doing. I\u0027ve filed crbug.com/boringssl/667\nfor follow-up work.\n\nBug: 667\nFixed: 566\nChange-Id: Ife32cc8c278e0dbbd95401ccdd3bd62945e10cf2\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/63967\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b113798aee91d34582e5d8c4d93b00ea8c90fecb",
      "old_mode": 33188,
      "old_path": "include/openssl/sha.h",
      "new_id": "1a3247f304fbc48b77c2ae45e5303b6f256e5080",
      "new_mode": 33188,
      "new_path": "include/openssl/sha.h"
    }
  ]
}
