1. 27 7月, 2015 1 次提交
    • M
      Remove support for SSL3_FLAGS_DELAY_CLIENT_FINISHED · 57787ac8
      Matt Caswell 提交于
      This flag was not set anywhere within the codebase (only read). It could
      only be set by an app reaching directly into s->s3->flags and setting it
      directly. However that method became impossible when libssl was opaquified.
      
      Even in 1.0.2/1.0.1 if an app set the flag directly it is only relevant to
      ssl3_connect(), which calls SSL_clear() during initialisation that clears
      any flag settings. Therefore it could take effect if the app set the flag
      after the handshake has started but before it completed. It seems quite
      unlikely that any apps really do this (especially as it is completely
      undocumented).
      
      The purpose of the flag is suppress flushing of the write bio on the client
      side at the end of the handshake after the client has written the Finished
      message whilst resuming a session. This enables the client to send
      application data as part of the same flight as the Finished message.
      
      This flag also controls the setting of a second flag SSL3_FLAGS_POP_BUFFER.
      There is an interesting comment in the code about this second flag in the
      implementation of ssl3_write:
      
      	/* This is an experimental flag that sends the
      	 * last handshake message in the same packet as the first
      	 * use data - used to see if it helps the TCP protocol during
      	 * session-id reuse */
      
      It seems the experiment did not work because as far as I can tell nothing
      is using this code. The above comment has been in the code since SSLeay.
      
      This commit removes support for SSL3_FLAGS_DELAY_CLIENT_FINISHED, as well
      as the associated SSL3_FLAGS_POP_BUFFER.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      57787ac8
  2. 29 6月, 2015 1 次提交
  3. 24 6月, 2015 2 次提交
    • D
      Fix PSK client handling. · a16ca4e8
      Dr. Stephen Henson 提交于
      The PSK identity hint should be stored in the SSL_SESSION structure
      and not in the parent context (which will overwrite values used
      by other SSL structures with the same SSL_CTX).
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      a16ca4e8
    • D
      Tidy up ssl3_digest_cached_records logic. · 124037fd
      Dr. Stephen Henson 提交于
      Rewrite ssl3_digest_cached_records handling. Only digest cached records
      if digest array is NULL: this means it is safe to call
      ssl3_digest_cached_records multiple times (subsequent calls are no op).
      
      Remove flag TLS1_FLAGS_KEEP_HANDSHAKE instead only update handshake buffer
      if digest array is NULL.
      
      Add additional "keep" parameter to ssl3_digest_cached_records to indicate
      if the handshake buffer should be retained after digesting cached records
      (needed for TLS 1.2 client authentication).
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      124037fd
  4. 22 6月, 2015 5 次提交
  5. 09 6月, 2015 2 次提交
  6. 04 6月, 2015 2 次提交
    • M
      Remove misleading comment · f3d88952
      Matt Caswell 提交于
      Remove a comment that suggested further clean up was required.
      DH_free() performs the necessary cleanup.
      
      With thanks to the Open Crypto Audit Project for reporting this issue.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      f3d88952
    • M
      Fix DTLS session resumption · 7322abf5
      Matt Caswell 提交于
      The session object on the client side is initially created during
      construction of the ClientHello. If the client is DTLS1.2 capable then it
      will store 1.2 as the version for the session. However if the server is only
      DTLS1.0 capable then when the ServerHello comes back the client switches to
      using DTLS1.0 from then on. However the session version does not get
      updated. Therefore when the client attempts to resume that session the
      server throws an alert because of an incorrect protocol version.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      7322abf5
  7. 02 6月, 2015 1 次提交
  8. 25 5月, 2015 1 次提交
    • M
      Set first_packet for TLS clients · 81fc390f
      Matt Caswell 提交于
      Version negotiation was broken (one of the late changes in the review
      process broke it). The problem is that TLS clients do not set first_packet,
      whereas TLS/DTLS servers and DTLS clients do. The simple fix is to set
      first_packet for TLS clients too.
      Reviewed-by: NKurt Roeckx <kurt@openssl.org>
      81fc390f
  9. 23 5月, 2015 1 次提交
  10. 21 5月, 2015 1 次提交
  11. 19 5月, 2015 4 次提交
  12. 16 5月, 2015 3 次提交
    • M
      Move SSLv3_*method() functions · a304d385
      Matt Caswell 提交于
      Move these functions into t1_clnt.c, t1_srvr.c and t1_meth.c and take
      advantage of the existing tls1_get*_method() functions that all the other
      methods are using. Since these now have to support SSLv3 anyway we might
      as well use the same set of get functions for both TLS and SSLv3.
      Reviewed-by: NKurt Roeckx <kurt@openssl.org>
      a304d385
    • M
      Updates following review comments · d45ba43d
      Matt Caswell 提交于
      Miscellaneous updates following review comments on the version negotiation
      rewrite patches.
      Reviewed-by: NKurt Roeckx <kurt@openssl.org>
      d45ba43d
    • M
      Client side version negotiation rewrite · 13c9bb3e
      Matt Caswell 提交于
      Continuing from the previous commit this changes the way we do client side
      version negotiation. Similarly all of the s23* "up front" state machine code
      has been avoided and again things now work much the same way as they already
      did for DTLS, i.e. we just do most of the work in the
      ssl3_get_server_hello() function.
      Reviewed-by: NKurt Roeckx <kurt@openssl.org>
      13c9bb3e
  13. 13 5月, 2015 1 次提交
  14. 11 5月, 2015 1 次提交
  15. 07 5月, 2015 1 次提交
  16. 06 5月, 2015 2 次提交
  17. 02 5月, 2015 2 次提交
  18. 01 5月, 2015 3 次提交
  19. 22 4月, 2015 1 次提交
    • E
      Repair EAP-FAST session resumption · 6e3d0153
      Emilia Kasper 提交于
      EAP-FAST session resumption relies on handshake message lookahead
      to determine server intentions. Commits
      980bc1ec
      and
      7b3ba508
      removed the lookahead so broke session resumption.
      
      This change partially reverts the commits and brings the lookahead back
      in reduced capacity for TLS + EAP-FAST only. Since EAP-FAST does not
      support regular session tickets, the lookahead now only checks for a
      Finished message.
      
      Regular handshakes are unaffected by this change.
      Reviewed-by: NDavid Benjamin <davidben@chromium.org>
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      6e3d0153
  20. 17 4月, 2015 1 次提交
  21. 11 4月, 2015 1 次提交
    • R
      free NULL cleanup 10 · 62adbcee
      Rich Salz 提交于
      Avoid checking for NULL before calling free functions.  This gets
      ssl.*free:
          ssl_sess_cert_free ssl_free ssl_excert_free ssl_cert_free
          SSL_free SSL_SRP_CTX_free SSL_SESSION_free SSL_CTX_free
          SSL_CTX_SRP_CTX_free SSL_CONF_CTX_free
      Reviewed-by: NKurt Roeckx <kurt@openssl.org>
      62adbcee
  22. 26 3月, 2015 1 次提交
  23. 25 3月, 2015 2 次提交