Crypto Update for 4.1

Herbert Xu
2015-04-15T03:40:11Z

Hi Linus:

Here is the crypto update for 4.1:

* Added user-space interface for AEAD.
* Added user-space interface for RNG (i.e., pseudo RNG).
* Prevent internal helper algos from being exposed to user-space.
* Merged common code from assembly/C SHA implementations .
* Added ARMv8 SHA1/256.
* Added ARMv8 AES.
* Added ARMv8 GHASH.
* Added ARM assmelber and NEON SHA256.
* Added MIPS OCTEON SHA1/256/512.
* Added MIPS img-hash SHA1/256 and MD5.
* Added Power 8 VMX AES/CBC/CTR/GHASH.
* Added PPC assembler AES, SHA1/256 and MD5.
* Added Broadcom IPROC RNG driver.
* Misc fixes.

Please pull from

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

Aaro Koskinen (7):
crypto: octeon - don't disable bottom half in octeon-md5
crypto: octeon - always disable preemption when using crypto engine
crypto: octeon - add instruction definitions for SHA1/256/512
crypto: octeon - add SHA1 module
crypto: octeon - add SHA256 module
crypto: octeon - add SHA512 module
crypto: octeon - enable OCTEON SHA1/256/512 module selection

Allan, Bruce W (10):
crypto: qat - remove duplicate definition of Intel PCI vendor id
crypto: qat - fix typo in string
crypto: qat - make error and info log messages more descriptive
crypto: qat - fix typo
crypto: qat - fix checkpatch CHECK_SPACING issues
crypto: qat - checkpatch PARENTHESIS_ALIGNMENT and LOGICAL_CONTINUATIONS
crypto: qat - fix checkpatch CONCATENATED_STRING issues
crypto: qat - fix checkpatch BIT_MACRO issues
crypto: qat - fix checkpatch COMPARISON_TO_NULL issue
crypto: qat - fix checkpatch CODE_INDENT issue

Ameen Ali (1):
crypto: sha1-mb - Syntax error

Andre Wolokita (2):
hwrng: omap - Change RNG_CONFIG_REG to RNG_CONTROL_REG when checking and disabling TRNG
hwrng: omap - Change RNG_CONFIG_REG to RNG_CONTROL_REG in init

Ard Biesheuvel (23):
crypto: arm - move ARM specific Kconfig definitions to a dedicated file
crypto: arm - add support for SHA1 using ARMv8 Crypto Instructions
crypto: arm - add support for SHA-224/256 using ARMv8 Crypto Extensions
crypto: arm - AES in ECB/CBC/CTR/XTS modes using ARMv8 Crypto Extensions
crypto: arm - add support for GHASH using ARMv8 Crypto Extensions
crypto: arm/ghash - fix big-endian bug in ghash
crypto: sha1 - implement base layer for SHA-1
crypto: sha256 - implement base layer for SHA-256
crypto: sha512 - implement base layer for SHA-512
crypto: sha1-generic - move to generic glue implementation
crypto: sha256-generic - move to generic glue implementation
crypto: sha512-generic - move to generic glue implementation
crypto: arm/sha1 - move SHA-1 ARM asm implementation to base layer
crypto: arm/sha1_neon - move SHA-1 NEON implementation to base layer
crypto: arm/sha1-ce - move SHA-1 ARMv8 implementation to base layer
crypto: arm/sha256 - move SHA-224/256 ASM/NEON implementation to base layer
crypto: arm/sha2-ce - move SHA-224/256 ARMv8 implementation to base layer
crypto: arm64/sha1-ce - move SHA-1 ARMv8 implementation to base layer
crypto: arm64/sha2-ce - move SHA-224/256 ARMv8 implementation to base layer
crypto: x86/sha1_ssse3 - move SHA-1 SSSE3 implementation to base layer
crypto: x86/sha256_ssse3 - move SHA-224/256 SSSE3 implementation to base layer
crypto: x86/sha512_ssse3 - move SHA-384/512 SSSE3 implementation to base layer
crypto: arm - workaround for building with old binutils

Arnd Bergmann (1):
crypto: arm/sha256 - avoid sha256 code on ARMv7-M

Colin Ian King (1):
crypto: atmel - fix typo in dev_err error message

Dan Carpenter (2):
crypto: img-hash - fix some compile warnings
crypto: img-hash - shift wrapping bug in img_hash_hw_init()

