diff options
Diffstat (limited to 'crypto/tcrypt.c')
-rw-r--r-- | crypto/tcrypt.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/crypto/tcrypt.c b/crypto/tcrypt.c index d59ba5079d1..aa3f84ccc78 100644 --- a/crypto/tcrypt.c +++ b/crypto/tcrypt.c | |||
@@ -45,6 +45,9 @@ | |||
45 | */ | 45 | */ |
46 | static unsigned int sec; | 46 | static unsigned int sec; |
47 | 47 | ||
48 | static char *alg = NULL; | ||
49 | static u32 type; | ||
50 | static u32 mask; | ||
48 | static int mode; | 51 | static int mode; |
49 | static char *tvmem[TVMEMSIZE]; | 52 | static char *tvmem[TVMEMSIZE]; |
50 | 53 | ||
@@ -716,6 +719,10 @@ static int do_test(int m) | |||
716 | ret += tcrypt_test("hmac(rmd160)"); | 719 | ret += tcrypt_test("hmac(rmd160)"); |
717 | break; | 720 | break; |
718 | 721 | ||
722 | case 109: | ||
723 | ret += tcrypt_test("vmac(aes)"); | ||
724 | break; | ||
725 | |||
719 | case 150: | 726 | case 150: |
720 | ret += tcrypt_test("ansi_cprng"); | 727 | ret += tcrypt_test("ansi_cprng"); |
721 | break; | 728 | break; |
@@ -885,6 +892,12 @@ static int do_test(int m) | |||
885 | return ret; | 892 | return ret; |
886 | } | 893 | } |
887 | 894 | ||
895 | static int do_alg_test(const char *alg, u32 type, u32 mask) | ||
896 | { | ||
897 | return crypto_has_alg(alg, type, mask ?: CRYPTO_ALG_TYPE_MASK) ? | ||
898 | 0 : -ENOENT; | ||
899 | } | ||
900 | |||
888 | static int __init tcrypt_mod_init(void) | 901 | static int __init tcrypt_mod_init(void) |
889 | { | 902 | { |
890 | int err = -ENOMEM; | 903 | int err = -ENOMEM; |
@@ -896,7 +909,11 @@ static int __init tcrypt_mod_init(void) | |||
896 | goto err_free_tv; | 909 | goto err_free_tv; |
897 | } | 910 | } |
898 | 911 | ||
899 | err = do_test(mode); | 912 | if (alg) |
913 | err = do_alg_test(alg, type, mask); | ||
914 | else | ||
915 | err = do_test(mode); | ||
916 | |||
900 | if (err) { | 917 | if (err) { |
901 | printk(KERN_ERR "tcrypt: one or more tests failed!\n"); | 918 | printk(KERN_ERR "tcrypt: one or more tests failed!\n"); |
902 | goto err_free_tv; | 919 | goto err_free_tv; |
@@ -928,6 +945,9 @@ static void __exit tcrypt_mod_fini(void) { } | |||
928 | module_init(tcrypt_mod_init); | 945 | module_init(tcrypt_mod_init); |
929 | module_exit(tcrypt_mod_fini); | 946 | module_exit(tcrypt_mod_fini); |
930 | 947 | ||
948 | module_param(alg, charp, 0); | ||
949 | module_param(type, uint, 0); | ||
950 | module_param(mask, uint, 0); | ||
931 | module_param(mode, int, 0); | 951 | module_param(mode, int, 0); |
932 | module_param(sec, uint, 0); | 952 | module_param(sec, uint, 0); |
933 | MODULE_PARM_DESC(sec, "Length in seconds of speed tests " | 953 | MODULE_PARM_DESC(sec, "Length in seconds of speed tests " |