summaryrefslogtreecommitdiffstats
path: root/crypto/ppccap.c
AgeCommit message (Collapse)Author
2021-05-08bn: Add fixed length (n=6), unrolled PPC Montgomery MultiplicationMartin Schwenke
Overall improvement for p384 of ~18% on Power 9, compared to existing Power assembling code. See comment in code for more details. Multiple unrolled versions could be generated for values other than 6. However, for TLS 1.3 the only other ECC algorithms that might use Montgomery Multiplication are p256 and p521, but these have custom algorithms that don't use Montgomery Multiplication. Non-ECC algorithms are likely to use larger key lengths that won't fit into the n <= 10 length limitation of this code. Signed-off-by: Amitay Isaacs <amitay@ozlabs.org> Signed-off-by: Alastair D'Silva <alastair@d-silva.org> Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15175)
2021-03-04crypto/ppccap.c: Remove useless TODO 3.0Tomas Mraz
The chacha and poly1305 algorithms are not FIPS approved so they should stay out of FIPS module. Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14404)
2021-01-28Update copyright yearRichard Levitte
Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/13999)
2021-01-14OPENSSL_cpuid_setup FreeBSD PowerPC updateDavid Carlier
Reviewed-by: Ben Kaduk <kaduk@mit.edu> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/13821)
2020-05-15Update copyright yearMatt Caswell
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11839)
2020-04-28Rename FIPS_MODE to FIPS_MODULERichard Levitte
This macro is used to determine if certain pieces of code should become part of the FIPS module or not. The old name was confusing. Fixes #11538 Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11539)
2019-09-28Reorganize local header filesDr. Matthias St. Pierre
Apart from public and internal header files, there is a third type called local header files, which are located next to source files in the source directory. Currently, they have different suffixes like '*_lcl.h', '*_local.h', or '*_int.h' This commit changes the different suffixes to '*_local.h' uniformly. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9333)
2019-09-28Reorganize private crypto header filesDr. Matthias St. Pierre
Currently, there are two different directories which contain internal header files of libcrypto which are meant to be shared internally: While header files in 'include/internal' are intended to be shared between libcrypto and libssl, the files in 'crypto/include/internal' are intended to be shared inside libcrypto only. To make things complicated, the include search path is set up in such a way that the directive #include "internal/file.h" could refer to a file in either of these two directoroes. This makes it necessary in some cases to add a '_int.h' suffix to some files to resolve this ambiguity: #include "internal/file.h" # located in 'include/internal' #include "internal/file_int.h" # located in 'crypto/include/internal' This commit moves the private crypto headers from 'crypto/include/internal' to 'include/crypto' As a result, the include directives become unambiguous #include "internal/file.h" # located in 'include/internal' #include "crypto/file.h" # located in 'include/crypto' hence the superfluous '_int.h' suffixes can be stripped. The files 'store_int.h' and 'store.h' need to be treated specially; they are joined into a single file. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9333)
2019-08-06Make the EC code available from inside the FIPS providerMatt Caswell
Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com> (Merged from https://github.com/openssl/openssl/pull/9380)
2019-06-17crypto/ppccap.c: Fix FIPS build on PPCRichard Levitte
Some code was temporarly disabled in the FIPS module because SHA other SHA1 hadn't been ported. Now that they have, we must enable this code again. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9168)
2019-06-12Ensure code is compiled with correct BIGNUM assembler definesMatt Caswell
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/9130)
2019-06-03Ensure we get all the right defines for AES assembler in FIPS moduleMatt Caswell
There are various C macro definitions that are passed via the compiler to enable AES assembler optimisation. We need to make sure that these defines are also passed during compilation of the FIPS module. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/9038)
2019-05-09crypto/ppccap.c: Fix which hwcap value used to check for HWCAP_ARCH_3_00Rashmica Gupta
CLA: trivial Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8889)
2019-02-01poly1305/asm/poly1305-ppc.pl: add vector base 2^26 implementation.Andy Polyakov
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8120)
2019-01-21PPC: Try out if mftb works before using itBernd Edlinger
If this fails try out if mfspr268 works. Use OPENSSL_ppccap=0x20 for enabling mftb, OPENSSL_ppccap=0x40 for enabling mfspr268, and OPENSSL_ppccap=0 for enabling neither. Fixes #8012 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8043)
2019-01-16crypto/armcap.c, crypto/ppccap.c: stricter use of getauxval()Richard Levitte
Having a weak getauxval() and only depending on GNU C without looking at the library we build against meant that it got picked up where not really expected. So we change this to check for the glibc version, and since we know it exists from that version, there's no real need to make it weak. Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> (Merged from https://github.com/openssl/openssl/pull/8028)
2018-12-06Following the license change, modify the boilerplates in crypto/Richard Levitte
[skip ci] Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7827)
2018-06-06crypto/ppccap.c: wire new ChaCha20_ctr32_vsx.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6419)
2018-05-29Update copyright yearMatt Caswell
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6371)
2018-05-08Fix --strict-warnings build of ppc-linux targetBernd Edlinger
Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6191)
2017-04-02crypto/ppccap.c: SIGILL-free processor capabilities detection on MacOS X.Andy Polyakov
It seems to be problematic to probe processor capabilities with SIGILL on MacOS X. The problem should be limited to cases when application code is debugged, but crashes were reported even during normal execution... Reviewed-by: Kurt Roeckx <kurt@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-11-10Revert "Move algorithm specific ppccap code from crypto/ppccap.c"Richard Levitte
Now that we can link specifically with static libraries, the immediate need to split ppccap.c (and eventually other *cap.c files) is no more. This reverts commit e3fb4d3d52e188b83ccb8506aa2f16cb686f4d6c. Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-11-09Move algorithm specific ppccap code from crypto/ppccap.cRichard Levitte
Having that code in one central object file turned out to cause trouble when building test/modes_internal_test. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1883)
2016-10-24ppccap.c: engage new multipplication and squaring subroutines.Andy Polyakov
[And remove FPU mutiplication subroutine.] Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-29Add ecp_nistz256-ppc64 module.Andy Polyakov
Reviewed-by: Rich Salz <rsalz@openssl.org>
2016-08-02Fix some style issues...FdaSilvaYY
extra spacing and 80 cols Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1366)
2016-05-17Copyright consolidation 09/10Rich Salz
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-05-09fix tab-space mixed indentationFdaSilvaYY
No code change Reviewed-by: Kurt Roeckx <kurt@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org>
2016-04-29crypto/ppccap.c: fix missing declaration warning.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-04-29crypto/ppccap.c: permit build with no-chacha and no-poly1305.Andy Polyakov
RT#4508 Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-04-13PPC assebmly pack: initial POWER9 support tidbits.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2016-02-13Configurations: engage PPC ChaCha20 and Poly1305 modules.Andy Polyakov
Reviewed-by: Richard Levitte <levitte@openssl.org>
2015-12-14crypto/ppccap.c: add SIGILL-free processor capability detection code.Andy Polyakov
Reviewed-by: Kurt Roeckx <kurt@openssl.org>
2015-08-05RT3990: Fix #include path.Anton Blanchard
Signed-off-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org>
2015-01-22Run util/openssl-format-source -v -c .Matt Caswell
Reviewed-by: Tim Hudson <tjh@openssl.org>
2014-07-20Engage GHASH for PowerISA 2.0.7.Andy Polyakov
[and split ppccap.c to ppccap.c and ppc_arch.h] Reviewed-by: Kurt Roeckx <kurt@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org>
2014-07-01Engage SHA256/512 for PowerISA 2.07.Andy Polyakov
2014-06-01Engage POWER8 AES support.Andy Polyakov
2013-11-27ppc64-mont.pl: eliminate dependency on GPRs' upper halves.Andy Polyakov
2013-11-27Take vpaes-ppc module into loop.Andy Polyakov
2012-11-10ppccap.c: fix typo.Andy Polyakov
2012-11-10ppccap.c: restrict features on AIX 5.Andy Polyakov
2012-10-21linux-pcc: make it more robust and recognize KERNEL_BITS variable.Andy Polyakov
2012-05-16ppccap.c: assume no features under 32-bit AIX kernel.Andy Polyakov
PR: 2810
2011-05-21ppccap.c: addenum to recent EC optimizations.Andy Polyakov
2011-05-01Include crypto.h in ppccap.cDr. Stephen Henson
2010-09-10crypto/ppc[cpuid|cap]: call CPU detection once and detect AltiVec.Andy Polyakov
2010-03-02ppccap.c: portability fix.Andy Polyakov
2010-01-17Minor updates to ppccap.c and ppccpuid.pl.Andy Polyakov
2009-12-29ppccap.c: fix compiler warning and perform sanity check outside signal masking.Andy Polyakov
ppc64-mont.pl: clarify comment and fix spelling.