As a type CRYPTO_ALG_TYPE_ACOMPRESS is needed to trigger crypto acomp test,
we introduce a new help function tcrypto_test_extend to pass type and mask
to alg_test.

Then tcrypto module can be used to do basic acomp test by:
insmod tcrypto.ko alg="zlib-deflate" mode=55 type=10

Signed-off-by: Zhou Wang <wangzh...@hisilicon.com>
---
 crypto/tcrypt.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
index 83ad0b1..6ad821c 100644
--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -72,7 +72,7 @@ static char *check[] = {
        "khazad", "wp512", "wp384", "wp256", "tnepres", "xeta",  "fcrypt",
        "camellia", "seed", "salsa20", "rmd128", "rmd160", "rmd256", "rmd320",
        "lzo", "lzo-rle", "cts", "sha3-224", "sha3-256", "sha3-384",
-       "sha3-512", "streebog256", "streebog512",
+       "sha3-512", "streebog256", "streebog512", "zlib-deflate",
        NULL
 };
 
@@ -1657,6 +1657,19 @@ static inline int tcrypt_test(const char *alg)
        return ret;
 }
 
+static inline int tcrypt_test_extend(const char *alg, u32 type, u32 mask)
+{
+       int ret;
+
+       pr_debug("testing %s\n", alg);
+
+       ret = alg_test(alg, alg, type, mask);
+       /* non-fips algs return -EINVAL in fips mode */
+       if (fips_enabled && ret == -EINVAL)
+               ret = 0;
+       return ret;
+}
+
 static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
 {
        int i;
@@ -1919,6 +1932,10 @@ static int do_test(const char *alg, u32 type, u32 mask, 
int m, u32 num_mb)
                ret += tcrypt_test("streebog512");
                break;
 
+       case 55:
+               ret += tcrypt_test_extend("zlib-deflate", type, mask);
+               break;
+
        case 100:
                ret += tcrypt_test("hmac(md5)");
                break;
-- 
2.8.1

Reply via email to