Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libgcrypt for openSUSE:Factory checked in at 2023-10-13 23:13:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libgcrypt (Old) and /work/SRC/openSUSE:Factory/.libgcrypt.new.20540 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgcrypt" Fri Oct 13 23:13:57 2023 rev:98 rq:1116820 version:1.10.2 Changes: -------- --- /work/SRC/openSUSE:Factory/libgcrypt/libgcrypt.changes 2023-05-28 19:22:01.296668951 +0200 +++ /work/SRC/openSUSE:Factory/.libgcrypt.new.20540/libgcrypt.changes 2023-10-13 23:14:13.890058680 +0200 @@ -1,0 +2,13 @@ +Tue Oct 3 12:58:41 UTC 2023 - Pedro Monreal <pmonr...@suse.com> + +- POWER: performance enhancements for cryptography [jsc#PED-5088] + * Optimize Chacha20 and Poly1305 for PPC P10 LE: [T6006] + - Chacha20/poly1305: Optimized chacha20/poly1305 for + P10 operation [rC88fe7ac33eb4] + - ppc: enable P10 assembly with ENABLE_FORCE_SOFT_HWFEATURES + on arch-3.00 [rC2c5e5ab6843d] + * Add patches: + - libgcrypt-Chacha20-poly1305-Optimized-chacha20-poly1305.patch + - libgcrypt-ppc-enable-P10-assembly-with-ENABLE_FORCE_SOF.patch + +------------------------------------------------------------------- New: ---- libgcrypt-Chacha20-poly1305-Optimized-chacha20-poly1305.patch libgcrypt-ppc-enable-P10-assembly-with-ENABLE_FORCE_SOF.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libgcrypt.spec ++++++ --- /var/tmp/diff_new_pack.XeNXXx/_old 2023-10-13 23:14:14.506081023 +0200 +++ /var/tmp/diff_new_pack.XeNXXx/_new 2023-10-13 23:14:14.506081023 +0200 @@ -48,6 +48,9 @@ Patch103: libgcrypt-jitterentropy-3.4.0.patch #PATCH-FIX-SUSE bsc#1202117 FIPS: Get most of the entropy from rndjent_poll Patch104: libgcrypt-FIPS-rndjent_poll.patch +# POWER patches [jsc#PED-5088] POWER performance enhancements for cryptography +Patch200: libgcrypt-Chacha20-poly1305-Optimized-chacha20-poly1305.patch +Patch201: libgcrypt-ppc-enable-P10-assembly-with-ENABLE_FORCE_SOF.patch BuildRequires: automake >= 1.14 BuildRequires: libgpg-error-devel >= 1.27 BuildRequires: libtool ++++++ libgcrypt-Chacha20-poly1305-Optimized-chacha20-poly1305.patch ++++++ ++++ 1994 lines (skipped) ++++++ libgcrypt-ppc-enable-P10-assembly-with-ENABLE_FORCE_SOF.patch ++++++ commit 2c5e5ab6843d747c4b877d2c6f47226f61e9ff14 Author: Jussi Kivilinna <jussi.kivili...@iki.fi> Date: Sun Jun 12 21:51:34 2022 +0300 ppc enable P10 assembly with ENABLE_FORCE_SOFT_HWFEATURES on arch 3.00 * cipher/chacha20.c (chacha20_do_setkey) [USE_PPC_VEC]: Enable P10 assembly for HWF_PPC_ARCH_3_00 if ENABLE_FORCE_SOFT_HWFEATURES is defined. * cipher/poly1305.c (poly1305_init) [POLY1305_USE_PPC_VEC]: Likewise. * cipher/rijndael.c (do_setkey) [USE_PPC_CRYPTO_WITH_PPC9LE]: Likewise. --- This change allows testing P10 implementations with P9 and with QEMU-PPC. GnuPG-bug-id: 6006 Signed-off-by: Jussi Kivilinna <jussi.kivili...@iki.fi> Index: libgcrypt-1.10.2/cipher/chacha20.c =================================================================== --- libgcrypt-1.10.2.orig/cipher/chacha20.c +++ libgcrypt-1.10.2/cipher/chacha20.c @@ -484,6 +484,11 @@ chacha20_do_setkey (CHACHA20_context_t * ctx->use_ppc = (features & HWF_PPC_ARCH_2_07) != 0; # ifndef WORDS_BIGENDIAN ctx->use_p10 = (features & HWF_PPC_ARCH_3_10) != 0; +# ifdef ENABLE_FORCE_SOFT_HWFEATURES + /* HWF_PPC_ARCH_3_10 above is used as soft HW-feature indicator for P10. + * Actual implementation works with HWF_PPC_ARCH_3_00 also. */ + ctx->use_p10 |= (features & HWF_PPC_ARCH_3_00) != 0; +# endif # endif #endif #ifdef USE_S390X_VX Index: libgcrypt-1.10.2/cipher/poly1305.c =================================================================== --- libgcrypt-1.10.2.orig/cipher/poly1305.c +++ libgcrypt-1.10.2/cipher/poly1305.c @@ -90,11 +90,19 @@ static void poly1305_init (poly1305_cont const byte key[POLY1305_KEYLEN]) { POLY1305_STATE *st = &ctx->state; + unsigned int features = _gcry_get_hw_features (); #ifdef POLY1305_USE_PPC_VEC - ctx->use_p10 = (_gcry_get_hw_features () & HWF_PPC_ARCH_3_10) != 0; + ctx->use_p10 = (features & HWF_PPC_ARCH_3_10) != 0; +# ifdef ENABLE_FORCE_SOFT_HWFEATURES + /* HWF_PPC_ARCH_3_10 above is used as soft HW-feature indicator for P10. + * Actual implementation works with HWF_PPC_ARCH_3_00 also. */ + ctx->use_p10 |= (features & HWF_PPC_ARCH_3_00) != 0; +# endif #endif + (void)features; + ctx->leftover = 0; st->h[0] = 0; Index: libgcrypt-1.10.2/cipher/rijndael.c =================================================================== --- libgcrypt-1.10.2.orig/cipher/rijndael.c +++ libgcrypt-1.10.2/cipher/rijndael.c @@ -605,6 +605,12 @@ do_setkey (RIJNDAEL_context *ctx, const bulk_ops->xts_crypt = _gcry_aes_ppc9le_xts_crypt; if (hwfeatures & HWF_PPC_ARCH_3_10) /* for P10 */ bulk_ops->gcm_crypt = _gcry_aes_p10le_gcm_crypt; +# ifdef ENABLE_FORCE_SOFT_HWFEATURES + /* HWF_PPC_ARCH_3_10 above is used as soft HW-feature indicator for P10. + * Actual implementation works with HWF_PPC_ARCH_3_00 also. */ + if (hwfeatures & HWF_PPC_ARCH_3_00) + bulk_ops->gcm_crypt = _gcry_aes_p10le_gcm_crypt; +# endif } #endif #ifdef USE_PPC_CRYPTO