Dmitry Torokhov (12):
hwrng: omap - remove incorrect __exit markups
hwrng: octeon - remove incorrect __exit markups
hwrng: pseries - remove incorrect __init/__exit markups
crypto: qat - remove incorrect __exit markup
crypto: amcc - remove incorrect __init/__exit markups
hwrng: omap - remove #ifdefery around PM methods
hwrng: add devm_* interfaces
hwrng: bcm63xx - make use of devm_hwrng_register
hwrng: exynos - make use of devm_hwrng_register
hwrng: msm - make use of devm_hwrng_register
hwrng: iproc-rng200 - do not use static structure
hwrng: iproc-rng200 - make use of devm_hwrng_register

Feng Kan (1):
hwrng: xgene - add ACPI support for APM X-Gene RNG unit

Florian Fainelli (4):
hwrng: bcm63xx - drop bcm_{readl,writel} macros
hwrng: bcm63xx - move register definitions to driver
MIPS: BCM63xx: remove RSET_RNG register definitions
hwrng: bcm63xx - use devm_* helpers

Geert Uytterhoeven (1):
crypto: ux500 - Update error message for dmaengine_prep_slave_sg() API

Herbert Xu (6):
linux-next: Tree for Mar 11 (powerpc build failure due to vmx crypto code)
linux-next: build failure after merge of the crypto tree
crypto: api - Fix races in crypto_unregister_instance
crypto: api - Change crypto_unregister_instance argument type
crypto: user - Fix crypto_alg_match race
crypto: api - Move alg ref count init to crypto_check_alg

Horia Geant? (1):
crypto: tcrypt - fix uninit sg entries in test_acipher_speed

James Hartley (3):
crypto: img-hash - Add Imagination Technologies hw hash accelerator
Documentation: crypto: Add DT binding info for the img hw hash accelerator
crypto: img-hash - Fix Kconfig selections

Julia Lawall (1):
crypto: don't export static symbol

Keith Packard (1):
hwrng: core - allow perfect entropy from hardware devices

Kim Phillips (1):
crypto: powerpc - move files to fix build error

Lad, Prabhakar (1):
crypto: sha-mb - Fix big integer constant sparse warning

Leilei Zhao (9):
crypto: atmel-aes - add new version
crypto: atmel-sha - add new version
crypto: atmel-sha - fix sg list management
crypto: atmel-sha - initialize spinlock in probe
crypto: atmel-sha - correct the max burst size
crypto: atmel-tdes - initialize spinlock in probe
crypto: atmel-aes - initialize spinlock in probe
crypto: atmel-aes - sync the buf used in DMA or CPU
crypto: atmel-aes - correct usage of dma_sync_* API

Leonidas S. Barbosa (2):
crypto: vmx - Add support for VMS instructions by ASM
crypto: vmx - Enabling VMX module for PPC64

Ludovic Desroches (1):
crypto: atmel-sha - correct the way data are split

Marcelo H. Cerri (5):
crypto: vmx - Adding VMX module for Power 8
crypto: vmx - Adding AES routines for VMX module
crypto: vmx - Adding CBC routines for VMX module
crypto: vmx - Adding CTR routines for VMX module
crypto: vmx - Adding GHASH routines for VMX module

Markus Stockhausen (16):
crypto: ppc/sha256 - assembler
crypto: ppc/sha256 - glue
crypto: ppc/sha256 - kernel config
crypto: powerpc/aes - register defines
crypto: powerpc/aes - aes tables
crypto: powerpc/aes - assembler core
crypto: powerpc/aes - key handling
crypto: powerpc/aes - ECB/CBC/CTR/XTS modes
cyprot: powerpc/aes - glue code
crypto: powerpc/aes - kernel config
crypto: powerpc/sha1 - assembler
crypto: powerpc/sha1 - glue
crypto: powerpc/sha1 - kernel config
crypto: powerpc/md5 - assembler
crypto: powerpc/md5 - glue
crypto: powerpc/md5 - kernel config

Martin Hicks (2):
crypto: talitos - Simplify per-channel initialization
crypto: talitos - Remove MD5_BLOCK_SIZE

Masanari Iida (1):
crypto: serpent_sse2 - Fix a typo in Kconfig

Nicholas Mc Guire (4):
crypto: mxs-dcp - fix type of ret for wait_for_completion_timeout
crypto: sahara - fix type of ret for wait_for_completion_timeout
crypto: sahara - pass on error condition
crypto: sahara - drop unnecessary default assignment

Sami Tolvanen (1):
crypto: arm/sha256 - Add optimized SHA-256/224

Scott Branden (2):
hwrng: iproc-rng200 - Add device tree bindings
hwrng: iproc-rng200 - Add Broadcom IPROC RNG driver

Steffen Trumtrar (2):
crypto: sahara - use the backlog
crypto: sahara - fix AES descriptor create

Stephan Mueller (31):
crypto: doc - describe internal structure
crypto: algif - add AEAD support
crypto: algif - enable AEAD interface compilation
crypto: drbg - use single block cipher API
crypto: drbg - remove superflowous memsets
crypto: rng - RNGs must return 0 in success case
crypto: doc - AEAD / RNG AF_ALG interface
MAINTAINERS: add crypto-API.tmpl
crypto: testmgr - fix RNG return code enforcement
crypto: algif_rng - zeroize buffer with random data
crypto: api - prevent helper ciphers from being used
crypto: testmgr - use CRYPTO_ALG_INTERNAL
crypto: cryptd - process CRYPTO_ALG_INTERNAL
crypto: proc - identify internal ciphers
crypto: aesni - mark AES-NI helper ciphers
crypto: clmulni - mark ghash clmulni helper ciphers
crypto: ghash-ce - mark GHASH ARMv8 vmull.p64 helper ciphers
crypto: camellia_aesni_avx2 - mark AES-NI Camellia helper ciphers
crypto: cast5_avx - mark CAST5 helper ciphers
crypto: camellia_aesni_avx - mark AVX Camellia helper ciphers
crypto: cast6_avx - mark CAST6 helper ciphers
crypto: serpent_avx2 - mark Serpent AVX2 helper ciphers
crypto: serpent_avx - mark Serpent AVX helper ciphers
crypto: serpent_sse2 - mark Serpent SSE2 helper ciphers
crypto: twofish_avx - mark Twofish AVX helper ciphers
crypto: aesbs - mark NEON bit sliced AES helper ciphers
crypto: aes-ce - mark ARMv8 AES helper ciphers
crypto: arm64/aes - mark 64 bit ARMv8 AES helper ciphers
crypto: mcryptd - process CRYPTO_ALG_INTERNAL
crypto: sha-mb - mark Multi buffer SHA1 helper cipher
crypto: api - remove instance when test failed

Tadeusz Struk (3):
crypto: aesni - make driver-gcm-aes-aesni helper a proper aead alg
crypto: qat - print ring name in debug output
crypto: qat - fix double release_firmware on error path

Tom Lendacky (5):
crypto: ccp - Updates for checkpatch warnings/errors
crypto: ccp - Update CCP build support
crypto: ccp - Use dma_set_mask_and_coherent to set DMA mask
crypto: ccp - Convert calls to their devm_ counterparts
crypto: ccp - Add ACPI support

Vutla, Lokesh (3):
crypto: omap-sham - Use pm_runtime_irq_safe()
crypto: omap-aes - Fix support for unequal lengths
crypto: omap-sham - Add the offset of sg page to vaddr

Yanjiang Jin (2):
crypto: caam - fix uninitialized edesc->sec4_sg_bytes field
hwrng: caam - fix rng_unmap_ctx's DMA_UNMAP size problem

mancha security (1):
lib: memzero_explicit: use barrier instead of OPTIMIZER_HIDE_VAR

