summaryrefslogtreecommitdiffstats
path: root/crypto/sha (follow)
Commit message (Collapse)AuthorAgeFilesLines
* sha/asm/keccak1600-s390x.pl: resolve -march=z900 portability issue.Andy Polyakov2018-10-121-2/+2
| | | | | | | | | | | Negative displacement in memory references was not originally specified, so that for maximum coverage one should abstain from it, just like with any other extension. [Unless it's guarded by run-time switch, but there is no switch in keccak1600-s390x.] Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7239)
* Update copyright yearMatt Caswell2018-09-115-5/+5
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7176)
* Remove development artifacts.Pauli2018-07-012-2/+0
| | | | | | | | | | The issue was discovered on the x86/64 when attempting to include libcrypto inside another shared library. A relocation of type R_X86_64_PC32 was generated which causes a linker error. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6595)
* PA-RISC assembly pack: make it work with GNU assembler for HP-UX.Andy Polyakov2018-06-252-7/+26
| | | | | Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6583)
* sha/asm/sha{256|512}-armv4.pl: harmonize thumb2 support with the rest.Andy Polyakov2018-06-222-3/+3
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Update copyright yearMatt Caswell2018-06-202-2/+2
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6538)
* sha/asm/sha{1|256}-586.pl: harmonize clang version detection.Andy Polyakov2018-06-182-2/+2
| | | | | Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6499)
* sha/asm/sha512p8-ppc.pl: fix build on Mac OS X.Andy Polyakov2018-06-061-2/+1
| | | | | Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6419)
* sha/asm/sha512p8-ppc.pl: improve POWER9 performance by ~10%.Andy Polyakov2018-06-031-67/+55
| | | | | | | | | | | Biggest part, ~7%, of improvement resulted from omitting constants' table index increment in each round. And minor part from rescheduling instructions. Apparently POWER9 (and POWER8) manage to dispatch instructions more efficiently if they are laid down as if they have no latency... Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6406)
* PPC assembly pack: correct POWER9 results.Andy Polyakov2018-06-033-4/+4
| | | | | | | | | | As it turns out originally published results were skewed by "turbo" mode. VM apparently remains oblivious to dynamic frequency scaling, and reports that processor operates at "base" frequency at all times. While actual frequency gets increased under load. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6406)
* Update copyright yearMatt Caswell2018-05-293-3/+3
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6371)
* PPC assembly pack: add POWER9 results.Andy Polyakov2018-05-103-4/+5
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* Update copyright yearMatt Caswell2018-05-011-1/+1
| | | | | Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6145)
* 00-base-templates.conf: wire keccak1600-armv4 module.Andy Polyakov2018-04-231-0/+2
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
* sha/asm/keccak1600-armv4.pl: adapt for multi-platform.Andy Polyakov2018-04-231-3/+20
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
* 00-base-templates.conf: wire keccak1600-ppc64 module.Andy Polyakov2018-04-231-0/+1
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
* 00-base-templates.conf: wire keccak1600-s390x module.Andy Polyakov2018-04-231-0/+1
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
* 00-base-templates.conf: wire keccak1600-armv8 module.Andy Polyakov2018-04-231-0/+1
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
* 00-base-templates.conf: wire keccak1600-x86_64 module.Andy Polyakov2018-04-231-0/+1
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
* sha/asm/keccak1600-x86_64.pl: make it work on Windows.Andy Polyakov2018-04-231-4/+4
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
* Configure: add $target{keccak1600_asm_src}.Andy Polyakov2018-04-231-1/+1
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6042)
* sha/asm/keccak1600-armv8.pl: halve the size of hw-assisted subroutine.Andy Polyakov2018-04-231-18/+18
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
* Update copyright yearMatt Caswell2018-03-207-7/+7
| | | | | Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5689)
* MIPS assembly pack: default heuristic detection to little-endian.Andy Polyakov2018-03-192-2/+2
| | | | | | | | | Current endianness detection is somewhat opportunistic and can fail in cross-compile scenario. Since we are more likely to cross-compile for little-endian now, adjust the default accordingly. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5613)
* Make a few more asm modules conform: last argument is output fileRichard Levitte2018-03-085-0/+12
| | | | | | | Fixes #5310 Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5315)
* sha/asm/keccak1600-armv8.pl: add hardware-assisted ARMv8.2 subroutines.Andy Polyakov2018-02-191-8/+356
| | | | | Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5358)
* Harmonize the make variables across all known platforms familiesRichard Levitte2018-02-141-12/+6
| | | | | | | | | | | | | | | | | | | | | | | | The make variables LIB_CFLAGS, DSO_CFLAGS and so on were used in addition to CFLAGS and so on. This works without problem on Unix and Windows, where options with different purposes (such as -D and -I) can appear anywhere on the command line and get accumulated as they come. This is not necessarely so on VMS. For example, macros must all be collected and given through one /DEFINE, and the same goes for inclusion directories (/INCLUDE). So, to harmonize all platforms, we repurpose make variables starting with LIB_, DSO_ and BIN_ to be all encompassing variables that collects the corresponding values from CFLAGS, CPPFLAGS, DEFINES, INCLUDES and so on together with possible config target values specific for libraries DSOs and programs, and use them instead of the general ones everywhere. This will, for example, allow VMS to use the exact same generators for generated files that go through cpp as all other platforms, something that has been impossible to do safely before now. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5357)
* Update copyright yearMatt Caswell2018-02-131-1/+1
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* sha/asm/sha512-armv8.pl: add hardware-assisted SHA512 subroutine.Andy Polyakov2018-02-121-3/+127
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* Processing GNU-style "make variables" - separate CPP flags from C flagsRichard Levitte2018-01-281-6/+15
| | | | | | | | | | | | C preprocessor flags get separated from C flags, which has the advantage that we don't get loads of macro definitions and inclusion directory specs when linking shared libraries, DSOs and programs. This is a step to add support for "make variables" when configuring. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5177)
* SHA512/224 and SHA512/256Pauli2018-01-231-1/+78
| | | | | | | Support added for these two digests, available only via the EVP interface. Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5093)
* Add sha/asm/keccak1600-avx512vl.pl.Andy Polyakov2017-12-221-0/+390
| | | | | Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4948)
* ARMv8 assembly pack: add Qualcomm Kryo results.Andy Polyakov2017-11-133-0/+3
| | | | | | [skip ci] Reviewed-by: Tim Hudson <tjh@openssl.org>
* Many spelling fixes/typo's corrected.Josh Soref2017-11-1212-22/+22
| | | | | | | | | Around 138 distinct errors found and fixed; thanks! Reviewed-by: Kurt Roeckx <kurt@roeckx.be> Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3459)
* s390x assembly pack: extend s390x capability vector.Patrick Steuer2017-10-303-4/+13
| | | | | | | | | | | | | | | Extend the s390x capability vector to store the longer facility list available from z13 onwards. The bits indicating the vector extensions are set to zero, if the kernel does not enable the vector facility. Also add capability bits returned by the crypto instructions' query functions. Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4542)
* Remove parentheses of return.KaoruToda2017-10-183-5/+5
| | | | | | | | | Since return is inconsistent, I removed unnecessary parentheses and unified them. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4541)
* s390x assembly pack: remove capability double-checking.Patrick Steuer2017-10-172-6/+0
| | | | | | | | | | | | | | | | | An instruction's QUERY function is executed at initialization, iff the required MSA level is installed. Therefore, it is sufficient to check the bits returned by the QUERY functions. The MSA level does not have to be checked at every function call. crypto/aes/asm/aes-s390x.pl: The AES key schedule must be computed if the required KM or KMC function codes are not available. Formally, the availability of a KMC function code does not imply the availability of the corresponding KM function code. Signed-off-by: Patrick Steuer <patrick.steuer@de.ibm.com> Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4501)
* Remove email addresses from source code.Rich Salz2017-10-1315-22/+20
| | | | | | | | | | Names were not removed. Some comments were updated. Replace Andy's address with openssl.org Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/4516)
* sha/asm/keccak1600-armv8.pl: fix return value buglet and ...Andy Polyakov2017-09-091-147/+11
| | | | | | | | | | | | | | | | | ... script data load. On related note an attempt was made to merge rotations with logical operations. I mean as we know, ARM ISA has merged rotate-n-logical instructions which can be used here. And they were used to improve keccak1600-armv4 performance. But not here. Even though this approach resulted in improvement on Cortex-A53 proportional to reduction of amount of instructions, ~8%, it didn't exactly worked out on non-Cortex cores. Presumably because they break merged instructions to separate μ-ops, which results in higher *operations* count. X-Gene and Denver went ~20% slower and Apple A7 - 40%. The optimization was therefore dismissed. Reviewed-by: Rich Salz <rsalz@openssl.org>
* MSC_VER <= 1200 isn't supported; remove dead codeRich Salz2017-08-271-3/+0
| | | | | | | VisualStudio 6 and earlier aren't supported. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4263)
* sha/asm/keccak1600-armv4.pl: optimize for Thumb-2.Andy Polyakov2017-08-161-144/+242
| | | | | | | Reduce per-round instruction count in Thumb-2 case by 16%. This is achieved by folding ldr/str pairs to their double-word counterparts. Reviewed-by: Rich Salz <rsalz@openssl.org>
* sha/asm/keccak1600-avx512.pl: fix buglet in SHA3_squeeze tail.Andy Polyakov2017-08-121-1/+1
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* sha/asm/keccak1600-armv4.pl: improve non-NEON performance by ~10%.Andy Polyakov2017-08-021-352/+388
| | | | | | | | | | | | | This is achieved mostly by ~10% reduction of amount of instructions per round thanks to a) switch to KECCAK_2X variant; b) merge of almost 1/2 rotations with logical instructions. Performance is improved on all observed processors except on Cortex-A15. This is because it's capable of exploiting more parallelism and can execute original code for same amount of time. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/4057)
* sha/keccak1600.c: choose more sensible default parameters.Andy Polyakov2017-08-011-11/+21
| | | | | | | "More" refers to the fact that we make active BIT_INTERLEAVE choice in some specific cases. Update commentary correspondingly. Reviewed-by: Rich Salz <rsalz@openssl.org>
* Fix typo in sha1-thumb.plXiaoyin Liu2017-07-311-1/+1
| | | | | | Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4056)
* sha/keccak1600.c: build and make it work with strict warnings.Andy Polyakov2017-07-252-1/+6
| | | | | | Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3943)
* sha/asm/keccak1600-avx512.pl: improve performance by 17%.Andy Polyakov2017-07-241-176/+278
| | | | | | | | | | | Improvement is result of combination of data layout ideas from Keccak Code Package and initial version of this module. Hardware used for benchmarking courtesy of Atos, experiments run by Romain Dolbeau <romain.dolbeau@atos.net>. Kudos! Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> Reviewed-by: Rich Salz <rsalz@openssl.org>
* sha/asm/keccak1600-avx512.pl: absorb bug-fix and minor optimization.Andy Polyakov2017-07-211-19/+17
| | | | | | | Hardware used for benchmarking courtesy of Atos, experiments run by Romain Dolbeau <romain.dolbeau@atos.net>. Kudos! Reviewed-by: Rich Salz <rsalz@openssl.org>
* x86_64 assembly pack: "optimize" for Knights Landing, add AVX-512 results.Andy Polyakov2017-07-212-0/+2
| | | | | | | | | | | | | | | | | | "Optimize" is in quotes because it's rather a "salvage operation" for now. Idea is to identify processor capability flags that drive Knights Landing to suboptimial code paths and mask them. Two flags were identified, XSAVE and ADCX/ADOX. Former affects choice of AES-NI code path specific for Silvermont (Knights Landing is of Silvermont "ancestry"). And 64-bit ADCX/ADOX instructions are effectively mishandled at decode time. In both cases we are looking at ~2x improvement. AVX-512 results cover even Skylake-X :-) Hardware used for benchmarking courtesy of Atos, experiments run by Romain Dolbeau <romain.dolbeau@atos.net>. Kudos! Reviewed-by: Rich Salz <rsalz@openssl.org>
* sha/asm/keccak1600-avx2.pl: optimized remodelled version.Andy Polyakov2017-07-151-97/+99
| | | | | | | | | New register usage pattern allows to achieve sligtly better performance. Not as much as I hoped for. Performance is believed to be limited by irreconcilable write-back conflicts, rather than lack of computational resources or data dependencies. Reviewed-by: Rich Salz <rsalz@openssl.org>