All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/30] crypto: DES/3DES cleanup
@ 2019-06-28  9:34 Ard Biesheuvel
  2019-06-28  9:35 ` [PATCH v3 01/30] crypto: des/3des_ede - add new helpers to verify key length Ard Biesheuvel
                   ` (29 more replies)
  0 siblings, 30 replies; 34+ messages in thread
From: Ard Biesheuvel @ 2019-06-28  9:34 UTC (permalink / raw)
  To: linux-crypto; +Cc: herbert, ebiggers, horia.geanta, Ard Biesheuvel

In my effort to remove crypto_alloc_cipher() invocations from non-crypto
code, i ran into a DES call in the CIFS driver. This is addressed in
patch #30.

The other patches are cleanups for the quirky DES interface, and lots
of duplication of the weak key checks etc.

Changes since v2:
- fixed another couple of build errors that I missed, apologies to the
  reviewers for failing to spot these
- use/retain a simplified 'return verify() ?: setkey()' pattern where possible
  (as suggested by Horia)
- ensure that the setkey() routines using the helpers return -EINVAL on weak
  keys when disallowed by the tfm's weak key policy
- remove many pointless unlikely() annotations on ice-cold setkey() paths

Changes since v1/RFC:
- fix build errors in various drivers that i failed to catch in my
  initial testing
- put all caam changes into the correct patch
- fix weak key handling error flagged by the self tests, as reported
  by Eric.
- add ack from Harald to patch #2

The KASAN error reported by Eric failed to reproduce for me, so I
didn't include a fix for that. Please check if it still reproduces for
you.

Patch #1 adds new helpers to verify DES keys to crypto/internal.des.h

The next 23 patches move all existing users of DES routines to the
new interface.

Patch #25 and #26 are preparatory patches for the new DES library
introduced in patch #27, which replaces the various DES related
functions exported to other drivers with a sane library interface.

Patch #28 switches the x86 asm code to the new librar interface.

Patch #29 removes code that is no longer used at this point.

Ard Biesheuvel (30):
  crypto: des/3des_ede - add new helpers to verify key length
  crypto: s390/des - switch to new verification routines
  crypto: sparc/des - switch to new verification routines
  crypto: atmel/des - switch to new verification routines
  crypto: bcm/des - switch to new verification routines
  crypto: caam/des - switch to new verification routines
  crypto: cpt/des - switch to new verification routines
  crypto: nitrox/des - switch to new verification routines
  crypto: ccp/des - switch to new verification routines
  crypto: ccree/des - switch to new verification routines
  crypto: hifn/des - switch to new verification routines
  crypto: hisilicon/des - switch to new verification routines
  crypto: safexcel/des - switch to new verification routines
  crypto: ixp4xx/des - switch to new verification routines
  crypto: cesa/des - switch to new verification routines
  crypto: n2/des - switch to new verification routines
  crypto: omap/des - switch to new verification routines
  crypto: picoxcell/des - switch to new verification routines
  crypto: qce/des - switch to new verification routines
  crypto: rk3288/des - switch to new verification routines
  crypto: stm32/des - switch to new verification routines
  crypto: sun4i/des - switch to new verification routines
  crypto: talitos/des - switch to new verification routines
  crypto: ux500/des - switch to new verification routines
  crypto: 3des - move verification out of exported routine
  crypto: des - remove unused function
  crypto: des - split off DES library from generic DES cipher driver
  crypto: x86/des - switch to library interface
  crypto: des - remove now unused __des3_ede_setkey()
  fs: cifs: move from the crypto cipher API to the new DES library
    interface

 arch/s390/crypto/des_s390.c                        |  25 +-
 arch/sparc/crypto/des_glue.c                       |  37 +-
 arch/x86/crypto/des3_ede_glue.c                    |  38 +-
 crypto/Kconfig                                     |   8 +-
 crypto/des_generic.c                               | 945 +-------------------
 drivers/crypto/Kconfig                             |  28 +-
 drivers/crypto/atmel-tdes.c                        |  28 +-
 drivers/crypto/bcm/cipher.c                        |  82 +-
 drivers/crypto/caam/Kconfig                        |   2 +-
 drivers/crypto/caam/caamalg.c                      |  38 +-
 drivers/crypto/caam/caamalg_qi.c                   |  13 +-
 drivers/crypto/caam/caamalg_qi2.c                  |  13 +-
 drivers/crypto/caam/compat.h                       |   2 +-
 drivers/crypto/cavium/cpt/cptvf_algs.c             |  26 +-
 drivers/crypto/cavium/nitrox/Kconfig               |   2 +-
 drivers/crypto/cavium/nitrox/nitrox_skcipher.c     |   4 +-
 drivers/crypto/ccp/ccp-crypto-des3.c               |   7 +-
 drivers/crypto/ccree/cc_aead.c                     |  13 +-
 drivers/crypto/ccree/cc_cipher.c                   |  15 +-
 drivers/crypto/hifn_795x.c                         |  29 +-
 drivers/crypto/hisilicon/sec/sec_algs.c            |  18 +-
 drivers/crypto/inside-secure/safexcel_cipher.c     |  20 +-
 drivers/crypto/ixp4xx_crypto.c                     |  28 +-
 drivers/crypto/marvell/cipher.c                    |  22 +-
 drivers/crypto/n2_core.c                           |  26 +-
 drivers/crypto/omap-des.c                          |  25 +-
 drivers/crypto/picoxcell_crypto.c                  |  21 +-
 drivers/crypto/qce/ablkcipher.c                    |  55 +-
 drivers/crypto/rockchip/rk3288_crypto.h            |   2 +-
 drivers/crypto/rockchip/rk3288_crypto_ablkcipher.c |  21 +-
 drivers/crypto/stm32/Kconfig                       |   2 +-
 drivers/crypto/stm32/stm32-cryp.c                  |  30 +-
 drivers/crypto/sunxi-ss/sun4i-ss-cipher.c          |  26 +-
 drivers/crypto/sunxi-ss/sun4i-ss.h                 |   2 +-
 drivers/crypto/talitos.c                           |  34 +-
 drivers/crypto/ux500/Kconfig                       |   2 +-
 drivers/crypto/ux500/cryp/cryp_core.c              |  31 +-
 fs/cifs/Kconfig                                    |   2 +-
 fs/cifs/cifsfs.c                                   |   1 -
 fs/cifs/smbencrypt.c                               |  18 +-
 include/crypto/des.h                               |  77 +-
 include/crypto/internal/des.h                      | 106 +++
 lib/crypto/Makefile                                |   3 +
 lib/crypto/des.c                                   | 902 +++++++++++++++++++
 44 files changed, 1354 insertions(+), 1475 deletions(-)
 create mode 100644 include/crypto/internal/des.h
 create mode 100644 lib/crypto/des.c

-- 
2.20.1


^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2019-07-03 13:56 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-28  9:34 [PATCH v3 00/30] crypto: DES/3DES cleanup Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 01/30] crypto: des/3des_ede - add new helpers to verify key length Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 02/30] crypto: s390/des - switch to new verification routines Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 03/30] crypto: sparc/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 04/30] crypto: atmel/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 05/30] crypto: bcm/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 06/30] crypto: caam/des " Ard Biesheuvel
2019-06-28 11:53   ` Horia Geanta
2019-06-28  9:35 ` [PATCH v3 07/30] crypto: cpt/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 08/30] crypto: nitrox/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 09/30] crypto: ccp/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 10/30] crypto: ccree/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 11/30] crypto: hifn/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 12/30] crypto: hisilicon/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 13/30] crypto: safexcel/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 14/30] crypto: ixp4xx/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 15/30] crypto: cesa/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 16/30] crypto: n2/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 17/30] crypto: omap/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 18/30] crypto: picoxcell/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 19/30] crypto: qce/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 20/30] crypto: rk3288/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 21/30] crypto: stm32/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 22/30] crypto: sun4i/des " Ard Biesheuvel
2019-07-02 10:12   ` Corentin Labbe
2019-06-28  9:35 ` [PATCH v3 23/30] crypto: talitos/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 24/30] crypto: ux500/des " Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 25/30] crypto: 3des - move verification out of exported routine Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 26/30] crypto: des - remove unused function Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 27/30] crypto: des - split off DES library from generic DES cipher driver Ard Biesheuvel
2019-07-03 13:56   ` Herbert Xu
2019-06-28  9:35 ` [PATCH v3 28/30] crypto: x86/des - switch to library interface Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 29/30] crypto: des - remove now unused __des3_ede_setkey() Ard Biesheuvel
2019-06-28  9:35 ` [PATCH v3 30/30] fs: cifs: move from the crypto cipher API to the new DES library interface Ard Biesheuvel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.