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-3D90gb_MulOTlHne1IxTRELXXnGni8d68xSVF-2BUCe3a7Ux-2BjeF4sIcimiEWGcfF210CeMw6SR-2BbrxSYjPt9k68mT2OmGiu7oW71NaK-2FILw0c-2B13qo20pzNsRZBVPVQ4zwjYldcfCRij80-2BVy1wOhV-2BgY9bxM1zgb9bCIGByRHCdT3zkaFs6sujRTaXEw0AJEpHrlfrAgPF8owct1aiS5V0lzm3wVkwl-2ByqFaybha6Tk0XR4EfY-3D Build ID: 431342 Analysis Summary: New defects found: 0 Defects eliminated: 0
Coverity Scan: Analysis completed for openssl-mirror
Your request for analysis of openssl-mirror has been completed successfully. The results are available at https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yoN-2BQSVjTtaSz8wS4wOr7HlyiBnvCURZ-2FU92UvyipM66g-3D-3DZK7d_MulOTlHne1IxTRELXXnGni8d68xSVF-2BUCe3a7Ux-2BjeH3WHqPACgAY9LNKL4qVE38M4CPwVnaYynjUu8G9CjnqkHdgBChg0bq2visrHAro6ZOBxqIl-2Fa-2Ffu34l6BZYpAAFTOl9Mv3tnkVIP7UsDUKil1Xgvjv-2Ftjvc40yNDCtRM15N92vv19hciQ-2Bl8MKpCUZMpGZ086Xjlve7YsSLvgoWm33bs4nxjW-2BXt-2BLqN7SJeo-3D Build ID: 431224 Analysis Summary: New defects found: 0 Defects eliminated: 0
[openssl] master update
The branch master has been updated via 15b7175f558bf9eb057ec3266685486f727dd70f (commit) from c1167f09d840b109ef1c1c1485e3de64be2fc625 (commit) - Log - commit 15b7175f558bf9eb057ec3266685486f727dd70f Author: Daniel Hu Date: Tue Oct 19 22:49:05 2021 +0100 SM4 optimization for ARM by HW instruction This patch implements the SM4 optimization for ARM processor, using SM4 HW instruction, which is an optional feature of crypto extension for aarch64 V8. Tested on some modern ARM micro-architectures with SM4 support, the performance uplift can be observed around 8X~40X over existing C implementation in openssl. Algorithms that can be parallelized (like CTR, ECB, CBC decryption) are on higher end, with algorithm like CBC encryption on lower end (due to inter-block dependency) Perf data on Yitian-710 2.75GHz hardware, before and after optimization: Before: type 16 bytes 64 bytes256 bytes1024 bytes 8192 bytes 16384 bytes SM4-CTR 105787.80k 107837.87k 108380.84k 108462.08k 108549.46k 108554.92k SM4-ECB 111924.58k 118173.76k 119776.00k 120093.70k 120264.02k 120274.94k SM4-CBC 106428.09k 109190.98k 109674.33k 109774.51k 109827.41k 109827.41k After (7.4x - 36.6x faster): type 16 bytes 64 bytes256 bytes1024 bytes 8192 bytes 16384 bytes SM4-CTR 781979.02k 2432994.28k 3437753.86k 3834177.88k 3963715.58k 3974556.33k SM4-ECB 937590.69k 2941689.02k 3945751.81k 4328655.87k 4459181.40k 4468692.31k SM4-CBC 890639.88k 1027746.58k 1050621.78k 1056696.66k 1058613.93k 1058701.31k Signed-off-by: Daniel Hu Reviewed-by: Paul Dale Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/17455) --- Summary of changes: crypto/arm64cpuid.pl | 8 + crypto/arm_arch.h | 1 + crypto/armcap.c| 10 + crypto/evp/e_sm4.c | 193 +-- crypto/sm4/asm/sm4-armv8.pl| 635 + crypto/sm4/build.info | 32 +- include/crypto/sm4_platform.h | 48 ++ providers/implementations/ciphers/cipher_sm4.h | 1 + .../implementations/ciphers/cipher_sm4_gcm_hw.c| 20 +- providers/implementations/ciphers/cipher_sm4_hw.c | 57 +- 10 files changed, 945 insertions(+), 60 deletions(-) create mode 100755 crypto/sm4/asm/sm4-armv8.pl create mode 100644 include/crypto/sm4_platform.h diff --git a/crypto/arm64cpuid.pl b/crypto/arm64cpuid.pl index b30f505339..1841c0cc04 100755 --- a/crypto/arm64cpuid.pl +++ b/crypto/arm64cpuid.pl @@ -80,6 +80,14 @@ _armv8_pmull_probe: ret .size _armv8_pmull_probe,.-_armv8_pmull_probe +.globl _armv8_sm4_probe +.type _armv8_sm4_probe,%function +_armv8_sm4_probe: + AARCH64_VALID_CALL_TARGET + .long 0xcec08400 // sm4e v0.4s, v0.4s + ret +.size _armv8_sm4_probe,.-_armv8_sm4_probe + .globl _armv8_sha512_probe .type _armv8_sha512_probe,%function _armv8_sha512_probe: diff --git a/crypto/arm_arch.h b/crypto/arm_arch.h index 77173cae42..291620ebc9 100644 --- a/crypto/arm_arch.h +++ b/crypto/arm_arch.h @@ -80,6 +80,7 @@ extern unsigned int OPENSSL_armv8_rsa_neonized; # define ARMV8_CPUID (1<<7) # define ARMV8_RNG (1<<8) # define ARMV8_SM3 (1<<9) +# define ARMV8_SM4 (1<<10) /* * MIDR_EL1 system register diff --git a/crypto/armcap.c b/crypto/armcap.c index 93003c9121..5016987eeb 100644 --- a/crypto/armcap.c +++ b/crypto/armcap.c @@ -54,6 +54,7 @@ void _armv8_sha256_probe(void); void _armv8_pmull_probe(void); # ifdef __aarch64__ void _armv8_sm3_probe(void); +void _armv8_sm4_probe(void); void _armv8_sha512_probe(void); unsigned int _armv8_cpuid_probe(void); void _armv8_rng_probe(void); @@ -171,6 +172,7 @@ static unsigned long getauxval(unsigned long key) # define HWCAP_CE_SHA256(1 << 6) # define HWCAP_CPUID(1 << 11) # define HWCAP_CE_SM3 (1 << 18) +# define HWCAP_CE_SM4 (1 << 19) # define HWCAP_CE_SHA512(1 << 21) /* AT_HWCAP2 */ # define HWCAP2 26 @@ -242,6 +244,9 @@ void OPENSSL_cpuid_setup(void) OPENSSL_armcap_P |= ARMV8_SHA256; # ifdef __aarch64__ +if (hwcap & HWCAP_CE_SM4) +OPENSSL_armcap_P |= ARMV8_SM4; + if (hwcap & HWCAP_CE_SHA512) OPENSSL_armcap_P |= ARMV8_SHA512; @@ -293,6 +298,11 @@ void OPENSSL_cpuid_setup(void) OPENSSL_armcap_P |= ARMV8_SHA256; } # if defined(__aarch64__) && !defined(__APPLE__) +if (sigsetjmp(ill_jm
[openssl] openssl-3.0 update
The branch openssl-3.0 has been updated via 174adc705c2c3921cb3da34ce11641c159bd139b (commit) from 5f7757265bfd7ccdf1973bf09f9d72634ea70949 (commit) - Log - commit 174adc705c2c3921cb3da34ce11641c159bd139b Author: Tomas Mraz Date: Fri Jan 14 16:19:33 2022 +0100 dh_exch.c: Correct gettable parameters for DH key exchange Fixes #17510 Reviewed-by: Matt Caswell Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/17515) (cherry picked from commit c1167f09d840b109ef1c1c1485e3de64be2fc625) --- Summary of changes: providers/implementations/exchange/dh_exch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/implementations/exchange/dh_exch.c b/providers/implementations/exchange/dh_exch.c index ea05b3177e..cd92f26957 100644 --- a/providers/implementations/exchange/dh_exch.c +++ b/providers/implementations/exchange/dh_exch.c @@ -414,12 +414,12 @@ static const OSSL_PARAM *dh_settable_ctx_params(ossl_unused void *vpdhctx, } static const OSSL_PARAM known_gettable_ctx_params[] = { -OSSL_PARAM_int(OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE, NULL), OSSL_PARAM_utf8_string(OSSL_EXCHANGE_PARAM_KDF_TYPE, NULL, 0), OSSL_PARAM_utf8_string(OSSL_EXCHANGE_PARAM_KDF_DIGEST, NULL, 0), OSSL_PARAM_size_t(OSSL_EXCHANGE_PARAM_KDF_OUTLEN, NULL), OSSL_PARAM_DEFN(OSSL_EXCHANGE_PARAM_KDF_UKM, OSSL_PARAM_OCTET_PTR, NULL, 0), +OSSL_PARAM_utf8_string(OSSL_KDF_PARAM_CEK_ALG, NULL, 0), OSSL_PARAM_END };
[openssl] master update
The branch master has been updated via c1167f09d840b109ef1c1c1485e3de64be2fc625 (commit) from 14951ef01f9b54d804baf2fabdf0a715c630827b (commit) - Log - commit c1167f09d840b109ef1c1c1485e3de64be2fc625 Author: Tomas Mraz Date: Fri Jan 14 16:19:33 2022 +0100 dh_exch.c: Correct gettable parameters for DH key exchange Fixes #17510 Reviewed-by: Matt Caswell Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/17515) --- Summary of changes: providers/implementations/exchange/dh_exch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/implementations/exchange/dh_exch.c b/providers/implementations/exchange/dh_exch.c index 4bea7af4ec..b0dd6b3591 100644 --- a/providers/implementations/exchange/dh_exch.c +++ b/providers/implementations/exchange/dh_exch.c @@ -415,12 +415,12 @@ static const OSSL_PARAM *dh_settable_ctx_params(ossl_unused void *vpdhctx, } static const OSSL_PARAM known_gettable_ctx_params[] = { -OSSL_PARAM_int(OSSL_EXCHANGE_PARAM_EC_ECDH_COFACTOR_MODE, NULL), OSSL_PARAM_utf8_string(OSSL_EXCHANGE_PARAM_KDF_TYPE, NULL, 0), OSSL_PARAM_utf8_string(OSSL_EXCHANGE_PARAM_KDF_DIGEST, NULL, 0), OSSL_PARAM_size_t(OSSL_EXCHANGE_PARAM_KDF_OUTLEN, NULL), OSSL_PARAM_DEFN(OSSL_EXCHANGE_PARAM_KDF_UKM, OSSL_PARAM_OCTET_PTR, NULL, 0), +OSSL_PARAM_utf8_string(OSSL_KDF_PARAM_CEK_ALG, NULL, 0), OSSL_PARAM_END };
Coverity Scan: Analysis completed for openssl-mirror
Your request for analysis of openssl-mirror has been completed successfully. The results are available at https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yoN-2BQSVjTtaSz8wS4wOr7HlyiBnvCURZ-2FU92UvyipM66g-3D-3DX8J4_MulOTlHne1IxTRELXXnGni8d68xSVF-2BUCe3a7Ux-2BjeH-2Bt0yymF0fWI6yQ0A45kH8cby6zUmh1TTk6uHmGxzqoFhMVvYw8rxZCrGCb8kfrCEYb9-2BuojTTmDY1Rr2XlZaNjF9bdox7w5ebexqmHQm-2BKcDQG6vjKoV470ttvizYTWjgMO5OSkDPZdwpJ6KB65ZKs6mAbD-2FzwxLR32zZsec693gmjVhHk4Jg73rUn13RhQI-3D Build ID: 431208 Analysis Summary: New defects found: 0 Defects eliminated: 0