forked from Minki/linux
crypto: tcrypt - Add support for hash speed testing with keys
Currently if you speed test a hash that requires a key you'll get an error because tcrypt does not set a key by default. This patch allows a key to be set using the new module parameter klen. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
f7ade9aaf6
commit
ba974adb47
@ -63,6 +63,7 @@ static u32 type;
|
|||||||
static u32 mask;
|
static u32 mask;
|
||||||
static int mode;
|
static int mode;
|
||||||
static u32 num_mb = 8;
|
static u32 num_mb = 8;
|
||||||
|
static unsigned int klen;
|
||||||
static char *tvmem[TVMEMSIZE];
|
static char *tvmem[TVMEMSIZE];
|
||||||
|
|
||||||
static const char *check[] = {
|
static const char *check[] = {
|
||||||
@ -864,8 +865,8 @@ static void test_mb_ahash_speed(const char *algo, unsigned int secs,
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (speed[i].klen)
|
if (klen)
|
||||||
crypto_ahash_setkey(tfm, tvmem[0], speed[i].klen);
|
crypto_ahash_setkey(tfm, tvmem[0], klen);
|
||||||
|
|
||||||
for (k = 0; k < num_mb; k++)
|
for (k = 0; k < num_mb; k++)
|
||||||
ahash_request_set_crypt(data[k].req, data[k].sg,
|
ahash_request_set_crypt(data[k].req, data[k].sg,
|
||||||
@ -1099,8 +1100,8 @@ static void test_ahash_speed_common(const char *algo, unsigned int secs,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (speed[i].klen)
|
if (klen)
|
||||||
crypto_ahash_setkey(tfm, tvmem[0], speed[i].klen);
|
crypto_ahash_setkey(tfm, tvmem[0], klen);
|
||||||
|
|
||||||
pr_info("test%3u "
|
pr_info("test%3u "
|
||||||
"(%5u byte blocks,%5u bytes per update,%4u updates): ",
|
"(%5u byte blocks,%5u bytes per update,%4u updates): ",
|
||||||
@ -2418,7 +2419,8 @@ static int do_test(const char *alg, u32 type, u32 mask, int m, u32 num_mb)
|
|||||||
if (mode > 300 && mode < 400) break;
|
if (mode > 300 && mode < 400) break;
|
||||||
/* fall through */
|
/* fall through */
|
||||||
case 318:
|
case 318:
|
||||||
test_hash_speed("ghash-generic", sec, hash_speed_template_16);
|
klen = 16;
|
||||||
|
test_hash_speed("ghash", sec, generic_hash_speed_template);
|
||||||
if (mode > 300 && mode < 400) break;
|
if (mode > 300 && mode < 400) break;
|
||||||
/* fall through */
|
/* fall through */
|
||||||
case 319:
|
case 319:
|
||||||
@ -3076,6 +3078,8 @@ MODULE_PARM_DESC(sec, "Length in seconds of speed tests "
|
|||||||
"(defaults to zero which uses CPU cycles instead)");
|
"(defaults to zero which uses CPU cycles instead)");
|
||||||
module_param(num_mb, uint, 0000);
|
module_param(num_mb, uint, 0000);
|
||||||
MODULE_PARM_DESC(num_mb, "Number of concurrent requests to be used in mb speed tests (defaults to 8)");
|
MODULE_PARM_DESC(num_mb, "Number of concurrent requests to be used in mb speed tests (defaults to 8)");
|
||||||
|
module_param(klen, uint, 0);
|
||||||
|
MODULE_PARM_DESC(klen, "Key length (defaults to 0)");
|
||||||
|
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
MODULE_DESCRIPTION("Quick & dirty crypto testing module");
|
MODULE_DESCRIPTION("Quick & dirty crypto testing module");
|
||||||
|
@ -25,7 +25,6 @@ struct aead_speed_template {
|
|||||||
struct hash_speed {
|
struct hash_speed {
|
||||||
unsigned int blen; /* buffer length */
|
unsigned int blen; /* buffer length */
|
||||||
unsigned int plen; /* per-update length */
|
unsigned int plen; /* per-update length */
|
||||||
unsigned int klen; /* key length */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -97,34 +96,6 @@ static struct hash_speed generic_hash_speed_template[] = {
|
|||||||
{ .blen = 0, .plen = 0, }
|
{ .blen = 0, .plen = 0, }
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct hash_speed hash_speed_template_16[] = {
|
|
||||||
{ .blen = 16, .plen = 16, .klen = 16, },
|
|
||||||
{ .blen = 64, .plen = 16, .klen = 16, },
|
|
||||||
{ .blen = 64, .plen = 64, .klen = 16, },
|
|
||||||
{ .blen = 256, .plen = 16, .klen = 16, },
|
|
||||||
{ .blen = 256, .plen = 64, .klen = 16, },
|
|
||||||
{ .blen = 256, .plen = 256, .klen = 16, },
|
|
||||||
{ .blen = 1024, .plen = 16, .klen = 16, },
|
|
||||||
{ .blen = 1024, .plen = 256, .klen = 16, },
|
|
||||||
{ .blen = 1024, .plen = 1024, .klen = 16, },
|
|
||||||
{ .blen = 2048, .plen = 16, .klen = 16, },
|
|
||||||
{ .blen = 2048, .plen = 256, .klen = 16, },
|
|
||||||
{ .blen = 2048, .plen = 1024, .klen = 16, },
|
|
||||||
{ .blen = 2048, .plen = 2048, .klen = 16, },
|
|
||||||
{ .blen = 4096, .plen = 16, .klen = 16, },
|
|
||||||
{ .blen = 4096, .plen = 256, .klen = 16, },
|
|
||||||
{ .blen = 4096, .plen = 1024, .klen = 16, },
|
|
||||||
{ .blen = 4096, .plen = 4096, .klen = 16, },
|
|
||||||
{ .blen = 8192, .plen = 16, .klen = 16, },
|
|
||||||
{ .blen = 8192, .plen = 256, .klen = 16, },
|
|
||||||
{ .blen = 8192, .plen = 1024, .klen = 16, },
|
|
||||||
{ .blen = 8192, .plen = 4096, .klen = 16, },
|
|
||||||
{ .blen = 8192, .plen = 8192, .klen = 16, },
|
|
||||||
|
|
||||||
/* End marker */
|
|
||||||
{ .blen = 0, .plen = 0, .klen = 0, }
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct hash_speed poly1305_speed_template[] = {
|
static struct hash_speed poly1305_speed_template[] = {
|
||||||
{ .blen = 96, .plen = 16, },
|
{ .blen = 96, .plen = 16, },
|
||||||
{ .blen = 96, .plen = 32, },
|
{ .blen = 96, .plen = 32, },
|
||||||
|
Loading…
Reference in New Issue
Block a user