)]}'
{
  "commit": "daf207a52a65621cbd18033b9d2fa5b45f550caa",
  "tree": "ff4e4bbcf44a5b6ac50a8243d2f11b4a5c0be3e0",
  "parents": [
    "1a999cf54dbb9e0703b2b21231eb0c8b41e6b6fa"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Tue Jan 03 18:37:41 2017 -0500"
  },
  "committer": {
    "name": "Adam Langley",
    "email": "agl@google.com",
    "time": "Wed Jan 25 23:35:47 2017 +0000"
  },
  "message": "Don\u0027t use the buffer BIO in TLS.\n\nOn the TLS side, we introduce a running buffer of ciphertext. Queuing up\npending data consists of encrypting the record into the buffer. This\neffectively reimplements what the buffer BIO was doing previously, but\nthis resizes to fit the whole flight.\n\nAs part of this, rename all the functions to add to the pending flight\nto be more uniform. This CL proposes \"add_foo\" to add to the pending\nflight and \"flush_flight\" to drain it.\n\nWe add an add_alert hook for alerts but, for now, only the SSL 3.0\nwarning alert (sent mid-handshake) uses this mechanism.  Later work will\npush this down to the rest of the write path so closure alerts use it\ntoo, as in DTLS. The intended end state is that all the ssl_buffer.c and\nwpend_ret logic will only be used for application data and eventually\noptionally replaced by the in-place API, while all \"incidental\" data\nwill be handled internally.\n\nFor now, the two buffers are mutually exclusive. Moving closure alerts\nto \"incidentals\" will change this, but flushing application data early\nis tricky due to wpend_ret. (If we call ssl_write_buffer_flush,\ndo_ssl3_write doesn\u0027t realize it still has a wpend_ret to replay.) That\ntoo is all left alone in this change.\n\nTo keep the diff down, write_message is retained for now and will be\nremoved from the state machines in a follow-up change.\n\nBUG\u003d72\n\nChange-Id: Ibce882f5f7196880648f25d5005322ca4055c71d\nReviewed-on: https://boringssl-review.googlesource.com/13224\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "df227fbce7968ebc8744163658e9a0f7a7878314",
      "old_mode": 33188,
      "old_path": "include/openssl/ssl.h",
      "new_id": "d272b58969a7ef332b0983f6007c98101a1b18b5",
      "new_mode": 33188,
      "new_path": "include/openssl/ssl.h"
    },
    {
      "type": "modify",
      "old_id": "1d896360e768f6a4743cceeb5ade064244759ab6",
      "old_mode": 33188,
      "old_path": "ssl/d1_both.c",
      "new_id": "bbb6b328303f4b921115f04ff4f8aae1f7c56b63",
      "new_mode": 33188,
      "new_path": "ssl/d1_both.c"
    },
    {
      "type": "modify",
      "old_id": "a774c828bd0981bfaeb50b4ff72d06654dfa1783",
      "old_mode": 33188,
      "old_path": "ssl/dtls_method.c",
      "new_id": "e7cd21ef25ce49ccebd76b63ce1073936b504f01",
      "new_mode": 33188,
      "new_path": "ssl/dtls_method.c"
    },
    {
      "type": "modify",
      "old_id": "3389d6cd44b1b07cbfc32b2900c22bee9e0ce41b",
      "old_mode": 33188,
      "old_path": "ssl/handshake_client.c",
      "new_id": "29b59d44eb3a66100a5985093b40ef3a1edd948c",
      "new_mode": 33188,
      "new_path": "ssl/handshake_client.c"
    },
    {
      "type": "modify",
      "old_id": "a4396f40be8060cbbab611aafe905b04b427e281",
      "old_mode": 33188,
      "old_path": "ssl/handshake_server.c",
      "new_id": "00b374cf7aed9234a1b0ad324498ff7ceb2705f3",
      "new_mode": 33188,
      "new_path": "ssl/handshake_server.c"
    },
    {
      "type": "modify",
      "old_id": "ffe4d62d8d8a671b4bb70b465d262cde4eba70f8",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "877822dd2655a2292f6b3e44882aeaec9b0dfcd4",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "492884f7818ffd11d70f77f573a62b0a3feace38",
      "old_mode": 33188,
      "old_path": "ssl/s3_both.c",
      "new_id": "133cd2d9d787c5ed3b65e39be2253841f1640c16",
      "new_mode": 33188,
      "new_path": "ssl/s3_both.c"
    },
    {
      "type": "modify",
      "old_id": "7039418284236a4c50f9dedf27dff0ac9f4c8d66",
      "old_mode": 33188,
      "old_path": "ssl/s3_lib.c",
      "new_id": "3f44629cb03b0457f8fcf2fef1e1b2da9c4f47d3",
      "new_mode": 33188,
      "new_path": "ssl/s3_lib.c"
    },
    {
      "type": "modify",
      "old_id": "9bd9f1fdd3dd880255ef4d79f6eb20a9739ae284",
      "old_mode": 33188,
      "old_path": "ssl/s3_pkt.c",
      "new_id": "5a31e1f70ddb1e307fe5ae9964fbc927a1100bed",
      "new_mode": 33188,
      "new_path": "ssl/s3_pkt.c"
    },
    {
      "type": "modify",
      "old_id": "d653378fcdd12bf17730cec536fa308c98c53769",
      "old_mode": 33188,
      "old_path": "ssl/ssl_lib.c",
      "new_id": "101ee4dae5976e91040f66520273d61797a48bc2",
      "new_mode": 33188,
      "new_path": "ssl/ssl_lib.c"
    },
    {
      "type": "modify",
      "old_id": "1425665200f91b8e3c354f0cf2201e649f62cd79",
      "old_mode": 33188,
      "old_path": "ssl/tls13_both.c",
      "new_id": "3805bb14ac8a19ce042c0878feea7392b3042ea5",
      "new_mode": 33188,
      "new_path": "ssl/tls13_both.c"
    },
    {
      "type": "modify",
      "old_id": "6f2bb218c716e197c58de52c53ef2ab69b7795ec",
      "old_mode": 33188,
      "old_path": "ssl/tls13_client.c",
      "new_id": "2d46bf2e5690c21596e0f3069229c54e5bd4e08d",
      "new_mode": 33188,
      "new_path": "ssl/tls13_client.c"
    },
    {
      "type": "modify",
      "old_id": "750e47fa4019eaf07419dd808f12e38ccb20479d",
      "old_mode": 33188,
      "old_path": "ssl/tls13_server.c",
      "new_id": "1f10038f3a8f9aa842aeb37a2a6ccf525f6c2671",
      "new_mode": 33188,
      "new_path": "ssl/tls13_server.c"
    },
    {
      "type": "modify",
      "old_id": "a6584c192c3321a0b80188bcb016d8e3a176ea9b",
      "old_mode": 33188,
      "old_path": "ssl/tls_method.c",
      "new_id": "21f9e2ad218f1d4c4a80773b83542dc99e9c07c0",
      "new_mode": 33188,
      "new_path": "ssl/tls_method.c"
    }
  ]
}
