)]}'
{
  "commit": "7fac386a152ae9f0d62e4efe11e1a3593f04ebf6",
  "tree": "00dc2dd01a597a5d7a9bf3e842c51cfe4cedd4d3",
  "parents": [
    "8a38184183d709bc00236660abc3ecc35205e00d"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sat Oct 30 12:37:44 2021 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Mar 07 20:39:16 2022 +0000"
  },
  "message": "Add an explicit indefinite-length output to CBS_get_any_ber_asn1_element.\n\nHaving to check for header_len \u003d\u003d len and a last byte of 0x80 is\nactually unambiguous, but not obvious. Before we supported multi-byte\ntags, a two-byte header was always {tag, 0x80}, but now a three-byte\nheader could be {tag1, tag2, 0x80}. But a 0x80 suffix could also be\n{tag, 0x81, 0x80} for a 128-byte definite-length element.\n\nThis is unambiguous because header_len \u003d\u003d len implies either zero length\nor indefinite-length, and it is not possible to encode a definite length\nof zero, in BER or DER, with a header that ends in 0x80. Still, rather\nthan go through all this, we can just report indefinite lengths to the\ncaller directly.\n\nUpdate-Note: This is a breaking change to CBS_get_any_ber_asn1_element.\nThere is only one external caller of this function, and it should be\npossible to fix them atomically with this change, so I haven\u0027t bothered\nintroducing another name, etc. (See cl/429632075 for the fix.)\n\nChange-Id: Ic94dab562724fd0b388bc8d2a7a223f21a8da413\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/51625\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e7f67ddfaa42c7c514fb255c680287f46df63844",
      "old_mode": 33188,
      "old_path": "crypto/bytestring/ber.c",
      "new_id": "d9b780f9ed82c115d3d06217faa29e9695f884ac",
      "new_mode": 33188,
      "new_path": "crypto/bytestring/ber.c"
    },
    {
      "type": "modify",
      "old_id": "985e38cccc161dba1b89b5a440ffeb171eefa256",
      "old_mode": 33188,
      "old_path": "crypto/bytestring/bytestring_test.cc",
      "new_id": "77261a304b60dd06966d2673596011401ffa6535",
      "new_mode": 33188,
      "new_path": "crypto/bytestring/bytestring_test.cc"
    },
    {
      "type": "modify",
      "old_id": "803c97ae554b5ca2b5dbe65ee065419da63b8b20",
      "old_mode": 33188,
      "old_path": "crypto/bytestring/cbs.c",
      "new_id": "293e66c35d42b796a3ce9e9d69caec0cd6a0db80",
      "new_mode": 33188,
      "new_path": "crypto/bytestring/cbs.c"
    },
    {
      "type": "modify",
      "old_id": "983eadc5d3b47dd915215227958dc8a94d12e382",
      "old_mode": 33188,
      "old_path": "include/openssl/base.h",
      "new_id": "e8d7994801353f83553b9bcefd2a97a274934256",
      "new_mode": 33188,
      "new_path": "include/openssl/base.h"
    },
    {
      "type": "modify",
      "old_id": "5ef3742019ddae0273c075e94076713bcf8b35cc",
      "old_mode": 33188,
      "old_path": "include/openssl/bytestring.h",
      "new_id": "199d89c31bdf4b9abca61a82f545fe137e4acac8",
      "new_mode": 33188,
      "new_path": "include/openssl/bytestring.h"
    }
  ]
}
