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. 21 7月, 2015 3 次提交
  3. 18 7月, 2015 1 次提交
  4. 30 6月, 2015 1 次提交
  5. 29 6月, 2015 1 次提交
  6. 24 6月, 2015 5 次提交
  7. 22 6月, 2015 6 次提交
  8. 21 6月, 2015 2 次提交
  9. 20 6月, 2015 1 次提交
  10. 15 6月, 2015 1 次提交
  11. 12 6月, 2015 1 次提交
  12. 11 6月, 2015 3 次提交
  13. 10 6月, 2015 4 次提交
  14. 09 6月, 2015 2 次提交
  15. 08 6月, 2015 1 次提交
  16. 06 6月, 2015 1 次提交
  17. 05 6月, 2015 1 次提交
  18. 04 6月, 2015 3 次提交
    • 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
      Clean premaster_secret for GOST · b7ee4815
      Matt Caswell 提交于
      Ensure OPENSSL_cleanse() is called on the premaster secret value calculated for GOST.
      
      With thanks to the Open Crypto Audit Project for reporting this issue.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      b7ee4815
    • 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
  19. 02 6月, 2015 1 次提交
  20. 01 6月, 2015 1 次提交
    • M
      Check the message type requested is the type received in DTLS · 8c2b1d87
      Matt Caswell 提交于
      dtls1_get_message has an |mt| variable which is the type of the message that
      is being requested. If it is negative then any message type is allowed.
      However the value of |mt| is not checked in one of the main code paths, so a
      peer can send a message of a completely different type and it will be
      processed as if it was the message type that we were expecting. This has
      very little practical consequences because the current behaviour will still
      fail when the format of the message isn't as expected.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      8c2b1d87