)]}'
{
  "commit": "c77d0f8c776c89195d4095d51f2eaebb621887a6",
  "tree": "eedaf60279006b8026d9127c763c22b3c86264f4",
  "parents": [
    "f2a3aae4ac4d914d9fb8587ee7d1a7756bbc66c3"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Dec 06 23:07:11 2023 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Dec 12 16:47:41 2023 +0000"
  },
  "message": "Document and fix up name hashing functions\n\nThese return 32-bit hashes, so they should return a platform-independent\nuint32_t. I\u0027ve categorized X509_issuer_name_hash and friends under\n\"convenience\" functions. X509_NAME_hash and X509_NAME_hash_old are as\nyet unclassified. Since the hash function is only relevant to\nX509_LOOKUP_hash_dir, I\u0027m thinking I\u0027ll put them with that, once that\u0027s\norganized.\n\nWhile I\u0027m here, simplify the implementations of these functions. The\nhash operation itself can be made infallible and allocation-free easily.\nHowever the function itself is still fallible (and non-const, and not\nthread-safe) due to the cached encoding mess. X509Test.NameHash captures\nexisting hash values, so we\u0027d notice if this changed the output.\n\nUpdate-Note: This is source-compatible for C/C++, including with\n-Wconversion, but some bindings need a patch in cl/588632028 to be\ncompatible.\n\nBug: 426\nChange-Id: I9bfd3f1093ab15c44d8cb2d81d53aeb3d6e49fc9\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/64647\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "64cec53259776d241c36e8663edf03e28b9cf1e1",
      "old_mode": 33188,
      "old_path": "crypto/x509/by_dir.c",
      "new_id": "f5e4787224d9ac087045352dbe6c7d1838ac7dd5",
      "new_mode": 33188,
      "new_path": "crypto/x509/by_dir.c"
    },
    {
      "type": "modify",
      "old_id": "afc6cd7e784b82e318e86e5fcdfe7a654edbf025",
      "old_mode": 33188,
      "old_path": "crypto/x509/internal.h",
      "new_id": "b277eb0dba9cb7192ba13fa653e86a64e2e9b5c3",
      "new_mode": 33188,
      "new_path": "crypto/x509/internal.h"
    },
    {
      "type": "modify",
      "old_id": "a934e39e3c6281ac6a0581a55c555c3e84fef12f",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_cmp.c",
      "new_id": "714212a308ce3ac9adbdc5ef015624229e89a68d",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_cmp.c"
    },
    {
      "type": "modify",
      "old_id": "d30f9bbcab4aacaa26a08f8c891ba5a079374c7f",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_test.cc",
      "new_id": "f8c930fb5467fedc353fe06da3718efdb241f0db",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_test.cc"
    },
    {
      "type": "modify",
      "old_id": "989b70909d71c0267ab35a173246ce31af5cc31d",
      "old_mode": 33188,
      "old_path": "include/openssl/x509.h",
      "new_id": "66668a635d7f1f83e938addcc2ff08fb6efefa9b",
      "new_mode": 33188,
      "new_path": "include/openssl/x509.h"
    }
  ]
}
