crypto: tcrypt - Test algorithms by name
[safe/jmp/linux-2.6] / crypto / tcrypt.c
index d59ba50..dfeec0c 100644 (file)
@@ -45,6 +45,8 @@
  */
 static unsigned int sec;
 
+static char *alg = NULL;
+static u32 type;
 static int mode;
 static char *tvmem[TVMEMSIZE];
 
@@ -885,6 +887,11 @@ static int do_test(int m)
        return ret;
 }
 
+static int do_alg_test(const char *alg, u32 type)
+{
+       return crypto_has_alg(alg, type, CRYPTO_ALG_TYPE_MASK);
+}
+
 static int __init tcrypt_mod_init(void)
 {
        int err = -ENOMEM;
@@ -896,7 +903,11 @@ static int __init tcrypt_mod_init(void)
                        goto err_free_tv;
        }
 
-       err = do_test(mode);
+       if (alg)
+               err = do_alg_test(alg, type);
+       else
+               err = do_test(mode);
+
        if (err) {
                printk(KERN_ERR "tcrypt: one or more tests failed!\n");
                goto err_free_tv;
@@ -928,6 +939,8 @@ static void __exit tcrypt_mod_fini(void) { }
 module_init(tcrypt_mod_init);
 module_exit(tcrypt_mod_fini);
 
+module_param(alg, charp, 0);
+module_param(type, uint, 0);
 module_param(mode, int, 0);
 module_param(sec, uint, 0);
 MODULE_PARM_DESC(sec, "Length in seconds of speed tests "