)]}'
{
  "commit": "671ccb1a98fae26bf9c115068b2993418cecc800",
  "tree": "3492f5bf2459b8cff97e924e67a1db550c4b5bb0",
  "parents": [
    "b819f7e9392d25db6705a6bd3c92be3bb91775e2"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Thu Oct 20 16:16:50 2022 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Sat Oct 22 02:17:31 2022 +0000"
  },
  "message": "Make EVP_PKEY_*_tls_encodedpoint work with EVP_PKEY_EC.\n\nSome third-party code requires it.\n\nFor now, I\u0027ve just introduced a new hook on the method table. This is\nrather goofy though. First, making EVP know about TLS is a layering\nviolation that OpenSSL introduced. They\u0027ve since fixed this and added\nEVP_PKEY_get1_encoded_public_key in OpenSSL 3.0, but callers expect the\nTLS one to exist in OpenSSL 1.1.1, so implement that one.\n\nAlong the way, implement EC_KEY_oct2key from upstream, which is slightly\nless tedious when you\u0027re already working in EC_KEY.\n\nTo make this third-party code work (and to write a test without dipping\nout of EVP, or using the very tedious EVP_PKEY_paramgen API), we also\nneed to change EVP_PKEY_copy_parameters to work when the source EVP_PKEY\nis empty, per upstream\u0027s 2986ecdc08016de978f1134315623778420b51e5.\nOpenSSL\u0027s API has *multiple* levels of empty states to worry about!\nSomething to avoid when we get to rethinking this error-prone API.\n\nBug: b:238920520\nChange-Id: I3fd99be560db313c1bf549a4e46ffccc31e746e1\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/54905\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bb316450fbe3689f21bd540c52d5fb29802fb68d",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp.c",
      "new_id": "e982af79bd62002bace2350f728f800c1228d1a5",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp.c"
    },
    {
      "type": "modify",
      "old_id": "f520598879a80c6b9f1abdb7b5c71f414c92324d",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp_extra_test.cc",
      "new_id": "0b915bd157d36e43fc87a753148ba1b46843c24a",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp_extra_test.cc"
    },
    {
      "type": "modify",
      "old_id": "0037de8251b1a0a548e8b5d5d0ce633b6220e85c",
      "old_mode": 33188,
      "old_path": "crypto/evp/internal.h",
      "new_id": "f189d4e698cffbb7e3fce957d6ee1441a7e52d37",
      "new_mode": 33188,
      "new_path": "crypto/evp/internal.h"
    },
    {
      "type": "modify",
      "old_id": "98615b7386000e0f2bda3acb32d1d6efc9aa773c",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_dsa_asn1.c",
      "new_id": "cd787dd54122de9b3d13bffb0709f5e98d0a664d",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_dsa_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "dd421217c7ff3906fa4e3402bfe67be94799ecc5",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_ec_asn1.c",
      "new_id": "c21cfd8cb3c37f520037b2c7520ebb0a72826af5",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_ec_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "f823c0dbb5e2e9fa6f7a0b010ebd7cd050477638",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_ed25519_asn1.c",
      "new_id": "9f9251c956228fbd2811da0b49d204c28fc9a516",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_ed25519_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "2e4942a1222f74974fba2b9de3baa387276d0856",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_rsa_asn1.c",
      "new_id": "cfaf69472f80ecaa2a7f07611aaad0d7356fb898",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_rsa_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "182f6a2d99021a5cee05ae5ec9fe4aa06fa935ff",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_x25519_asn1.c",
      "new_id": "e36b41e36e39965459d2bf53ede2ace506a2f3ef",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_x25519_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "e676e3c0504fa9c63868acbaa55bd904093ab7de",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/ec_key.c",
      "new_id": "3b3da24b6cf9ce9b74db888bf184cd954432cc06",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/ec_key.c"
    },
    {
      "type": "modify",
      "old_id": "502bfc2d95950a651b191022dede0ec8bc18aa92",
      "old_mode": 33188,
      "old_path": "include/openssl/ec_key.h",
      "new_id": "3143290d067a56a7ec783fc86659f0c31b2c106f",
      "new_mode": 33188,
      "new_path": "include/openssl/ec_key.h"
    },
    {
      "type": "modify",
      "old_id": "37daa9ade74abd5f8ea53501888392aa2ed07470",
      "old_mode": 33188,
      "old_path": "include/openssl/evp.h",
      "new_id": "d8bd011236e1080364d4003017bd363130dc2e8d",
      "new_mode": 33188,
      "new_path": "include/openssl/evp.h"
    },
    {
      "type": "modify",
      "old_id": "f65492c0010153f38d43b44638f937a9cf7409bf",
      "old_mode": 33188,
      "old_path": "util/fipstools/acvp/modulewrapper/modulewrapper.cc",
      "new_id": "460a8e9ff1fc26829b55b1c8376514cd49069d92",
      "new_mode": 33188,
      "new_path": "util/fipstools/acvp/modulewrapper/modulewrapper.cc"
    }
  ]
}
