162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Quick & dirty crypto testing module. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * This will only exist until we have a better testing mechanism 662306a36Sopenharmony_ci * (e.g. a char device). 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * Copyright (c) 2002 James Morris <jmorris@intercode.com.au> 962306a36Sopenharmony_ci * Copyright (c) 2002 Jean-Francois Dive <jef@linuxbe.org> 1062306a36Sopenharmony_ci * Copyright (c) 2007 Nokia Siemens Networks 1162306a36Sopenharmony_ci */ 1262306a36Sopenharmony_ci#ifndef _CRYPTO_TCRYPT_H 1362306a36Sopenharmony_ci#define _CRYPTO_TCRYPT_H 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cistruct cipher_speed_template { 1662306a36Sopenharmony_ci const char *key; 1762306a36Sopenharmony_ci unsigned int klen; 1862306a36Sopenharmony_ci}; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cistruct aead_speed_template { 2162306a36Sopenharmony_ci const char *key; 2262306a36Sopenharmony_ci unsigned int klen; 2362306a36Sopenharmony_ci}; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_cistruct hash_speed { 2662306a36Sopenharmony_ci unsigned int blen; /* buffer length */ 2762306a36Sopenharmony_ci unsigned int plen; /* per-update length */ 2862306a36Sopenharmony_ci}; 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci/* 3162306a36Sopenharmony_ci * DES test vectors. 3262306a36Sopenharmony_ci */ 3362306a36Sopenharmony_ci#define DES3_SPEED_VECTORS 1 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cistatic struct cipher_speed_template des3_speed_template[] = { 3662306a36Sopenharmony_ci { 3762306a36Sopenharmony_ci .key = "\x01\x23\x45\x67\x89\xab\xcd\xef" 3862306a36Sopenharmony_ci "\x55\x55\x55\x55\x55\x55\x55\x55" 3962306a36Sopenharmony_ci "\xfe\xdc\xba\x98\x76\x54\x32\x10", 4062306a36Sopenharmony_ci .klen = 24, 4162306a36Sopenharmony_ci } 4262306a36Sopenharmony_ci}; 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci/* 4562306a36Sopenharmony_ci * Cipher speed tests 4662306a36Sopenharmony_ci */ 4762306a36Sopenharmony_cistatic u8 speed_template_8[] = {8, 0}; 4862306a36Sopenharmony_cistatic u8 speed_template_16[] = {16, 0}; 4962306a36Sopenharmony_cistatic u8 speed_template_24[] = {24, 0}; 5062306a36Sopenharmony_cistatic u8 speed_template_8_16[] = {8, 16, 0}; 5162306a36Sopenharmony_cistatic u8 speed_template_8_32[] = {8, 32, 0}; 5262306a36Sopenharmony_cistatic u8 speed_template_16_32[] = {16, 32, 0}; 5362306a36Sopenharmony_cistatic u8 speed_template_16_24_32[] = {16, 24, 32, 0}; 5462306a36Sopenharmony_cistatic u8 speed_template_20_28_36[] = {20, 28, 36, 0}; 5562306a36Sopenharmony_cistatic u8 speed_template_32_40_48[] = {32, 40, 48, 0}; 5662306a36Sopenharmony_cistatic u8 speed_template_32_48[] = {32, 48, 0}; 5762306a36Sopenharmony_cistatic u8 speed_template_32_48_64[] = {32, 48, 64, 0}; 5862306a36Sopenharmony_cistatic u8 speed_template_32_64[] = {32, 64, 0}; 5962306a36Sopenharmony_cistatic u8 speed_template_32[] = {32, 0}; 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci/* 6262306a36Sopenharmony_ci * AEAD speed tests 6362306a36Sopenharmony_ci */ 6462306a36Sopenharmony_cistatic u8 aead_speed_template_19[] = {19, 0}; 6562306a36Sopenharmony_cistatic u8 aead_speed_template_20_28_36[] = {20, 28, 36, 0}; 6662306a36Sopenharmony_cistatic u8 aead_speed_template_36[] = {36, 0}; 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci/* 6962306a36Sopenharmony_ci * Digest speed tests 7062306a36Sopenharmony_ci */ 7162306a36Sopenharmony_cistatic struct hash_speed generic_hash_speed_template[] = { 7262306a36Sopenharmony_ci { .blen = 16, .plen = 16, }, 7362306a36Sopenharmony_ci { .blen = 64, .plen = 16, }, 7462306a36Sopenharmony_ci { .blen = 64, .plen = 64, }, 7562306a36Sopenharmony_ci { .blen = 256, .plen = 16, }, 7662306a36Sopenharmony_ci { .blen = 256, .plen = 64, }, 7762306a36Sopenharmony_ci { .blen = 256, .plen = 256, }, 7862306a36Sopenharmony_ci { .blen = 1024, .plen = 16, }, 7962306a36Sopenharmony_ci { .blen = 1024, .plen = 256, }, 8062306a36Sopenharmony_ci { .blen = 1024, .plen = 1024, }, 8162306a36Sopenharmony_ci { .blen = 2048, .plen = 16, }, 8262306a36Sopenharmony_ci { .blen = 2048, .plen = 256, }, 8362306a36Sopenharmony_ci { .blen = 2048, .plen = 1024, }, 8462306a36Sopenharmony_ci { .blen = 2048, .plen = 2048, }, 8562306a36Sopenharmony_ci { .blen = 4096, .plen = 16, }, 8662306a36Sopenharmony_ci { .blen = 4096, .plen = 256, }, 8762306a36Sopenharmony_ci { .blen = 4096, .plen = 1024, }, 8862306a36Sopenharmony_ci { .blen = 4096, .plen = 4096, }, 8962306a36Sopenharmony_ci { .blen = 8192, .plen = 16, }, 9062306a36Sopenharmony_ci { .blen = 8192, .plen = 256, }, 9162306a36Sopenharmony_ci { .blen = 8192, .plen = 1024, }, 9262306a36Sopenharmony_ci { .blen = 8192, .plen = 4096, }, 9362306a36Sopenharmony_ci { .blen = 8192, .plen = 8192, }, 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci /* End marker */ 9662306a36Sopenharmony_ci { .blen = 0, .plen = 0, } 9762306a36Sopenharmony_ci}; 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_cistatic struct hash_speed poly1305_speed_template[] = { 10062306a36Sopenharmony_ci { .blen = 96, .plen = 16, }, 10162306a36Sopenharmony_ci { .blen = 96, .plen = 32, }, 10262306a36Sopenharmony_ci { .blen = 96, .plen = 96, }, 10362306a36Sopenharmony_ci { .blen = 288, .plen = 16, }, 10462306a36Sopenharmony_ci { .blen = 288, .plen = 32, }, 10562306a36Sopenharmony_ci { .blen = 288, .plen = 288, }, 10662306a36Sopenharmony_ci { .blen = 1056, .plen = 32, }, 10762306a36Sopenharmony_ci { .blen = 1056, .plen = 1056, }, 10862306a36Sopenharmony_ci { .blen = 2080, .plen = 32, }, 10962306a36Sopenharmony_ci { .blen = 2080, .plen = 2080, }, 11062306a36Sopenharmony_ci { .blen = 4128, .plen = 4128, }, 11162306a36Sopenharmony_ci { .blen = 8224, .plen = 8224, }, 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci /* End marker */ 11462306a36Sopenharmony_ci { .blen = 0, .plen = 0, } 11562306a36Sopenharmony_ci}; 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci#endif /* _CRYPTO_TCRYPT_H */ 118