Crypto Update for 4.15

From: Herbert Xu
Date: Mon Nov 13 2017 - 02:44:11 EST


Hi Linus:

Here is the crypto update for 4.15:

API:

- Disambiguate EBUSY when queueing crypto request by adding ENOSPC.
This change touches code outside the crypto API.
- Reset settings when empty string is written to rng_current.

Algorithms:

- Add OSCCA SM3 secure hash.

Drivers:

- Remove old mv_cesa driver (replaced by marvell/cesa).
- Enable rfc3686/ecb/cfb/ofb AES in crypto4xx.
- Add ccm/gcm AES in crypto4xx.
- Add support for BCM7278 in iproc-rng200.
- Add hash support on Exynos in s5p-sss.
- Fix fallback-induced error in vmx.
- Fix output IV in atmel-aes.
- Fix empty GCM hash in mediatek.

Others:

- Fix DoS potential in lib/mpi.
- Fix potential out-of-order issues with padata.

Please note that there may be a conflict with the tips tree due
to the timer_setup patch being applied in both cryptodev and
the tips tree. The version in the tips tree also touchs the
mv_cesa driver which just happens to have been removed in this
cycle in cryptodev. Any changes to mv_cesa may be safely discarded.


Please pull from

git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6.git linus


Allen (1):
crypto: omap - return -ENOMEM on allocation failure.

Arnd Bergmann (1):
crypto: axis - hide an unused variable

Arvind Yadav (11):
crypto: nx - constify vio_device_id
crypto: nx-842 - constify vio_device_id
hwrng: pseries - constify vio_device_id
crypto: padlock-aes - constify x86_cpu_id
crypto: padlock-sha - constify x86_cpu_id
hwrng: core - pr_err() strings should end with newlines
crypto: omap-aes - pr_err() strings should end with newlines
crypto: virtio - pr_err() strings should end with newlines
crypto: chelsio - pr_err() strings should end with newlines
crypto: qat - pr_err() strings should end with newlines
crypto: bcm - pr_err() strings should end with newlines

Boris BREZILLON (5):
crypto: marvell - Add a platform_device_id table
ARM: configs: Stop selecting the old CESA driver
crypto: marvell - Remove the old mv_cesa driver
crypto: marvell - Switch cipher algs to the skcipher interface
crypto: marvell - Add a NULL entry at the end of mv_cesa_plat_id_table[]

Christian Lamparter (25):
crypto: crypto4xx - remove bad list_del
crypto: crypto4xx - remove unused definitions and write-only variables
crypto: crypto4xx - set CRYPTO_ALG_KERN_DRIVER_ONLY flag
crypto: crypto4xx - remove extern statement before function declaration
crypto: crypto4xx - remove double assignment of pd_uinfo->state
crypto: crypto4xx - fix dynamic_sa_ctl's sa_contents declaration
crypto: crypto4xx - move and refactor dynamic_contents helpers
crypto: crypto4xx - enable AES RFC3686, ECB, CFB and OFB offloads
crypto: crypto4xx - refactor crypto4xx_copy_pkt_to_dst()
crypto: crypto4xx - replace crypto4xx_dev's scatter_buffer_size with constant
crypto: crypto4xx - fix crypto4xx_build_pdr, crypto4xx_build_sdr leak
crypto: crypto4xx - pointer arithmetic overhaul
crypto: crypto4xx - wire up hmac_mc to hmac_muting
crypto: crypto4xx - fix off-by-one AES-OFB
crypto: crypto4xx - fix type mismatch compiler error
crypto: crypto4xx - increase context and scatter ring buffer elements
crypto: crypto4xx - add backlog queue support
crypto: crypto4xx - use the correct LE32 format for IV and key defs
crypto: crypto4xx - overhaul crypto4xx_build_pd()
crypto: crypto4xx - fix various warnings
crypto: crypto4xx - fix stalls under heavy load
crypto: crypto4xx - simplify sa and state context acquisition
crypto: crypto4xx - prepare for AEAD support
crypto: crypto4xx - add aes-ccm support
crypto: crypto4xx - add aes-gcm support

Christophe Jaillet (2):
crypto: lrw - Fix an error handling path in 'create()'
crypto: lrw - Check for incorrect cipher name

Colin Ian King (5):
crypto: aesni - make arrays aesni_simd_skciphers and aesni_simd_skciphers2 static
crypto: algboss - remove redundant setting of len to zero
crypto: cavium - clean up clang warning on unread variable offset
crypto: ccp - remove unused variable qim
crypto: qat - remove unused and redundant pointer vf_info

Corentin LABBE (14):
crypto: gcm - add GCM IV size constant
crypto: caam - Use GCM IV size constant
crypto: ccp - Use GCM IV size constant
crypto: nx - Use GCM IV size constant
crypto: atmel - Use GCM IV size constant
crypto: bcm - Use GCM IV size constant
crypto: mediatek - Use GCM IV size constant
crypto: chelsio - Use GCM IV size constant
crypto: omap - Use GCM IV size constant
crypto: gcm - Use GCM IV size constant
crypto: aesni - Use GCM IV size constant
crypto: stm32 - use of_device_get_match_data
crypto: omap - use of_device_get_match_data
crypto: bcm - use of_device_get_match_data

Eric Biggers (6):
crypto: dh - Fix double free of ctx->p
crypto: dh - Don't permit 'p' to be 0
crypto: dh - Don't permit 'key' or 'g' size longer than 'p'
crypto: qat - Clean up error handling in qat_dh_set_secret()
crypto: dh - Remove pointless checks for NULL 'p' and 'g'
lib/mpi: call cond_resched() from mpi_powm() loop

Florian Fainelli (2):
dt-bindings: rng: Document BCM7278 RNG200 compatible
hwrng: iproc-rng200 - Add support for BCM7278

Geliang Tang (1):
crypto: drop unnecessary return statements

Gilad Ben-Yossef (22):
crypto: sm3 - add OSCCA SM3 secure hash
crypto: sm3 - add SM3 test vectors
crypto: change transient busy return code to -ENOSPC
crypto: ccp - use -ENOSPC for transient busy indication
net: use -ENOSPC for transient busy indication
crypto: remove redundant backlog checks on EBUSY
crypto: marvell/cesa - remove redundant backlog checks on EBUSY
crypto: introduce crypto wait for async op
crypto: algif - move to generic async completion
crypto: move pub key to generic async completion
crypto: drbg - move to generic async completion
crypto: gcm - move to generic async completion
crypto: testmgr - move to generic async completion
fscrypt: move to generic async completion
dm: move dm-verity to generic async completion
cifs: move to generic async completion
ima: move to generic async completion
crypto: tcrypt - move to generic async completion
crypto: talitos - move to generic async completion
crypto: qce - move to generic async completion
crypto: mediatek - move to generic async completion
crypto: doc - adapt api sample to use async. op wait

Gustavo A. R. Silva (3):
crypto: tcrypt - mark expected switch fall-throughs in do_test()
crypto: qat - mark expected switch fall-throughs in qat_uclo
crypto: chcr - Replace _manual_ swap with swap macro

Harsh Jain (5):
crypto: gf128mul - The x8_ble multiplication functions
crypto: chelsio - Use x8_ble gf multiplication to calculate IV.
crypto: chelsio - Remove allocation of sg list to implement 2K limit of dsgl header
crypto: chelsio - Move DMA un/mapping to chcr from lld cxgb4 driver
crypto: chelsio - Fix memory leak

Herbert Xu (1):
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux

Himanshu Jha (3):
crypto: n2 - remove null check before kfree
crypto: inside-secure - remove null check before kfree
crypto: Use PTR_ERR_ZERO

