)]}'
{
  "commit": "163f29af076a2fcc5564f7998ab57e3fb9b197b7",
  "tree": "13f271b348f13295929cd117e442766dc23f4b08",
  "parents": [
    "e97fb48fbe7220197973c4083dd069b2f5618d64"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Thu Jul 28 11:05:58 2016 -0400"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Fri Jul 29 21:05:49 2016 +0000"
  },
  "message": "Move post-handshake message handling out of read_app_data.\n\nThis finishes getting rid of ssl_read_bytes! Now we have separate\nentry-points for the various cases. For now, I\u0027ve kept TLS handshake\nconsuming records partially. When we do the BIO-less API, I expect that\nwill need to change, since we won\u0027t have the record buffer available.\n\n(Instead, the ssl3_read_handshake_bytes and extend_handshake_buffer pair\nwill look more like the DTLS side or Go and pull the entire record into\ninit_buf.)\n\nThis change opts to make read_app_data drive the message to completion\nin anticipation of DTLS 1.3. That hasn\u0027t been specified, but\nNewSessionTicket certainly will exist. Knowing that DTLS necessarily has\ninterleave seems something better suited for the SSL_PROTOCOL_METHOD\ninternals to drive.\n\nIt needs refining, but SSL_PROTOCOL_METHOD is now actually a half-decent\nabstraction boundary between the higher-level protocol logic and\nDTLS/TLS-specific record-layer and message dispatchy bits.\n\nBUG\u003d83\n\nChange-Id: I9b4626bb8a29d9cb30174d9e6912bb420ed45aff\nReviewed-on: https://boringssl-review.googlesource.com/9001\nReviewed-by: David Benjamin \u003cdavidben@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nCQ-Verified: CQ bot account: commit-bot@chromium.org \u003ccommit-bot@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7875fe19eaaee823bb2d4823373b4839aa36bce3",
      "old_mode": 33188,
      "old_path": "include/openssl/ssl.h",
      "new_id": "82d503eee9daeed9be115636517491e5723c1689",
      "new_mode": 33188,
      "new_path": "include/openssl/ssl.h"
    },
    {
      "type": "modify",
      "old_id": "ab9b9119661ab3c6b587ff02355ed6b7605a853d",
      "old_mode": 33188,
      "old_path": "ssl/d1_pkt.c",
      "new_id": "574fd4cd2bcfdc552843c5953a1b6215ea6cc49b",
      "new_mode": 33188,
      "new_path": "ssl/d1_pkt.c"
    },
    {
      "type": "modify",
      "old_id": "1b3f28a9c569ede3f62966201dab0ce78f3c9788",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "7a4a9586c572d84e665586fd296c4754a011cf5e",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "7608c342f9d0d579b7d0b01bedef33cad1dedee1",
      "old_mode": 33188,
      "old_path": "ssl/s3_both.c",
      "new_id": "0dd67bc7b1a10727080ce1a4cdce6790ec8b1327",
      "new_mode": 33188,
      "new_path": "ssl/s3_both.c"
    },
    {
      "type": "modify",
      "old_id": "3e674e6f841040b673f3e9bb911d1d45dce8d588",
      "old_mode": 33188,
      "old_path": "ssl/s3_pkt.c",
      "new_id": "459352d744b88f3a13b3f93b7596e4cb1808cf73",
      "new_mode": 33188,
      "new_path": "ssl/s3_pkt.c"
    },
    {
      "type": "modify",
      "old_id": "71505ebfb304ad7351e312589b36124e019d2d64",
      "old_mode": 33188,
      "old_path": "ssl/ssl_lib.c",
      "new_id": "4da52332fb698ef8f6a38915283afcc0b064be43",
      "new_mode": 33188,
      "new_path": "ssl/ssl_lib.c"
    },
    {
      "type": "modify",
      "old_id": "5c70e912c7dceb33772b6fac268c65fd049eec2e",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/runner.go",
      "new_id": "8815f8f450e9f76e2edc69e9bfbd3e54960c538b",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/runner.go"
    }
  ]
}
