OSDN Git Service

crypto: tcrypt - add SM4 cts-cbc/xts/xcbc test
authorTianjia Zhang <tianjia.zhang@linux.alibaba.com>
Thu, 27 Oct 2022 06:54:57 +0000 (14:54 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 4 Nov 2022 09:34:21 +0000 (17:34 +0800)
Added CTS-CBC/XTS/XCBC tests for SM4 algorithms, as well as
corresponding speed tests, this is to test performance-optimized
implementations of these modes.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/tcrypt.c

index b096ae9..0f10189 100644 (file)
@@ -1710,6 +1710,10 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
                ret = min(ret, tcrypt_test("gcm(aria)"));
                break;
 
+       case 59:
+               ret = min(ret, tcrypt_test("cts(cbc(sm4))"));
+               break;
+
        case 100:
                ret = min(ret, tcrypt_test("hmac(md5)"));
                break;
@@ -1810,6 +1814,10 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
                ret = min(ret, tcrypt_test("cmac(sm4)"));
                break;
 
+       case 160:
+               ret = min(ret, tcrypt_test("xcbc(sm4)"));
+               break;
+
        case 181:
                ret = min(ret, tcrypt_test("authenc(hmac(sha1),cbc(des))"));
                break;
@@ -1845,6 +1853,7 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
                ret = min(ret, tcrypt_test("cbc(sm4)"));
                ret = min(ret, tcrypt_test("cfb(sm4)"));
                ret = min(ret, tcrypt_test("ctr(sm4)"));
+               ret = min(ret, tcrypt_test("xts(sm4)"));
                break;
        case 192:
                ret = min(ret, tcrypt_test("ecb(aria)"));
@@ -2108,6 +2117,10 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
                                speed_template_16);
                test_cipher_speed("cbc(sm4)", DECRYPT, sec, NULL, 0,
                                speed_template_16);
+               test_cipher_speed("cts(cbc(sm4))", ENCRYPT, sec, NULL, 0,
+                               speed_template_16);
+               test_cipher_speed("cts(cbc(sm4))", DECRYPT, sec, NULL, 0,
+                               speed_template_16);
                test_cipher_speed("cfb(sm4)", ENCRYPT, sec, NULL, 0,
                                speed_template_16);
                test_cipher_speed("cfb(sm4)", DECRYPT, sec, NULL, 0,
@@ -2116,6 +2129,10 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
                                speed_template_16);
                test_cipher_speed("ctr(sm4)", DECRYPT, sec, NULL, 0,
                                speed_template_16);
+               test_cipher_speed("xts(sm4)", ENCRYPT, sec, NULL, 0,
+                               speed_template_32);
+               test_cipher_speed("xts(sm4)", DECRYPT, sec, NULL, 0,
+                               speed_template_32);
                break;
 
        case 219:
@@ -2629,6 +2646,10 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
                                speed_template_16);
                test_acipher_speed("ctr(sm4)", DECRYPT, sec, NULL, 0,
                                speed_template_16);
+               test_acipher_speed("xts(sm4)", ENCRYPT, sec, NULL, 0,
+                               speed_template_32);
+               test_acipher_speed("xts(sm4)", DECRYPT, sec, NULL, 0,
+                               speed_template_32);
                break;
 
        case 519: