)]}'
{
  "commit": "5626f634c31cfde48ccbbee243be29e0eb77171e",
  "tree": "b0828a3ee9c94307d96504856836cb962b6a18a0",
  "parents": [
    "12997aa984cf0e5def1045fd22d7b0675caaa0a1"
  ],
  "author": {
    "name": "Benjamin Kaduk",
    "email": "bkaduk@akamai.com",
    "time": "Tue Aug 01 14:50:22 2017 -0500"
  },
  "committer": {
    "name": "Benjamin Kaduk",
    "email": "kaduk@mit.edu",
    "time": "Tue Aug 15 10:52:21 2017 -0500"
  },
  "message": "Move ALPN handling from finalizer to delayed call\n\nCommit 02f0274e8c0596dcf7e2d104250232a42c650b96 moved ALPN processing\ninto an extension finalization function, as the only documented ordering\nrequirement from previous commits was that ALPN processing occur after\nSNI processing, and SNI processing is performed before the extension\nfinalization step.  However, it is useful for applications\u0027\nalpn_select callbacks to run after ciphersuite selection as well -- at\nleast one application protocol specification (HTTP/2) imposes restrictions\non which ciphersuites are usable with that protocol.  Since it is generally\nmore preferrable to have a successful TLS connection with a default application\nprotocol than to fail the TLS connection and not be able to have the preferred\napplication protocol, it is good to give the alpn_select callback information\nabout the ciphersuite to be used, so that appropriate restrctions can be\nenforced in application code.\n\nAccordingly, split the ALPN handling out into a separate tls_handl_alpn()\nfunction akin to tls_handle_status_request(), called from\ntls_post_process_client_hello().  This is an alternative to resuscitating\nssl_check_clienthello_tlsext_late(), something of an awkwward name itself.\n\nReviewed-by: Matt Caswell \u003cmatt@openssl.org\u003e\n(Merged from https://github.com/openssl/openssl/pull/4070)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2268b271ce0daf82804a5c1da9e86cc2be52cafc",
      "old_mode": 33188,
      "old_path": "ssl/statem/extensions.c",
      "new_id": "a5dda45a96e7ed76a3cda707a1383c0e2a6b97a8",
      "new_mode": 33188,
      "new_path": "ssl/statem/extensions.c"
    },
    {
      "type": "modify",
      "old_id": "fad339adb2bd2cf5c410f76deab707f4df0d5c00",
      "old_mode": 33188,
      "old_path": "ssl/statem/statem_srvr.c",
      "new_id": "8c5f77bce55876445f0c17709cccb5e81572599c",
      "new_mode": 33188,
      "new_path": "ssl/statem/statem_srvr.c"
    }
  ]
}
