[PATCH v2 0/3] Add inline encryption support

Md Sadre Alam
2024-09-16T08:58:23Z

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

--
2.34.1