aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/aes
Commit message (Collapse)AuthorAgeFilesLines
* aes/asm/aesni-sha*-x86_64.pl: add SHAEXT performance results.Andy Polyakov2017-07-242-7/+15
| | | | | Reviewed-by: Kurt Roeckx <kurt@roeckx.be> (Merged from https://github.com/openssl/openssl/pull/3898)
* x86_64 assembly pack: "optimize" for Knights Landing, add AVX-512 results.Andy Polyakov2017-07-211-0/+1
| | | | | | | | | | | | | | | | | | "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>
* x86_64 assembly pack: fill some blanks in Ryzen results.Andy Polyakov2017-07-031-1/+1
| | | | Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
* Remove filename argument to x86 asm_init.David Benjamin2017-05-113-3/+3
| | | | | | | | | | | | | | | The assembler already knows the actual path to the generated file and, in other perlasm architectures, is left to manage debug symbols itself. Notably, in OpenSSL 1.1.x's new build system, which allows a separate build directory, converting .pl to .s as the scripts currently do result in the wrong paths. This also avoids inconsistencies from some of the files using $0 and some passing in the filename. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3431)
* More typo fixesFdaSilvaYY2017-03-291-2/+2
| | | | | | | | Fix some comments too [skip ci] Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3069)
* aes/asm/bsaes-armv7.pl: relax stack alignment requirement.Andy Polyakov2017-03-261-1/+1
| | | | | | | | | | | Even though Apple refers to Procedure Call Standard for ARM Architecture (AAPCS), they apparently adhere to custom version that doesn't follow stack alignment constraints in the said standard. [Why or why? If it's vendor lock-in thing, then it would be like worst spot ever.] And since bsaes-armv7 relied on standard alignment, it became problematic to execute the code on iOS. Reviewed-by: Rich Salz <rsalz@openssl.org>
* aes/asm/aesni-sha*-x86_64.pl: fix IV handling in SHAEXT paths.Andy Polyakov2017-03-222-0/+2
| | | | | | | | Initial IV was disregarded on SHAEXT-capable processors. Amazingly enough bulk AES128-SHA* talk-to-yourself tests were passing. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2992)
* x86_64 assembly pack: add some Ryzen performance results.Andy Polyakov2017-03-221-0/+1
| | | | Reviewed-by: Tim Hudson <tjh@openssl.org>
* aes/aes_x86core.c: clarify reference implementation status.Andy Polyakov2017-03-021-9/+8
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Clean up references to FIPSEmilia Kasper2017-02-281-4/+0
| | | | | | | | | | | This removes the fips configure option. This option is broken as the required FIPS code is not available. FIPS_mode() and FIPS_mode_set() are retained for compatibility, but FIPS_mode() always returns 0, and FIPS_mode_set() can only be used to turn FIPS mode off. Reviewed-by: Stephen Henson <steve@openssl.org>
* Don't call memcpy if len is zero.Rich Salz2017-02-201-0/+3
| | | | | | | | | | | Prevent undefined behavior in CRYPTO_cbc128_encrypt: calling this function with the 'len' parameter being 0 would result in a memcpy where the source and destination parameters are the same, which is undefined behavior. Do same for AES_ige_encrypt. Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2671)
* ARMv4 assembly pack: harmonize Thumb-ification of iOS build.Andy Polyakov2017-02-151-3/+6
| | | | | | | Three modules were left behind in a285992763f3961f69a8d86bf7dfff020a08cef9. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2617)
* aes/asm/*-x86_64.pl: add CFI annotations.Andy Polyakov2017-02-136-1/+446
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* x86_64 assembly pack: Win64 SEH face-lift.Andy Polyakov2017-02-064-258/+274
| | | | | | | | - harmonize handlers with guidelines and themselves; - fix some bugs in handlers; - add missing handlers in chacha and ecp_nistz256 modules; Reviewed-by: Rich Salz <rsalz@openssl.org>
* x86 assembly pack: update performance results.Andy Polyakov2016-12-191-0/+2
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* PPC assembler pack: add some PPC970/G5 performance data.Andy Polyakov2016-11-111-1/+2
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* aes/asm/aesp8-ppc.pl: improve [backward] portability.Andy Polyakov2016-11-101-1/+1
| | | | | | | | Some of stone-age assembler can't cope with r0 in address. It's actually sensible thing to do, because r0 is shunted to 0 in address arithmetic and by refusing r0 assembler effectively makes you understand that. Reviewed-by: Rich Salz <rsalz@openssl.org>
* x86_64 assembly pack: add Goldmont performance results.Andy Polyakov2016-10-243-0/+4
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Fix strict-warnings buildPatrick Steuer2016-10-181-4/+4
| | | | | | | | | | | | | | | | | crypto/evp/e_aes.c: Types of inp and out parameters of AES_xts_en/decrypt functions need to be changed from char to unsigned char to avoid build error due to '-Werror=incompatible-pointer-types'. crypto/aes/asm/aes-s390x.pl: Comments need to reflect the above change. Signed-off-by: Patrick Steuer <psteuer@mail.de> Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> CLA: trivial
* Remove trailing whitespace from some files.David Benjamin2016-10-1017-71/+71
| | | | | | | | | | | | | | | | | | The prevailing style seems to not have trailing whitespace, but a few lines do. This is mostly in the perlasm files, but a few C files got them after the reformat. This is the result of: find . -name '*.pl' | xargs sed -E -i '' -e 's/( |'$'\t'')*$//' find . -name '*.c' | xargs sed -E -i '' -e 's/( |'$'\t'')*$//' find . -name '*.h' | xargs sed -E -i '' -e 's/( |'$'\t'')*$//' Then bn_prime.h was excluded since this is a generated file. Note mkerr.pl has some changes in a heredoc for some help output, but other lines there lack trailing whitespace too. Reviewed-by: Kurt Roeckx <kurt@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org>
* MIPS assembly pack: adapt it for MIPS[32|64]R6.Andy Polyakov2016-09-022-22/+66
| | | | | | | | | MIPS[32|64]R6 is binary and source incompatible with previous MIPS ISA specifications. Fortunately it's still possible to resolve differences in source code with standard pre-processor and switching to trap-free version of addition and subtraction instructions. Reviewed-by: Richard Levitte <levitte@openssl.org>
* ARMv8 assembly pack: add Samsung Mongoose results.Andy Polyakov2016-08-162-0/+2
| | | | Reviewed-by: Tim Hudson <tjh@openssl.org>
* spelling fixes, just comments and readme.klemens2016-08-054-4/+4
| | | | | Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1413)
* Fix a few if(, for(, while( inside code.FdaSilvaYY2016-07-201-4/+4
| | | | | | | Fix some indentation at the same time Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1292)
* aes/asm/aesfx-sparcv9.pl: switch to fshiftorx to improve single-blockAndy Polyakov2016-07-161-124/+226
| | | | | | | | and short-input performance. [Fix bug in misaligned output handling.] Reviewed-by: Richard Levitte <levitte@openssl.org>
* SPARC assembly pack: enforce V8+ ABI constraints.Andy Polyakov2016-07-161-8/+11
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* aes/asm/aesfx-sparcv9.pl: add "teaser" CBC and CTR subroutines.Andy Polyakov2016-07-161-28/+747
| | | | | | [Also optimize aligaddr usage in single-block subroutines.] Reviewed-by: Rich Salz <rsalz@openssl.org>
* Whitespace cleanup in cryptoFdaSilvaYY2016-06-292-6/+6
| | | | | | Reviewed-by: Andy Polyakov <appro@openssl.org> Reviewed-by: Kurt Roeckx <kurt@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1264)
* aes/asm/bsaes-armv7.pl: omit redundant stores in XTS subroutines.Andy Polyakov2016-06-201-20/+2
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* aes/asm/bsaes-armv7.pl: fix XTS decrypt test failure.Andy Polyakov2016-06-201-1/+1
| | | | | | RT#4578 Reviewed-by: Rich Salz <rsalz@openssl.org>
* aes/asm/aesp8-ppc.pl: implement "tweak chaining".Andy Polyakov2016-06-141-54/+126
| | | | | | | This is useful in Linux kernel context, in cases data happens to be fragmented and processing can take multiple calls. Reviewed-by: Rich Salz <rsalz@openssl.org>
* aes/asm/aesp8-ppc.pl: add XTS subroutines.Andy Polyakov2016-06-141-0/+1784
| | | | Reviewed-by: Rich Salz <rsalz@openssl.org>
* Add final(?) set of copyrights.Rich Salz2016-06-011-0/+7
| | | | | | | | | Add copyright to missing assembler files. Add copyrights to missing test/* files. Add copyrights Various source and misc files. Reviewed-by: Richard Levitte <levitte@openssl.org>
* x86_64 assembly pack: tolerate spaces in source directory name.Andy Polyakov2016-05-297-7/+7
| | | | | | [as it is now quoting $output is not required, but done just in case] Reviewed-by: Richard Levitte <levitte@openssl.org>
* SPARC assembly pack: add missing .type directives.Andy Polyakov2016-05-281-0/+4
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Add OpenSSL copyright to .pl filesRich Salz2016-05-2124-24/+192
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Copyright consolidation 05/10Rich Salz2016-05-1710-378/+65
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* MIPS assembly pack: fix MIPS64 assembler warnings.Andy Polyakov2016-05-041-6/+8
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* s390x assembly pack: cache capability query results.Andy Polyakov2016-04-251-19/+10
| | | | | | | | | IBM argues that in certain scenarios capability query is really expensive. At the same time it's asserted that query results can be safely cached, because disabling CPACF is incompatible with reboot-free operation. Reviewed-by: Tim Hudson <tjh@openssl.org>
* Remove --classic build entirelyRichard Levitte2016-04-201-108/+0
| | | | | | | | The Unix build was the last to retain the classic build scheme. The new unified scheme has matured enough, even though some details may need polishing. Reviewed-by: Rich Salz <rsalz@openssl.org>
* Add AES assembly module for Fujitsu SPARC64 X/X+.Andy Polyakov2016-04-203-0/+439
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* PPC assembly pack: remove branch hints.Andy Polyakov2016-04-071-2/+2
| | | | | | | | | | As it turns out branch hints grew as kind of a misconception. In addition their interpretation by GNU assembler is affected by assembler flags and can end up with opposite meaning on different processors. As we have to loose quite a lot on misinterprerations, especially on newer processors, we just omit them altogether. Reviewed-by: Tim Hudson <tjh@openssl.org>
* Clean-up *_DEBUG options.Andy Polyakov2016-04-073-15/+0
| | | | | | | | | Since NDEBUG is defined unconditionally on command line for release builds, we can omit *_DEBUG options in favour of effective "all-on" in debug builds exercised though CI. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Emilia Käsper <emilia@openssl.org>
* Remove the remainder of util/mk1mf.pl and companion scriptsRichard Levitte2016-03-211-3/+0
| | | | | | | This removes all scripts that deal with MINFO as well, since that's only used by mk1mf. Reviewed-by: Andy Polyakov <appro@openssl.org>
* Remove #error from include files.Rich Salz2016-03-201-5/+0
| | | | | | | | Don't have #error statements in header files, but instead wrap the contents of that file in #ifndef OPENSSL_NO_xxx This means it is now always safe to include the header file. Reviewed-by: Richard Levitte <levitte@openssl.org>
* Add $(LIB_CFLAGS) for any build.info generator that uses $(CFLAGS)Richard Levitte2016-03-131-3/+3
| | | | | | | The reason to do so is that some of the generators detect PIC flags like -fPIC and -KPIC, and those are normally delivered in LD_CFLAGS. Reviewed-by: Rich Salz <rsalz@openssl.org>
* crypto/*/build.info: make it work on ARM platforms.Andy Polyakov2016-03-111-2/+4
| | | | Reviewed-by: Richard Levitte <levitte@openssl.org>
* Fix some assembler generating scripts for better unificationRichard Levitte2016-03-115-8/+8
| | | | | | | | | | | Some of these scripts would recognise an output parameter if it looks like a file path. That works both in both the classic and new build schemes. Some fo these scripts would only recognise it if it's a basename (i.e. no directory component). Those need to be corrected, as the output parameter in the new build scheme is more likely to contain a directory component than not. Reviewed-by: Andy Polyakov <appro@openssl.org>
* Add include directory options for assembler files that include from crypto/Richard Levitte2016-03-101-0/+2
| | | | | | | | A few were missed in the previous commit. Closes RT#4412 Reviewed-by: Rich Salz <rsalz@openssl.org>
* Add include directory options for assembler files that include from crypto/Richard Levitte2016-03-101-0/+3
| | | | | | Closes RT#4406 Reviewed-by: Rich Salz <rsalz@openssl.org>