1. 18 9月, 2015 1 次提交
  2. 07 9月, 2015 2 次提交
  3. 01 9月, 2015 1 次提交
  4. 15 8月, 2015 2 次提交
  5. 14 8月, 2015 1 次提交
  6. 13 8月, 2015 1 次提交
  7. 12 8月, 2015 2 次提交
  8. 03 8月, 2015 1 次提交
    • M
      Move TLS CCS processing into the state machine · 657da85e
      Matt Caswell 提交于
      The handling of incoming CCS records is a little strange. Since CCS is not
      a handshake message it is handled differently to normal handshake messages.
      Unfortunately whilst technically it is not a handhshake message the reality
      is that it must be processed in accordance with the state of the handshake.
      Currently CCS records are processed entirely within the record layer. In
      order to ensure that it is handled in accordance with the handshake state
      a flag is used to indicate that it is an acceptable time to receive a CCS.
      
      Previously this flag did not exist (see CVE-2014-0224), but the flag should
      only really be considered a workaround for the problem that CCS is not
      visible to the state machine.
      
      Outgoing CCS messages are already handled within the state machine.
      
      This patch makes CCS visible to the TLS state machine. A separate commit
      will handle DTLS.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      657da85e
  9. 30 7月, 2015 2 次提交
    • D
      cleanse psk_identity on error · 3df16cc2
      Dr. Stephen Henson 提交于
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      3df16cc2
    • D
      Extended PSK client support. · 7689082b
      Dr. Stephen Henson 提交于
      Add support for RSAPSK, DHEPSK and ECDHEPSK client side.
      
      Update various checks to ensure certificate and server key exchange messages
      are only expected when required.
      
      Update message handling. PSK server key exchange parsing now expects an
      identity hint prefix for all PSK server key exchange messages. PSK
      client key exchange message requests PSK identity and key for all PSK
      key exchange ciphersuites and includes identity in message.
      
      Update flags for RSA, DH and ECDH so they are also used in PSK.
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      7689082b
  10. 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
  11. 29 6月, 2015 1 次提交
  12. 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
  13. 22 6月, 2015 5 次提交
  14. 09 6月, 2015 2 次提交
  15. 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
  16. 02 6月, 2015 1 次提交
  17. 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
  18. 23 5月, 2015 1 次提交
  19. 21 5月, 2015 1 次提交
  20. 19 5月, 2015 4 次提交
  21. 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
  22. 13 5月, 2015 1 次提交
  23. 11 5月, 2015 1 次提交
  24. 07 5月, 2015 1 次提交