📄 ssx31b_cipher_digest.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 + -