Coverity Scan: Analysis completed for openssl/openssl
Your request for analysis of openssl/openssl has been completed successfully. The results are available at https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yoN-2BQSVjTtaSz8wS4wOr7HlekBtV1P4YRtWclMVkCdvAA-3D-3D2igC_MulOTlHne1IxTRELXXnGni8d68xSVF-2BUCe3a7Ux-2BjeGhJjveRihpMrnrDhqf-2FlkzIaQyUemCI0JGN10l7RrsluczD628OtIl8Ecsfv24bPuwDApIIaQOrIhfMUFzLdc2N9W7TWhT-2FqbKwK8jCOx-2FyOq5R6769F5rTN0jKM-2B1QE5j-2FcIcIkf-2FnBNZnOnleZvWEnxEX2g5qB4jrOqgIFrl0qWO0qhkpeUBtbH3K7zPkjI-3D Build ID: 432400 Analysis Summary: New defects found: 0 Defects eliminated: 0
[openssl] master update
The branch master has been updated via 44a563dde1584cd9284e80b6e45ee5019be8d36c (commit) from d94c2f1b98318cea4416c4dcd5e5f878de8d458f (commit) - Log - commit 44a563dde1584cd9284e80b6e45ee5019be8d36c Author: Danny Tsen Date: Mon Oct 18 10:51:42 2021 -0400 AES-GCM performance optimzation with stitched method for p9+ ppc64le Assembly code reviewed by Shricharan Srivatsan Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/16854) --- Summary of changes: crypto/modes/asm/aes-gcm-ppc.pl| 1439 crypto/modes/build.info|3 +- include/crypto/aes_platform.h | 12 + .../implementations/ciphers/cipher_aes_gcm_hw.c|2 + ..._gcm_hw_aesni.inc => cipher_aes_gcm_hw_ppc.inc} | 15 +- 5 files changed, 1463 insertions(+), 8 deletions(-) create mode 100644 crypto/modes/asm/aes-gcm-ppc.pl copy providers/implementations/ciphers/{cipher_aes_gcm_hw_aesni.inc => cipher_aes_gcm_hw_ppc.inc} (67%) diff --git a/crypto/modes/asm/aes-gcm-ppc.pl b/crypto/modes/asm/aes-gcm-ppc.pl new file mode 100644 index 00..29d4e2e6fb --- /dev/null +++ b/crypto/modes/asm/aes-gcm-ppc.pl @@ -0,0 +1,1439 @@ +#! /usr/bin/env perl +# Copyright 2014-2020 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2021- IBM Inc. All rights reserved +# +# Licensed under the Apache License 2.0 (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html +# +#=== +# Written by Danny Tsen for OpenSSL Project, +# +# GHASH is based on the Karatsuba multiplication method. +# +#Xi xor X1 +# +#X1 * H^4 + X2 * H^3 + x3 * H^2 + X4 * H = +# (X1.h * H4.h + xX.l * H4.l + X1 * H4) + +# (X2.h * H3.h + X2.l * H3.l + X2 * H3) + +# (X3.h * H2.h + X3.l * H2.l + X3 * H2) + +# (X4.h * H.h + X4.l * H.l + X4 * H) +# +# Xi = v0 +# H Poly = v2 +# Hash keys = v3 - v14 +# ( H.l, H, H.h) +# ( H^2.l, H^2, H^2.h) +# ( H^3.l, H^3, H^3.h) +# ( H^4.l, H^4, H^4.h) +# +# v30 is IV +# v31 - counter 1 +# +# AES used, +# vs0 - vs14 for round keys +# v15, v16, v17, v18, v19, v20, v21, v22 for 8 blocks (encrypted) +# +# This implementation uses stitched AES-GCM approach to improve overall performance. +# AES is implemented with 8x blocks and GHASH is using 2 4x blocks. +# +# Current large block (16384 bytes) performance per second with 128 bit key -- +# +#Encrypt Decrypt +# Power10[le] (3.5GHz) 5.32G5.26G +# +# === +# +# $output is the last argument if it looks like a file (it has an extension) +# $flavour is the first argument if it doesn't look like a file +$output = $#ARGV >= 0 && $ARGV[$#ARGV] =~ m|\.\w+$| ? pop : undef; +$flavour = $#ARGV >= 0 && $ARGV[0] !~ m|\.| ? shift : undef; + +if ($flavour =~ /64/) { + $SIZE_T=8; + $LRSAVE=2*$SIZE_T; + $STU="stdu"; + $POP="ld"; + $PUSH="std"; + $UCMP="cmpld"; + $SHRI="srdi"; +} elsif ($flavour =~ /32/) { + $SIZE_T=4; + $LRSAVE=$SIZE_T; + $STU="stwu"; + $POP="lwz"; + $PUSH="stw"; + $UCMP="cmplw"; + $SHRI="srwi"; +} else { die "nonsense $flavour"; } + +$sp="r1"; +$FRAME=6*$SIZE_T+13*16;# 13*16 is for v20-v31 offload + +$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; +( $xlate="${dir}ppc-xlate.pl" and -f $xlate ) or +( $xlate="${dir}../../perlasm/ppc-xlate.pl" and -f $xlate) or +die "can't locate ppc-xlate.pl"; + +open STDOUT,"| $^X $xlate $flavour \"$output\"" +or die "can't call $xlate: $!"; + +$code=<<___; +.machine"any" +.abiversion 2 +.text + +# 4x loops +# v15 - v18 - input states +# vs1 - vs9 - round keys +# +.macro Loop_aes_middle4x + xxlor 19+32, 1, 1 + xxlor 20+32, 2, 2 + xxlor 21+32, 3, 3 + xxlor 22+32, 4, 4 + + vcipher 15, 15, 19 + vcipher 16, 16, 19 + vcipher 17, 17, 19 + vcipher 18, 18, 19 + + vcipher 15, 15, 20 + vcipher 16, 16, 20 + vcipher 17, 17, 20 + vcipher 18, 18, 20 + + vcipher 15, 15, 21 + vcipher 16, 16, 21 + vcipher 17, 17, 21 + vcipher 18, 18, 21 + + vcipher 15, 15, 22 + vcipher 16, 16, 22 + vcipher 17, 17, 22 + vcipher 18, 18, 22 + + xxlor 19+32, 5, 5 + xxlor 20+32, 6, 6 + xxlor 21+32, 7, 7 + xxlor 22+32, 8, 8 + + vcipher 15, 15, 19 + vcipher 16, 16, 19 + vcipher 17, 17, 19 + vcipher 18, 18, 19 + + vcipher 1
[openssl] master update
The branch master has been updated via d94c2f1b98318cea4416c4dcd5e5f878de8d458f (commit) from 1bfd20f08c042072cae44a9eb81626cbfff81116 (commit) - Log - commit d94c2f1b98318cea4416c4dcd5e5f878de8d458f Author: Todd Short Date: Thu Jan 20 14:38:33 2022 -0500 `make clean` should clean up fips provider shared object. Reviewed-by: Matt Caswell Reviewed-by: Richard Levitte Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/17556) (cherry picked from commit 45036df45048c6498efa49d3572869830d05df45) --- Summary of changes: Configurations/unix-Makefile.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 52d2f6a64e..6d4039c33f 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -582,7 +582,7 @@ clean: libclean $(RM) $(MANDOCS3) $(RM) $(MANDOCS5) $(RM) $(MANDOCS7) - $(RM) $(PROGRAMS) $(TESTPROGS) $(MODULES) $(SCRIPTS) + $(RM) $(PROGRAMS) $(TESTPROGS) $(MODULES) $(FIPSMODULE) $(SCRIPTS) $(RM) $(GENERATED_MANDATORY) $(GENERATED) -find . -name '*{- platform->depext() -}' \! -name '.*' \! -type d -exec $(RM) {} \; -find . -name '*{- platform->objext() -}' \! -name '.*' \! -type d -exec $(RM) {} \;
[openssl] openssl-3.0 update
The branch openssl-3.0 has been updated via 45036df45048c6498efa49d3572869830d05df45 (commit) from 9d0a228ae2c2af274995566ae79f3b07c2937069 (commit) - Log - commit 45036df45048c6498efa49d3572869830d05df45 Author: Todd Short Date: Thu Jan 20 14:38:33 2022 -0500 `make clean` should clean up fips provider shared object. Reviewed-by: Matt Caswell Reviewed-by: Richard Levitte Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/17556) --- Summary of changes: Configurations/unix-Makefile.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 52d2f6a64e..6d4039c33f 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -582,7 +582,7 @@ clean: libclean $(RM) $(MANDOCS3) $(RM) $(MANDOCS5) $(RM) $(MANDOCS7) - $(RM) $(PROGRAMS) $(TESTPROGS) $(MODULES) $(SCRIPTS) + $(RM) $(PROGRAMS) $(TESTPROGS) $(MODULES) $(FIPSMODULE) $(SCRIPTS) $(RM) $(GENERATED_MANDATORY) $(GENERATED) -find . -name '*{- platform->depext() -}' \! -name '.*' \! -type d -exec $(RM) {} \; -find . -name '*{- platform->objext() -}' \! -name '.*' \! -type d -exec $(RM) {} \;
[openssl] openssl-3.0 update
The branch openssl-3.0 has been updated via 9d0a228ae2c2af274995566ae79f3b07c2937069 (commit) from a28dbfe7c84b6a43746d0e2ef4153e2a13067c4a (commit) - Log - commit 9d0a228ae2c2af274995566ae79f3b07c2937069 Author: Pauli Date: Fri Jan 21 17:09:46 2022 +1100 self_test.h: fix the C++ wrapping Fixes #17557 Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/17562) (cherry picked from commit 1bfd20f08c042072cae44a9eb81626cbfff81116) --- Summary of changes: include/openssl/self_test.h | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/include/openssl/self_test.h b/include/openssl/self_test.h index 77c600a0d1..6d6c96abf8 100644 --- a/include/openssl/self_test.h +++ b/include/openssl/self_test.h @@ -73,10 +73,6 @@ extern "C" { # define OSSL_SELF_TEST_DESC_KDF_TLS13_EXPAND "TLS13_KDF_EXPAND" # define OSSL_SELF_TEST_DESC_RNG"RNG" -# ifdef __cplusplus -} -# endif - void OSSL_SELF_TEST_set_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK *cb, void *cbarg); void OSSL_SELF_TEST_get_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK **cb, @@ -90,4 +86,7 @@ void OSSL_SELF_TEST_onbegin(OSSL_SELF_TEST *st, const char *type, int OSSL_SELF_TEST_oncorrupt_byte(OSSL_SELF_TEST *st, unsigned char *bytes); void OSSL_SELF_TEST_onend(OSSL_SELF_TEST *st, int ret); +# ifdef __cplusplus +} +# endif #endif /* OPENSSL_SELF_TEST_H */
[openssl] master update
The branch master has been updated via 1bfd20f08c042072cae44a9eb81626cbfff81116 (commit) from e1cd94f2dca4056ce042c62b89c468dffc088033 (commit) - Log - commit 1bfd20f08c042072cae44a9eb81626cbfff81116 Author: Pauli Date: Fri Jan 21 17:09:46 2022 +1100 self_test.h: fix the C++ wrapping Fixes #17557 Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/17562) --- Summary of changes: include/openssl/self_test.h | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/include/openssl/self_test.h b/include/openssl/self_test.h index 77c600a0d1..6d6c96abf8 100644 --- a/include/openssl/self_test.h +++ b/include/openssl/self_test.h @@ -73,10 +73,6 @@ extern "C" { # define OSSL_SELF_TEST_DESC_KDF_TLS13_EXPAND "TLS13_KDF_EXPAND" # define OSSL_SELF_TEST_DESC_RNG"RNG" -# ifdef __cplusplus -} -# endif - void OSSL_SELF_TEST_set_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK *cb, void *cbarg); void OSSL_SELF_TEST_get_callback(OSSL_LIB_CTX *libctx, OSSL_CALLBACK **cb, @@ -90,4 +86,7 @@ void OSSL_SELF_TEST_onbegin(OSSL_SELF_TEST *st, const char *type, int OSSL_SELF_TEST_oncorrupt_byte(OSSL_SELF_TEST *st, unsigned char *bytes); void OSSL_SELF_TEST_onend(OSSL_SELF_TEST *st, int ret); +# ifdef __cplusplus +} +# endif #endif /* OPENSSL_SELF_TEST_H */