Horia GeantÄ (4):
MAINTAINERS: update caam crypto driver maintainers list
crypto: caam/qi - abort algorithm setup on DPAA2 parts
crypto: caam - remove unneeded edesc zeroization
crypto: caam - remove unused param of ctx_map_to_sec4_sg()

Jim Quigley (1):
hwrng: virtio - Virtio RNG devices need to be re-registered after suspend/resume

Kamil Konieczny (3):
crypto: doc - clarify return values for async hash methods
crypto: s5p-sss - Change spaces to tabs
crypto: s5p-sss - Add HASH support for Exynos

Kees Cook (2):
hwrng: xgene - Convert timers to use timer_setup()
crypto: drivers - Convert timers to use timer_setup()

LEROY Christophe (18):
crypto: talitos - fix AEAD test failures
crypto: talitos - fix memory corruption on SEC2
crypto: talitos - fix setkey to check key weakness
crypto: talitos - fix AEAD for sha224 on non sha224 capable chips
crypto: talitos - fix use of sg_link_tbl_len
crypto: talitos - fix ctr-aes-talitos
crypto: talitos - zeroize the descriptor with memset()
crypto: talitos - declare local functions static
crypto: talitos - use devm_kmalloc()
crypto: talitos - use of_property_read_u32()
crypto: talitos - use devm_ioremap()
crypto: talitos - don't check the number of channels at each interrupt
crypto: talitos - remove to_talitos_ptr_len()
crypto: talitos - simplify tests in ipsec_esp()
crypto: talitos - DMA map key in setkey()
crypto: talitos - do hw_context DMA mapping outside the requests
crypto: talitos - chain in buffered data for ahash on SEC1
crypto: talitos - avoid useless copy

Lionel Debieve (1):
crypto: stm32/hash - Fix return issue on update

Mathias Krause (3):
padata: set cpu_index of unused CPUs to -1
padata: ensure the reorder timer callback runs on the correct CPU
padata: ensure padata_do_serial() runs on the correct CPU

Mikulas Patocka (1):
crypto: crc32-pclmul - remove useless relative addressing

Paulo Flabiano Smorigo (1):
crypto: vmx - Use skcipher for ctr fallback

PrasannaKumar Muralidharan (3):
hwrng: timeriomem - Remove 'max < 4' condition check
dt/bindings: exynos-rng: Move dt binding documentation to bindings/crypto
hwrng: core - Reset user selected rng by writing "" to rng_current

Radu Alexe (1):
crypto: caam - fix incorrect define

Robert Baronescu (1):
crypto: tcrypt - fix buffer lengths in test_aead_speed()

Romain Izard (2):
crypto: atmel-aes - properly set IV after {en,de}crypt
crypto: atmel-aes - Reset the controller before each use

Ryder Lee (1):
crypto: mediatek - Add empty messages check in GCM mode

Salvatore Benedetto (1):
MAINTAINERS: update maintainer for qat

Stephan Mueller (1):
crypto: keywrap - simplify code

Tudor-Dan Ambarus (7):
crypto: ecdh - return unsigned value for crypto_ecdh_key_len()
crypto: dh - return unsigned int for dh_data_size()
crypto: dh - return unsigned value for crypto_dh_key_len()
crypto: atmel - return appropriate error code
crypto: atmel - remove useless irq init
crypto: ecdh - remove empty exit()
crypto: atmel - remove empty functions

Yeshaswi M R Gowda (2):
crypto: chelsio - Remove unused parameter
crypto: chelsio - Check error code with IS_ERR macro

amd (2):
crypto: ccp - unmap pages and remove unmap objects in callback
crypto:ccp - invoke the DMA callback in a standard way

lionel.debieve@xxxxxx (1):
crypto: stm32/hash - Remove uninitialized symbol

raveendra padasalagi (1):
crypto: brcm - Explicity ACK mailbox message

