1. 15 7月, 2016 1 次提交
  2. 19 6月, 2016 1 次提交
  3. 04 6月, 2016 1 次提交
  4. 18 5月, 2016 1 次提交
  5. 06 5月, 2016 1 次提交
  6. 23 2月, 2016 1 次提交
  7. 18 2月, 2016 1 次提交
  8. 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
  9. 25 1月, 2016 1 次提交
    • R
      Move pqueue into ssl · cf2cede4
      Rich Salz 提交于
      This is an internal facility, never documented, not for
      public consumption.  Move it into ssl (where it's only used
      for DTLS).
      
      I also made the typedef's for pqueue and pitem follow our style: they
      name structures, not pointers.
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      cf2cede4
  10. 12 1月, 2016 1 次提交
  11. 13 12月, 2015 2 次提交
  12. 12 12月, 2015 1 次提交
  13. 10 12月, 2015 2 次提交
  14. 08 12月, 2015 1 次提交
  15. 10 11月, 2015 1 次提交
  16. 30 10月, 2015 6 次提交
  17. 23 9月, 2015 2 次提交
    • M
      Remove remaining old listen code · 912c89c5
      Matt Caswell 提交于
      The old implementation of DTLSv1_listen which has now been replaced still
      had a few vestiges scattered throughout the code. This commit removes them.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      912c89c5
    • 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
  18. 03 9月, 2015 2 次提交
  19. 12 8月, 2015 1 次提交
    • M
      Fix "make test" seg fault with SCTP enabled · f75d5171
      Matt Caswell 提交于
      When config'd with "sctp" running "make test" causes a seg fault. This is
      actually due to the way ssltest works - it dives under the covers and frees
      up BIOs manually and so some BIOs are NULL when the SCTP code does not
      expect it. The simplest fix is just to add some sanity checks to make sure
      the BIOs aren't NULL before we use them.
      
      This problem occurs in master and 1.0.2. The fix has also been applied to
      1.0.1 to keep the code in sync.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      f75d5171
  20. 03 8月, 2015 3 次提交
    • M
      Fix make errors for the CCS changes · 496dbe18
      Matt Caswell 提交于
      The move of CCS into the state machine was causing make errors to fail. This
      fixes it.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      496dbe18
    • M
      Move DTLS CCS processing into the state machine · c69f2adf
      Matt Caswell 提交于
      Continuing on from the previous commit this moves the processing of DTLS
      CCS messages out of the record layer and into the state machine.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      c69f2adf
    • 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
  21. 10 6月, 2015 1 次提交
  22. 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
  23. 29 5月, 2015 1 次提交
  24. 06 5月, 2015 1 次提交
  25. 05 5月, 2015 1 次提交
    • R
      Use safer sizeof variant in malloc · b4faea50
      Rich Salz 提交于
      For a local variable:
              TYPE *p;
      Allocations like this are "risky":
              p = OPENSSL_malloc(sizeof(TYPE));
      if the type of p changes, and the malloc call isn't updated, you
      could get memory corruption.  Instead do this:
              p = OPENSSL_malloc(sizeof(*p));
      Also fixed a few memset() calls that I noticed while doing this.
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      b4faea50
  26. 02 5月, 2015 1 次提交
    • R
      free NULL cleanup -- coda · 25aaa98a
      Rich Salz 提交于
      After the finale, the "real" final part. :)  Do a recursive grep with
      "-B1 -w [a-zA-Z0-9_]*_free" to see if any of the preceeding lines are
      an "if NULL" check that can be removed.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      25aaa98a
  27. 01 5月, 2015 1 次提交
  28. 29 4月, 2015 1 次提交
  29. 17 4月, 2015 1 次提交