Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2dce063a authored by Martin Willi's avatar Martin Willi Committed by Herbert Xu
Browse files

crypto: tcrypt - Add ChaCha20/Poly1305 speed tests



Adds individual ChaCha20 and Poly1305 and a combined rfc7539esp AEAD speed
test using mode numbers 214, 321 and 213. For Poly1305 we add a specific
speed template, as it expects the key prepended to the input data.

Signed-off-by: default avatarMartin Willi <martin@strongswan.org>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 74790922
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -1793,6 +1793,17 @@ static int do_test(const char *alg, u32 type, u32 mask, int m)
				NULL, 0, 16, 16, aead_speed_template_19);
		break;

	case 213:
		test_aead_speed("rfc7539esp(chacha20,poly1305)", ENCRYPT, sec,
				NULL, 0, 16, 8, aead_speed_template_36);
		break;

	case 214:
		test_cipher_speed("chacha20", ENCRYPT, sec, NULL, 0,
				  speed_template_32);
		break;


	case 300:
		if (alg) {
			test_hash_speed(alg, sec, generic_hash_speed_template);
@@ -1881,6 +1892,10 @@ static int do_test(const char *alg, u32 type, u32 mask, int m)
		test_hash_speed("crct10dif", sec, generic_hash_speed_template);
		if (mode > 300 && mode < 400) break;

	case 321:
		test_hash_speed("poly1305", sec, poly1305_speed_template);
		if (mode > 300 && mode < 400) break;

	case 399:
		break;

+20 −0
Original line number Diff line number Diff line
@@ -61,12 +61,14 @@ static u8 speed_template_32_40_48[] = {32, 40, 48, 0};
static u8 speed_template_32_48[] = {32, 48, 0};
static u8 speed_template_32_48_64[] = {32, 48, 64, 0};
static u8 speed_template_32_64[] = {32, 64, 0};
static u8 speed_template_32[] = {32, 0};

/*
 * AEAD speed tests
 */
static u8 aead_speed_template_19[] = {19, 0};
static u8 aead_speed_template_20[] = {20, 0};
static u8 aead_speed_template_36[] = {36, 0};

/*
 * Digest speed tests
@@ -127,4 +129,22 @@ static struct hash_speed hash_speed_template_16[] = {
	{  .blen = 0,	.plen = 0,	.klen = 0, }
};

static struct hash_speed poly1305_speed_template[] = {
	{ .blen = 96,	.plen = 16, },
	{ .blen = 96,	.plen = 32, },
	{ .blen = 96,	.plen = 96, },
	{ .blen = 288,	.plen = 16, },
	{ .blen = 288,	.plen = 32, },
	{ .blen = 288,	.plen = 288, },
	{ .blen = 1056,	.plen = 32, },
	{ .blen = 1056,	.plen = 1056, },
	{ .blen = 2080,	.plen = 32, },
	{ .blen = 2080,	.plen = 2080, },
	{ .blen = 4128,	.plen = 4128, },
	{ .blen = 8224,	.plen = 8224, },

	/* End marker */
	{  .blen = 0,	.plen = 0, }
};

#endif	/* _CRYPTO_TCRYPT_H */