)]}'
{
  "commit": "f8e0a5573820bd7318782d4954c6643ff7e58102",
  "tree": "4b6a7fa073da7a0c12fbf856eb2ea58c526a627d",
  "parents": [
    "9ab930b27d51a13362e6647074f13589a8ac004d"
  ],
  "author": {
    "name": "Matt Caswell",
    "email": "matt@openssl.org",
    "time": "Wed Jul 29 14:23:56 2015 +0100"
  },
  "committer": {
    "name": "Matt Caswell",
    "email": "matt@openssl.org",
    "time": "Fri Oct 30 08:27:59 2015 +0000"
  },
  "message": "Add initial state machine rewrite code\n\nThis is the first drop of the new state machine code.\n\nThe rewrite has the following objectives:\n- Remove duplication of state code between client and server\n- Remove duplication of state code between TLS and DTLS\n- Simplify transitions and bring the logic together in a single location\n  so that it is easier to validate\n- Remove duplication of code between each of the message handling functions\n- Receive a message first and then work out whether that is a valid\n  transition - not the other way around (the other way causes lots of issues\n  where we are expecting one type of message next but actually get something\n  else)\n- Separate message flow state from handshake state (in order to better\n  understand each)\n  - message flow state \u003d when to flush buffers; handling restarts in the\n    event of NBIO events; handling the common flow of steps for reading a\n    message and the common flow of steps for writing a message etc\n  - handshake state \u003d what handshake message are we working on now\n- Control complexity: only the state machine can change state: keep all\n  the state changes local to a file\n\nThis builds on previous state machine related work:\n- Surface CCS processing in the state machine\n- Version negotiation rewrite\n\nReviewed-by: Tim Hudson \u003ctjh@openssl.org\u003e\nReviewed-by: Richard Levitte \u003clevitte@openssl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fb626279aff6aeedf1bf2cbb15aa0fd58a3a57c6",
      "old_mode": 33188,
      "old_path": "include/openssl/ssl.h",
      "new_id": "7788f098e694f70510dcb41fcf3a508c243196f9",
      "new_mode": 33188,
      "new_path": "include/openssl/ssl.h"
    },
    {
      "type": "modify",
      "old_id": "7953da4f8f8ba5dd31fa863dc109e66f1ea9daff",
      "old_mode": 33188,
      "old_path": "ssl/Makefile",
      "new_id": "536ddcc20033e8b7d63b8a6dab6d42e14e0b6d6d",
      "new_mode": 33188,
      "new_path": "ssl/Makefile"
    },
    {
      "type": "modify",
      "old_id": "dbc2eee7c6ed57257f01cb640c2c13e588d1f745",
      "old_mode": 33188,
      "old_path": "ssl/s3_both.c",
      "new_id": "d8a2da1362f37632664d471685186b09bcc241f5",
      "new_mode": 33188,
      "new_path": "ssl/s3_both.c"
    },
    {
      "type": "modify",
      "old_id": "5e7b618e494df543a5f7a401614488583051b122",
      "old_mode": 33188,
      "old_path": "ssl/s3_lib.c",
      "new_id": "292fb1b3cc059228a3de5eaf5f3ea3b89903c639",
      "new_mode": 33188,
      "new_path": "ssl/s3_lib.c"
    },
    {
      "type": "modify",
      "old_id": "8e958275338a5c153feee34c7a704639614d5ea4",
      "old_mode": 33188,
      "old_path": "ssl/ssl_err.c",
      "new_id": "864501b80ca244bfb0b43971920db3a5b63f5b93",
      "new_mode": 33188,
      "new_path": "ssl/ssl_err.c"
    },
    {
      "type": "modify",
      "old_id": "e80d5f172cf73e222f0bc7c5edb2c276480ef057",
      "old_mode": 33188,
      "old_path": "ssl/ssl_lib.c",
      "new_id": "bc5676adb9ba5e4fea80c3cd67e1e2942d6a9d18",
      "new_mode": 33188,
      "new_path": "ssl/ssl_lib.c"
    },
    {
      "type": "modify",
      "old_id": "c2f4d440b6b3c21525ec4a908f09da9cdc9ed18a",
      "old_mode": 33188,
      "old_path": "ssl/ssl_locl.h",
      "new_id": "4a759e38a9d04a53d961f9f1388523dbb5535869",
      "new_mode": 33188,
      "new_path": "ssl/ssl_locl.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ef0799e4078f3cb9a747d806240f2c215bc71181",
      "new_mode": 33188,
      "new_path": "ssl/statem.c"
    }
  ]
}
