)]}'
{
  "commit": "170045f4900cf6ffc2d5bf162a4ef196b2400e1a",
  "tree": "db8c748d63730c2d1bb12f4d2bd7ec29744f3d0f",
  "parents": [
    "e3a7bd0a812c063e7c457d3c5e3808b4670b1049"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Jun 30 10:27:38 2021 -0400"
  },
  "committer": {
    "name": "Adam Langley",
    "email": "agl@google.com",
    "time": "Wed Jun 30 21:01:26 2021 +0000"
  },
  "message": "Make ASN1_OBJECT opaque.\n\nThis cleans up the story with\nhttps://boringssl-review.googlesource.com/c/boringssl/+/46164. None of\nour exported functions mutate ASN1_OBJECTS, with the exception of\nASN1_OBJECT_free, the object reuse mode of c2i_ASN1_OBJECT, and their\ncallers. Those functions check flags to correctly handle static\nASN1_OBJECTs.\n\nFor now, I\u0027ve kept the struct definition in crypto/asn1 even though\nASN1_OBJECT is partially in crypto/obj. Since we prefer to cut\ndependencies to crypto/asn1, we probably should rearrange this later.\n\nI\u0027ve also, for now, kept crypto/asn1/internal.h at C-style comments,\nthough our style story here is weird. (Maybe it\u0027s time to clang-format\ncrypto/asn1 and crypto/x509? Patches from upstream rarely directly apply\nanyway, since we\u0027re a mix of 1.0.2 and 1.1.1 in crypto/x509.)\n\nUpdate-Note: ASN1_OBJECT is now opaque. Callers should use accessors.\n\nChange-Id: I655e6bd8afda98a2d1e676c3abeb873aa8de6691\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/48326\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "665e0d6b32b395c82466a3b10517619c5ade039a",
      "old_mode": 33188,
      "old_path": "crypto/asn1/a_object.c",
      "new_id": "de27e876af43c8900adf5dd40386ad5bf58def87",
      "new_mode": 33188,
      "new_path": "crypto/asn1/a_object.c"
    },
    {
      "type": "modify",
      "old_id": "a2dbf76f66426b7742449a7b4153e06c676fe31c",
      "old_mode": 33188,
      "old_path": "crypto/asn1/internal.h",
      "new_id": "4e42c705316ae1a3c019eefa6b17c201b6ae80a8",
      "new_mode": 33188,
      "new_path": "crypto/asn1/internal.h"
    },
    {
      "type": "modify",
      "old_id": "311c5cba0e359a20b34ba6c7ee84c34b6068049f",
      "old_mode": 33188,
      "old_path": "crypto/digest_extra/digest_extra.c",
      "new_id": "a93601c170dc407f7d6d628fb7e2d2f0788467f3",
      "new_mode": 33188,
      "new_path": "crypto/digest_extra/digest_extra.c"
    },
    {
      "type": "modify",
      "old_id": "6310785e31af132dd91b596a7fc863ce789721c4",
      "old_mode": 33188,
      "old_path": "crypto/obj/obj.c",
      "new_id": "958625d02cd922cfcc1c84c17bedde91e7776765",
      "new_mode": 33188,
      "new_path": "crypto/obj/obj.c"
    },
    {
      "type": "modify",
      "old_id": "e623843bc07ac1121ea1f154e2e8b0826ab4243a",
      "old_mode": 33188,
      "old_path": "crypto/obj/obj_test.cc",
      "new_id": "08796e2b94188fa9c93d47256de4ae0832657e40",
      "new_mode": 33188,
      "new_path": "crypto/obj/obj_test.cc"
    },
    {
      "type": "modify",
      "old_id": "06eeab006ee2873b7029bca6fbf1a910b86c7b87",
      "old_mode": 33188,
      "old_path": "include/openssl/asn1.h",
      "new_id": "db467fd8d0f8c1f9f754859e592c13fe8ae35cf3",
      "new_mode": 33188,
      "new_path": "include/openssl/asn1.h"
    },
    {
      "type": "modify",
      "old_id": "187586daebb78ec3380bc4db2c604d2b9f2afb45",
      "old_mode": 33188,
      "old_path": "include/openssl/obj.h",
      "new_id": "ad7271ec9cbedab5b99156803f8acdf8cd790b0c",
      "new_mode": 33188,
      "new_path": "include/openssl/obj.h"
    }
  ]
}
