1. 04 6月, 2016 1 次提交
  2. 20 5月, 2016 2 次提交
    • M
      Ensure async IO works with new state machine · 1689e7e6
      Matt Caswell 提交于
      In the new state machine if using nbio and we get the header of a
      handshake message is one record with the body in the next, with an nbio
      event in the middle, then the connection was failing. This is because
      s->init_num was getting reset. We should only reset it after we have
      read the whole message.
      
      RT#4394
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      1689e7e6
    • M
      Simplify SSL BIO buffering logic · 46417569
      Matt Caswell 提交于
      The write BIO for handshake messages is bufferred so that we only write
      out to the network when we have a complete flight. There was some
      complexity in the buffering logic so that we switched buffering on and
      off at various points through out the handshake. The only real reason to
      do this was historically it complicated the state machine when you wanted
      to flush because you had to traverse through the "flush" state (in order
      to cope with NBIO). Where we knew up front that there was only going to
      be one message in the flight we switched off buffering to avoid that.
      
      In the new state machine there is no longer a need for a flush state so
      it is simpler just to have buffering on for the whole handshake. This
      also gives us the added benefit that we can simply call flush after every
      flight even if it only has one message in it. This means that BIO authors
      can implement their own buffering strategies and not have to be aware of
      the state of the SSL object (previously they would have to switch off
      their own buffering during the handshake because they could not rely on
      a flush being received when they really needed to write data out). This
      last point addresses GitHub Issue #322.
      Reviewed-by: NAndy Polyakov <appro@openssl.org>
      46417569
  3. 18 5月, 2016 1 次提交
  4. 06 2月, 2016 1 次提交
  5. 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
  6. 02 1月, 2016 1 次提交
    • 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
  7. 06 11月, 2015 1 次提交
  8. 30 10月, 2015 25 次提交