1. 01 2月, 2016 1 次提交
  2. 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
  3. 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
  4. 11 1月, 2016 1 次提交
  5. 02 1月, 2016 2 次提交
    • V
      Protocol version selection and negotiation rewrite · 4fa52141
      Viktor Dukhovni 提交于
      The protocol selection code is now consolidated in a few consecutive
      short functions in a single file and is table driven.  Protocol-specific
      constraints that influence negotiation are moved into the flags
      field of the method structure.  The same protocol version constraints
      are now applied in all code paths.  It is now much easier to add
      new protocol versions without reworking the protocol selection
      logic.
      
      In the presence of "holes" in the list of enabled client protocols
      we no longer select client protocols below the hole based on a
      subset of the constraints and then fail shortly after when it is
      found that these don't meet the remaining constraints (suiteb, FIPS,
      security level, ...).  Ideally, with the new min/max controls users
      will be less likely to create "holes" in the first place.
      Reviewed-by: NKurt Roeckx <kurt@openssl.org>
      4fa52141
    • K
      7946ab33
  6. 26 11月, 2015 1 次提交
  7. 10 11月, 2015 1 次提交
  8. 02 11月, 2015 1 次提交
  9. 30 10月, 2015 6 次提交
  10. 09 10月, 2015 1 次提交
  11. 23 9月, 2015 2 次提交
    • M
      Sanity check cookie_len · 373dc6e1
      Matt Caswell 提交于
      Add a sanity check that the cookie_len returned by app_gen_cookie_cb is
      valid.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      373dc6e1
    • 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
  12. 03 9月, 2015 1 次提交
  13. 11 8月, 2015 1 次提交
  14. 06 5月, 2015 1 次提交
  15. 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
  16. 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
  17. 30 4月, 2015 1 次提交
  18. 17 4月, 2015 1 次提交
  19. 26 3月, 2015 5 次提交
  20. 24 3月, 2015 1 次提交
  21. 23 3月, 2015 2 次提交
  22. 19 3月, 2015 1 次提交
    • M
      Fix Seg fault in DTLSv1_listen · e83ee04b
      Matt Caswell 提交于
      The DTLSv1_listen function is intended to be stateless and processes
      the initial ClientHello from many peers. It is common for user code to
      loop over the call to DTLSv1_listen until a valid ClientHello is received
      with an associated cookie. A defect in the implementation of DTLSv1_listen
      means that state is preserved in the SSL object from one invokation to the
      next that can lead to a segmentation fault. Erorrs processing the initial
      ClientHello can trigger this scenario. An example of such an error could
      be that a DTLS1.0 only client is attempting to connect to a DTLS1.2 only
      server.
      
      CVE-2015-0207
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      e83ee04b
  23. 09 3月, 2015 1 次提交
    • D
      Wrong SSL version in DTLS1_BAD_VER ClientHello · f7683aaf
      David Woodhouse 提交于
      Since commit 741c9959 ("DTLS revision."), we put the wrong protocol
      version into our ClientHello for DTLS1_BAD_VER. The old DTLS
      code which used ssl->version was replaced by the more generic SSL3 code
      which uses ssl->client_version. The Cisco ASA no longer likes our
      ClientHello.
      
      RT#3711
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      f7683aaf
  24. 22 1月, 2015 2 次提交
  25. 05 12月, 2014 1 次提交
  26. 04 12月, 2014 1 次提交
  27. 03 12月, 2014 1 次提交