Added speed benchmark for Poly1305.
This commit is contained in:
parent
32c995f23d
commit
4981173660
1 changed files with 62 additions and 0 deletions
|
|
@ -287,6 +287,66 @@ test_speed_ghash_ctmul64(void)
|
|||
test_speed_ghash_inner("GHASH (ctmul64)", &br_ghash_ctmul64);
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
fake_chacha20(const void *key, const void *iv,
|
||||
uint32_t cc, void *data, size_t len)
|
||||
{
|
||||
(void)key;
|
||||
(void)iv;
|
||||
(void)data;
|
||||
(void)len;
|
||||
return cc + (uint32_t)((len + 63) >> 6);
|
||||
}
|
||||
|
||||
/*
|
||||
* To speed-test Poly1305, we run it with a do-nothing stub instead of
|
||||
* ChaCha20.
|
||||
*/
|
||||
static void
|
||||
test_speed_poly1305_inner(char *name, br_poly1305_run pl)
|
||||
{
|
||||
unsigned char buf[8192], key[32], iv[12], aad[13], tag[16];
|
||||
int i;
|
||||
long num;
|
||||
|
||||
memset(key, 'K', sizeof key);
|
||||
memset(iv, 'I', sizeof iv);
|
||||
memset(aad, 'A', sizeof aad);
|
||||
memset(buf, 'T', sizeof buf);
|
||||
for (i = 0; i < 10; i ++) {
|
||||
pl(key, iv, buf, sizeof buf,
|
||||
aad, sizeof aad, tag, &fake_chacha20, 0);
|
||||
}
|
||||
num = 10;
|
||||
for (;;) {
|
||||
clock_t begin, end;
|
||||
double tt;
|
||||
long k;
|
||||
|
||||
begin = clock();
|
||||
for (k = num; k > 0; k --) {
|
||||
pl(key, iv, buf, sizeof buf,
|
||||
aad, sizeof aad, tag, &fake_chacha20, 0);
|
||||
}
|
||||
end = clock();
|
||||
tt = (double)(end - begin) / CLOCKS_PER_SEC;
|
||||
if (tt >= 2.0) {
|
||||
printf("%-30s %8.2f MB/s\n", name,
|
||||
((double)sizeof buf) * (double)num
|
||||
/ (tt * 1000000.0));
|
||||
fflush(stdout);
|
||||
return;
|
||||
}
|
||||
num <<= 1;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
test_speed_poly1305_ctmul(void)
|
||||
{
|
||||
test_speed_poly1305_inner("Poly1305 (ctmul)", &br_poly1305_ctmul_run);
|
||||
}
|
||||
|
||||
static const unsigned char RSA_N[] = {
|
||||
0xE9, 0xF2, 0x4A, 0x2F, 0x96, 0xDF, 0x0A, 0x23,
|
||||
0x01, 0x85, 0xF1, 0x2C, 0xB2, 0xA8, 0xEF, 0x23,
|
||||
|
|
@ -1066,6 +1126,8 @@ static const struct {
|
|||
STU(ghash_ctmul32),
|
||||
STU(ghash_ctmul64),
|
||||
|
||||
STU(poly1305_ctmul),
|
||||
|
||||
STU(rsa_i31),
|
||||
STU(rsa_i32),
|
||||
STU(ec_prime_i31),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue