Skip to content
  1. Nov 20, 2015
  2. Nov 17, 2015
  3. Oct 30, 2015
  4. Oct 26, 2015
  5. Oct 15, 2015
  6. Oct 14, 2015
  7. Sep 30, 2015
    • Matt Caswell's avatar
      Change the DEFAULT ciphersuites to exclude DES, RC4 and RC2 · c84f7f4a
      Matt Caswell authored
      
      
      This patch updates the "DEFAULT" cipherstring to be
      "ALL:!COMPLEMENTOFDEFAULT:!eNULL". COMPLEMENTOFDEFAULT is now defined
      internally by a flag on each ciphersuite indicating whether it should be
      excluded from DEFAULT or not. This gives us control at an individual
      ciphersuite level as to exactly what is in DEFAULT and what is not.
      
      Finally all DES, RC4 and RC2 ciphersuites are added to COMPLEMENTOFDEFAULT
      and hence removed from DEFAULT.
      
      Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
      c84f7f4a
    • David Woodhouse's avatar
      Fix no-stdio build · 984d6c60
      David Woodhouse authored
      
      
      Much related/similar work also done by
      Ivan Nestlerode <ivan.nestlerode@sonos.com>
      
         +Replace FILE BIO's with dummy ops that fail.
         +Include <stdio.h> for sscanf() even with no-stdio (since the declaration
          is there). We rely on sscanf() to parse the OPENSSL_ia32cap environment
          variable, since it can be larger than a 'long'. And we don't rely on the
          availability of strtoull().
         +Remove OPENSSL_stderr(); not used.
         +Make OPENSSL_showfatal() do nothing (currently without stdio there's
          nothing we can do).
         +Remove file-based functionality from ssl/. The function
          prototypes were already gone, but not the functions themselves.
         +Remove unviable conf functionality via SYS_UEFI
         +Add fallback definition of BUFSIZ.
         +Remove functions taking FILE * from header files.
         +Add missing DECLARE_PEM_write_fp_const
         +Disable X509_LOOKUP_hash_dir(). X509_LOOKUP_file() was already compiled out,
          so remove its prototype.
         +Use OPENSSL_showfatal() in CRYPTO_destroy_dynlockid().
         +Eliminate SRP_VBASE_init() and supporting functions. Users will need to
          build the verifier manually instead.
         +Eliminate compiler warning for unused do_pk8pkey_fp().
         +Disable TEST_ENG_OPENSSL_PKEY.
         +Disable GOST engine as is uses [f]printf all over the place.
         +Eliminate compiler warning for unused send_fp_chars().
      
      Signed-off-by: default avatarRich Salz <rsalz@akamai.com>
      Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
      984d6c60
  8. Sep 17, 2015
  9. Sep 07, 2015
  10. Aug 28, 2015
  11. Aug 24, 2015
  12. Jul 31, 2015
  13. Jul 30, 2015
  14. 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
  15. Jul 13, 2015
  16. Jul 09, 2015
  17. Jul 07, 2015
  18. Jun 23, 2015
  19. 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
  20. Jun 11, 2015
  21. Jun 10, 2015
  22. Jun 04, 2015
  23. May 22, 2015
  24. May 20, 2015
  25. May 16, 2015
  26. May 13, 2015
  27. May 03, 2015
  28. Apr 29, 2015
  29. Apr 08, 2015
  30. 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
      an error.
      
      Within libssl it is required that you have correctly seeded your entropy
      pool and so there seems little benefit in using RAND_pseudo_bytes.
      Similarly in libcrypto many operations also require a correctly seeded
      entropy pool and so in most interesting cases you would be better off
      using RAND_bytes anyway. There is a significant risk of RAND_pseudo_bytes
      being incorrectly used in scenarios where security can be compromised by
      insufficient entropy.
      
      If you are not using the default implementation, then most engines use the
      same function to implement RAND_bytes and RAND_pseudo_bytes in any case.
      
      Given its misuse, limited benefit, and potential to compromise security,
      RAND_pseudo_bytes has been deprecated.
      
      Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
      302d38e3
  31. Mar 24, 2015