)]}'
{
  "commit": "c6ffcde8cdfd46bf0b16b5e6ceca2be0d4c6ea72",
  "tree": "88fd61a4bd6c16edaacd89c75404cf461acd50fd",
  "parents": [
    "7a26f97c9f296e587ee325348a62c1d5ba24a60a"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Tue Nov 10 01:49:10 2020 -0500"
  },
  "committer": {
    "name": "Adam Langley",
    "email": "agl@google.com",
    "time": "Thu Nov 12 18:17:21 2020 +0000"
  },
  "message": "Unwind M_ASN1_* macros for primitive types.\n\nAt one point in the SSLeay days, all the ASN1_STRING typedefs were\nseparate structs (but only in debug builds) and the M_ASN1_* macros\nincluded type casts to handle this.\n\nThis is long gone, but we still have the M_ASN1_* macros. Remove the\ncasts and switch code within the library to call the macros. Some\nsubtleties:\n\n- The \"MSTRING\" types (what OpenSSL calls its built-in CHOICEs\n  containing some set of string types) are weird because the M_FOO_new()\n  macro and the tasn_new.c FOO_new() function behave differently. I\u0027ve\n  split those into a separate CL.\n\n- ASN1_STRING_type, etc., call into the macro, which accesses the field\n  directly. This CL inverts the dependency.\n\n- ASN1_INTEGER_new and ASN1_INTEGER_free, etc., are generated via\n  IMPLEMENT_ASN1_STRING_FUNCTIONS in tasn_typ.c. I\u0027ve pointed\n  M_ASN1_INTEGER_new and M_ASN1_INTEGER_free to these fields. (The free\n  function is a no-op, but consistent.)\n\n- The other macros like M_ASN1_BIT_STRING_dup largely do not have\n  corresponding functions. I\u0027ve aligned with OpenSSL in just using the\n  generic ASN1_STRING_dup function. But some others, like\n  M_ASN1_OCTET_STRING_dup have a corresponding ASN1_OCTET_STRING_dup\n  function. OpenSSL retained these, so I have too.\n\nUpdate-Note: Some external code uses the M_ASN1_* macros. This should\nremain compatible, but some type errors may have gotten through\nunnoticed. This CL restores type-checking.\n\nChange-Id: I8656abc7d0f179192e05a852c97483c021ad9b20\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/44045\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4024ed2b24764b0a9d0d2c08a53dd7969781c71f",
      "old_mode": 33188,
      "old_path": "crypto/asn1/a_bitstr.c",
      "new_id": "b945cb188e8dad01c80c948c48c2cd6f8ba89c90",
      "new_mode": 33188,
      "new_path": "crypto/asn1/a_bitstr.c"
    },
    {
      "type": "modify",
      "old_id": "b99663b22408d6c71ce599a713c9bcf7c217cfc7",
      "old_mode": 33188,
      "old_path": "crypto/asn1/a_enum.c",
      "new_id": "d7a7357f8f5a470957c02d73d10319fb3335e9c2",
      "new_mode": 33188,
      "new_path": "crypto/asn1/a_enum.c"
    },
    {
      "type": "modify",
      "old_id": "2eda6c08dce03931fc7b7879b9c7160ecbf41551",
      "old_mode": 33188,
      "old_path": "crypto/asn1/a_int.c",
      "new_id": "1695fd07eb0a164580d04961d6eb19702e2c2661",
      "new_mode": 33188,
      "new_path": "crypto/asn1/a_int.c"
    },
    {
      "type": "modify",
      "old_id": "2e74d6bfdf955781778203a006ccc0646238529d",
      "old_mode": 33188,
      "old_path": "crypto/asn1/a_octet.c",
      "new_id": "312993b9b0ea1e7cfb2636bdfb05e4dec991561c",
      "new_mode": 33188,
      "new_path": "crypto/asn1/a_octet.c"
    },
    {
      "type": "modify",
      "old_id": "f7519df782b1da75fe9f647fd538347357266a8f",
      "old_mode": 33188,
      "old_path": "crypto/asn1/a_utctm.c",
      "new_id": "d5bd0e435f2ab21dd87115d0e923c1e7a6361252",
      "new_mode": 33188,
      "new_path": "crypto/asn1/a_utctm.c"
    },
    {
      "type": "modify",
      "old_id": "93957ba8d606e79c2974bf68cc2ef78a4e1d9e3a",
      "old_mode": 33188,
      "old_path": "crypto/asn1/asn1_lib.c",
      "new_id": "5fdbd5bcee12b89e2f4b61fe3ef575ab948f6e86",
      "new_mode": 33188,
      "new_path": "crypto/asn1/asn1_lib.c"
    },
    {
      "type": "modify",
      "old_id": "7f71c8c87e33aef75465556c75e847eb79bc9255",
      "old_mode": 33188,
      "old_path": "crypto/asn1/asn1_test.cc",
      "new_id": "54d6ee8d1ad356a04140e371fc91b86e54f7a751",
      "new_mode": 33188,
      "new_path": "crypto/asn1/asn1_test.cc"
    },
    {
      "type": "modify",
      "old_id": "92ed8715a2a21305be37cb07c279ab2c0dd3d06d",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_cmp.c",
      "new_id": "cf0a941527de1e2e0449c82665d3b86b89b3a4ed",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_cmp.c"
    },
    {
      "type": "modify",
      "old_id": "723bd49555f8bac9cc7a42d595416ab83080d699",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_r2x.c",
      "new_id": "a44b172fa543e097e9386278f31c3521eb650e67",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_r2x.c"
    },
    {
      "type": "modify",
      "old_id": "470bf70a06ef10bd68e86ee98532d85b9484aedf",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_set.c",
      "new_id": "6141af0d9ddd2ec4737429a1c8a546b314e04d47",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_set.c"
    },
    {
      "type": "modify",
      "old_id": "a5cb3a3d6e44534aafd924599d7ccaec34057874",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509cset.c",
      "new_id": "04f1f87eb2d34d15ecaa579100f52511b0fa1af7",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509cset.c"
    },
    {
      "type": "modify",
      "old_id": "8231a24b3c8590a3b2cd2cd7416c92142b88a679",
      "old_mode": 33188,
      "old_path": "crypto/x509/x_pkey.c",
      "new_id": "e562d7309efb1909b6b4d23d084784e076aef895",
      "new_mode": 33188,
      "new_path": "crypto/x509/x_pkey.c"
    },
    {
      "type": "modify",
      "old_id": "30c02e2c268020f8497ca059f524fb0159df1160",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3_akey.c",
      "new_id": "10376737a9bfb502b88e77dcb831c26c43a416cf",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3_akey.c"
    },
    {
      "type": "modify",
      "old_id": "a142e0e76a4203cadf515225bbc7433aace56449",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3_alt.c",
      "new_id": "4d540754c9cbb28f6b89840fea7c498af62a7fae",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3_alt.c"
    },
    {
      "type": "modify",
      "old_id": "86a8c3615bc48ad0a418bba4c11a84683ed5ec0d",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3_bitst.c",
      "new_id": "402f830fb2f227393d7d4c00af32f9b7a48567df",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3_bitst.c"
    },
    {
      "type": "modify",
      "old_id": "ba02873da9184ee6a5ee595a37c1ef31e3ef705c",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3_conf.c",
      "new_id": "158f8df18df6b74eac668eb90bd76c6aadf211c6",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3_conf.c"
    },
    {
      "type": "modify",
      "old_id": "18d260b56f697f49948b7d4ed0f115bedc539a01",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3_cpols.c",
      "new_id": "216e7aea37d0f53435c805b8419f7c788e85853b",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3_cpols.c"
    },
    {
      "type": "modify",
      "old_id": "6b2056dcb4a1c3c61eaf9a99f20f8b759a43cfc9",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3_ia5.c",
      "new_id": "700200c52cf03fb589a2d16b51672a59a489ee67",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3_ia5.c"
    },
    {
      "type": "modify",
      "old_id": "b508eb3c58770015c05e600ec8ed641f993ccaa7",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3_prn.c",
      "new_id": "f6f341a222171600ac4147bb5a2800109c4e13e7",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3_prn.c"
    },
    {
      "type": "modify",
      "old_id": "eb5ba55e972a8c5bd570c28269933c82cf86c301",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3_skey.c",
      "new_id": "140356d7af22ff522b2e59164f3aaae12889f2b5",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3_skey.c"
    },
    {
      "type": "modify",
      "old_id": "289717175cb97ead4cafaea3bc94be89824c3638",
      "old_mode": 33188,
      "old_path": "include/openssl/asn1.h",
      "new_id": "27753033ecf42533526168e18d2abfd7cd036299",
      "new_mode": 33188,
      "new_path": "include/openssl/asn1.h"
    }
  ]
}
