1. 30 10月, 2015 1 次提交
    • M
      Split ssl3_get_message · 9ab930b2
      Matt Caswell 提交于
      The function ssl3_get_message gets a whole message from the underlying bio
      and returns it to the state machine code. The new state machine code will
      split this into two discrete steps: get the message header and get the
      message body. This commit splits the existing function into these two
      sub steps to facilitate the state machine implementation.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      9ab930b2
  2. 08 10月, 2015 1 次提交
  3. 23 9月, 2015 1 次提交
    • M
      DTLSv1_listen rewrite · e3d0dae7
      Matt Caswell 提交于
      The existing implementation of DTLSv1_listen() is fundamentally flawed. This
      function is used in DTLS solutions to listen for new incoming connections
      from DTLS clients. A client will send an initial ClientHello. The server
      will respond with a HelloVerifyRequest containing a unique cookie. The
      client the responds with a second ClientHello - which this time contains the
      cookie.
      
      Once the cookie has been verified then DTLSv1_listen() returns to user code,
      which is typically expected to continue the handshake with a call to (for
      example) SSL_accept().
      
      Whilst listening for incoming ClientHellos, the underlying BIO is usually in
      an unconnected state. Therefore ClientHellos can come in from *any* peer.
      The arrival of the first ClientHello without the cookie, and the second one
      with it, could be interspersed with other intervening messages from
      different clients.
      
      The whole purpose of this mechanism is as a defence against DoS attacks. The
      idea is to avoid allocating state on the server until the client has
      verified that it is capable of receiving messages at the address it claims
      to come from. However the existing DTLSv1_listen() implementation completely
      fails to do this. It attempts to super-impose itself on the standard state
      machine and reuses all of this code. However the standard state machine
      expects to operate in a stateful manner with a single client, and this can
      cause various problems.
      
      A second more minor issue is that the return codes from this function are
      quite confused, with no distinction made between fatal and non-fatal errors.
      Most user code treats all errors as non-fatal, and simply retries the call
      to DTLSv1_listen().
      
      This commit completely rewrites the implementation of DTLSv1_listen() and
      provides a stand alone implementation that does not rely on the existing
      state machine. It also provides more consistent return codes.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      e3d0dae7
  4. 12 8月, 2015 2 次提交
  5. 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
  6. 02 6月, 2015 1 次提交
  7. 16 5月, 2015 1 次提交
  8. 13 5月, 2015 1 次提交
  9. 09 5月, 2015 1 次提交
  10. 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
  11. 24 3月, 2015 1 次提交
  12. 23 3月, 2015 2 次提交
  13. 15 3月, 2015 1 次提交
  14. 22 1月, 2015 1 次提交
  15. 16 12月, 2014 1 次提交
  16. 11 12月, 2014 1 次提交
  17. 05 12月, 2014 1 次提交
  18. 04 12月, 2014 1 次提交
  19. 28 11月, 2014 1 次提交
  20. 19 11月, 2014 1 次提交
  21. 24 10月, 2014 1 次提交
  22. 15 10月, 2014 1 次提交
  23. 22 8月, 2014 1 次提交
  24. 07 8月, 2014 1 次提交
  25. 05 7月, 2014 1 次提交
  26. 04 7月, 2014 1 次提交
  27. 01 5月, 2014 1 次提交
  28. 28 3月, 2014 1 次提交
    • D
      Security framework. · b362ccab
      Dr. Stephen Henson 提交于
      Security callback: selects which parameters are permitted including
      sensible defaults based on bits of security.
      
      The "parameters" which can be selected include: ciphersuites,
      curves, key sizes, certificate signature algorithms, supported
      signature algorithms, DH parameters, SSL/TLS version, session tickets
      and compression.
      
      In some cases prohibiting the use of a parameters will mean they are
      not advertised to the peer: for example cipher suites and ECC curves.
      In other cases it will abort the handshake: e.g DH parameters or the
      peer key size.
      
      Documentation to follow...
      b362ccab
  29. 06 11月, 2013 1 次提交
  30. 25 9月, 2013 1 次提交
  31. 18 9月, 2013 1 次提交
  32. 06 9月, 2013 1 次提交
    • S
      Add callbacks supporting generation and retrieval of supplemental data... · 36086186
      Scott Deboy 提交于
      Add callbacks supporting generation and retrieval of supplemental data entries, facilitating RFC 5878 (TLS auth extensions)
      Removed prior audit proof logic - audit proof support was implemented using the generic TLS extension API
      Tests exercising the new supplemental data registration and callback api can be found in ssltest.c.
      Implemented changes to s_server and s_client to exercise supplemental data callbacks via the -auth argument, as well as additional flags to exercise supplemental data being sent only during renegotiation.
      36086186
  33. 14 6月, 2013 1 次提交
  34. 13 6月, 2013 1 次提交
  35. 14 4月, 2013 1 次提交
  36. 09 4月, 2013 1 次提交
    • D
      Suite B support for DTLS 1.2 · 4544f0a6
      Dr. Stephen Henson 提交于
      Check for Suite B support using method flags instead of version numbers:
      anything supporting TLS 1.2 cipher suites will also support Suite B.
      
      Return an error if an attempt to use DTLS 1.0 is made in Suite B mode.
      4544f0a6
  37. 02 12月, 2012 1 次提交
  38. 17 11月, 2012 1 次提交