1. 06 9月, 2015 1 次提交
    • R
      Change the treatment of stdin and stdout to allow binary data · a60994df
      Richard Levitte 提交于
      If the output to stdout or the input from stdin is meant to be binary,
      it's deeply unsetting to get the occasional LF converted to CRLF or
      the other way around.  If someone happens to forget to redirect stdin
      or stdout, they will get gibberish anyway, line ending conversion will
      not change that.
      
      Therefore, let's not have dup_bio_* decide unilaterally what mode the
      BIO derived from stdin and stdout, and rather let the app decide by
      declaring the intended format.
      Reviewed-by: NTim Hudson <tjh@openssl.org>
      a60994df
  2. 05 8月, 2015 1 次提交
  3. 31 7月, 2015 1 次提交
  4. 16 6月, 2015 1 次提交
    • R
      RT2547: Tighten perms on generated privkey files · 3b061a00
      Rich Salz 提交于
      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: NViktor Dukhovni <viktor@openssl.org>
      3b061a00
  5. 10 6月, 2015 2 次提交
  6. 03 6月, 2015 1 次提交
    • R
      Standardize handling of #ifdef'd options. · 9c3bcfa0
      Rich Salz 提交于
      Here are the "rules" for handling flags that depend on #ifdef:
      
      - Do not ifdef the enum.  Only ifdef the OPTIONS table.  All ifdef'd
        entries appear at the end; by convention "engine" is last.  This
        ensures that at run-time, the flag will never be recognized/allowed.
        The next two bullets entries are for silencing compiler warnings:
      - In the while/switch parsing statement, use #ifdef for the body to
        disable it; leave the "case OPT_xxx:" and "break" statements outside
        the ifdef/ifndef.  See ciphers.c for example.
      - If there are multiple options controlled by a single guard, OPT_FOO,
        OPT_BAR, etc., put a an #ifdef around the set, and then do "#else"
        and a series of case labels and a break. See OPENSSL_NO_AES in cms.c
        for example.
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      9c3bcfa0
  7. 29 5月, 2015 1 次提交
  8. 23 5月, 2015 1 次提交
  9. 22 5月, 2015 1 次提交
  10. 19 5月, 2015 1 次提交
  11. 16 5月, 2015 1 次提交
    • M
      Server side version negotiation rewrite · 32ec4153
      Matt Caswell 提交于
      This commit changes the way that we do server side protocol version
      negotiation. Previously we had a whole set of code that had an "up front"
      state machine dedicated to the negotiating the protocol version. This adds
      significant complexity to the state machine. Historically the justification
      for doing this was the support of SSLv2 which works quite differently to
      SSLv3+. However, we have now removed support for SSLv2 so there is little
      reason to maintain this complexity.
      
      The one slight difficulty is that, although we no longer support SSLv2, we
      do still support an SSLv3+ ClientHello in an SSLv2 backward compatible
      ClientHello format. This is generally only used by legacy clients. This
      commit adds support within the SSLv3 code for these legacy format
      ClientHellos.
      
      Server side version negotiation now works in much the same was as DTLS,
      i.e. we introduce the concept of TLS_ANY_VERSION. If s->version is set to
      that then when a ClientHello is received it will work out the most
      appropriate version to respond with. Also, SSLv23_method and
      SSLv23_server_method have been replaced with TLS_method and
      TLS_server_method respectively. The old SSLv23* names still exist as
      macros pointing at the new name, although they are deprecated.
      
      Subsequent commits will look at client side version negotiation, as well of
      removal of the old s23* code.
      Reviewed-by: NKurt Roeckx <kurt@openssl.org>
      32ec4153
  12. 15 5月, 2015 1 次提交
  13. 13 5月, 2015 1 次提交
  14. 07 5月, 2015 1 次提交
  15. 06 5月, 2015 2 次提交
    • G
      Initialize potentially uninitialized local variables · 4c9b0a03
      Gunnar Kudrjavets 提交于
      Compiling OpenSSL code with MSVC and /W4 results in a number of warnings.
      One category of warnings is particularly interesting - C4701 (potentially
      uninitialized local variable 'name' used). This warning pretty much means
      that there's a code path which results in uninitialized variables being used
      or returned. Depending on compiler, its options, OS, values in registers
      and/or stack, the results can be nondeterministic. Cases like this are very
      hard to debug so it's rational to fix these issues.
      
      This patch contains a set of trivial fixes for all the C4701 warnings (just
      initializing variables to 0 or NULL or appropriate error code) to make sure
      that deterministic values will be returned from all the execution paths.
      
      RT#3835
      Signed-off-by: NMatt Caswell <matt@openssl.org>
      
      Matt's note: All of these appear to be bogus warnings, i.e. there isn't
      actually a code path where an unitialised variable could be used - its just
      that the compiler hasn't been able to figure that out from the logic. So
      this commit is just about silencing spurious warnings.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      4c9b0a03
    • M
      Fix s_server version specific methods · 4407d070
      Matt Caswell 提交于
      A copy&paste error as a result of the big apps cleanup broke the version
      specific methods in s_server.
      Reviewed-by: NRich Salz <rsalz@openssl.org>
      4407d070
  16. 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
  17. 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
  18. 01 5月, 2015 5 次提交
  19. 29 4月, 2015 2 次提交
  20. 27 4月, 2015 1 次提交
  21. 26 4月, 2015 4 次提交
  22. 25 4月, 2015 2 次提交
    • R
      Add missing BIO_flush() calls · c54cc2b1
      Rich Salz 提交于
      Reviewed-by: NRichard Levitte <levitte@openssl.org>
      c54cc2b1
    • R
      Big apps cleanup (option-parsing, etc) · 7e1b7485
      Rich Salz 提交于
      This is merges the old "rsalz-monolith" branch over to master.  The biggest
      change is that option parsing switch from cascasding 'else if strcmp("-foo")'
      to a utility routine and somethin akin to getopt.  Also, an error in the
      command line no longer prints the full summary; use -help (or --help :)
      for that.  There have been many other changes and code-cleanup, see
      bullet list below.
      
      Special thanks to Matt for the long and detailed code review.
      
      TEMPORARY:
              For now, comment out CRYPTO_mem_leaks() at end of main
      
      Tickets closed:
              RT3515: Use 3DES in pkcs12 if built with no-rc2
              RT1766: s_client -reconnect and -starttls broke
              RT2932: Catch write errors
              RT2604: port should be 'unsigned short'
              RT2983: total_bytes undeclared #ifdef RENEG
              RT1523: Add -nocert to fix output in x509 app
              RT3508: Remove unused variable introduced by b09eb246
              RT3511: doc fix; req default serial is random
              RT1325,2973: Add more extensions to c_rehash
              RT2119,3407: Updated to dgst.pod
              RT2379: Additional typo fix
              RT2693: Extra include of string.h
              RT2880: HFS is case-insensitive filenames
              RT3246: req command prints version number wrong
      
      Other changes; incompatibilities marked with *:
              Add SCSV support
              Add -misalign to speed command
              Make dhparam, dsaparam, ecparam, x509 output C in proper style
              Make some internal ocsp.c functions void
              Only display cert usages with -help in verify
              Use global bio_err, remove "BIO*err" parameter from functions
              For filenames, - always means stdin (or stdout as appropriate)
              Add aliases for -des/aes "wrap" ciphers.
              *Remove support for IISSGC (server gated crypto)
              *The undocumented OCSP -header flag is now "-header name=value"
              *Documented the OCSP -header flag
      Reviewed-by: NMatt Caswell <matt@openssl.org>
      7e1b7485
  23. 17 4月, 2015 1 次提交
  24. 11 4月, 2015 1 次提交
    • R
      free NULL cleanup 10 · 62adbcee
      Rich Salz 提交于
      Avoid checking for NULL before calling free functions.  This gets
      ssl.*free:
          ssl_sess_cert_free ssl_free ssl_excert_free ssl_cert_free
          SSL_free SSL_SRP_CTX_free SSL_SESSION_free SSL_CTX_free
          SSL_CTX_SRP_CTX_free SSL_CONF_CTX_free
      Reviewed-by: NKurt Roeckx <kurt@openssl.org>
      62adbcee
  25. 28 3月, 2015 1 次提交
    • R
      free NULL cleanup · c5ba2d99
      Rich Salz 提交于
      EVP_.*free; this gets:
              EVP_CIPHER_CTX_free EVP_PKEY_CTX_free EVP_PKEY_asn1_free
              EVP_PKEY_asn1_set_free EVP_PKEY_free EVP_PKEY_free_it
              EVP_PKEY_meth_free; and also EVP_CIPHER_CTX_cleanup
      Reviewed-by: NKurt Roeckx <kurt@openssl.org>
      c5ba2d99
  26. 25 3月, 2015 3 次提交
  27. 23 3月, 2015 1 次提交