Documentation/crypto/api-samples.rst | 52 +-
.../{rng => crypto}/samsung,exynos-rng4.txt | 0
.../devicetree/bindings/rng/brcm,iproc-rng200.txt | 4 +-
MAINTAINERS | 5 +-
arch/arm/configs/dove_defconfig | 2 +-
arch/arm/configs/multi_v5_defconfig | 2 +-
arch/arm/configs/orion5x_defconfig | 2 +-
arch/x86/crypto/aesni-intel_glue.c | 10 +-
arch/x86/crypto/crc32-pclmul_asm.S | 17 +-
crypto/Kconfig | 11 +
crypto/Makefile | 1 +
crypto/af_alg.c | 27 -
crypto/ahash.c | 12 +-
crypto/algapi.c | 6 +-
crypto/algboss.c | 1 -
crypto/algif_aead.c | 8 +-
crypto/algif_hash.c | 30 +-
crypto/algif_skcipher.c | 9 +-
crypto/api.c | 13 +
crypto/asymmetric_keys/public_key.c | 28 +-
crypto/cryptd.c | 4 +-
crypto/cts.c | 6 +-
crypto/dh.c | 36 +-
crypto/dh_helper.c | 20 +-
crypto/drbg.c | 36 +-
crypto/ecdh.c | 6 -
crypto/ecdh_helper.c | 2 +-
crypto/gcm.c | 55 +-
crypto/gf128mul.c | 13 +
crypto/keywrap.c | 84 +-
crypto/lrw.c | 17 +-
crypto/rmd128.c | 2 -
crypto/rmd160.c | 2 -
crypto/rmd256.c | 2 -
crypto/rmd320.c | 2 -
crypto/rsa-pkcs1pad.c | 16 +-
crypto/sm3_generic.c | 210 +++
crypto/tcrypt.c | 209 +--
crypto/testmgr.c | 210 +--
crypto/testmgr.h | 67 +
crypto/xts.c | 8 +-
drivers/char/hw_random/Kconfig | 6 +-
drivers/char/hw_random/core.c | 53 +-
drivers/char/hw_random/iproc-rng200.c | 1 +
drivers/char/hw_random/pseries-rng.c | 2 +-
drivers/char/hw_random/timeriomem-rng.c | 7 -
drivers/char/hw_random/virtio-rng.c | 21 +-
drivers/char/hw_random/xgene-rng.c | 8 +-
drivers/crypto/Kconfig | 40 +-
drivers/crypto/Makefile | 1 -
drivers/crypto/amcc/Makefile | 2 +-
drivers/crypto/amcc/crypto4xx_alg.c | 512 +++++-
drivers/crypto/amcc/crypto4xx_core.c | 831 +++++----
drivers/crypto/amcc/crypto4xx_core.h | 199 ++-
drivers/crypto/amcc/crypto4xx_reg_def.h | 3 +
drivers/crypto/amcc/crypto4xx_sa.c | 85 -
drivers/crypto/amcc/crypto4xx_sa.h | 99 +-
drivers/crypto/atmel-aes.c | 80 +-
drivers/crypto/atmel-sha.c | 5 +-
drivers/crypto/atmel-tdes.c | 23 +-
drivers/crypto/axis/artpec6_crypto.c | 10 +-
drivers/crypto/bcm/cipher.c | 116 +-
drivers/crypto/bcm/cipher.h | 3 +-
drivers/crypto/bcm/util.c | 14 +-
drivers/crypto/caam/caamalg.c | 10 +-
drivers/crypto/caam/caamalg_qi.c | 7 +-
drivers/crypto/caam/caamhash.c | 12 +-
drivers/crypto/caam/compat.h | 1 +
drivers/crypto/caam/desc.h | 2 +-
drivers/crypto/cavium/nitrox/nitrox_hal.c | 2 +-
drivers/crypto/ccp/ccp-crypto-aes-galois.c | 9 +-
drivers/crypto/ccp/ccp-crypto-main.c | 8 +-
drivers/crypto/ccp/ccp-dev-v5.c | 3 +-
drivers/crypto/ccp/ccp-dev.c | 7 +-
drivers/crypto/ccp/ccp-dmaengine.c | 5 +-
drivers/crypto/chelsio/chcr_algo.c | 1798 ++++++++++++--------
drivers/crypto/chelsio/chcr_algo.h | 57 +-
drivers/crypto/chelsio/chcr_core.c | 10 +-
drivers/crypto/chelsio/chcr_core.h | 2 +-
drivers/crypto/chelsio/chcr_crypto.h | 121 +-
drivers/crypto/inside-secure/safexcel_hash.c | 6 +-
drivers/crypto/ixp4xx_crypto.c | 1 -
drivers/crypto/marvell/cesa.c | 29 +-
drivers/crypto/marvell/cesa.h | 27 +-
drivers/crypto/marvell/cipher.c | 476 +++---
drivers/crypto/marvell/tdma.c | 5 +-
drivers/crypto/mediatek/mtk-aes.c | 39 +-
drivers/crypto/mv_cesa.c | 1216 -------------
drivers/crypto/mv_cesa.h | 150 --
drivers/crypto/n2_core.c | 12 +-
drivers/crypto/nx/nx-842-pseries.c | 2 +-
drivers/crypto/nx/nx-aes-gcm.c | 9 +-
drivers/crypto/nx/nx.c | 2 +-
drivers/crypto/omap-aes-gcm.c | 11 +-
drivers/crypto/omap-aes.c | 12 +-
drivers/crypto/omap-des.c | 7 +-
drivers/crypto/omap-sham.c | 7 +-
drivers/crypto/padlock-aes.c | 2 +-
drivers/crypto/padlock-sha.c | 2 +-
drivers/crypto/picoxcell_crypto.c | 7 +-
drivers/crypto/qat/qat_common/adf_dev_mgr.c | 3 -
drivers/crypto/qat/qat_common/qat_asym_algs.c | 18 +-
drivers/crypto/qat/qat_common/qat_uclo.c | 15 +-
drivers/crypto/qce/ablkcipher.c | 5 +-
drivers/crypto/qce/sha.c | 30 +-
drivers/crypto/s5p-sss.c | 1596 +++++++++++++++--
drivers/crypto/stm32/stm32-hash.c | 20 +-
drivers/crypto/talitos.c | 582 ++++---
drivers/crypto/talitos.h | 7 +-
drivers/crypto/ux500/cryp/cryp_core.c | 1 -
drivers/crypto/virtio/virtio_crypto_algs.c | 2 +-
drivers/crypto/vmx/aes_ctr.c | 33 +-
drivers/md/dm-verity-target.c | 81 +-
drivers/md/dm-verity.h | 5 -
drivers/net/ethernet/chelsio/cxgb4/sge.c | 8 +-
fs/cifs/smb2ops.c | 30 +-
fs/crypto/crypto.c | 28 +-
fs/crypto/fname.c | 36 +-
fs/crypto/fscrypt_private.h | 10 -
fs/crypto/keyinfo.c | 21 +-
include/crypto/dh.h | 2 +-
include/crypto/drbg.h | 3 +-
include/crypto/ecdh.h | 2 +-
include/crypto/gcm.h | 8 +
include/crypto/gf128mul.h | 2 +-
include/crypto/hash.h | 28 +-
include/crypto/if_alg.h | 15 +-
include/crypto/sm3.h | 40 +
include/crypto/sm3_base.h | 117 ++
include/linux/crypto.h | 40 +
include/linux/padata.h | 4 +
kernel/padata.c | 71 +-
lib/mpi/mpi-pow.c | 2 +
net/ipv4/ah4.c | 2 +-
net/ipv4/esp4.c | 2 +-
net/ipv6/ah6.c | 2 +-
net/ipv6/esp6.c | 2 +-
security/integrity/ima/ima_crypto.c | 56 +-
138 files changed, 5712 insertions(+), 4661 deletions(-)

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