]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
blk-crypto: Add support for SM4-XTS blk crypto mode
authorTianjia Zhang <tianjia.zhang@linux.alibaba.com>
Thu, 1 Dec 2022 12:58:18 +0000 (20:58 +0800)
committerEric Biggers <ebiggers@google.com>
Thu, 1 Dec 2022 18:57:10 +0000 (10:57 -0800)
SM4 is a symmetric cipher algorithm widely used in China. The SM4-XTS
variant is used to encrypt length-preserving data. This is the
mandatory algorithm in some special scenarios.

Add support for the algorithm to block inline encryption. This is needed
for the inlinecrypt mount option to be supported via
blk-crypto-fallback, as it is for the other fscrypt modes.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Link: https://lore.kernel.org/r/20221201125819.36932-2-tianjia.zhang@linux.alibaba.com
block/blk-crypto.c
include/linux/blk-crypto.h

index a496aaef85ba456c756965062764b9344ff3ce5e..e44709fc6a08344a6c3208f2c6fd2c3d9c210480 100644 (file)
@@ -36,6 +36,12 @@ const struct blk_crypto_mode blk_crypto_modes[] = {
                .keysize = 32,
                .ivsize = 32,
        },
+       [BLK_ENCRYPTION_MODE_SM4_XTS] = {
+               .name = "SM4-XTS",
+               .cipher_str = "xts(sm4)",
+               .keysize = 32,
+               .ivsize = 16,
+       },
 };
 
 /*
index 69b24fe92cbf1c49e09808ab2ebe70e67cb9d23b..26b1b71c3091e147ae368d0f61a904c1d0c54380 100644 (file)
@@ -13,6 +13,7 @@ enum blk_crypto_mode_num {
        BLK_ENCRYPTION_MODE_AES_256_XTS,
        BLK_ENCRYPTION_MODE_AES_128_CBC_ESSIV,
        BLK_ENCRYPTION_MODE_ADIANTUM,
+       BLK_ENCRYPTION_MODE_SM4_XTS,
        BLK_ENCRYPTION_MODE_MAX,
 };