)]}'
{
  "commit": "298d8bea0356799ce77c871b22fd6780383365bf",
  "tree": "b9456c5c97f4c52e5dc1ecde1aa7142f04d32828",
  "parents": [
    "1c58648f14ed75f2a8cc3ae08897987d97f493ec"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Mon Aug 24 16:54:35 2020 -0400"
  },
  "committer": {
    "name": "Adam Langley",
    "email": "agl@google.com",
    "time": "Wed Aug 26 17:32:15 2020 +0000"
  },
  "message": "Add subject key ID and authority key ID accessors.\n\nAlthough extensions are accessible via X509_get_ext_d2i, OpenSSL\u0027s X509\nobject carries caches of a number of extensions. OpenSSL added accessors\nfor some of these in 1.1.0 (X509_get0_subject_key_id) and 1.1.1d (the\nothers), so mirror this. Note that, although they look like simpler\ngetters, the error-handling is tricky.\n\n(For now I\u0027m just looking to mirror OpenSSL\u0027s accessors and finally make\nthe structs opaque. Go\u0027s x509.Certificate structure also recognizes a\ncollection of built-in certificate fields, but error-handling is in the\nparser. That could be one path out of this cached fields mess, at the\ncost of making the parse operation do more work.)\n\nChange-Id: I051512aa296bd103229ba6eb2b5639d79e9eb63f\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/42624\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e77a3d1bbb69e31439d72a4a627769e43bdbbe5a",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3_purp.c",
      "new_id": "51783a4bab1c5f059a7bfe07d5ef998fe2c416ff",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3_purp.c"
    },
    {
      "type": "modify",
      "old_id": "aff7c0b94a740f7d4e03002cf7773208aa6b77d8",
      "old_mode": 33188,
      "old_path": "include/openssl/x509v3.h",
      "new_id": "2b2b4d910ceda5fd1ff0e82229008d9ba6ac57b6",
      "new_mode": 33188,
      "new_path": "include/openssl/x509v3.h"
    }
  ]
}
