)]}'
{
  "commit": "fe1aca62399bdc8d45ed9fe899a12d97339607c5",
  "tree": "f6e05d975004be1d4ffa0acbd96896367442359b",
  "parents": [
    "663143943492a31e2fe05f5ef0b7cf95a271990b"
  ],
  "author": {
    "name": "QUICHE team",
    "email": "quiche-dev@google.com",
    "time": "Thu Mar 14 13:39:01 2019 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Mar 14 13:39:47 2019 -0700"
  },
  "message": "Split KeyExchange into synchronous and asynchronous variants\n\nAs part of the implementation of go/leto-II-design, an asynchronous interface was added to the KeyExchange class, to allow an implementation which would make an RPC to a service holding the private key.  This fit awkwardly into the existing code, and we intended it as a short-term patch until we could come up with a better separation of concerns.\n\nThis CL improves matters by splitting the KeyExchange class into two.  The AsyncKeyExchange interface has only an asynchronous interface.  SyncKeyExchange has both synchronous and asynchronous interfaces, with the latter implemented in terms of the former.  The existing \"local\" key-exchange classes inherit from SyncKeyExchange.  Handshaking code which may or may not need to talk to Leto uses the AsyncKeyExchange uniformly, but depending on whether Leto is enabled or not, the concrete objects being used might be local or remote.\n\nThis CL also removes the \"Factory\" pattern previously used for creating KeyExchange objects.  It required a bunch of boilerplate and provided little benefit.\n\ngfe-relnote: no-op refactoring in the area of QUIC handshakes.  No functional change intended, not flag-protected.\nPiperOrigin-RevId: 238508479\nChange-Id: Ib5ca6ae5afbdcb712c7d2f86a4d272ef168b90f3\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7846708a702aa8161c5ecf8f30240989a71646c0",
      "old_mode": 33188,
      "old_path": "quic/core/crypto/crypto_handshake.h",
      "new_id": "4608889df452d7a008ed41b913c18b36ee7b9b04",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/crypto_handshake.h"
    },
    {
      "type": "modify",
      "old_id": "1400d0c73da0ebf32d37bf1d435a5c601ab01a8e",
      "old_mode": 33188,
      "old_path": "quic/core/crypto/curve25519_key_exchange.cc",
      "new_id": "044693df72491cc0dca35c73e82693c7ba87163c",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/curve25519_key_exchange.cc"
    },
    {
      "type": "modify",
      "old_id": "5cefa55f1ff0b2ce689aa7ed2c42221d7af216c4",
      "old_mode": 33188,
      "old_path": "quic/core/crypto/curve25519_key_exchange.h",
      "new_id": "31c6c0e834970ebaf737f11daffbb7acb3c8009e",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/curve25519_key_exchange.h"
    },
    {
      "type": "modify",
      "old_id": "f5ccd80520c7ba5fdb1bbeeea0b53ba49abf58c9",
      "old_mode": 33188,
      "old_path": "quic/core/crypto/curve25519_key_exchange_test.cc",
      "new_id": "93aa298103f43255f22851c50210449f3f9cfa9c",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/curve25519_key_exchange_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1969e75a31ff1f37e4ad5f1136685225c6ca03f9",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/key_exchange.cc"
    },
    {
      "type": "modify",
      "old_id": "7d4f76da636aeece38adaf35221021d44ea7f1bb",
      "old_mode": 33188,
      "old_path": "quic/core/crypto/key_exchange.h",
      "new_id": "c695523ef32ad1cd6615ff529e36a10260dab8c5",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/key_exchange.h"
    },
    {
      "type": "modify",
      "old_id": "f56a0aa0e17b4ce93cbc15f56c4428af733d9689",
      "old_mode": 33188,
      "old_path": "quic/core/crypto/p256_key_exchange.cc",
      "new_id": "1cabc6459ef58b512ce4595ffea8e55ddf241e72",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/p256_key_exchange.cc"
    },
    {
      "type": "modify",
      "old_id": "dcd81f711f7bf747a68b3ae648694abbd8a6bf88",
      "old_mode": 33188,
      "old_path": "quic/core/crypto/p256_key_exchange.h",
      "new_id": "a4e5709871c8e97c3d2bdf5ea477bb4f9e69d43d",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/p256_key_exchange.h"
    },
    {
      "type": "modify",
      "old_id": "11d7bd8f1a9c14060fa7fff0a86589785573972f",
      "old_mode": 33188,
      "old_path": "quic/core/crypto/p256_key_exchange_test.cc",
      "new_id": "34a49931ca76421cfcc08a0c25e393c8e44e9f5c",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/p256_key_exchange_test.cc"
    },
    {
      "type": "modify",
      "old_id": "3da127aa5dc7751abf402f55767e815955cf1107",
      "old_mode": 33188,
      "old_path": "quic/core/crypto/quic_crypto_client_config.cc",
      "new_id": "39838369e93158d603ece5425180bc988d194c7b",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/quic_crypto_client_config.cc"
    },
    {
      "type": "modify",
      "old_id": "54af8cf90c5a92352a5d0d0e42fdeff251a29fb8",
      "old_mode": 33188,
      "old_path": "quic/core/crypto/quic_crypto_server_config.cc",
      "new_id": "ff4cd13e7a2147d19db5d761c4df597c75a1308e",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/quic_crypto_server_config.cc"
    },
    {
      "type": "modify",
      "old_id": "29a148860f1fc73da962937c47e5650f3cad2453",
      "old_mode": 33188,
      "old_path": "quic/core/crypto/quic_crypto_server_config.h",
      "new_id": "daaa702fbb908f688a62aa59ec0833a2472d59ae",
      "new_mode": 33188,
      "new_path": "quic/core/crypto/quic_crypto_server_config.h"
    }
  ]
}
