Coverity Scan: Analysis completed for openssl/openssl

2022-01-23 Thread scan-admin


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

2022-01-23 Thread Dr . Paul Dale
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 

[openssl] master update

2022-01-23 Thread Dr . Paul Dale
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

2022-01-23 Thread Dr . Paul Dale
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

2022-01-23 Thread Dr . Paul Dale
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

2022-01-23 Thread Dr . Paul Dale
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 */