13 Feb, 2019

1 commit

  • [ Upstream commit 0a6a40c2a8c184a2fb467efacfb1cd338d719e0b ]

    In the "aes-fixed-time" AES implementation, disable interrupts while
    accessing the S-box, in order to make cache-timing attacks more
    difficult. Previously it was possible for the CPU to be interrupted
    while the S-box was loaded into L1 cache, potentially evicting the
    cachelines and causing later table lookups to be time-variant.

    In tests I did on x86 and ARM, this doesn't affect performance
    significantly. Responsiveness is potentially a concern, but interrupts
    are only disabled for a single AES block.

    Note that even after this change, the implementation still isn't
    necessarily guaranteed to be constant-time; see
    https://cr.yp.to/antiforgery/cachetiming-20050414.pdf for a discussion
    of the many difficulties involved in writing truly constant-time AES
    software. But it's valuable to make such attacks more difficult.

    Reviewed-by: Ard Biesheuvel
    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu
    Signed-off-by: Sasha Levin

    Eric Biggers
     

14 Nov, 2018

1 commit

  • commit 578bdaabd015b9b164842c3e8ace9802f38e7ecc upstream.

    These are unused, undesired, and have never actually been used by
    anybody. The original authors of this code have changed their mind about
    its inclusion. While originally proposed for disk encryption on low-end
    devices, the idea was discarded [1] in favor of something else before
    that could really get going. Therefore, this patch removes Speck.

    [1] https://marc.info/?l=linux-crypto-vger&m=153359499015659

    Signed-off-by: Jason A. Donenfeld
    Acked-by: Eric Biggers
    Cc: stable@vger.kernel.org
    Acked-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu
    Signed-off-by: Greg Kroah-Hartman

    Jason A. Donenfeld
     

31 May, 2018

2 commits

  • The x86 assembly implementations of Salsa20 use the frame base pointer
    register (%ebp or %rbp), which breaks frame pointer convention and
    breaks stack traces when unwinding from an interrupt in the crypto code.
    Recent (v4.10+) kernels will warn about this, e.g.

    WARNING: kernel stack regs at 00000000a8291e69 in syzkaller047086:4677 has bad 'bp' value 000000001077994c
    [...]

    But after looking into it, I believe there's very little reason to still
    retain the x86 Salsa20 code. First, these are *not* vectorized
    (SSE2/SSSE3/AVX2) implementations, which would be needed to get anywhere
    close to the best Salsa20 performance on any remotely modern x86
    processor; they're just regular x86 assembly. Second, it's still
    unclear that anyone is actually using the kernel's Salsa20 at all,
    especially given that now ChaCha20 is supported too, and with much more
    efficient SSSE3 and AVX2 implementations. Finally, in benchmarks I did
    on both Intel and AMD processors with both gcc 8.1.0 and gcc 4.9.4, the
    x86_64 salsa20-asm is actually slightly *slower* than salsa20-generic
    (~3% slower on Skylake, ~10% slower on Zen), while the i686 salsa20-asm
    is only slightly faster than salsa20-generic (~15% faster on Skylake,
    ~20% faster on Zen). The gcc version made little difference.

    So, the x86_64 salsa20-asm is pretty clearly useless. That leaves just
    the i686 salsa20-asm, which based on my tests provides a 15-20% speed
    boost. But that's without updating the code to not use %ebp. And given
    the maintenance cost, the small speed difference vs. salsa20-generic,
    the fact that few people still use i686 kernels, the doubt that anyone
    is even using the kernel's Salsa20 at all, and the fact that a SSE2
    implementation would almost certainly be much faster on any remotely
    modern x86 processor yet no one has cared enough to add one yet, I don't
    think it's worthwhile to keep.

    Thus, just remove both the x86_64 and i686 salsa20-asm implementations.

    Reported-by: syzbot+ffa3a158337bbc01ff09@syzkaller.appspotmail.com
    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Commit 56e8e57fc3a7 ("crypto: morus - Add common SIMD glue code for
    MORUS") accidetally consiedered the glue code to be usable by different
    architectures, but it seems to be only usable on x86.

    This patch moves it under arch/x86/crypto and adds 'depends on X86' to
    the Kconfig options and also removes the prompt to hide these internal
    options from the user.

    Reported-by: kbuild test robot
    Signed-off-by: Ondrej Mosnacek
    Signed-off-by: Herbert Xu

    Ondrej Mosnacek
     

19 May, 2018

5 commits

  • This patch adds optimized implementations of MORUS-640 and MORUS-1280,
    utilizing the SSE2 and AVX2 x86 extensions.

    For MORUS-1280 (which operates on 256-bit blocks) we provide both AVX2
    and SSE2 implementation. Although SSE2 MORUS-1280 is slower than AVX2
    MORUS-1280, it is comparable in speed to the SSE2 MORUS-640.

    Signed-off-by: Ondrej Mosnacek
    Signed-off-by: Herbert Xu

    Ondrej Mosnacek
     
  • This patch adds a common glue code for optimized implementations of
    MORUS AEAD algorithms.

    Signed-off-by: Ondrej Mosnacek
    Signed-off-by: Herbert Xu

    Ondrej Mosnacek
     
  • This patch adds the generic implementation of the MORUS family of AEAD
    algorithms (MORUS-640 and MORUS-1280). The original authors of MORUS
    are Hongjun Wu and Tao Huang.

    At the time of writing, MORUS is one of the finalists in CAESAR, an
    open competition intended to select a portfolio of alternatives to
    the problematic AES-GCM:

    https://competitions.cr.yp.to/caesar-submissions.html
    https://competitions.cr.yp.to/round3/morusv2.pdf

    Signed-off-by: Ondrej Mosnacek
    Signed-off-by: Herbert Xu

    Ondrej Mosnacek
     
  • This patch adds optimized implementations of AEGIS-128, AEGIS-128L,
    and AEGIS-256, utilizing the AES-NI and SSE2 x86 extensions.

    Signed-off-by: Ondrej Mosnacek
    Signed-off-by: Herbert Xu

    Ondrej Mosnacek
     
  • This patch adds the generic implementation of the AEGIS family of AEAD
    algorithms (AEGIS-128, AEGIS-128L, and AEGIS-256). The original
    authors of AEGIS are Hongjun Wu and Bart Preneel.

    At the time of writing, AEGIS is one of the finalists in CAESAR, an
    open competition intended to select a portfolio of alternatives to
    the problematic AES-GCM:

    https://competitions.cr.yp.to/caesar-submissions.html
    https://competitions.cr.yp.to/round3/aegisv11.pdf

    Signed-off-by: Ondrej Mosnacek
    Signed-off-by: Herbert Xu

    Ondrej Mosnacek
     

21 Apr, 2018

1 commit

  • Adds zstd support to crypto and scompress. Only supports the default
    level.

    Previously we held off on this patch, since there weren't any users.
    Now zram is ready for zstd support, but depends on CONFIG_CRYPTO_ZSTD,
    which isn't defined until this patch is in. I also see a patch adding
    zstd to pstore [0], which depends on crypto zstd.

    [0] lkml.kernel.org/r/9c9416b2dff19f05fb4c35879aaa83d11ff72c92.1521626182.git.geliangtang@gmail.com

    Signed-off-by: Nick Terrell
    Signed-off-by: Herbert Xu

    Nick Terrell
     

11 Apr, 2018

1 commit

  • Pull MIPS updates from James Hogan:
    "These are the main MIPS changes for 4.17. Rough overview:

    (1) generic platform: Add support for Microsemi Ocelot SoCs

    (2) crypto: Add CRC32 and CRC32C HW acceleration module

    (3) Various cleanups and misc improvements

    More detailed summary:

    Miscellaneous:
    - hang more efficiently on halt/powerdown/restart
    - pm-cps: Block system suspend when a JTAG probe is present
    - expand make help text for generic defconfigs
    - refactor handling of legacy defconfigs
    - determine the entry point from the ELF file header to fix microMIPS
    for certain toolchains
    - introduce isa-rev.h for MIPS_ISA_REV and use to simplify other code

    Minor cleanups:
    - DTS: boston/ci20: Unit name cleanups and correction
    - kdump: Make the default for PHYSICAL_START always 64-bit
    - constify gpio_led in Alchemy, AR7, and TXX9
    - silence a couple of W=1 warnings
    - remove duplicate includes

    Platform support:
    Generic platform:
    - add support for Microsemi Ocelot
    - dt-bindings: Add vendor prefix for Microsemi Corporation
    - dt-bindings: Add bindings for Microsemi SoCs
    - add ocelot SoC & PCB123 board DTS files
    - MAINTAINERS: Add entry for Microsemi MIPS SoCs
    - enable crc32-mips on r6 configs

    ath79:
    - fix AR724X_PLL_REG_PCIE_CONFIG offset

    BCM47xx:
    - firmware: Use mac_pton() for MAC address parsing
    - add Luxul XAP1500/XWR1750 WiFi LEDs
    - use standard reset button for Luxul XWR-1750

    BMIPS:
    - enable CONFIG_BRCMSTB_PM in bmips_stb_defconfig for build coverage
    - add STB PM, wake-up timer, watchdog DT nodes

    Octeon:
    - drop '.' after newlines in printk calls

    ralink:
    - pci-mt7621: Enable PCIe on MT7688"

    * tag 'mips_4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/mips: (37 commits)
    MIPS: BCM47XX: Use standard reset button for Luxul XWR-1750
    MIPS: BCM47XX: Add Luxul XAP1500/XWR1750 WiFi LEDs
    MIPS: Make the default for PHYSICAL_START always 64-bit
    MIPS: Use the entry point from the ELF file header
    MAINTAINERS: Add entry for Microsemi MIPS SoCs
    MIPS: generic: Add support for Microsemi Ocelot
    MIPS: mscc: Add ocelot PCB123 device tree
    MIPS: mscc: Add ocelot dtsi
    dt-bindings: mips: Add bindings for Microsemi SoCs
    dt-bindings: Add vendor prefix for Microsemi Corporation
    MIPS: ath79: Fix AR724X_PLL_REG_PCIE_CONFIG offset
    MIPS: pci-mt7620: Enable PCIe on MT7688
    MIPS: pm-cps: Block system suspend when a JTAG probe is present
    MIPS: VDSO: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: BPF: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: cpu-features.h: Replace __mips_isa_rev with MIPS_ISA_REV
    MIPS: Introduce isa-rev.h to define MIPS_ISA_REV
    MIPS: Hang more efficiently on halt/powerdown/restart
    FIRMWARE: bcm47xx_nvram: Replace mac address parsing
    MIPS: BMIPS: Add Broadcom STB watchdog nodes
    ...

    Linus Torvalds
     

16 Mar, 2018

1 commit

  • Introduce the SM4 cipher algorithms (OSCCA GB/T 32907-2016).

    SM4 (GBT.32907-2016) is a cryptographic standard issued by the
    Organization of State Commercial Administration of China (OSCCA)
    as an authorized cryptographic algorithms for the use within China.

    SMS4 was originally created for use in protecting wireless
    networks, and is mandated in the Chinese National Standard for
    Wireless LAN WAPI (Wired Authentication and Privacy Infrastructure)
    (GB.15629.11-2003).

    Signed-off-by: Gilad Ben-Yossef
    Signed-off-by: Herbert Xu

    Gilad Ben-Yossef
     

09 Mar, 2018

1 commit

  • TPM security routines require encryption and decryption with AES in
    CFB mode, so add it to the Linux Crypto schemes. CFB is basically a
    one time pad where the pad is generated initially from the encrypted
    IV and then subsequently from the encrypted previous block of
    ciphertext. The pad is XOR'd into the plain text to get the final
    ciphertext.

    https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#CFB

    Signed-off-by: James Bottomley
    Signed-off-by: Herbert Xu

    James Bottomley
     

03 Mar, 2018

23 commits

  • All users of ablk_helper have been converted over to crypto_simd, so
    remove ablk_helper.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the AESNI AVX and AESNI AVX2 implementations of Camellia from
    the (deprecated) ablkcipher and blkcipher interfaces over to the
    skcipher interface. Note that this includes replacing the use of
    ablk_helper with crypto_simd.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the x86 asm implementation of Camellia from the (deprecated)
    blkcipher interface over to the skcipher interface.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The XTS template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic XTS code themselves via xts_crypt().

    Remove the xts-camellia-asm algorithm which did this. Users who request
    xts(camellia) and previously would have gotten xts-camellia-asm will now
    get xts(ecb-camellia-asm) instead, which is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The LRW template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic LRW code themselves via lrw_crypt().

    Remove the lrw-camellia-asm algorithm which did this. Users who request
    lrw(camellia) and previously would have gotten lrw-camellia-asm will now
    get lrw(ecb-camellia-asm) instead, which is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The LRW template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic LRW code themselves via lrw_crypt().

    Remove the lrw-camellia-aesni-avx2 algorithm which did this. Users who
    request lrw(camellia) and previously would have gotten
    lrw-camellia-aesni-avx2 will now get lrw(ecb-camellia-aesni-avx2)
    instead, which is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The LRW template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic LRW code themselves via lrw_crypt().

    Remove the lrw-camellia-aesni algorithm which did this. Users who
    request lrw(camellia) and previously would have gotten
    lrw-camellia-aesni will now get lrw(ecb-camellia-aesni) instead, which
    is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the x86 asm implementation of Triple DES from the (deprecated)
    blkcipher interface over to the skcipher interface.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the x86 asm implementation of Blowfish from the (deprecated)
    blkcipher interface over to the skcipher interface.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the AVX implementation of CAST6 from the (deprecated) ablkcipher
    and blkcipher interfaces over to the skcipher interface. Note that this
    includes replacing the use of ablk_helper with crypto_simd.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The LRW template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic LRW code themselves via lrw_crypt().

    Remove the lrw-cast6-avx algorithm which did this. Users who request
    lrw(cast6) and previously would have gotten lrw-cast6-avx will now get
    lrw(ecb-cast6-avx) instead, which is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the AVX implementation of CAST5 from the (deprecated) ablkcipher
    and blkcipher interfaces over to the skcipher interface. Note that this
    includes replacing the use of ablk_helper with crypto_simd.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the AVX implementation of Twofish from the (deprecated)
    ablkcipher and blkcipher interfaces over to the skcipher interface.
    Note that this includes replacing the use of ablk_helper with
    crypto_simd.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The LRW template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic LRW code themselves via lrw_crypt().

    Remove the lrw-twofish-avx algorithm which did this. Users who request
    lrw(twofish) and previously would have gotten lrw-twofish-avx will now
    get lrw(ecb-twofish-avx) instead, which is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the 3-way implementation of Twofish from the (deprecated)
    blkcipher interface over to the skcipher interface.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The XTS template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic XTS code themselves via xts_crypt().

    Remove the xts-twofish-3way algorithm which did this. Users who request
    xts(twofish) and previously would have gotten xts-twofish-3way will now
    get xts(ecb-twofish-3way) instead, which is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The LRW template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic LRW code themselves via lrw_crypt().

    Remove the lrw-twofish-3way algorithm which did this. Users who request
    lrw(twofish) and previously would have gotten lrw-twofish-3way will now
    get lrw(ecb-twofish-3way) instead, which is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the AVX and AVX2 implementations of Serpent from the
    (deprecated) ablkcipher and blkcipher interfaces over to the skcipher
    interface. Note that this includes replacing the use of ablk_helper
    with crypto_simd.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The LRW template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic LRW code themselves via lrw_crypt().

    Remove the lrw-serpent-avx algorithm which did this. Users who request
    lrw(serpent) and previously would have gotten lrw-serpent-avx will now
    get lrw(ecb-serpent-avx) instead, which is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The LRW template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic LRW code themselves via lrw_crypt().

    Remove the lrw-serpent-avx2 algorithm which did this. Users who request
    lrw(serpent) and previously would have gotten lrw-serpent-avx2 will now
    get lrw(ecb-serpent-avx2) instead, which is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the SSE2 implementation of Serpent from the (deprecated)
    ablkcipher and blkcipher interfaces over to the skcipher interface.
    Note that this includes replacing the use of ablk_helper with
    crypto_simd.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The XTS template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic XTS code themselves via xts_crypt().

    Remove the xts-serpent-sse2 algorithm which did this. Users who request
    xts(serpent) and previously would have gotten xts-serpent-sse2 will now
    get xts(ecb-serpent-sse2) instead, which is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The LRW template now wraps an ECB mode algorithm rather than the block
    cipher directly. Therefore it is now redundant for crypto modules to
    wrap their ECB code with generic LRW code themselves via lrw_crypt().

    Remove the lrw-serpent-sse2 algorithm which did this. Users who request
    lrw(serpent) and previously would have gotten lrw-serpent-sse2 will now
    get lrw(ecb-serpent-sse2) instead, which is just as fast.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     

22 Feb, 2018

1 commit

  • Add a generic implementation of Speck, including the Speck128 and
    Speck64 variants. Speck is a lightweight block cipher that can be much
    faster than AES on processors that don't have AES instructions.

    We are planning to offer Speck-XTS (probably Speck128/256-XTS) as an
    option for dm-crypt and fscrypt on Android, for low-end mobile devices
    with older CPUs such as ARMv7 which don't have the Cryptography
    Extensions. Currently, such devices are unencrypted because AES is not
    fast enough, even when the NEON bit-sliced implementation of AES is
    used. Other AES alternatives such as Twofish, Threefish, Camellia,
    CAST6, and Serpent aren't fast enough either; it seems that only a
    modern ARX cipher can provide sufficient performance on these devices.

    This is a replacement for our original proposal
    (https://patchwork.kernel.org/patch/10101451/) which was to offer
    ChaCha20 for these devices. However, the use of a stream cipher for
    disk/file encryption with no space to store nonces would have been much
    more insecure than we thought initially, given that it would be used on
    top of flash storage as well as potentially on top of F2FS, neither of
    which is guaranteed to overwrite data in-place.

    Speck has been somewhat controversial due to its origin. Nevertheless,
    it has a straightforward design (it's an ARX cipher), and it appears to
    be the leading software-optimized lightweight block cipher currently,
    with the most cryptanalysis. It's also easy to implement without side
    channels, unlike AES. Moreover, we only intend Speck to be used when
    the status quo is no encryption, due to AES not being fast enough.

    We've also considered a novel length-preserving encryption mode based on
    ChaCha20 and Poly1305. While theoretically attractive, such a mode
    would be a brand new crypto construction and would be more complicated
    and difficult to implement efficiently in comparison to Speck-XTS.

    There is confusion about the byte and word orders of Speck, since the
    original paper doesn't specify them. But we have implemented it using
    the orders the authors recommended in a correspondence with them. The
    test vectors are taken from the original paper but were mapped to byte
    arrays using the recommended byte and word orders.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     

20 Feb, 2018

1 commit

  • This module registers crc32 and crc32c algorithms that use the
    optional CRC32[bhwd] and CRC32C[bhwd] instructions in MIPSr6 cores.

    Signed-off-by: Marcin Nowakowski
    Signed-off-by: James Hogan
    Cc: Ralf Baechle
    Cc: "David S. Miller"
    Cc: linux-mips@linux-mips.org
    Cc: linux-crypto@vger.kernel.org
    Acked-by: Herbert Xu
    Patchwork: https://patchwork.linux-mips.org/patch/18601/
    [jhogan@kernel.org: Add CRYPTO_ALG_OPTIONAL_KEY flag on Eric Biggers'
    suggestion, due to commit a208fa8f3303 ("crypto: hash - annotate
    algorithms taking optional key") in v4.16-rc1]

    Marcin Nowakowski
     

01 Feb, 2018

1 commit

  • Pull crypto updates from Herbert Xu:
    "API:
    - Enforce the setting of keys for keyed aead/hash/skcipher
    algorithms.
    - Add multibuf speed tests in tcrypt.

    Algorithms:
    - Improve performance of sha3-generic.
    - Add native sha512 support on arm64.
    - Add v8.2 Crypto Extentions version of sha3/sm3 on arm64.
    - Avoid hmac nesting by requiring underlying algorithm to be unkeyed.
    - Add cryptd_max_cpu_qlen module parameter to cryptd.

    Drivers:
    - Add support for EIP97 engine in inside-secure.
    - Add inline IPsec support to chelsio.
    - Add RevB core support to crypto4xx.
    - Fix AEAD ICV check in crypto4xx.
    - Add stm32 crypto driver.
    - Add support for BCM63xx platforms in bcm2835 and remove bcm63xx.
    - Add Derived Key Protocol (DKP) support in caam.
    - Add Samsung Exynos True RNG driver.
    - Add support for Exynos5250+ SoCs in exynos PRNG driver"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (166 commits)
    crypto: picoxcell - Fix error handling in spacc_probe()
    crypto: arm64/sha512 - fix/improve new v8.2 Crypto Extensions code
    crypto: arm64/sm3 - new v8.2 Crypto Extensions implementation
    crypto: arm64/sha3 - new v8.2 Crypto Extensions implementation
    crypto: testmgr - add new testcases for sha3
    crypto: sha3-generic - export init/update/final routines
    crypto: sha3-generic - simplify code
    crypto: sha3-generic - rewrite KECCAK transform to help the compiler optimize
    crypto: sha3-generic - fixes for alignment and big endian operation
    crypto: aesni - handle zero length dst buffer
    crypto: artpec6 - remove select on non-existing CRYPTO_SHA384
    hwrng: bcm2835 - Remove redundant dev_err call in bcm2835_rng_probe()
    crypto: stm32 - remove redundant dev_err call in stm32_cryp_probe()
    crypto: axis - remove unnecessary platform_get_resource() error check
    crypto: testmgr - test misuse of result in ahash
    crypto: inside-secure - make function safexcel_try_push_requests static
    crypto: aes-generic - fix aes-generic regression on powerpc
    crypto: chelsio - Fix indentation warning
    crypto: arm64/sha1-ce - get rid of literal pool
    crypto: arm64/sha2-ce - move the round constant table to .rodata section
    ...

    Linus Torvalds
     

12 Jan, 2018

1 commit

  • Convert salsa20-asm from the deprecated "blkcipher" API to the
    "skcipher" API, in the process fixing it up to use the generic helpers.
    This allows removing the salsa20_keysetup() and salsa20_ivsetup()
    assembly functions, which aren't performance critical; the C versions do
    just fine.

    This also fixes the same bug that salsa20-generic had, where the state
    array was being maintained directly in the transform context rather than
    on the stack or in the request context. Thus, if multiple threads used
    the same Salsa20 transform concurrently they produced the wrong results.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers