2019-05-27 09:55:01 +03:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2005-04-17 02:20:36 +04:00
/*
* Quick & dirty crypto testing module .
*
* This will only exist until we have a better testing mechanism
* ( e . g . a char device ) .
*
* Copyright ( c ) 2002 James Morris < jmorris @ intercode . com . au >
* Copyright ( c ) 2002 Jean - Francois Dive < jef @ linuxbe . org >
2007-11-26 17:12:07 +03:00
* Copyright ( c ) 2007 Nokia Siemens Networks
2005-04-17 02:20:36 +04:00
*/
# ifndef _CRYPTO_TCRYPT_H
# define _CRYPTO_TCRYPT_H
2008-07-31 13:08:25 +04:00
struct cipher_speed_template {
const char * key ;
unsigned int klen ;
2007-11-26 17:12:07 +03:00
} ;
2013-12-12 02:28:47 +04:00
struct aead_speed_template {
const char * key ;
unsigned int klen ;
} ;
2006-08-19 15:38:49 +04:00
struct hash_speed {
2006-05-30 16:04:19 +04:00
unsigned int blen ; /* buffer length */
unsigned int plen ; /* per-update length */
2010-03-10 13:30:32 +03:00
unsigned int klen ; /* key length */
2006-05-30 16:04:19 +04:00
} ;
2005-04-17 02:20:36 +04:00
/*
* DES test vectors .
*/
2008-07-31 13:08:25 +04:00
# define DES3_SPEED_VECTORS 1
2005-04-17 02:20:36 +04:00
2008-07-31 13:08:25 +04:00
static struct cipher_speed_template des3_speed_template [ ] = {
2005-04-17 02:20:36 +04:00
{
2008-03-13 15:21:51 +03:00
. key = " \x01 \x23 \x45 \x67 \x89 \xab \xcd \xef "
2008-07-31 13:08:25 +04:00
" \x55 \x55 \x55 \x55 \x55 \x55 \x55 \x55 "
2008-03-13 15:21:51 +03:00
" \xfe \xdc \xba \x98 \x76 \x54 \x32 \x10 " ,
2007-01-24 13:48:19 +03:00
. klen = 24 ,
2007-08-21 16:01:03 +04:00
}
} ;
2005-06-23 00:27:23 +04:00
/*
* Cipher speed tests
*/
2008-03-11 16:27:11 +03:00
static u8 speed_template_8 [ ] = { 8 , 0 } ;
2018-09-20 16:18:38 +03:00
static u8 speed_template_16 [ ] = { 16 , 0 } ;
2008-03-11 16:27:11 +03:00
static u8 speed_template_24 [ ] = { 24 , 0 } ;
2012-07-11 21:37:21 +04:00
static u8 speed_template_8_16 [ ] = { 8 , 16 , 0 } ;
2008-03-11 16:27:11 +03:00
static u8 speed_template_8_32 [ ] = { 8 , 32 , 0 } ;
static u8 speed_template_16_32 [ ] = { 16 , 32 , 0 } ;
static u8 speed_template_16_24_32 [ ] = { 16 , 24 , 32 , 0 } ;
2012-12-28 14:04:58 +04:00
static u8 speed_template_20_28_36 [ ] = { 20 , 28 , 36 , 0 } ;
2008-03-11 16:27:11 +03:00
static u8 speed_template_32_40_48 [ ] = { 32 , 40 , 48 , 0 } ;
2011-10-18 14:32:39 +04:00
static u8 speed_template_32_48 [ ] = { 32 , 48 , 0 } ;
2008-03-11 16:27:11 +03:00
static u8 speed_template_32_48_64 [ ] = { 32 , 48 , 64 , 0 } ;
2011-10-18 14:33:22 +04:00
static u8 speed_template_32_64 [ ] = { 32 , 64 , 0 } ;
2015-07-16 20:13:59 +03:00
static u8 speed_template_32 [ ] = { 32 , 0 } ;
2007-09-19 16:23:13 +04:00
2013-12-12 02:28:47 +04:00
/*
* AEAD speed tests
*/
2015-06-17 09:04:21 +03:00
static u8 aead_speed_template_19 [ ] = { 19 , 0 } ;
2013-12-12 02:28:47 +04:00
static u8 aead_speed_template_20 [ ] = { 20 , 0 } ;
2015-07-16 20:13:59 +03:00
static u8 aead_speed_template_36 [ ] = { 36 , 0 } ;
2013-12-12 02:28:47 +04:00
2006-05-30 16:04:19 +04:00
/*
* Digest speed tests
*/
2006-08-19 15:38:49 +04:00
static struct hash_speed generic_hash_speed_template [ ] = {
2008-03-13 15:21:51 +03:00
{ . blen = 16 , . plen = 16 , } ,
2006-05-30 16:04:19 +04:00
{ . blen = 64 , . plen = 16 , } ,
{ . blen = 64 , . plen = 64 , } ,
{ . blen = 256 , . plen = 16 , } ,
{ . blen = 256 , . plen = 64 , } ,
{ . blen = 256 , . plen = 256 , } ,
{ . blen = 1024 , . plen = 16 , } ,
{ . blen = 1024 , . plen = 256 , } ,
{ . blen = 1024 , . plen = 1024 , } ,
{ . blen = 2048 , . plen = 16 , } ,
{ . blen = 2048 , . plen = 256 , } ,
{ . blen = 2048 , . plen = 1024 , } ,
{ . blen = 2048 , . plen = 2048 , } ,
{ . blen = 4096 , . plen = 16 , } ,
{ . blen = 4096 , . plen = 256 , } ,
{ . blen = 4096 , . plen = 1024 , } ,
{ . blen = 4096 , . plen = 4096 , } ,
{ . blen = 8192 , . plen = 16 , } ,
{ . blen = 8192 , . plen = 256 , } ,
{ . blen = 8192 , . plen = 1024 , } ,
{ . blen = 8192 , . plen = 4096 , } ,
{ . blen = 8192 , . plen = 8192 , } ,
/* End marker */
{ . blen = 0 , . plen = 0 , }
} ;
2010-03-10 13:30:32 +03:00
static struct hash_speed hash_speed_template_16 [ ] = {
{ . blen = 16 , . plen = 16 , . klen = 16 , } ,
{ . blen = 64 , . plen = 16 , . klen = 16 , } ,
{ . blen = 64 , . plen = 64 , . klen = 16 , } ,
{ . blen = 256 , . plen = 16 , . klen = 16 , } ,
{ . blen = 256 , . plen = 64 , . klen = 16 , } ,
{ . blen = 256 , . plen = 256 , . klen = 16 , } ,
{ . blen = 1024 , . plen = 16 , . klen = 16 , } ,
{ . blen = 1024 , . plen = 256 , . klen = 16 , } ,
{ . blen = 1024 , . plen = 1024 , . klen = 16 , } ,
{ . blen = 2048 , . plen = 16 , . klen = 16 , } ,
{ . blen = 2048 , . plen = 256 , . klen = 16 , } ,
{ . blen = 2048 , . plen = 1024 , . klen = 16 , } ,
{ . blen = 2048 , . plen = 2048 , . klen = 16 , } ,
{ . blen = 4096 , . plen = 16 , . klen = 16 , } ,
{ . blen = 4096 , . plen = 256 , . klen = 16 , } ,
{ . blen = 4096 , . plen = 1024 , . klen = 16 , } ,
{ . blen = 4096 , . plen = 4096 , . klen = 16 , } ,
{ . blen = 8192 , . plen = 16 , . klen = 16 , } ,
{ . blen = 8192 , . plen = 256 , . klen = 16 , } ,
{ . blen = 8192 , . plen = 1024 , . klen = 16 , } ,
{ . blen = 8192 , . plen = 4096 , . klen = 16 , } ,
{ . blen = 8192 , . plen = 8192 , . klen = 16 , } ,
/* End marker */
{ . blen = 0 , . plen = 0 , . klen = 0 , }
} ;
2015-07-16 20:13:59 +03:00
static struct hash_speed poly1305_speed_template [ ] = {
{ . blen = 96 , . plen = 16 , } ,
{ . blen = 96 , . plen = 32 , } ,
{ . blen = 96 , . plen = 96 , } ,
{ . blen = 288 , . plen = 16 , } ,
{ . blen = 288 , . plen = 32 , } ,
{ . blen = 288 , . plen = 288 , } ,
{ . blen = 1056 , . plen = 32 , } ,
{ . blen = 1056 , . plen = 1056 , } ,
{ . blen = 2080 , . plen = 32 , } ,
{ . blen = 2080 , . plen = 2080 , } ,
{ . blen = 4128 , . plen = 4128 , } ,
{ . blen = 8224 , . plen = 8224 , } ,
/* End marker */
{ . blen = 0 , . plen = 0 , }
} ;
2005-04-17 02:20:36 +04:00
# endif /* _CRYPTO_TCRYPT_H */