1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* |
3 | * Quick & dirty crypto testing module. |
4 | * |
5 | * This will only exist until we have a better testing mechanism |
6 | * (e.g. a char device). |
7 | * |
8 | * Copyright (c) 2002 James Morris <jmorris@intercode.com.au> |
9 | * Copyright (c) 2002 Jean-Francois Dive <jef@linuxbe.org> |
10 | * Copyright (c) 2007 Nokia Siemens Networks |
11 | */ |
12 | #ifndef _CRYPTO_TCRYPT_H |
13 | #define _CRYPTO_TCRYPT_H |
14 | |
15 | struct cipher_speed_template { |
16 | const char *key; |
17 | unsigned int klen; |
18 | }; |
19 | |
20 | struct aead_speed_template { |
21 | const char *key; |
22 | unsigned int klen; |
23 | }; |
24 | |
25 | struct hash_speed { |
26 | unsigned int blen; /* buffer length */ |
27 | unsigned int plen; /* per-update length */ |
28 | }; |
29 | |
30 | /* |
31 | * DES test vectors. |
32 | */ |
33 | #define DES3_SPEED_VECTORS 1 |
34 | |
35 | static struct cipher_speed_template des3_speed_template[] = { |
36 | { |
37 | .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" |
38 | "\x55\x55\x55\x55\x55\x55\x55\x55" |
39 | "\xfe\xdc\xba\x98\x76\x54\x32\x10" , |
40 | .klen = 24, |
41 | } |
42 | }; |
43 | |
44 | /* |
45 | * Cipher speed tests |
46 | */ |
47 | static u8 speed_template_8[] = {8, 0}; |
48 | static u8 speed_template_16[] = {16, 0}; |
49 | static u8 speed_template_24[] = {24, 0}; |
50 | static u8 speed_template_8_16[] = {8, 16, 0}; |
51 | static u8 speed_template_8_32[] = {8, 32, 0}; |
52 | static u8 speed_template_16_32[] = {16, 32, 0}; |
53 | static u8 speed_template_16_24_32[] = {16, 24, 32, 0}; |
54 | static u8 speed_template_20_28_36[] = {20, 28, 36, 0}; |
55 | static u8 speed_template_32_40_48[] = {32, 40, 48, 0}; |
56 | static u8 speed_template_32_48[] = {32, 48, 0}; |
57 | static u8 speed_template_32_48_64[] = {32, 48, 64, 0}; |
58 | static u8 speed_template_32_64[] = {32, 64, 0}; |
59 | static u8 speed_template_32[] = {32, 0}; |
60 | |
61 | /* |
62 | * AEAD speed tests |
63 | */ |
64 | static u8 aead_speed_template_19[] = {19, 0}; |
65 | static u8 aead_speed_template_20_28_36[] = {20, 28, 36, 0}; |
66 | static u8 aead_speed_template_36[] = {36, 0}; |
67 | |
68 | /* |
69 | * Digest speed tests |
70 | */ |
71 | static struct hash_speed generic_hash_speed_template[] = { |
72 | { .blen = 16, .plen = 16, }, |
73 | { .blen = 64, .plen = 16, }, |
74 | { .blen = 64, .plen = 64, }, |
75 | { .blen = 256, .plen = 16, }, |
76 | { .blen = 256, .plen = 64, }, |
77 | { .blen = 256, .plen = 256, }, |
78 | { .blen = 1024, .plen = 16, }, |
79 | { .blen = 1024, .plen = 256, }, |
80 | { .blen = 1024, .plen = 1024, }, |
81 | { .blen = 2048, .plen = 16, }, |
82 | { .blen = 2048, .plen = 256, }, |
83 | { .blen = 2048, .plen = 1024, }, |
84 | { .blen = 2048, .plen = 2048, }, |
85 | { .blen = 4096, .plen = 16, }, |
86 | { .blen = 4096, .plen = 256, }, |
87 | { .blen = 4096, .plen = 1024, }, |
88 | { .blen = 4096, .plen = 4096, }, |
89 | { .blen = 8192, .plen = 16, }, |
90 | { .blen = 8192, .plen = 256, }, |
91 | { .blen = 8192, .plen = 1024, }, |
92 | { .blen = 8192, .plen = 4096, }, |
93 | { .blen = 8192, .plen = 8192, }, |
94 | |
95 | /* End marker */ |
96 | { .blen = 0, .plen = 0, } |
97 | }; |
98 | |
99 | static struct hash_speed poly1305_speed_template[] = { |
100 | { .blen = 96, .plen = 16, }, |
101 | { .blen = 96, .plen = 32, }, |
102 | { .blen = 96, .plen = 96, }, |
103 | { .blen = 288, .plen = 16, }, |
104 | { .blen = 288, .plen = 32, }, |
105 | { .blen = 288, .plen = 288, }, |
106 | { .blen = 1056, .plen = 32, }, |
107 | { .blen = 1056, .plen = 1056, }, |
108 | { .blen = 2080, .plen = 32, }, |
109 | { .blen = 2080, .plen = 2080, }, |
110 | { .blen = 4128, .plen = 4128, }, |
111 | { .blen = 8224, .plen = 8224, }, |
112 | |
113 | /* End marker */ |
114 | { .blen = 0, .plen = 0, } |
115 | }; |
116 | |
117 | #endif /* _CRYPTO_TCRYPT_H */ |
118 | |