[GIT PULL] Crypto Update for 6.13

Herbert Xu
2024-11-18T03:18:40Z

Hi Linus:

The following changes since commit 9852d85ec9d492ebef56dc5f229416c925758edc:

Linux 6.12-rc1 (2024-09-29 15:06:19 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6.git v6.13-p1

for you to fetch changes up to 4223414efeae3a8efb4da1e9c9c52a1a44c1c5bf:

crypto: marvell/cesa - fix uninit value for struct mv_cesa_op_ctx (2024-11-15 19:52:51 +0800)

----------------------------------------------------------------
This update includes the following changes:

API:

- Add sig driver API.
- Remove signing/verification from akcipher API.
- Move crypto_simd_disabled_for_test to lib/crypto.
- Add WARN_ON for return values from driver that indicates memory corruption.

Algorithms:

- Provide crc32-arch and crc32c-arch through Crypto API.
- Optimise crc32c code size on x86.
- Optimise crct10dif on arm/arm64.
- Optimise p10-aes-gcm on powerpc.
- Optimise aegis128 on x86.
- Output full sample from test interface in jitter RNG.
- Retry without padata when it fails in pcrypt.

Drivers:

- Add support for Airoha EN7581 TRNG.
- Add support for STM32MP25x platforms in stm32.
- Enable iproc-r200 RNG driver on BCMBCA.
- Add Broadcom BCM74110 RNG driver.
----------------------------------------------------------------

Ahsan Atta (1):
crypto: qat - remove faulty arbiter config reset

Ard Biesheuvel (8):
crypto: crc32 - Provide crc32-arch driver for accelerated library code
crypto: crc32c - Provide crc32c-arch driver for accelerated library code
crypto: arm64/crct10dif - Remove obsolete chunking logic
crypto: arm64/crct10dif - Use faster 16x64 bit polynomial multiply
crypto: arm64/crct10dif - Remove remaining 64x64 PMULL fallback code
crypto: arm/crct10dif - Use existing mov_l macro instead of __adrl
crypto: arm/crct10dif - Macroify PMULL asm code
crypto: arm/crct10dif - Implement plain NEON variant

Cabiddu, Giovanni (1):
crypto: qat - remove check after debugfs_create_dir()

Chen Ridong (2):
crypto: caam - add error check to caam_rsa_set_priv_key_form
crypto: bcm - add error check in the ahash_hmac_init function

Chenghai Huang (1):
crypto: hisilicon/qm - fix the coding specifications issue

Christian Marangi (2):
dt-bindings: rng: add support for Airoha EN7581 TRNG
hwrng: airoha - add support for Airoha EN7581 TRNG

Christophe JAILLET (4):
crypto: caam - Fix the pointer passed to caam_qi_shutdown()
crypto: caam - Slightly simplify platform_device()
crypto: qat - Constify struct pm_status_row
crypto: cavium - Fix an error handling path in cpt_ucode_load_fw()

Colin Ian King (1):
crypto: tegra - remove redundant error check on ret

Dan Carpenter (2):
crypto: qat/qat_420xx - fix off by one in uof_get_name()
crypto: qat/qat_4xxx - fix off by one in uof_get_name()

Danny Tsen (3):
crypto: powerpc/p10-aes-gcm - Re-write AES/GCM stitched implementation
crypto: powerpc/p10-aes-gcm - Register modules as SIMD
crypto: powerpc/p10-aes-gcm - Add dependency on CRYPTO_SIMDand re-enable CRYPTO_AES_GCM_P10

Dr. David Alan Gilbert (3):
crypto: qat - remove unused adf_devmgr_get_first
crypto: x86/cast5 - Remove unused cast5_ctr_16way
crypto: asymmetric_keys - Remove unused functions

Eric Biggers (14):
crypto: x86/crc32c - simplify code for handling fewer than 200 bytes
crypto: x86/crc32c - access 32-bit arguments as 32-bit
crypto: x86/crc32c - eliminate jump table and excessive unrolling
crypto: x86/aegis128 - access 32-bit arguments as 32-bit
crypto: x86/aegis128 - remove no-op init and exit functions
crypto: x86/aegis128 - eliminate some indirect calls
crypto: x86/aegis128 - don't bother with special code for aligned data
crypto: x86/aegis128 - optimize length block preparation using SSE4.1
crypto: x86/aegis128 - improve assembly function prototypes
crypto: x86/aegis128 - optimize partial block handling using SSE4.1
crypto: x86/aegis128 - take advantage of block-aligned len
crypto: x86/aegis128 - remove unneeded FRAME_BEGIN and FRAME_END
crypto: x86/aegis128 - remove unneeded RETs
crypto: api - move crypto_simd_disabled_for_test to lib

Everest K.C (1):
crypto: cavium - Fix the if condition to exit loop after timeout

Fabio Estevam (1):
dt-bindings: imx-rng: Allow passing only "fsl,imx31-rnga"

Gatien Chevallier (3):
dt-bindings: rng: add st,stm32mp25-rng support
hwrng: stm32 - implement support for STM32MP25x platforms
hwrng: stm32 - update STM32MP15 RNG max clock frequency

Herbert Xu (3):
hwrng: core - Add WARN_ON for buggy read return values
crypto: lib/mpi - Export mpi_set_bit
crypto: aesni - Move back to module_init

Joachim Vandersmissen (1):
crypto: jitter - output full sample from test interface

Karol Przybylski (1):
crypto: marvell/cesa - fix uninit value for struct mv_cesa_op_ctx

Li Huafei (1):
crypto: inside-secure - Fix the return value of safexcel_xcbcmac_cra_init()

Linus Walleij (1):
hwrng: iproc-r200 - enable on BCMBCA

Lukas Bulwahn (1):
hwrng: amd - remove reference to removed PPC_MAPLE config

Lukas Wunner (23):
crypto: ecdsa - Drop unused test vector elements
crypto: sig - Introduce sig_alg backend
crypto: ecdsa - Migrate to sig_alg backend
crypto: ecrdsa - Migrate to sig_alg backend
crypto: rsa-pkcs1pad - Deduplicate set_{pub,priv}_key callbacks
crypto: rsassa-pkcs1 - Migrate to sig_alg backend
crypto: rsassa-pkcs1 - Harden digest length verification
crypto: rsassa-pkcs1 - Avoid copying hash prefix
crypto: virtio - Drop sign/verify operations
crypto: drivers - Drop sign/verify operations
crypto: akcipher - Drop sign/verify operations
crypto: sig - Move crypto_sig_*() API calls to include file
ASN.1: Clean up include statements in public headers
crypto: ecdsa - Avoid signed integer overflow on signature decoding
crypto: ecdsa - Move X9.62 signature decoding into template
crypto: sig - Rename crypto_sig_maxsize() to crypto_sig_keysize()
crypto: ecdsa - Move X9.62 signature size calculation into template
crypto: ecdsa - Support P1363 signature decoding
crypto: ecrdsa - Fix signature size calculation
crypto: doc - Fix akcipher title reference
crypto: sig - Fix oops on KEYCTL_PKEY_QUERY for RSA keys
crypto: ecdsa - Update Kconfig help text for NIST P521
crypto: rsassa-pkcs1 - Reinstate support for legacy protocols

Markus Mayer (2):
dt-bindings: rng: add binding for BCM74110 RNG
hwrng: bcm74110 - Add Broadcom BCM74110 RNG driver

Michal Suchanek (1):
crypto: aes-gcm-p10 - Use the correct bit to test for P10

Ovidiu Panait (2):
crypto: tegra - remove unneeded crypto_engine_stop() call
crypto: starfive - remove unneeded crypto_engine_stop() call

Qi Tao (1):
crypto: hisilicon - support querying the capability register

Qianqiang Liu (1):
crypto: lib/mpi - Fix an "Uninitialized scalar variable" issue

Rob Herring (Arm) (1):
dt-bindings: rng: Add Marvell Armada RNG support

Rosen Penev (6):
crypto: cesa - add COMPILE_TEST
crypto: cesa - use enabled variants for clk_get
crypto: cesa - remove irq_set_affinity_hint
crypto: cesa - use devm_platform_get_and_ioremap_resource
crypto: crypto4xx - avoid explicit resource
crypto: crypto4xx - use devm in probe

Shen Lichuan (1):
crypto: drivers - Correct multiple typos in comments

Tang Bin (1):
crypto: amlogic - Remove redundant assignment and error messages

Thorsten Blum (1):
crypto: drbg - Use str_true_false() and str_enabled_disabled() helpers

Tomas Paukrt (1):
crypto: mxs-dcp - Fix AES-CBC with hardware-bound keys

Uwe Kleine-König (3):
crypto: atmel - Drop explicit initialization of struct i2c_device_id::driver_data to 0
crypto: drivers - Switch back to struct platform_driver::remove()
hwrng: drivers - Switch back to struct platform_driver::remove()

Vishal Chourasia (2):
crypto: nx - Rename devdata_mutex to devdata_spinlock
crypto: nx - Fix invalid wait context during kexec reboot

Wang Hai (1):
crypto: qat - Fix missing destroy_workqueue in adf_init_aer()

WangYuli (1):
crypto: qat - Fix typo "accelaration"

Weili Qian (2):
crypto: hisilicon/hpre - enable all clusters clock gating
crypto: hisilicon/qm - disable same error report before resetting

Yi Yang (1):
crypto: pcrypt - Call crypto layer directly when padata_do_parallel() return -EBUSY

Yu Jiaoliang (1):
crypto: ccree - Fix typo in comment

Yuvaraj Ranganathan (1):
dt-bindings: crypto: qcom-qce: document the SA8775P crypto engine

Zanussi, Tom (2):
crypto: iaa - Remove potential infinite loop in check_completion()
MAINTAINERS: Make Kristen Accardi the IAA crypto driver maintainer

Zhu Jun (1):
hwrng: histb - Fix the wrong format specifier

Zicheng Qu (1):
padata: Clean up in padata_do_multithreaded()

Documentation/ABI/testing/debugfs-hisi-hpre | 7 +
Documentation/ABI/testing/debugfs-hisi-sec | 7 +
Documentation/ABI/testing/debugfs-hisi-zip | 7 +
Documentation/crypto/api-akcipher.rst | 4 +-
Documentation/crypto/api-sig.rst | 15 +
Documentation/crypto/api.rst | 1 +
Documentation/crypto/architecture.rst | 2 +
.../devicetree/bindings/crypto/qcom-qce.yaml | 1 +
.../bindings/rng/airoha,en7581-trng.yaml | 38 +
.../devicetree/bindings/rng/brcm,bcm74110-rng.yaml | 35 +
Documentation/devicetree/bindings/rng/imx-rng.yaml | 2 +-
..._rng.yaml => inside-secure,safexcel-eip76.yaml} | 17 +-
.../devicetree/bindings/rng/st,stm32-rng.yaml | 28 +-
MAINTAINERS | 2 +-
arch/arm/crypto/crct10dif-ce-core.S | 249 +-
arch/arm/crypto/crct10dif-ce-glue.c | 55 +-
arch/arm64/crypto/crct10dif-ce-core.S | 331 ++-
arch/arm64/crypto/crct10dif-ce-glue.c | 44 +-
arch/powerpc/crypto/Kconfig | 2 +-
arch/powerpc/crypto/aes-gcm-p10-glue.c | 141 +-
arch/powerpc/crypto/aes-gcm-p10.S | 2481 +++++++++-----------
arch/x86/crypto/Kconfig | 4 +-
arch/x86/crypto/aegis128-aesni-asm.S | 516 ++--
arch/x86/crypto/aegis128-aesni-glue.c | 145 +-
arch/x86/crypto/aesni-intel_glue.c | 2 +-
arch/x86/crypto/cast5-avx-x86_64-asm_64.S | 76 -
arch/x86/crypto/crc32c-intel_glue.c | 2 +-
arch/x86/crypto/crc32c-pcl-intel-asm_64.S | 348 +--
crypto/Kconfig | 7 +-
crypto/Makefile | 7 +-
crypto/akcipher.c | 64 +-
crypto/algapi.c | 6 -
crypto/asymmetric_keys/public_key.c | 58 +-
crypto/asymmetric_keys/signature.c | 63 -
crypto/crc32_generic.c | 94 +-
crypto/crc32c_generic.c | 94 +-
crypto/drbg.c | 5 +-
crypto/ecdsa-p1363.c | 159 ++
crypto/ecdsa-x962.c | 237 ++
crypto/ecdsa.c | 209 +-
crypto/ecrdsa.c | 64 +-
crypto/internal.h | 19 -
crypto/jitterentropy-testing.c | 31 +-
crypto/jitterentropy.h | 4 +-
crypto/pcrypt.c | 12 +-
crypto/rsa-pkcs1pad.c | 369 +--
crypto/rsa.c | 17 +-
crypto/rsassa-pkcs1.c | 454 ++++
crypto/sig.c | 149 +-
crypto/testmgr.c | 332 ++-
crypto/testmgr.h | 1225 +++++++---
drivers/char/hw_random/Kconfig | 30 +-
drivers/char/hw_random/Makefile | 2 +
drivers/char/hw_random/airoha-trng.c | 243 ++
drivers/char/hw_random/atmel-rng.c | 2 +-
drivers/char/hw_random/bcm74110-rng.c | 125 +
drivers/char/hw_random/cctrng.c | 2 +-
drivers/char/hw_random/core.c | 11 +-
drivers/char/hw_random/exynos-trng.c | 2 +-
drivers/char/hw_random/histb-rng.c | 2 +-
drivers/char/hw_random/ingenic-rng.c | 2 +-
drivers/char/hw_random/ks-sa-rng.c | 2 +-
drivers/char/hw_random/mxc-rnga.c | 2 +-
drivers/char/hw_random/n2-drv.c | 2 +-
drivers/char/hw_random/npcm-rng.c | 2 +-
drivers/char/hw_random/omap-rng.c | 2 +-
drivers/char/hw_random/stm32-rng.c | 78 +-
drivers/char/hw_random/timeriomem-rng.c | 2 +-
drivers/char/hw_random/xgene-rng.c | 2 +-
drivers/crypto/allwinner/sun4i-ss/sun4i-ss-core.c | 2 +-
drivers/crypto/allwinner/sun8i-ce/sun8i-ce-core.c | 2 +-
drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c | 2 +-
drivers/crypto/amcc/crypto4xx_core.c | 58 +-
drivers/crypto/amlogic/amlogic-gxl-core.c | 10 +-
drivers/crypto/aspeed/aspeed-acry.c | 4 +-
drivers/crypto/aspeed/aspeed-hace.c | 2 +-
drivers/crypto/atmel-aes.c | 2 +-
drivers/crypto/atmel-ecc.c | 2 +-
drivers/crypto/atmel-sha.c | 2 +-
drivers/crypto/atmel-sha204a.c | 4 +-
drivers/crypto/atmel-tdes.c | 4 +-
drivers/crypto/axis/artpec6_crypto.c | 2 +-
drivers/crypto/bcm/cipher.c | 7 +-
drivers/crypto/caam/caampkc.c | 11 +-
drivers/crypto/caam/jr.c | 2 +-
drivers/crypto/caam/qi.c | 7 +-
drivers/crypto/cavium/cpt/cptpf_main.c | 6 +-
drivers/crypto/cavium/cpt/cptvf_reqmanager.c | 4 +-
drivers/crypto/cavium/nitrox/nitrox_lib.c | 2 +-
drivers/crypto/ccp/sp-platform.c | 2 +-
drivers/crypto/ccree/cc_aead.c | 4 +-
drivers/crypto/ccree/cc_cipher.c | 2 +-
drivers/crypto/ccree/cc_driver.c | 2 +-
drivers/crypto/ccree/cc_hash.c | 2 +-
drivers/crypto/chelsio/chcr_algo.c | 2 +-
drivers/crypto/exynos-rng.c | 2 +-
drivers/crypto/gemini/sl3516-ce-core.c | 2 +-
drivers/crypto/hisilicon/hpre/hpre.h | 23 +
drivers/crypto/hisilicon/hpre/hpre_crypto.c | 2 -
drivers/crypto/hisilicon/hpre/hpre_main.c | 190 +-
drivers/crypto/hisilicon/qm.c | 166 +-
drivers/crypto/hisilicon/sec/sec_drv.c | 2 +-
drivers/crypto/hisilicon/sec2/sec.h | 26 +-
drivers/crypto/hisilicon/sec2/sec_crypto.c | 8 +-
drivers/crypto/hisilicon/sec2/sec_main.c | 108 +-
drivers/crypto/hisilicon/trng/trng.c | 2 +-
drivers/crypto/hisilicon/zip/zip.h | 18 +
drivers/crypto/hisilicon/zip/zip_main.c | 153 +-
drivers/crypto/img-hash.c | 2 +-
drivers/crypto/inside-secure/safexcel.c | 2 +-
drivers/crypto/inside-secure/safexcel_hash.c | 2 +-
drivers/crypto/intel/iaa/iaa_crypto_main.c | 10 +
drivers/crypto/intel/ixp4xx/ixp4xx_crypto.c | 2 +-
.../crypto/intel/keembay/keembay-ocs-aes-core.c | 2 +-
drivers/crypto/intel/keembay/keembay-ocs-ecc.c | 2 +-
.../crypto/intel/keembay/keembay-ocs-hcu-core.c | 2 +-
.../crypto/intel/qat/qat_420xx/adf_420xx_hw_data.c | 2 +-
.../crypto/intel/qat/qat_4xxx/adf_4xxx_hw_data.c | 2 +-
drivers/crypto/intel/qat/qat_common/adf_aer.c | 5 +-
.../crypto/intel/qat/qat_common/adf_common_drv.h | 1 -
drivers/crypto/intel/qat/qat_common/adf_dbgfs.c | 13 +-
drivers/crypto/intel/qat/qat_common/adf_dev_mgr.c | 10 -
.../intel/qat/qat_common/adf_gen4_pm_debugfs.c | 18 +-
.../crypto/intel/qat/qat_common/adf_hw_arbiter.c | 4 -
drivers/crypto/intel/qat/qat_common/qat_hal.c | 2 +-
drivers/crypto/marvell/Kconfig | 2 +-
drivers/crypto/marvell/cesa/cesa.c | 54 +-
drivers/crypto/marvell/cesa/cipher.c | 24 +-
drivers/crypto/mxs-dcp.c | 22 +-
drivers/crypto/n2_core.c | 4 +-
drivers/crypto/nx/nx-common-pseries.c | 37 +-
drivers/crypto/omap-aes.c | 2 +-
drivers/crypto/omap-des.c | 2 +-
drivers/crypto/omap-sham.c | 2 +-
drivers/crypto/qce/core.c | 2 +-
drivers/crypto/qcom-rng.c | 2 +-
drivers/crypto/rockchip/rk3288_crypto.c | 2 +-
drivers/crypto/s5p-sss.c | 2 +-
drivers/crypto/sa2ul.c | 4 +-
drivers/crypto/sahara.c | 2 +-
drivers/crypto/starfive/jh7110-cryp.c | 7 +-
drivers/crypto/starfive/jh7110-rsa.c | 2 -
drivers/crypto/stm32/stm32-crc32.c | 2 +-
drivers/crypto/stm32/stm32-cryp.c | 2 +-
drivers/crypto/stm32/stm32-hash.c | 2 +-
drivers/crypto/talitos.c | 2 +-
drivers/crypto/tegra/tegra-se-aes.c | 2 -
drivers/crypto/tegra/tegra-se-main.c | 4 +-
.../crypto/virtio/virtio_crypto_akcipher_algs.c | 65 +-
drivers/crypto/xilinx/zynqmp-aes-gcm.c | 2 +-
drivers/crypto/xilinx/zynqmp-sha.c | 2 +-
include/crypto/akcipher.h | 69 +-
include/crypto/internal/akcipher.h | 4 +-
include/crypto/internal/ecc.h | 14 +
include/crypto/internal/rsa.h | 29 +
include/crypto/internal/sig.h | 80 +
include/crypto/public_key.h | 3 -
include/crypto/sig.h | 152 +-
include/linux/asn1_decoder.h | 1 +
include/linux/asn1_encoder.h | 1 -
include/linux/hisi_acc_qm.h | 56 +-
include/linux/slab.h | 1 +
include/uapi/linux/cryptouser.h | 5 +
include/uapi/linux/virtio_crypto.h | 1 +
kernel/padata.c | 7 -
lib/crc32.c | 4 +
lib/crypto/Makefile | 2 +
lib/crypto/mpi/mpi-bit.c | 1 +
lib/crypto/mpi/mpi-mul.c | 2 +-
lib/crypto/simd.c | 11 +
security/integrity/ima/ima_main.c | 6 +-
171 files changed, 6125 insertions(+), 4265 deletions(-)
create mode 100644 Documentation/crypto/api-sig.rst
create mode 100644 Documentation/devicetree/bindings/rng/airoha,en7581-trng.yaml
create mode 100644 Documentation/devicetree/bindings/rng/brcm,bcm74110-rng.yaml
rename Documentation/devicetree/bindings/rng/{omap_rng.yaml => inside-secure,safexcel-eip76.yaml} (79%)
create mode 100644 crypto/ecdsa-p1363.c
create mode 100644 crypto/ecdsa-x962.c
create mode 100644 crypto/rsassa-pkcs1.c
create mode 100644 drivers/char/hw_random/airoha-trng.c
create mode 100644 drivers/char/hw_random/bcm74110-rng.c
create mode 100644 lib/crypto/simd.c

Thanks,
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt