)]}'
{
  "commit": "a41280d8cb60fdc519ea79dcc072009d07d1a4ed",
  "tree": "494c8a76a8a0fa72663683079ff27832543b6b6b",
  "parents": [
    "8fd5c23218e38d728dd13e6fddd065d68fea2a00"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@chromium.org",
    "time": "Thu Nov 26 02:16:49 2015 -0500"
  },
  "committer": {
    "name": "Adam Langley",
    "email": "agl@google.com",
    "time": "Wed Dec 16 18:36:57 2015 +0000"
  },
  "message": "Pull ChangeCipherSpec into the handshake state machine.\n\nThis uses ssl3_read_bytes for now. We still need to dismantle that\nfunction and then invert the handshake state machine, but this gets\nthings closer to the right shape as an intermediate step and is a large\nchunk in itself. It simplifies a lot of the CCS/handshake\nsynchronization as a lot of the invariants much more clearly follow from\nthe handshake itself.\n\nTests need to be adjusted since this changes some error codes. Now all\nthe CCS/Handshake checks fall through to the usual\nSSL_R_UNEXPECTED_RECORD codepath. Most of what used to be a special-case\nfalls out naturally. (If half of Finished was in the same record as the\npre-CCS message, that part of the handshake record would have been left\nunconsumed, so read_change_cipher_spec would have noticed, just like\nread_app_data would have noticed.)\n\nChange-Id: I15c7501afe523d5062f0e24a3b65f053008d87be\nReviewed-on: https://boringssl-review.googlesource.com/6642\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f4b95355da783a7ed3e37e4219e4c098e9497522",
      "old_mode": 33188,
      "old_path": "include/openssl/ssl.h",
      "new_id": "2dbd9e4fb203157415521d267979dfef2e8bb50a",
      "new_mode": 33188,
      "new_path": "include/openssl/ssl.h"
    },
    {
      "type": "modify",
      "old_id": "0ed1aea4a4fea19b6b3af061edc9a026a064e55e",
      "old_mode": 33188,
      "old_path": "ssl/d1_clnt.c",
      "new_id": "544863284cb5da9f751e5ab372c2005a6e38861b",
      "new_mode": 33188,
      "new_path": "ssl/d1_clnt.c"
    },
    {
      "type": "modify",
      "old_id": "4dc3404894f460361ea6948621d3f9aaf744df8a",
      "old_mode": 33188,
      "old_path": "ssl/d1_meth.c",
      "new_id": "49a2595e567563a3271d600dd4854337d6ebec76",
      "new_mode": 33188,
      "new_path": "ssl/d1_meth.c"
    },
    {
      "type": "modify",
      "old_id": "12cdeacf62596a82fb876ba7b177df83f75be19f",
      "old_mode": 33188,
      "old_path": "ssl/d1_pkt.c",
      "new_id": "c8ed9d87ea9b12325949ef3a15807d481ab48bda",
      "new_mode": 33188,
      "new_path": "ssl/d1_pkt.c"
    },
    {
      "type": "modify",
      "old_id": "79f762b9c5db3ad0b64706548fe8e8c3d20ab95a",
      "old_mode": 33188,
      "old_path": "ssl/d1_srvr.c",
      "new_id": "9eb10209718e18cf17ba67cacf4caa0577a032fa",
      "new_mode": 33188,
      "new_path": "ssl/d1_srvr.c"
    },
    {
      "type": "modify",
      "old_id": "b5c98d6f0b12fc75e0ae96fe5c81c8d346cf66cb",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "5832076e5a5f861ee5d57df1f8a32f6d2ff5626f",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "1416bb3cade9d94006ec1d9158609c12b329a892",
      "old_mode": 33188,
      "old_path": "ssl/s3_both.c",
      "new_id": "577e59b6f093b3f8cabb6e0a36cb01e15d346f81",
      "new_mode": 33188,
      "new_path": "ssl/s3_both.c"
    },
    {
      "type": "modify",
      "old_id": "f5af366aab39d50ad83cb3dfccc947c12940fe9e",
      "old_mode": 33188,
      "old_path": "ssl/s3_clnt.c",
      "new_id": "f9d76935a0d5a212ff6e85fa2f725d9390a1e486",
      "new_mode": 33188,
      "new_path": "ssl/s3_clnt.c"
    },
    {
      "type": "modify",
      "old_id": "01c1101f08010c333c72c31dd0824d521715e66b",
      "old_mode": 33188,
      "old_path": "ssl/s3_meth.c",
      "new_id": "b60b5f2c17564ac879113ec0f7d11b66a5f18135",
      "new_mode": 33188,
      "new_path": "ssl/s3_meth.c"
    },
    {
      "type": "modify",
      "old_id": "722041e17e225099b63b36a80a0b96787652b9e1",
      "old_mode": 33188,
      "old_path": "ssl/s3_pkt.c",
      "new_id": "6ca8a848ce5fcb5e71293656b4b21a1c95f99d05",
      "new_mode": 33188,
      "new_path": "ssl/s3_pkt.c"
    },
    {
      "type": "modify",
      "old_id": "13e1d35dfc714b944c7344dd3f7ccd093616f68f",
      "old_mode": 33188,
      "old_path": "ssl/s3_srvr.c",
      "new_id": "a3130f9171897ba8031d9cc6164e71c53497a511",
      "new_mode": 33188,
      "new_path": "ssl/s3_srvr.c"
    },
    {
      "type": "modify",
      "old_id": "5af93df694273bc84f5034dec2e799dff35d75fa",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/runner.go",
      "new_id": "4748dd51386ce5d4dce769c4709345082dd53dfb",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/runner.go"
    }
  ]
}
