18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Quick & dirty crypto testing module.
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * This will only exist until we have a better testing mechanism
68c2ecf20Sopenharmony_ci * (e.g. a char device).
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
98c2ecf20Sopenharmony_ci * Copyright (c) 2002 Jean-Francois Dive <jef@linuxbe.org>
108c2ecf20Sopenharmony_ci * Copyright (c) 2007 Nokia Siemens Networks
118c2ecf20Sopenharmony_ci */
128c2ecf20Sopenharmony_ci#ifndef _CRYPTO_TCRYPT_H
138c2ecf20Sopenharmony_ci#define _CRYPTO_TCRYPT_H
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_cistruct cipher_speed_template {
168c2ecf20Sopenharmony_ci	const char *key;
178c2ecf20Sopenharmony_ci	unsigned int klen;
188c2ecf20Sopenharmony_ci};
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_cistruct aead_speed_template {
218c2ecf20Sopenharmony_ci	const char *key;
228c2ecf20Sopenharmony_ci	unsigned int klen;
238c2ecf20Sopenharmony_ci};
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_cistruct hash_speed {
268c2ecf20Sopenharmony_ci	unsigned int blen;	/* buffer length */
278c2ecf20Sopenharmony_ci	unsigned int plen;	/* per-update length */
288c2ecf20Sopenharmony_ci};
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci/*
318c2ecf20Sopenharmony_ci * DES test vectors.
328c2ecf20Sopenharmony_ci */
338c2ecf20Sopenharmony_ci#define DES3_SPEED_VECTORS	1
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_cistatic struct cipher_speed_template des3_speed_template[] = {
368c2ecf20Sopenharmony_ci	{
378c2ecf20Sopenharmony_ci		.key	= "\x01\x23\x45\x67\x89\xab\xcd\xef"
388c2ecf20Sopenharmony_ci			  "\x55\x55\x55\x55\x55\x55\x55\x55"
398c2ecf20Sopenharmony_ci			  "\xfe\xdc\xba\x98\x76\x54\x32\x10",
408c2ecf20Sopenharmony_ci		.klen	= 24,
418c2ecf20Sopenharmony_ci	}
428c2ecf20Sopenharmony_ci};
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci/*
458c2ecf20Sopenharmony_ci * Cipher speed tests
468c2ecf20Sopenharmony_ci */
478c2ecf20Sopenharmony_cistatic u8 speed_template_8[] = {8, 0};
488c2ecf20Sopenharmony_cistatic u8 speed_template_16[] = {16, 0};
498c2ecf20Sopenharmony_cistatic u8 speed_template_24[] = {24, 0};
508c2ecf20Sopenharmony_cistatic u8 speed_template_8_16[] = {8, 16, 0};
518c2ecf20Sopenharmony_cistatic u8 speed_template_8_32[] = {8, 32, 0};
528c2ecf20Sopenharmony_cistatic u8 speed_template_16_32[] = {16, 32, 0};
538c2ecf20Sopenharmony_cistatic u8 speed_template_16_24_32[] = {16, 24, 32, 0};
548c2ecf20Sopenharmony_cistatic u8 speed_template_20_28_36[] = {20, 28, 36, 0};
558c2ecf20Sopenharmony_cistatic u8 speed_template_32_40_48[] = {32, 40, 48, 0};
568c2ecf20Sopenharmony_cistatic u8 speed_template_32_48[] = {32, 48, 0};
578c2ecf20Sopenharmony_cistatic u8 speed_template_32_48_64[] = {32, 48, 64, 0};
588c2ecf20Sopenharmony_cistatic u8 speed_template_32_64[] = {32, 64, 0};
598c2ecf20Sopenharmony_cistatic u8 speed_template_32[] = {32, 0};
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci/*
628c2ecf20Sopenharmony_ci * AEAD speed tests
638c2ecf20Sopenharmony_ci */
648c2ecf20Sopenharmony_cistatic u8 aead_speed_template_19[] = {19, 0};
658c2ecf20Sopenharmony_cistatic u8 aead_speed_template_20[] = {20, 0};
668c2ecf20Sopenharmony_cistatic u8 aead_speed_template_36[] = {36, 0};
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci/*
698c2ecf20Sopenharmony_ci * Digest speed tests
708c2ecf20Sopenharmony_ci */
718c2ecf20Sopenharmony_cistatic struct hash_speed generic_hash_speed_template[] = {
728c2ecf20Sopenharmony_ci	{ .blen = 16,	.plen = 16, },
738c2ecf20Sopenharmony_ci	{ .blen = 64,	.plen = 16, },
748c2ecf20Sopenharmony_ci	{ .blen = 64,	.plen = 64, },
758c2ecf20Sopenharmony_ci	{ .blen = 256,	.plen = 16, },
768c2ecf20Sopenharmony_ci	{ .blen = 256,	.plen = 64, },
778c2ecf20Sopenharmony_ci	{ .blen = 256,	.plen = 256, },
788c2ecf20Sopenharmony_ci	{ .blen = 1024,	.plen = 16, },
798c2ecf20Sopenharmony_ci	{ .blen = 1024,	.plen = 256, },
808c2ecf20Sopenharmony_ci	{ .blen = 1024,	.plen = 1024, },
818c2ecf20Sopenharmony_ci	{ .blen = 2048,	.plen = 16, },
828c2ecf20Sopenharmony_ci	{ .blen = 2048,	.plen = 256, },
838c2ecf20Sopenharmony_ci	{ .blen = 2048,	.plen = 1024, },
848c2ecf20Sopenharmony_ci	{ .blen = 2048,	.plen = 2048, },
858c2ecf20Sopenharmony_ci	{ .blen = 4096,	.plen = 16, },
868c2ecf20Sopenharmony_ci	{ .blen = 4096,	.plen = 256, },
878c2ecf20Sopenharmony_ci	{ .blen = 4096,	.plen = 1024, },
888c2ecf20Sopenharmony_ci	{ .blen = 4096,	.plen = 4096, },
898c2ecf20Sopenharmony_ci	{ .blen = 8192,	.plen = 16, },
908c2ecf20Sopenharmony_ci	{ .blen = 8192,	.plen = 256, },
918c2ecf20Sopenharmony_ci	{ .blen = 8192,	.plen = 1024, },
928c2ecf20Sopenharmony_ci	{ .blen = 8192,	.plen = 4096, },
938c2ecf20Sopenharmony_ci	{ .blen = 8192,	.plen = 8192, },
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci	/* End marker */
968c2ecf20Sopenharmony_ci	{  .blen = 0,	.plen = 0, }
978c2ecf20Sopenharmony_ci};
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_cistatic struct hash_speed poly1305_speed_template[] = {
1008c2ecf20Sopenharmony_ci	{ .blen = 96,	.plen = 16, },
1018c2ecf20Sopenharmony_ci	{ .blen = 96,	.plen = 32, },
1028c2ecf20Sopenharmony_ci	{ .blen = 96,	.plen = 96, },
1038c2ecf20Sopenharmony_ci	{ .blen = 288,	.plen = 16, },
1048c2ecf20Sopenharmony_ci	{ .blen = 288,	.plen = 32, },
1058c2ecf20Sopenharmony_ci	{ .blen = 288,	.plen = 288, },
1068c2ecf20Sopenharmony_ci	{ .blen = 1056,	.plen = 32, },
1078c2ecf20Sopenharmony_ci	{ .blen = 1056,	.plen = 1056, },
1088c2ecf20Sopenharmony_ci	{ .blen = 2080,	.plen = 32, },
1098c2ecf20Sopenharmony_ci	{ .blen = 2080,	.plen = 2080, },
1108c2ecf20Sopenharmony_ci	{ .blen = 4128,	.plen = 4128, },
1118c2ecf20Sopenharmony_ci	{ .blen = 8224,	.plen = 8224, },
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci	/* End marker */
1148c2ecf20Sopenharmony_ci	{  .blen = 0,	.plen = 0, }
1158c2ecf20Sopenharmony_ci};
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci#endif	/* _CRYPTO_TCRYPT_H */
118