⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ssx31b_cipher_digest.h

📁 海思KEY驱动
💻 H
字号:
/*ssx31b ciphers and digests definations2006-7-6*/#define __STR(x) # x#define __xSTR(x) __STR(x)#define __CAT(x,y) x ## y#define __xCAT(x,y) __CAT(x,y)#define SSX31B_CRYPTO_SYMBOL(x) __xCAT(ssx31b_crypto,x)/*--------cipher-------------------------------------------*//*des*/#define SSX31B_CIPHER_DES_SYMBOL(x) __xCAT(SSX31B_CIPHER_DES_ID,x)#if !defined(SSX31B_CIPHER_DES_STR)#define SSX31B_CIPHER_DES_STR __xSTR(SSX31B_CIPHER_DES_ID)#endif/*3des*/#define SSX31B_CIPHER_3DES_SYMBOL(x) __xCAT(SSX31B_CIPHER_3DES_ID,x)#if !defined(SSX31B_CIPHER_3DES_STR)#define SSX31B_CIPHER_3DES_STR __xSTR(SSX31B_CIPHER_3DES_ID)#endif/*aes*/#define SSX31B_CIPHER_AES_SYMBOL(x) __xCAT(SSX31B_CIPHER_AES_ID,x)#if !defined(SSX31B_CIPHER_AES_STR)#define SSX31B_CIPHER_AES_STR __xSTR(SSX31B_CIPHER_AES_ID)#endif/*scb2*/#define SSX31B_CIPHER_SCB2_SYMBOL(x) __xCAT(SSX31B_CIPHER_SCB2_ID,x)#if !defined(SSX31B_CIPHER_SCB2_STR)#define SSX31B_CIPHER_SCB2_STR __xSTR(SSX31B_CIPHER_SCB2_ID)#endif/*---------------------------------------------------*//*---------digest------------------------------------*//* MD5*/#define SSX31B_DIGEST_MD5_SYMBOL(x) __xCAT(SSX31B_DIGEST_MD5_ID,x)#if !defined(SSX31B_DIGEST_MD5_STR)# define SSX31B_DIGEST_MD5_STR __xSTR(SSX31B_DIGEST_MD5_ID)#endif#if !defined(SSX31B_DIGEST_MD5_CTX_TYPE)# define SSX31B_DIGEST_MD5_CTX_TYPE SSX31B_DIGEST_MD5_SYMBOL(_ctx_t)#endif#if !defined(SSX31B_DIGEST_MD5_SIZE)# define SSX31B_DIGEST_MD5_SIZE sizeof(SSX31B_DIGEST_MD5_CTX_TYPE)#endif/* SHA1*/#define SSX31B_DIGEST_SHA1_SYMBOL(x) __xCAT(SSX31B_DIGEST_SHA1_ID,x)#if !defined(SSX31B_DIGEST_SHA1_STR)# define SSX31B_DIGEST_SHA1_STR __xSTR(SSX31B_DIGEST_SHA1_ID)#endif#if !defined(SSX31B_DIGEST_SHA1_CTX_TYPE)# define SSX31B_DIGEST_SHA1_CTX_TYPE SSX31B_DIGEST_SHA1_SYMBOL(_ctx_t)#endif#if !defined(SSX31B_DIGEST_SHA1_SIZE)# define SSX31B_DIGEST_SHA1_SIZE sizeof(SSX31B_DIGEST_SHA1_CTX_TYPE)#endif/*---------------------------------------------------*//* default lock ops */#if !defined(SSX31B_NO_CRYPTO_DEFAULT_LOCK_OPS)	static void SSX31B_CRYPTO_SYMBOL(_lock)(void)			{			MOD_INC_USE_COUNT;		}		static void SSX31B_CRYPTO_SYMBOL(_unlock)(void)			{			MOD_DEC_USE_COUNT;		}/*more*/#endif /* SSX31B_NO_CRYPTO_DEFAULT_LOCK_OPS *//*-------cipher--------------------------------------------*//*has ecb/cbc magic*/#define SSX31B_INIT_CIPHER_BLKOPS(name)	\	_encrypt: name##_encrypt,		\	_decrypt: name##_decrypt,		\	_set_key: name##_set_key		/*no ecb/cbc magic*/#define __xSSX31B_INIT_CIPHER_OPS	\	lock: SSX31B_CRYPTO_SYMBOL(_lock),	\	unlock: SSX31B_CRYPTO_SYMBOL(_unlock),	\	realloc_context: ssx31b_default_realloc_cipher_context,	\	wipe_context: ssx31b_default_wipe_context,	\	free_context: ssx31b_default_free_cipher_context	#define __xSSX31B_INIT_CIPHER_BLKOPS(name)       SSX31B_INIT_CIPHER_BLKOPS(name)/*des ECB*/static struct cipher_implementation SSX31B_CIPHER_DES_SYMBOL(_ecb)={  {{NULL, NULL}, CIPHER_MODE_ECB, SSX31B_CIPHER_DES_STR "-ecb"},  blocksize: SSX31B_CIPHER_DES_BLOCKSIZE / 8,  ivsize: 0,  key_schedule_size: SSX31B_CIPHER_DES_KEY_SCHEDULE_SIZE,  key_size_mask: SSX31B_CIPHER_DES_KEY_SIZE_MASK,  __xSSX31B_INIT_CIPHER_BLKOPS(SSX31B_CIPHER_DES_SYMBOL(_ecb)),  __xSSX31B_INIT_CIPHER_OPS};/*des CBC*/static struct cipher_implementation SSX31B_CIPHER_DES_SYMBOL(_cbc)={  {{NULL, NULL}, CIPHER_MODE_CBC, SSX31B_CIPHER_DES_STR "-cbc"},  blocksize: SSX31B_CIPHER_DES_BLOCKSIZE / 8,  ivsize: SSX31B_CIPHER_DES_BLOCKSIZE / 8,  key_schedule_size: SSX31B_CIPHER_DES_KEY_SCHEDULE_SIZE,  key_size_mask: SSX31B_CIPHER_DES_KEY_SIZE_MASK,  __xSSX31B_INIT_CIPHER_BLKOPS(SSX31B_CIPHER_DES_SYMBOL(_cbc)),  __xSSX31B_INIT_CIPHER_OPS};/*des_ede3 ECB*/static struct cipher_implementation SSX31B_CIPHER_3DES_SYMBOL(_ecb)={  {{NULL, NULL}, CIPHER_MODE_ECB, SSX31B_CIPHER_3DES_STR "-ecb"},  blocksize: SSX31B_CIPHER_3DES_BLOCKSIZE / 8,  ivsize: 0,  key_schedule_size: SSX31B_CIPHER_3DES_KEY_SCHEDULE_SIZE,  key_size_mask: SSX31B_CIPHER_3DES_KEY_SIZE_MASK,  __xSSX31B_INIT_CIPHER_BLKOPS(SSX31B_CIPHER_3DES_SYMBOL(_ecb)),  __xSSX31B_INIT_CIPHER_OPS};/*des_ede3 CBC*/static struct cipher_implementation SSX31B_CIPHER_3DES_SYMBOL(_cbc)={  {{NULL, NULL}, CIPHER_MODE_CBC, SSX31B_CIPHER_3DES_STR "-cbc"},  blocksize: SSX31B_CIPHER_3DES_BLOCKSIZE / 8,  ivsize: SSX31B_CIPHER_3DES_BLOCKSIZE / 8,  key_schedule_size: SSX31B_CIPHER_3DES_KEY_SCHEDULE_SIZE,  key_size_mask: SSX31B_CIPHER_3DES_KEY_SIZE_MASK,  __xSSX31B_INIT_CIPHER_BLKOPS(SSX31B_CIPHER_3DES_SYMBOL(_cbc)),  __xSSX31B_INIT_CIPHER_OPS};/*aes ECB*/static struct cipher_implementation SSX31B_CIPHER_AES_SYMBOL(_ecb)={  {{NULL, NULL}, CIPHER_MODE_ECB, SSX31B_CIPHER_AES_STR "-ecb"},  blocksize: SSX31B_CIPHER_AES_BLOCKSIZE / 8,  ivsize: 0,  key_schedule_size: SSX31B_CIPHER_AES_KEY_SCHEDULE_SIZE,  key_size_mask: SSX31B_CIPHER_AES_KEY_SIZE_MASK,  __xSSX31B_INIT_CIPHER_BLKOPS(SSX31B_CIPHER_AES_SYMBOL(_ecb)),  __xSSX31B_INIT_CIPHER_OPS};/*aes CBC*/static struct cipher_implementation SSX31B_CIPHER_AES_SYMBOL(_cbc)={  {{NULL, NULL}, CIPHER_MODE_CBC, SSX31B_CIPHER_AES_STR "-cbc"},  blocksize: SSX31B_CIPHER_AES_BLOCKSIZE / 8,  ivsize: SSX31B_CIPHER_AES_BLOCKSIZE / 8,  key_schedule_size: SSX31B_CIPHER_AES_KEY_SCHEDULE_SIZE,  key_size_mask: SSX31B_CIPHER_AES_KEY_SIZE_MASK,  __xSSX31B_INIT_CIPHER_BLKOPS(SSX31B_CIPHER_AES_SYMBOL(_cbc)),  __xSSX31B_INIT_CIPHER_OPS};/*scb2 ECB*/static struct cipher_implementation SSX31B_CIPHER_SCB2_SYMBOL(_ecb)={  {{NULL, NULL}, CIPHER_MODE_ECB, SSX31B_CIPHER_SCB2_STR "-ecb"},  blocksize: SSX31B_CIPHER_SCB2_BLOCKSIZE / 8,  ivsize: 0,  key_schedule_size: SSX31B_CIPHER_SCB2_KEY_SCHEDULE_SIZE,  key_size_mask: SSX31B_CIPHER_SCB2_KEY_SIZE_MASK,  __xSSX31B_INIT_CIPHER_BLKOPS(SSX31B_CIPHER_SCB2_SYMBOL(_ecb)),  __xSSX31B_INIT_CIPHER_OPS};/*scb2 CBC*/static struct cipher_implementation SSX31B_CIPHER_SCB2_SYMBOL(_cbc)={  {{NULL, NULL}, CIPHER_MODE_CBC, SSX31B_CIPHER_SCB2_STR "-cbc"},  blocksize: SSX31B_CIPHER_SCB2_BLOCKSIZE / 8,  ivsize: SSX31B_CIPHER_SCB2_BLOCKSIZE / 8,  key_schedule_size: SSX31B_CIPHER_SCB2_KEY_SCHEDULE_SIZE,  key_size_mask: SSX31B_CIPHER_SCB2_KEY_SIZE_MASK,  __xSSX31B_INIT_CIPHER_BLKOPS(SSX31B_CIPHER_SCB2_SYMBOL(_cbc)),  __xSSX31B_INIT_CIPHER_OPS};/*---------------------------------------------------*//*------digest---------------------------------------------*/#ifdef NOT_ONLY_HMAC#define SSX31B_INIT_DIGEST_OPS(name)       \		_open:   name##_open,			\		_update: name##_update,			\		_digest: name##_digest,			\		_close:  name##_close,			\		_hmac:   name##_hmac,			\		lock:   SSX31B_CRYPTO_SYMBOL(_lock),			\		unlock: SSX31B_CRYPTO_SYMBOL(_unlock),	\		realloc_context: ssx31b_default_realloc_digest_context,	\		free_context: ssx31b_default_free_digest_context	#else#define SSX31B_INIT_DIGEST_OPS(name)       \		_open:   ssx31b_default_open,			\		_update: ssx31b_default_update,			\		_digest: ssx31b_default_digest,			\		_close:  ssx31b_default_close,			\		_hmac:   name##_hmac,			\		lock:   SSX31B_CRYPTO_SYMBOL(_lock),			\		unlock: SSX31B_CRYPTO_SYMBOL(_unlock),	\		realloc_context: ssx31b_default_realloc_digest_context,	\		free_context: ssx31b_default_free_digest_context	#endif#define __xSSX31B_INIT_DIGEST_OPS(name)	SSX31B_INIT_DIGEST_OPS(name)/*md5*/static struct digest_implementation SSX31B_DIGEST_MD5_ID = {	{{NULL, NULL}, 0, SSX31B_DIGEST_MD5_STR},	blocksize: SSX31B_DIGEST_MD5_BLOCKSIZE,	working_size: SSX31B_DIGEST_MD5_SIZE,	__xSSX31B_INIT_DIGEST_OPS(SSX31B_DIGEST_MD5_ID)};/*sha1*/static struct digest_implementation SSX31B_DIGEST_SHA1_ID = {	{{NULL, NULL}, 0, SSX31B_DIGEST_SHA1_STR},	blocksize: SSX31B_DIGEST_SHA1_BLOCKSIZE,	working_size: SSX31B_DIGEST_SHA1_SIZE,	__xSSX31B_INIT_DIGEST_OPS(SSX31B_DIGEST_SHA1_ID)};/*---------------------------------------------------*//* default init/cleanup functions */#if !defined(SSX31B_NO_CRYPTO_DEFAULT_INIT_CLEANUP_OPS)static int __initSSX31B_CRYPTO_SYMBOL(_init) (void){#if defined(SSX31B_CIPHER_PRE_INIT_HOOK)  SSX31B_CIPHER_PRE_INIT_HOOK#endif  ssx31b_ctx_mapping_init();/*cipher register*/  if (register_cipher (& SSX31B_CIPHER_DES_SYMBOL(_ecb)))    printk (KERN_WARNING "Couldn't register " SSX31B_CIPHER_DES_STR "-ecb encryption\n");  if (register_cipher (& SSX31B_CIPHER_DES_SYMBOL(_cbc)))    printk (KERN_WARNING "Couldn't register " SSX31B_CIPHER_DES_STR "-cbc encryption\n");  if (register_cipher (& SSX31B_CIPHER_3DES_SYMBOL(_ecb)))    printk (KERN_WARNING "Couldn't register " SSX31B_CIPHER_3DES_STR "-ecb encryption\n");  if (register_cipher (& SSX31B_CIPHER_3DES_SYMBOL(_cbc)))    printk (KERN_WARNING "Couldn't register " SSX31B_CIPHER_3DES_STR "-cbc encryption\n");  if (register_cipher (& SSX31B_CIPHER_AES_SYMBOL(_ecb)))    printk (KERN_WARNING "Couldn't register " SSX31B_CIPHER_AES_STR "-ecb encryption\n");  if (register_cipher (& SSX31B_CIPHER_AES_SYMBOL(_cbc)))    printk (KERN_WARNING "Couldn't register " SSX31B_CIPHER_AES_STR "-cbc encryption\n");  if (register_cipher (& SSX31B_CIPHER_SCB2_SYMBOL(_ecb)))    printk (KERN_WARNING "Couldn't register " SSX31B_CIPHER_SCB2_STR "-ecb encryption\n");  if (register_cipher (& SSX31B_CIPHER_SCB2_SYMBOL(_cbc)))    printk (KERN_WARNING "Couldn't register " SSX31B_CIPHER_SCB2_STR "-cbc encryption\n");/*digest register*//*  if (register_digest(& SSX31B_DIGEST_MD5_ID))		printk (KERN_WARNING "Couldn't register " SSX31B_DIGEST_MD5_STR " digest\n");  if (register_digest(& SSX31B_DIGEST_SHA1_ID))		printk (KERN_WARNING "Couldn't register " SSX31B_DIGEST_SHA1_STR " digest\n");*/#ifdef MODULE_WITH_TEST	ssx31b_crypto_test_cipher();	//ssx31b_crypto_test_hmac();#endif  return 0;}#define __xmodule_init(s) module_init(s)__xmodule_init (SSX31B_CRYPTO_SYMBOL(_init));#undef __xmodule_initstatic void __exitSSX31B_CRYPTO_SYMBOL(_cleanup) (void){/*cipher unregister*/  if (unregister_cipher (& SSX31B_CIPHER_DES_SYMBOL(_ecb)))    printk (KERN_WARNING "Couldn't unregister " SSX31B_CIPHER_DES_STR "-ecb encryption\n");  if (unregister_cipher (& SSX31B_CIPHER_DES_SYMBOL(_cbc)))    printk (KERN_WARNING "Couldn't unregister " SSX31B_CIPHER_DES_STR "-cbc encryption\n");  if (unregister_cipher (& SSX31B_CIPHER_3DES_SYMBOL(_ecb)))    printk (KERN_WARNING "Couldn't unregister " SSX31B_CIPHER_3DES_STR "-ecb encryption\n");  if (unregister_cipher (& SSX31B_CIPHER_3DES_SYMBOL(_cbc)))    printk (KERN_WARNING "Couldn't unregister " SSX31B_CIPHER_3DES_STR "-cbc encryption\n");  if (unregister_cipher (& SSX31B_CIPHER_AES_SYMBOL(_ecb)))    printk (KERN_WARNING "Couldn't unregister " SSX31B_CIPHER_AES_STR "-ecb encryption\n");  if (unregister_cipher (& SSX31B_CIPHER_AES_SYMBOL(_cbc)))    printk (KERN_WARNING "Couldn't unregister " SSX31B_CIPHER_AES_STR "-cbc encryption\n");  if (unregister_cipher (& SSX31B_CIPHER_SCB2_SYMBOL(_ecb)))    printk (KERN_WARNING "Couldn't unregister " SSX31B_CIPHER_SCB2_STR "-ecb encryption\n");  if (unregister_cipher (& SSX31B_CIPHER_SCB2_SYMBOL(_cbc)))    printk (KERN_WARNING "Couldn't unregister " SSX31B_CIPHER_SCB2_STR "-cbc encryption\n");/*digest unregister*//*  if (unregister_digest(& SSX31B_DIGEST_MD5_ID))		printk (KERN_WARNING "Couldn't unregister " SSX31B_DIGEST_MD5_STR " digest\n");  if (unregister_digest(& SSX31B_DIGEST_SHA1_ID))		printk (KERN_WARNING "Couldn't unregister " SSX31B_DIGEST_SHA1_STR " digest\n");*/}#define __xmodule_exit(s) module_exit(s)__xmodule_exit (SSX31B_CRYPTO_SYMBOL(_cleanup));#undef __xmodule_exit#endif /* SSX31B_NO_CRYPTO_DEFAULT_INIT_CLEANUP_OPS *//* EOF */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -