All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/3] crypto: switch to shash for ESSIV generation
@ 2019-06-14  8:34 Ard Biesheuvel
  2019-06-14  8:34 ` [RFC PATCH 1/3] crypto: essiv - create a new shash template for IV generation Ard Biesheuvel
                   ` (4 more replies)
  0 siblings, 5 replies; 36+ messages in thread
From: Ard Biesheuvel @ 2019-06-14  8:34 UTC (permalink / raw)
  To: linux-crypto; +Cc: Ard Biesheuvel, Herbert Xu, Eric Biggers

This series is presented as an RFC for a couple of reasons:
- it is only build tested
- it is unclear whether this is the right way to move away from the use of
  bare ciphers in non-crypto code
- we haven't really discussed whether moving away from the use of bare ciphers
  in non-crypto code is a goal we agree on

This series creates an ESSIV shash template that takes a (cipher,hash) tuple,
where the digest size of the hash must be a valid key length for the cipher.
The setkey() operation takes the hash of the input key, and sets into the
cipher as the encryption key. Digest operations accept input up to the
block size of the cipher, and perform a single block encryption operation to
produce the ESSIV output.

This matches what both users of ESSIV in the kernel do, and so it is proposed
as a replacement for those, in patches #2 and #3.

As for the discussion: the code is untested, so it is presented for discussion
only. I'd like to understand whether we agree that phasing out the bare cipher
interface from non-crypto code is a good idea, and whether this approach is
suitable for fscrypt and dm-crypt.

Remaining work:
- wiring up some essiv(x,y) combinations into the testing framework. I wonder
  if anything other than essiv(aes,sha256) makes sense.
- testing - suggestions welcome on existing testing frameworks for dm-crypt
  and/or fscrypt

Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Eric Biggers <ebiggers@google.com>

Ard Biesheuvel (3):
  crypto: essiv - create a new shash template for IV generation
  dm crypt: switch to essiv shash
  fscrypt: switch to ESSIV shash

 crypto/Kconfig              |   3 +
 crypto/Makefile             |   1 +
 crypto/essiv.c              | 275 ++++++++++++++++++++
 drivers/md/Kconfig          |   1 +
 drivers/md/dm-crypt.c       | 137 ++--------
 fs/crypto/Kconfig           |   1 +
 fs/crypto/crypto.c          |  11 +-
 fs/crypto/fscrypt_private.h |   4 +-
 fs/crypto/keyinfo.c         |  64 +----
 9 files changed, 321 insertions(+), 176 deletions(-)
 create mode 100644 crypto/essiv.c

-- 
2.20.1


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

end of thread, other threads:[~2019-06-17 17:52 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-14  8:34 [RFC PATCH 0/3] crypto: switch to shash for ESSIV generation Ard Biesheuvel
2019-06-14  8:34 ` [RFC PATCH 1/3] crypto: essiv - create a new shash template for IV generation Ard Biesheuvel
2019-06-14  8:34 ` [RFC PATCH 2/3] dm crypt: switch to essiv shash Ard Biesheuvel
2019-06-14  8:34 ` [RFC PATCH 3/3] fscrypt: switch to ESSIV shash Ard Biesheuvel
2019-06-15 18:19 ` [RFC PATCH 0/3] crypto: switch to shash for ESSIV generation Milan Broz
2019-06-15 18:19   ` Milan Broz
2019-06-16 19:13   ` Ard Biesheuvel
2019-06-16 19:13     ` Ard Biesheuvel
2019-06-16 21:09     ` Eric Biggers
2019-06-16 21:09       ` [dm-devel] " Eric Biggers
2019-06-16 20:44 ` Eric Biggers
2019-06-16 20:44   ` Eric Biggers
2019-06-17  8:51   ` Gilad Ben-Yossef
2019-06-17  8:51     ` Gilad Ben-Yossef
2019-06-17  9:15     ` Ard Biesheuvel
2019-06-17  9:15       ` Ard Biesheuvel
2019-06-17  9:20       ` Herbert Xu
2019-06-17  9:20         ` Herbert Xu
2019-06-17  9:24         ` Ard Biesheuvel
2019-06-17  9:24           ` Ard Biesheuvel
2019-06-17 10:39       ` Milan Broz
2019-06-17 10:39         ` Milan Broz
2019-06-17 10:58         ` Ard Biesheuvel
2019-06-17 10:58           ` Ard Biesheuvel
2019-06-17 13:59           ` Ard Biesheuvel
2019-06-17 13:59             ` Ard Biesheuvel
2019-06-17 14:35             ` Milan Broz
2019-06-17 14:35               ` Milan Broz
2019-06-17 14:39               ` Ard Biesheuvel
2019-06-17 14:39                 ` Ard Biesheuvel
2019-06-17 17:05                 ` Milan Broz
2019-06-17 17:05                   ` Milan Broz
2019-06-17 17:29                   ` Ard Biesheuvel
2019-06-17 17:29                     ` Ard Biesheuvel
2019-06-17 17:52                     ` Milan Broz
2019-06-17 17:52                       ` Milan Broz

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.