xref: /openbmc/linux/crypto/tcrypt.h (revision 425359ae)
12874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
21da177e4SLinus Torvalds /*
31da177e4SLinus Torvalds  * Quick & dirty crypto testing module.
41da177e4SLinus Torvalds  *
51da177e4SLinus Torvalds  * This will only exist until we have a better testing mechanism
61da177e4SLinus Torvalds  * (e.g. a char device).
71da177e4SLinus Torvalds  *
81da177e4SLinus Torvalds  * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
91da177e4SLinus Torvalds  * Copyright (c) 2002 Jean-Francois Dive <jef@linuxbe.org>
10e3a4ea4fSMikko Herranen  * Copyright (c) 2007 Nokia Siemens Networks
111da177e4SLinus Torvalds  */
121da177e4SLinus Torvalds #ifndef _CRYPTO_TCRYPT_H
131da177e4SLinus Torvalds #define _CRYPTO_TCRYPT_H
141da177e4SLinus Torvalds 
15da7f033dSHerbert Xu struct cipher_speed_template {
16da7f033dSHerbert Xu 	const char *key;
17da7f033dSHerbert Xu 	unsigned int klen;
18e3a4ea4fSMikko Herranen };
19e3a4ea4fSMikko Herranen 
2053f52d7aSTim Chen struct aead_speed_template {
2153f52d7aSTim Chen 	const char *key;
2253f52d7aSTim Chen 	unsigned int klen;
2353f52d7aSTim Chen };
2453f52d7aSTim Chen 
25e9d41164SHerbert Xu struct hash_speed {
26e8057928SMichal Ludvig 	unsigned int blen;	/* buffer length */
27e8057928SMichal Ludvig 	unsigned int plen;	/* per-update length */
28e8057928SMichal Ludvig };
29e8057928SMichal Ludvig 
30a28091aeSAndrew Donofrio /*
311da177e4SLinus Torvalds  * DES test vectors.
321da177e4SLinus Torvalds  */
33da7f033dSHerbert Xu #define DES3_SPEED_VECTORS	1
341da177e4SLinus Torvalds 
35da7f033dSHerbert Xu static struct cipher_speed_template des3_speed_template[] = {
36da7f033dSHerbert Xu 	{
37de224c30SSebastian Siewior 		.key	= "\x01\x23\x45\x67\x89\xab\xcd\xef"
38de224c30SSebastian Siewior 			  "\x55\x55\x55\x55\x55\x55\x55\x55"
39de224c30SSebastian Siewior 			  "\xfe\xdc\xba\x98\x76\x54\x32\x10",
401da177e4SLinus Torvalds 		.klen	= 24,
41f3d1044cSRik Snel 	}
42f3d1044cSRik Snel };
43f3d1044cSRik Snel 
44c907ee76SHerbert Xu /*
45ebfd9bcfSHarald Welte  * Cipher speed tests
46ebfd9bcfSHarald Welte  */
47d5dc3927SSebastian Siewior static u8 speed_template_8[] = {8, 0};
4895ba5973SGilad Ben-Yossef static u8 speed_template_16[] = {16, 0};
49d5dc3927SSebastian Siewior static u8 speed_template_24[] = {24, 0};
50a2c58260SJohannes Goetzfried static u8 speed_template_8_16[] = {8, 16, 0};
51d5dc3927SSebastian Siewior static u8 speed_template_8_32[] = {8, 32, 0};
52d5dc3927SSebastian Siewior static u8 speed_template_16_32[] = {16, 32, 0};
53d5dc3927SSebastian Siewior static u8 speed_template_16_24_32[] = {16, 24, 32, 0};
5469d3150cSJussi Kivilinna static u8 speed_template_20_28_36[] = {20, 28, 36, 0};
55d5dc3927SSebastian Siewior static u8 speed_template_32_40_48[] = {32, 40, 48, 0};
5687aae4bfSJussi Kivilinna static u8 speed_template_32_48[] = {32, 48, 0};
57d5dc3927SSebastian Siewior static u8 speed_template_32_48_64[] = {32, 48, 64, 0};
585209c07aSJussi Kivilinna static u8 speed_template_32_64[] = {32, 64, 0};
592dce063aSMartin Willi static u8 speed_template_32[] = {32, 0};
60f19f5111SRik Snel 
61e8057928SMichal Ludvig /*
6253f52d7aSTim Chen  * AEAD speed tests
6353f52d7aSTim Chen  */
644e4aab63SHerbert Xu static u8 aead_speed_template_19[] = {19, 0};
65*425359aeSArd Biesheuvel static u8 aead_speed_template_20_28_36[] = {20, 28, 36, 0};
662dce063aSMartin Willi static u8 aead_speed_template_36[] = {36, 0};
6753f52d7aSTim Chen 
6853f52d7aSTim Chen /*
69e8057928SMichal Ludvig  * Digest speed tests
70e8057928SMichal Ludvig  */
71e9d41164SHerbert Xu static struct hash_speed generic_hash_speed_template[] = {
72e8057928SMichal Ludvig 	{ .blen = 16,	.plen = 16, },
73e8057928SMichal Ludvig 	{ .blen = 64,	.plen = 16, },
74e8057928SMichal Ludvig 	{ .blen = 64,	.plen = 64, },
75e8057928SMichal Ludvig 	{ .blen = 256,	.plen = 16, },
76e8057928SMichal Ludvig 	{ .blen = 256,	.plen = 64, },
77e8057928SMichal Ludvig 	{ .blen = 256,	.plen = 256, },
78e8057928SMichal Ludvig 	{ .blen = 1024,	.plen = 16, },
79e8057928SMichal Ludvig 	{ .blen = 1024,	.plen = 256, },
80e8057928SMichal Ludvig 	{ .blen = 1024,	.plen = 1024, },
81e8057928SMichal Ludvig 	{ .blen = 2048,	.plen = 16, },
82e8057928SMichal Ludvig 	{ .blen = 2048,	.plen = 256, },
83e8057928SMichal Ludvig 	{ .blen = 2048,	.plen = 1024, },
84e8057928SMichal Ludvig 	{ .blen = 2048,	.plen = 2048, },
85e8057928SMichal Ludvig 	{ .blen = 4096,	.plen = 16, },
86e8057928SMichal Ludvig 	{ .blen = 4096,	.plen = 256, },
87e8057928SMichal Ludvig 	{ .blen = 4096,	.plen = 1024, },
88e8057928SMichal Ludvig 	{ .blen = 4096,	.plen = 4096, },
89e8057928SMichal Ludvig 	{ .blen = 8192,	.plen = 16, },
90e8057928SMichal Ludvig 	{ .blen = 8192,	.plen = 256, },
91e8057928SMichal Ludvig 	{ .blen = 8192,	.plen = 1024, },
92e8057928SMichal Ludvig 	{ .blen = 8192,	.plen = 4096, },
93e8057928SMichal Ludvig 	{ .blen = 8192,	.plen = 8192, },
94e8057928SMichal Ludvig 
95e8057928SMichal Ludvig 	/* End marker */
96e8057928SMichal Ludvig 	{  .blen = 0,	.plen = 0, }
97e8057928SMichal Ludvig };
98e8057928SMichal Ludvig 
992dce063aSMartin Willi static struct hash_speed poly1305_speed_template[] = {
1002dce063aSMartin Willi 	{ .blen = 96,	.plen = 16, },
1012dce063aSMartin Willi 	{ .blen = 96,	.plen = 32, },
1022dce063aSMartin Willi 	{ .blen = 96,	.plen = 96, },
1032dce063aSMartin Willi 	{ .blen = 288,	.plen = 16, },
1042dce063aSMartin Willi 	{ .blen = 288,	.plen = 32, },
1052dce063aSMartin Willi 	{ .blen = 288,	.plen = 288, },
1062dce063aSMartin Willi 	{ .blen = 1056,	.plen = 32, },
1072dce063aSMartin Willi 	{ .blen = 1056,	.plen = 1056, },
1082dce063aSMartin Willi 	{ .blen = 2080,	.plen = 32, },
1092dce063aSMartin Willi 	{ .blen = 2080,	.plen = 2080, },
1102dce063aSMartin Willi 	{ .blen = 4128,	.plen = 4128, },
1112dce063aSMartin Willi 	{ .blen = 8224,	.plen = 8224, },
1122dce063aSMartin Willi 
1132dce063aSMartin Willi 	/* End marker */
1142dce063aSMartin Willi 	{  .blen = 0,	.plen = 0, }
1152dce063aSMartin Willi };
1162dce063aSMartin Willi 
1171da177e4SLinus Torvalds #endif	/* _CRYPTO_TCRYPT_H */
118