1. 20 6月, 2017 1 次提交
  2. 08 5月, 2017 1 次提交
  3. 16 3月, 2017 2 次提交
  4. 07 3月, 2017 1 次提交
  5. 03 3月, 2017 1 次提交
  6. 17 2月, 2017 1 次提交
  7. 16 2月, 2017 1 次提交
    • M
      Don't change the state of the ETM flags until CCS processing · 28a31a0a
      Matt Caswell 提交于
      In 1.1.0 changing the ciphersuite during a renegotiation can result in
      a crash leading to a DoS attack. In master this does not occur with TLS
      (instead you get an internal error, which is still wrong but not a security
      issue) - but the problem still exists in the DTLS code.
      
      The problem is caused by changing the flag indicating whether to use ETM
      or not immediately on negotiation of ETM, rather than at CCS. Therefore,
      during a renegotiation, if the ETM state is changing (usually due to a
      change of ciphersuite), then an error/crash will occur.
      
      Due to the fact that there are separate CCS messages for read and write
      we actually now need two flags to determine whether to use ETM or not.
      
      CVE-2017-3733
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      28a31a0a
  8. 14 2月, 2017 1 次提交
  9. 30 1月, 2017 3 次提交
  10. 09 12月, 2016 1 次提交
  11. 23 11月, 2016 1 次提交
  12. 15 11月, 2016 2 次提交
  13. 18 5月, 2016 1 次提交
  14. 21 3月, 2016 1 次提交
  15. 12 2月, 2016 1 次提交
  16. 27 1月, 2016 1 次提交
    • R
      Remove /* foo.c */ comments · 34980760
      Rich Salz 提交于
      This was done by the following
              find . -name '*.[ch]' | /tmp/pl
      where /tmp/pl is the following three-line script:
              print unless $. == 1 && m@/\* .*\.[ch] \*/@;
              close ARGV if eof; # Close file to reset $.
      
      And then some hand-editing of other files.
      Reviewed-by: NViktor Dukhovni <viktor@openssl.org>
      34980760
  17. 09 12月, 2015 1 次提交
  18. 30 10月, 2015 2 次提交
    • M
      Remove the old state defines · f3ae9862
      Matt Caswell 提交于
      Remove all the defines for the old state machines states. Mapping old to new
      is probably going to cause more problems than it solves so it is probably
      better to just remove them.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      f3ae9862
    • M
      Redefine old state values · c64359db
      Matt Caswell 提交于
      ssl.h and ssl3.h have a number of defines for the various states in the old
      state machine code. Since this is public API it is not desirable to just
      remove them. Instead redefine them to the closest equivalent state in the
      new state machine code. If an application calls SSL_state then the return
      value can still be compared against these old values if necessary. However
      not all values have an equivalent state in the new code, so these are just
      redefined to a dummy value.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      c64359db
  19. 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
  20. 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
  21. 24 6月, 2015 1 次提交
    • 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
  22. 10 6月, 2015 1 次提交
  23. 13 5月, 2015 1 次提交
  24. 01 4月, 2015 1 次提交
  25. 01 2月, 2015 1 次提交
  26. 29 1月, 2015 1 次提交
  27. 28 1月, 2015 1 次提交
  28. 22 1月, 2015 2 次提交
  29. 03 1月, 2015 1 次提交
  30. 20 11月, 2014 1 次提交
    • E
      Ensure SSL3_FLAGS_CCS_OK (or d1->change_cipher_spec_ok for DTLS) is reset · e94a6c0e
      Emilia Kasper 提交于
      once the ChangeCipherSpec message is received. Previously, the server would
      set the flag once at SSL3_ST_SR_CERT_VRFY and again at SSL3_ST_SR_FINISHED.
      This would allow a second CCS to arrive and would corrupt the server state.
      
      (Because the first CCS would latch the correct keys and subsequent CCS
      messages would have to be encrypted, a MitM attacker cannot exploit this,
      though.)
      
      Thanks to Joeri de Ruiter for reporting this issue.
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      e94a6c0e
  31. 15 10月, 2014 1 次提交
  32. 29 8月, 2014 1 次提交
  33. 04 7月, 2014 1 次提交
  34. 05 6月, 2014 1 次提交