mbox series

[v2,0/3] Add inline encryption support

Message ID 20240916085741.1636554-1-quic_mdalam@quicinc.com (mailing list archive)
Headers show
Series Add inline encryption support | expand

Message

Md Sadre Alam Sept. 16, 2024, 8:57 a.m. UTC
QCOM SDCC controller having Inline Crypto Engine support
Inline Crypto Engine do encryption/decryption on fly.
dm-inlinecrypt driver will be use to do encryption/decryption
with Inline Crypto Engine. 

v2:
 * Added new driver dm-inlinecrypt
 * Dropped patch "md: dm-crypt: Set cc->iv_size to 4 bytes"
 * squash patch "blk-crypto: Add additional algo modes for Inline"
   encryption and patch "md: dm-crypt: Add additional algo modes for
   inline encryption" to the dm-inlinecrypt driver.
 * tested with dmsetup command as below
   dmsetup create test-crypt --table '0 251904 inline-crypt aes128-xts-
   plain a7f67ad520bd83b9725df6ebd76c3eeea7f67ad520bd83b9725df6ebd76c3eee 
   0 /dev/mmcblk0p27 0 1'

   dd if=/dev/urandom of=/tmp/data bs=1M count=1
   dd if=/tmp/data of=/dev/mapper/test-crypt bs=1M count=1
   dd of=/tmp/data1 if=/dev/mapper/test-crypt bs=1M count=1
   dd of=/tmp/data2 if=/dev/mmcblk0p27 bs=1M count=1
   md5sum /tmp/data*
   b45d728bfb499b6de9b12c98fbb652dd  /tmp/data
   b45d728bfb499b6de9b12c98fbb652dd  /tmp/data1
   bc4107e19cf6fc012c5b997bdd3f0de4  /tmp/data2
   dmsetup remove /dev/mapper/test-crypt

v1:
 * This series of patches add additional modes for inline encryption
   This series of patches depends on [1] Add inline encryption support for
   dm-crypt
   [1]: https://lore.kernel.org/all/b45d3b40-2587-04dc-9601-a9251dacf806@opensource.wdc.com/T/#ma01f08a941107217c93680fa25e96e8d406df790

 * These patches tested on IPQ9574 with eMMC ICE for raw partition
   encryption/decryption.

   e.g:

   dmsetup create test-crypt --table '0 251904 crypt aes128-xts-plain64
   a7f67ad520bd83b9725df6ebd76c3eeea7f67ad520bd83b9725df6ebd76c3eee 0
   /dev/mmcblk0p27 0 1 inline_crypt'

  dd if=/dev/urandom of=/tmp/data bs=1M count=1

  dd if=/tmp/data of=/dev/mapper/test-crypt bs=1M count=1

  dd of=/tmp/data1 if=/dev/mapper/test-crypt bs=1M count=1

  dd of=/tmp/data2 if=/dev/mmcblk0p27 bs=1M count=1

  md5sum /tmp/data*
  b45d728bfb499b6de9b12c98fbb652dd  /tmp/data
  b45d728bfb499b6de9b12c98fbb652dd  /tmp/data1
  bc4107e19cf6fc012c5b997bdd3f0de4  /tmp/data2

  dmsetup remove /dev/mapper/test-crypt


Md Sadre Alam (3):
  dm-inlinecrypt: Add inline encryption support
  mmc: cqhci: Add additional algo mode for inline encryption
  mmc: sdhci-msm: Add additional algo mode for inline encryption

 block/blk-crypto.c              |  21 +++
 drivers/md/Kconfig              |   8 +
 drivers/md/Makefile             |   1 +
 drivers/md/dm-inline-crypt.c    | 316 ++++++++++++++++++++++++++++++++
 drivers/mmc/host/cqhci-crypto.c |  12 ++
 drivers/mmc/host/sdhci-msm.c    |  10 +-
 drivers/soc/qcom/ice.c          |  65 ++++++-
 include/linux/blk-crypto.h      |   3 +
 8 files changed, 419 insertions(+), 17 deletions(-)
 create mode 100644 drivers/md/dm-inline-crypt.c