aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteffen Klassert <steffen.klassert@secunet.com>2009-06-19 07:46:53 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2009-06-19 07:46:53 -0400
commita873a5f1c4eda125f506c059a4f8ea48b9f42eff (patch)
treeee1410f5d24ee86ce4c6f32d723699799c024426
parent03b56ce54143a3a69d4fea6ff8130b1c903a47ce (diff)
crypto: tcrypt - Test algorithms by name
This adds the 'alg' module parameter to be able to test an algorithm by name. If the algorithm type is not ad-hoc clear for a algorithm (e.g. pcrypt, cryptd) it is possilbe to set the algorithm type with the 'type' module parameter. Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--crypto/tcrypt.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c
index d59ba5079d14..dfeec0c544cb 100644
--- a/crypto/tcrypt.c
+++ b/crypto/tcrypt.c
@@ -45,6 +45,8 @@
45 */ 45 */
46static unsigned int sec; 46static unsigned int sec;
47 47
48static char *alg = NULL;
49static u32 type;
48static int mode; 50static int mode;
49static char *tvmem[TVMEMSIZE]; 51static char *tvmem[TVMEMSIZE];
50 52
@@ -885,6 +887,11 @@ static int do_test(int m)
885 return ret; 887 return ret;
886} 888}
887 889
890static int do_alg_test(const char *alg, u32 type)
891{
892 return crypto_has_alg(alg, type, CRYPTO_ALG_TYPE_MASK);
893}
894
888static int __init tcrypt_mod_init(void) 895static int __init tcrypt_mod_init(void)
889{ 896{
890 int err = -ENOMEM; 897 int err = -ENOMEM;
@@ -896,7 +903,11 @@ static int __init tcrypt_mod_init(void)
896 goto err_free_tv; 903 goto err_free_tv;
897 } 904 }
898 905
899 err = do_test(mode); 906 if (alg)
907 err = do_alg_test(alg, type);
908 else
909 err = do_test(mode);
910
900 if (err) { 911 if (err) {
901 printk(KERN_ERR "tcrypt: one or more tests failed!\n"); 912 printk(KERN_ERR "tcrypt: one or more tests failed!\n");
902 goto err_free_tv; 913 goto err_free_tv;
@@ -928,6 +939,8 @@ static void __exit tcrypt_mod_fini(void) { }
928module_init(tcrypt_mod_init); 939module_init(tcrypt_mod_init);
929module_exit(tcrypt_mod_fini); 940module_exit(tcrypt_mod_fini);
930 941
942module_param(alg, charp, 0);
943module_param(type, uint, 0);
931module_param(mode, int, 0); 944module_param(mode, int, 0);
932module_param(sec, uint, 0); 945module_param(sec, uint, 0);
933MODULE_PARM_DESC(sec, "Length in seconds of speed tests " 946MODULE_PARM_DESC(sec, "Length in seconds of speed tests "