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