Skip to content
  1. Jul 27, 2015
    • Matt Caswell's avatar
      Remove support for SSL3_FLAGS_DELAY_CLIENT_FINISHED · 57787ac8
      Matt Caswell authored
      
      
      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: default avatarRich Salz <rsalz@openssl.org>
      57787ac8
  2. Jul 13, 2015
  3. Jul 09, 2015
  4. Jul 07, 2015
  5. Jun 23, 2015
  6. Jun 15, 2015
    • Rich Salz's avatar
      RT2547: Tighten perms on generated privkey files · 3b061a00
      Rich Salz authored
      
      
      When generating a private key, try to make the output file be readable
      only by the owner.  Put it in CHANGES file since it might be noticeable.
      
      Add "int private" flag to apps that write private keys, and check that it's
      set whenever we do write a private key.  Checked via assert so that this
      bug (security-related) gets fixed.  Thanks to Viktor for help in tracing
      the code-paths where private keys are written.
      
      Reviewed-by: default avatarViktor Dukhovni <viktor@openssl.org>
      3b061a00
  7. Jun 11, 2015
  8. Jun 10, 2015
  9. Jun 04, 2015
  10. May 22, 2015
  11. May 20, 2015
  12. May 16, 2015
  13. May 13, 2015
  14. May 03, 2015
  15. Apr 29, 2015
  16. Apr 08, 2015
  17. Mar 25, 2015
    • Matt Caswell's avatar
      Deprecate RAND_pseudo_bytes · 302d38e3
      Matt Caswell authored
      The justification for RAND_pseudo_bytes is somewhat dubious, and the reality
      is that it is frequently being misused. RAND_bytes and RAND_pseudo_bytes in
      the default implementation both end up calling ssleay_rand_bytes. Both may
      return -1 in an error condition. If there is insufficient entropy then
      both will return 0, but RAND_bytes will additionally add an error to the
      error queue. They both return 1 on success.
      Therefore the fundamental difference between the two is that one will add an
      error to the error queue with insufficient entory whilst the other will not.
      Frequently there are constructions of this form:
      
      if(RAND_pseudo_bytes(...) <= 1)
      	goto err;
      
      In the above form insufficient entropy is treated as an error anyway, so
      RAND_bytes is probably the better form to use.
      
      This form is also seen:
      if(!RAND_pseudo_bytes(...))
      	goto err;
      
      This is technically not correct at all since a -1 return value is
      incorrectly handled - but this form will also treat insufficient entropy as
      a...
      302d38e3
  18. Mar 24, 2015
  19. Mar 19, 2015
  20. Mar 11, 2015
  21. Feb 03, 2015
  22. Feb 02, 2015
  23. Jan 31, 2015
  24. Jan 24, 2015
    • Rich Salz's avatar
      ifdef cleanup, part 4a: '#ifdef undef' · a2b18e65
      Rich Salz authored
      
      
      This removes all code surrounded by '#ifdef undef'
      One case is left: memmove() replaced by open-coded for loop,
      in crypto/stack/stack.c  That needs further review.
      
      Also removed a couple of instances of /* dead code */ if I saw them
      while doing the main removal.
      
      Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
      a2b18e65
  25. Jan 23, 2015
  26. Jan 22, 2015
  27. Jan 14, 2015
  28. Jan 12, 2015
  29. Jan 06, 2015
  30. Jan 05, 2015
    • Dr. Stephen Henson's avatar
      ECDH downgrade bug fix. · b15f8769
      Dr. Stephen Henson authored
      
      
      Fix bug where an OpenSSL client would accept a handshake using an
      ephemeral ECDH ciphersuites with the server key exchange message omitted.
      
      Thanks to Karthikeyan Bhargavan for reporting this issue.
      
      CVE-2014-3572
      Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
      b15f8769
    • Adam Langley's avatar
    • Dr. Stephen Henson's avatar
      Fix various certificate fingerprint issues. · 684400ce
      Dr. Stephen Henson authored
      
      
      By using non-DER or invalid encodings outside the signed portion of a
      certificate the fingerprint can be changed without breaking the signature.
      Although no details of the signed portion of the certificate can be changed
      this can cause problems with some applications: e.g. those using the
      certificate fingerprint for blacklists.
      
      1. Reject signatures with non zero unused bits.
      
      If the BIT STRING containing the signature has non zero unused bits reject
      the signature. All current signature algorithms require zero unused bits.
      
      2. Check certificate algorithm consistency.
      
      Check the AlgorithmIdentifier inside TBS matches the one in the
      certificate signature. NB: this will result in signature failure
      errors for some broken certificates.
      
      3. Check DSA/ECDSA signatures use DER.
      
      Reencode DSA/ECDSA signatures and compare with the original received
      signature. Return an error if there is a mismatch.
      
      This will reject various cases including garbage after signature
      (thanks to Antti Karjalainen and Tuomo Untinen from the Codenomicon CROSS
      program for discovering this case) and use of BER or invalid ASN.1 INTEGERs
      (negative or with leading zeroes).
      
      CVE-2014-8275
      Reviewed-by: default avatarEmilia Käsper <emilia@openssl.org>
      684400ce