Skip to content
  1. Feb 23, 2018
  2. Feb 14, 2018
    • Viktor Dukhovni's avatar
      Avoid fragile aliasing of SHA224/384 update/final · babab8e7
      Viktor Dukhovni authored
      
      
      This is purported to save a few cycles, but makes the code less
      obvious and more brittle, and in fact breaks on platforms where for
      ABI continuity reasons there is a SHA2 implementation in libc, and
      so EVP needs to call those to avoid conflicts.
      
      A sufficiently good optimizer could simply generate the same entry
      points for:
      
              foo(...) { ... }
          and
              bar(...) { return foo(...); }
      
      but, even without that, the different is negligible, with the
      "winner" varying from run to run (openssl speed -evp sha384):
      
          Old:
          type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes 16384 bytes
          sha384           28864.28k   117362.62k   266469.21k   483258.03k   635144.87k 649123.16k
      
          New:
          type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes 16384 bytes
          sha384           30055.18k   120725.98k   272057.26k   482847.40k   634585.09k 650308.27k
      
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      babab8e7
  3. Feb 06, 2018
  4. Jan 23, 2018
  5. Jan 09, 2018
  6. Jan 07, 2018
  7. Dec 15, 2017
  8. Dec 09, 2017
  9. Dec 08, 2017
  10. Nov 20, 2017
  11. Nov 13, 2017
  12. Nov 05, 2017
  13. Oct 31, 2017
  14. Oct 30, 2017
  15. Oct 18, 2017
  16. Oct 13, 2017
  17. Oct 11, 2017
  18. Oct 09, 2017
  19. Sep 14, 2017
  20. Sep 13, 2017
  21. Sep 11, 2017
  22. Aug 30, 2017
  23. Aug 29, 2017
  24. Aug 22, 2017
  25. Aug 21, 2017
    • Pauli's avatar
      This has been added to avoid the situation where some host ctype.h functions · a1df06b3
      Pauli authored
      
      return true for characters > 127.  I.e. they are allowing extended ASCII
      characters through which then cause problems.  E.g. marking superscript '2' as
      a number then causes the common (ch - '0') conversion to number to fail
      miserably.  Likewise letters with diacritical marks can also cause problems.
      
      If a non-ASCII character set is being used (currently only EBCDIC), it is
      adjusted for.
      
      The implementation uses a single table with a bit for each of the defined
      classes.  These functions accept an int argument and fail for
      values out of range or for characters outside of the ASCII set.  They will
      work for both signed and unsigned character inputs.
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      (Merged from https://github.com/openssl/openssl/pull/4102)
      a1df06b3
  26. Aug 15, 2017
  27. Aug 12, 2017