Documentation/DocBook/crypto-API.tmpl | 860 ++++++
Documentation/crypto/crypto-API-userspace.txt | 205 --
.../devicetree/bindings/crypto/img-hash.txt | 27 +
.../bindings/hwrng/brcm,iproc-rng200.txt | 12 +
MAINTAINERS | 1 +
arch/arm/Kconfig | 3 +
arch/arm/crypto/Kconfig | 130 +
arch/arm/crypto/Makefile | 27 +-
arch/arm/crypto/aes-ce-core.S | 518 ++++
arch/arm/crypto/aes-ce-glue.c | 524 ++++
arch/arm/crypto/aesbs-glue.c | 9 +-
arch/arm/crypto/ghash-ce-core.S | 94 +
arch/arm/crypto/ghash-ce-glue.c | 320 +++
arch/arm/crypto/sha1-ce-core.S | 125 +
arch/arm/crypto/sha1-ce-glue.c | 96 +
arch/arm/{include/asm => }/crypto/sha1.h | 3 +
arch/arm/crypto/sha1_glue.c | 112 +-
arch/arm/crypto/sha1_neon_glue.c | 137 +-
arch/arm/crypto/sha2-ce-core.S | 125 +
arch/arm/crypto/sha2-ce-glue.c | 114 +
arch/arm/crypto/sha256-armv4.pl | 716 +++++
arch/arm/crypto/sha256-core.S_shipped | 2808 ++++++++++++++++++++
arch/arm/crypto/sha256_glue.c | 128 +
arch/arm/crypto/sha256_glue.h | 14 +
arch/arm/crypto/sha256_neon_glue.c | 101 +
arch/arm64/crypto/aes-glue.c | 12 +-
arch/arm64/crypto/sha1-ce-core.S | 33 +-
arch/arm64/crypto/sha1-ce-glue.c | 151 +-
arch/arm64/crypto/sha2-ce-core.S | 29 +-
arch/arm64/crypto/sha2-ce-glue.c | 227 +-
arch/mips/cavium-octeon/crypto/Makefile | 5 +-
arch/mips/cavium-octeon/crypto/octeon-crypto.c | 4 +-
arch/mips/cavium-octeon/crypto/octeon-crypto.h | 83 +-
arch/mips/cavium-octeon/crypto/octeon-md5.c | 8 -
arch/mips/cavium-octeon/crypto/octeon-sha1.c | 241 ++
arch/mips/cavium-octeon/crypto/octeon-sha256.c | 280 ++
arch/mips/cavium-octeon/crypto/octeon-sha512.c | 277 ++
arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h | 14 -
arch/powerpc/crypto/Makefile | 8 +
arch/powerpc/crypto/aes-spe-core.S | 351 +++
arch/powerpc/crypto/aes-spe-glue.c | 512 ++++
arch/powerpc/crypto/aes-spe-keys.S | 283 ++
arch/powerpc/crypto/aes-spe-modes.S | 630 +++++
arch/powerpc/crypto/aes-spe-regs.h | 42 +
arch/powerpc/crypto/aes-tab-4k.S | 331 +++
arch/powerpc/crypto/md5-asm.S | 243 ++
arch/powerpc/crypto/md5-glue.c | 165 ++
arch/powerpc/crypto/sha1-spe-asm.S | 299 +++
arch/powerpc/crypto/sha1-spe-glue.c | 210 ++
arch/powerpc/crypto/sha256-spe-asm.S | 323 +++
arch/powerpc/crypto/sha256-spe-glue.c | 275 ++
arch/x86/crypto/aesni-intel_glue.c | 187 +-
arch/x86/crypto/camellia_aesni_avx2_glue.c | 15 +-
arch/x86/crypto/camellia_aesni_avx_glue.c | 15 +-
arch/x86/crypto/cast5_avx_glue.c | 9 +-
arch/x86/crypto/cast6_avx_glue.c | 15 +-
arch/x86/crypto/ghash-clmulni-intel_glue.c | 7 +-
arch/x86/crypto/glue_helper.c | 1 -
arch/x86/crypto/serpent_avx2_glue.c | 15 +-
arch/x86/crypto/serpent_avx_glue.c | 15 +-
arch/x86/crypto/serpent_sse2_glue.c | 15 +-
arch/x86/crypto/sha-mb/sha1_mb.c | 9 +-
arch/x86/crypto/sha-mb/sha1_mb_mgr_init_avx2.c | 2 +-
arch/x86/crypto/sha1_ssse3_glue.c | 139 +-
arch/x86/crypto/sha256-avx-asm.S | 10 +-
arch/x86/crypto/sha256-avx2-asm.S | 10 +-
arch/x86/crypto/sha256-ssse3-asm.S | 10 +-
arch/x86/crypto/sha256_ssse3_glue.c | 193 +-
arch/x86/crypto/sha512-avx-asm.S | 6 +-
arch/x86/crypto/sha512-avx2-asm.S | 6 +-
arch/x86/crypto/sha512-ssse3-asm.S | 6 +-
arch/x86/crypto/sha512_ssse3_glue.c | 202 +-
arch/x86/crypto/twofish_avx_glue.c | 15 +-
crypto/Kconfig | 142 +-
crypto/Makefile | 1 +
crypto/ablk_helper.c | 3 +-
crypto/algapi.c | 42 +-
crypto/algif_aead.c | 666 +++++
crypto/algif_rng.c | 2 +-
crypto/ansi_cprng.c | 6 +-
crypto/api.c | 10 +
crypto/cryptd.c | 49 +-
crypto/crypto_user.c | 39 +-
crypto/drbg.c | 64 +-
crypto/mcryptd.c | 25 +-
crypto/proc.c | 3 +
crypto/sha1_generic.c | 102 +-
crypto/sha256_generic.c | 133 +-
crypto/sha512_generic.c | 123 +-
crypto/tcrypt.c | 4 +-
crypto/testmgr.c | 24 +-
drivers/char/hw_random/Kconfig | 13 +
drivers/char/hw_random/Makefile | 1 +
drivers/char/hw_random/bcm63xx-rng.c | 120 +-
drivers/char/hw_random/core.c | 45 +-
drivers/char/hw_random/exynos-rng.c | 12 +-
drivers/char/hw_random/iproc-rng200.c | 239 ++
drivers/char/hw_random/msm-rng.c | 11 +-
drivers/char/hw_random/octeon-rng.c | 4 +-
drivers/char/hw_random/omap-rng.c | 23 +-
drivers/char/hw_random/pseries-rng.c | 4 +-
drivers/char/hw_random/xgene-rng.c | 10 +
drivers/crypto/Kconfig | 24 +-
drivers/crypto/Makefile | 2 +
drivers/crypto/amcc/crypto4xx_core.c | 6 +-
drivers/crypto/atmel-aes.c | 26 +-
drivers/crypto/atmel-sha.c | 37 +-
drivers/crypto/atmel-tdes.c | 3 +-
drivers/crypto/caam/caamhash.c | 1 +
drivers/crypto/caam/caamrng.c | 6 +-
drivers/crypto/ccp/Makefile | 9 +-
drivers/crypto/ccp/ccp-crypto-aes-cmac.c | 12 +-
drivers/crypto/ccp/ccp-crypto-aes-xts.c | 4 +-
drivers/crypto/ccp/ccp-crypto-aes.c | 3 +-
drivers/crypto/ccp/ccp-crypto-main.c | 5 +-
drivers/crypto/ccp/ccp-crypto-sha.c | 12 +-
drivers/crypto/ccp/ccp-crypto.h | 3 -
drivers/crypto/ccp/ccp-dev.c | 7 +-
drivers/crypto/ccp/ccp-dev.h | 12 +-
drivers/crypto/ccp/ccp-ops.c | 24 +-
drivers/crypto/ccp/ccp-pci.c | 21 +-
drivers/crypto/ccp/ccp-platform.c | 111 +-
drivers/crypto/img-hash.c | 1029 +++++++
drivers/crypto/mxs-dcp.c | 2 +-
drivers/crypto/omap-aes.c | 14 +-
drivers/crypto/omap-sham.c | 2 +
drivers/crypto/qat/qat_common/adf_accel_devices.h | 1 -
drivers/crypto/qat/qat_common/adf_accel_engine.c | 35 +-
drivers/crypto/qat/qat_common/adf_aer.c | 21 +-
drivers/crypto/qat/qat_common/adf_cfg.c | 5 +-
drivers/crypto/qat/qat_common/adf_cfg_strings.h | 10 +-
drivers/crypto/qat/qat_common/adf_common_drv.h | 2 +-
drivers/crypto/qat/qat_common/adf_ctl_drv.c | 66 +-
drivers/crypto/qat/qat_common/adf_dev_mgr.c | 3 +-
drivers/crypto/qat/qat_common/adf_init.c | 88 +-
drivers/crypto/qat/qat_common/adf_transport.c | 31 +-
.../crypto/qat/qat_common/adf_transport_debug.c | 2 +
drivers/crypto/qat/qat_common/icp_qat_hw.h | 2 +-
drivers/crypto/qat/qat_common/qat_crypto.c | 9 +-
drivers/crypto/qat/qat_common/qat_hal.c | 6 +-
drivers/crypto/qat/qat_dh895xcc/adf_admin.c | 3 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.c | 3 +-
.../crypto/qat/qat_dh895xcc/adf_dh895xcc_hw_data.h | 6 +-
drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 4 +-
drivers/crypto/qat/qat_dh895xcc/adf_isr.c | 15 +-
drivers/crypto/sahara.c | 51 +-
drivers/crypto/talitos.c | 17 +-
drivers/crypto/ux500/hash/hash_core.c | 2 +-
drivers/crypto/vmx/Kconfig | 8 +
drivers/crypto/vmx/Makefile | 19 +
drivers/crypto/vmx/aes.c | 139 +
drivers/crypto/vmx/aes_cbc.c | 184 ++
drivers/crypto/vmx/aes_ctr.c | 167 ++
drivers/crypto/vmx/aesp8-ppc.h | 20 +
drivers/crypto/vmx/aesp8-ppc.pl | 1930 ++++++++++++++
drivers/crypto/vmx/ghash.c | 214 ++
drivers/crypto/vmx/ghashp8-ppc.pl | 228 ++
drivers/crypto/vmx/ppc-xlate.pl | 207 ++
drivers/crypto/vmx/vmx.c | 88 +
include/crypto/algapi.h | 2 +-
include/crypto/rng.h | 3 +-
include/crypto/sha.h | 15 +-
include/crypto/sha1_base.h | 106 +
include/crypto/sha256_base.h | 128 +
include/crypto/sha512_base.h | 131 +
include/linux/crypto.h | 6 +
include/linux/hw_random.h | 4 +
lib/string.c | 2 +-
168 files changed, 18223 insertions(+), 2202 deletions(-)