亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? des_z990.c

?? h內核
?? C
字號:
/* * Cryptographic API. * * z990 implementation of the DES Cipher Algorithm. * * Copyright (c) 2003 IBM Deutschland Entwicklung GmbH, IBM Corporation * Author(s): Thomas Spatzier (tspat@de.ibm.com) * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * */#include <linux/init.h>#include <linux/module.h>#include <linux/mm.h>#include <linux/errno.h>#include <asm/scatterlist.h>#include <linux/crypto.h>#include "crypt_z990.h"#include "crypto_des.h"#define DES_BLOCK_SIZE 8#define DES_KEY_SIZE 8#define DES3_128_KEY_SIZE	(2 * DES_KEY_SIZE)#define DES3_128_BLOCK_SIZE	DES_BLOCK_SIZE#define DES3_192_KEY_SIZE	(3 * DES_KEY_SIZE)#define DES3_192_BLOCK_SIZE	DES_BLOCK_SIZEstruct crypt_z990_des_ctx {	u8 iv[DES_BLOCK_SIZE];	u8 key[DES_KEY_SIZE];};struct crypt_z990_des3_128_ctx {	u8 iv[DES_BLOCK_SIZE];	u8 key[DES3_128_KEY_SIZE];};struct crypt_z990_des3_192_ctx {	u8 iv[DES_BLOCK_SIZE];	u8 key[DES3_192_KEY_SIZE];};static intdes_setkey(void *ctx, const u8 *key, unsigned int keylen, u32 *flags){	struct crypt_z990_des_ctx *dctx;	int ret;	dctx = ctx;	//test if key is valid (not a weak key)	ret = crypto_des_check_key(key, keylen, flags);	if (ret == 0){		memcpy(dctx->key, key, keylen);	}	return ret;}static voiddes_encrypt(void *ctx, u8 *dst, const u8 *src){	struct crypt_z990_des_ctx *dctx;	dctx = ctx;	crypt_z990_km(KM_DEA_ENCRYPT, dctx->key, dst, src, DES_BLOCK_SIZE);}static voiddes_decrypt(void *ctx, u8 *dst, const u8 *src){	struct crypt_z990_des_ctx *dctx;	dctx = ctx;	crypt_z990_km(KM_DEA_DECRYPT, dctx->key, dst, src, DES_BLOCK_SIZE);}static struct crypto_alg des_alg = {	.cra_name		=	"des",	.cra_flags		=	CRYPTO_ALG_TYPE_CIPHER,	.cra_blocksize		=	DES_BLOCK_SIZE,	.cra_ctxsize		=	sizeof(struct crypt_z990_des_ctx),	.cra_module		=	THIS_MODULE,	.cra_list		=	LIST_HEAD_INIT(des_alg.cra_list),	.cra_u			=	{ .cipher = {	.cia_min_keysize	=	DES_KEY_SIZE,	.cia_max_keysize	=	DES_KEY_SIZE,	.cia_setkey		= 	des_setkey,	.cia_encrypt		=	des_encrypt,	.cia_decrypt		=	des_decrypt } }};/* * RFC2451: * *   For DES-EDE3, there is no known need to reject weak or *   complementation keys.  Any weakness is obviated by the use of *   multiple keys. * *   However, if the two  independent 64-bit keys are equal, *   then the DES3 operation is simply the same as DES. *   Implementers MUST reject keys that exhibit this property. * */static intdes3_128_setkey(void *ctx, const u8 *key, unsigned int keylen, u32 *flags){	int i, ret;	struct crypt_z990_des3_128_ctx *dctx;	const u8* temp_key = key;	dctx = ctx;	if (!(memcmp(key, &key[DES_KEY_SIZE], DES_KEY_SIZE))) {		*flags |= CRYPTO_TFM_RES_BAD_KEY_SCHED;		return -EINVAL;	}	for (i = 0; i < 2; i++,	temp_key += DES_KEY_SIZE) {		ret = crypto_des_check_key(temp_key, DES_KEY_SIZE, flags);		if (ret < 0)			return ret;	}	memcpy(dctx->key, key, keylen);	return 0;}static voiddes3_128_encrypt(void *ctx, u8 *dst, const u8 *src){	struct crypt_z990_des3_128_ctx *dctx;	dctx = ctx;	crypt_z990_km(KM_TDEA_128_ENCRYPT, dctx->key, dst, (void*)src,			DES3_128_BLOCK_SIZE);}static voiddes3_128_decrypt(void *ctx, u8 *dst, const u8 *src){	struct crypt_z990_des3_128_ctx *dctx;	dctx = ctx;	crypt_z990_km(KM_TDEA_128_DECRYPT, dctx->key, dst, (void*)src,			DES3_128_BLOCK_SIZE);}static struct crypto_alg des3_128_alg = {	.cra_name		=	"des3_ede128",	.cra_flags		=	CRYPTO_ALG_TYPE_CIPHER,	.cra_blocksize		=	DES3_128_BLOCK_SIZE,	.cra_ctxsize		=	sizeof(struct crypt_z990_des3_128_ctx),	.cra_module		=	THIS_MODULE,	.cra_list		=	LIST_HEAD_INIT(des3_128_alg.cra_list),	.cra_u			=	{ .cipher = {	.cia_min_keysize	=	DES3_128_KEY_SIZE,	.cia_max_keysize	=	DES3_128_KEY_SIZE,	.cia_setkey		= 	des3_128_setkey,	.cia_encrypt		=	des3_128_encrypt,	.cia_decrypt		=	des3_128_decrypt } }};/* * RFC2451: * *   For DES-EDE3, there is no known need to reject weak or *   complementation keys.  Any weakness is obviated by the use of *   multiple keys. * *   However, if the first two or last two independent 64-bit keys are *   equal (k1 == k2 or k2 == k3), then the DES3 operation is simply the *   same as DES.  Implementers MUST reject keys that exhibit this *   property. * */static intdes3_192_setkey(void *ctx, const u8 *key, unsigned int keylen, u32 *flags){	int i, ret;	struct crypt_z990_des3_192_ctx *dctx;	const u8* temp_key;	dctx = ctx;	temp_key = key;	if (!(memcmp(key, &key[DES_KEY_SIZE], DES_KEY_SIZE) &&	    memcmp(&key[DES_KEY_SIZE], &key[DES_KEY_SIZE * 2],	    					DES_KEY_SIZE))) {		*flags |= CRYPTO_TFM_RES_BAD_KEY_SCHED;		return -EINVAL;	}	for (i = 0; i < 3; i++, temp_key += DES_KEY_SIZE) {		ret = crypto_des_check_key(temp_key, DES_KEY_SIZE, flags);		if (ret < 0){			return ret;		}	}	memcpy(dctx->key, key, keylen);	return 0;}static voiddes3_192_encrypt(void *ctx, u8 *dst, const u8 *src){	struct crypt_z990_des3_192_ctx *dctx;	dctx = ctx;	crypt_z990_km(KM_TDEA_192_ENCRYPT, dctx->key, dst, (void*)src,			DES3_192_BLOCK_SIZE);}static voiddes3_192_decrypt(void *ctx, u8 *dst, const u8 *src){	struct crypt_z990_des3_192_ctx *dctx;	dctx = ctx;	crypt_z990_km(KM_TDEA_192_DECRYPT, dctx->key, dst, (void*)src,			DES3_192_BLOCK_SIZE);}static struct crypto_alg des3_192_alg = {	.cra_name		=	"des3_ede",	.cra_flags		=	CRYPTO_ALG_TYPE_CIPHER,	.cra_blocksize		=	DES3_192_BLOCK_SIZE,	.cra_ctxsize		=	sizeof(struct crypt_z990_des3_192_ctx),	.cra_module		=	THIS_MODULE,	.cra_list		=	LIST_HEAD_INIT(des3_192_alg.cra_list),	.cra_u			=	{ .cipher = {	.cia_min_keysize	=	DES3_192_KEY_SIZE,	.cia_max_keysize	=	DES3_192_KEY_SIZE,	.cia_setkey		= 	des3_192_setkey,	.cia_encrypt		=	des3_192_encrypt,	.cia_decrypt		=	des3_192_decrypt } }};static intinit(void){	int ret;	if (!crypt_z990_func_available(KM_DEA_ENCRYPT) ||	    !crypt_z990_func_available(KM_TDEA_128_ENCRYPT) ||	    !crypt_z990_func_available(KM_TDEA_192_ENCRYPT)){		return -ENOSYS;	}	ret = 0;	ret |= (crypto_register_alg(&des_alg) == 0)? 0:1;	ret |= (crypto_register_alg(&des3_128_alg) == 0)? 0:2;	ret |= (crypto_register_alg(&des3_192_alg) == 0)? 0:4;	if (ret){		crypto_unregister_alg(&des3_192_alg);		crypto_unregister_alg(&des3_128_alg);		crypto_unregister_alg(&des_alg);		return -EEXIST;	}	printk(KERN_INFO "crypt_z990: des_z990 loaded.\n");	return 0;}static void __exitfini(void){	crypto_unregister_alg(&des3_192_alg);	crypto_unregister_alg(&des3_128_alg);	crypto_unregister_alg(&des_alg);}module_init(init);module_exit(fini);MODULE_ALIAS("des");MODULE_ALIAS("des3_ede");MODULE_LICENSE("GPL");MODULE_DESCRIPTION("DES & Triple DES EDE Cipher Algorithms");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美乱熟臀69xxxxxx| 久久久高清一区二区三区| 久久综合狠狠综合久久综合88| 欧美国产乱子伦| 日韩高清在线电影| 97久久超碰国产精品| 日韩三级视频中文字幕| 亚洲精品成人精品456| 精品一区二区三区免费| 欧美视频一区二区三区四区| 国产精品久久久久久久久久免费看| 视频一区视频二区中文字幕| 91麻豆swag| 中文字幕不卡三区| 国产一区二区三区在线观看免费视频| 欧美丝袜自拍制服另类| 一区二区在线看| 99re热这里只有精品免费视频| 久久久久97国产精华液好用吗| 日韩精品一二区| 欧美精品丝袜久久久中文字幕| 亚洲狠狠丁香婷婷综合久久久| 床上的激情91.| 国产欧美一区二区精品婷婷| 国产麻豆精品视频| 久久久综合网站| 国产在线播放一区三区四| 欧美第一区第二区| 麻豆精品在线视频| 欧美白人最猛性xxxxx69交| 日本系列欧美系列| 日韩欧美激情四射| 捆绑调教美女网站视频一区| 日韩欧美综合一区| 久久99精品久久久久婷婷| 欧美一级淫片007| 精品一区二区国语对白| 久久久亚洲欧洲日产国码αv| 免费在线一区观看| 精品国产网站在线观看| 国产一区二区三区蝌蚪| 国产亚洲视频系列| 成人美女视频在线观看| 中文字幕一区av| 91官网在线免费观看| 亚洲成a人片综合在线| 欧美一级二级三级乱码| 国产一区二区精品久久| 日本一区二区三区免费乱视频| 成人污污视频在线观看| 日韩美女精品在线| 91精彩视频在线| 日本视频在线一区| 久久久久久一二三区| av成人免费在线观看| 亚洲国产视频一区二区| 欧美大片在线观看一区| 成人福利在线看| 亚洲va天堂va国产va久| 久久色.com| 91成人免费在线| 久久精品国产免费| 中文字幕日韩av资源站| 欧美老人xxxx18| 国产成人aaa| 亚洲aⅴ怡春院| 久久精品亚洲一区二区三区浴池 | 国产精品美女久久久久久久网站| jlzzjlzz亚洲女人18| 午夜在线成人av| 久久久久久电影| 欧美性生交片4| 国产成人一区在线| 亚洲va韩国va欧美va精品| 国产亚洲欧洲一区高清在线观看| 91久久精品一区二区三区| 国产精品中文字幕日韩精品| 亚洲九九爱视频| 久久久高清一区二区三区| 4438亚洲最大| 91麻豆精品视频| 国产成人精品亚洲777人妖 | 亚洲欧美综合在线精品| 91麻豆精品国产自产在线| www.欧美日韩| 精品亚洲porn| 亚洲成人三级小说| 中文字幕制服丝袜一区二区三区 | 欧美日韩大陆一区二区| 成人黄色在线看| 国产一区二区精品在线观看| 日日噜噜夜夜狠狠视频欧美人 | 色综合久久久久综合99| 国产一区二区三区| 青青草一区二区三区| 亚洲精品中文在线| 国产精品色眯眯| 欧美精品一区二区三区四区| 精品视频色一区| 一本大道久久a久久精品综合| 国产成人精品免费在线| 久久av资源站| 奇米影视7777精品一区二区| 亚洲国产成人av网| 夜夜揉揉日日人人青青一国产精品| 国产视频911| 久久精品亚洲国产奇米99| 精品国产一二三区| 精品国产免费一区二区三区四区| 精品视频全国免费看| 在线亚洲人成电影网站色www| 成人三级在线视频| 成人免费毛片app| 懂色av一区二区在线播放| 国产高清无密码一区二区三区| 国内外成人在线| 国产一区二区看久久| 大陆成人av片| 91蜜桃网址入口| 色综合久久综合网欧美综合网| 91首页免费视频| 色妹子一区二区| 欧美三级电影一区| 91精品国模一区二区三区| 欧美日韩国产另类不卡| 日韩一区和二区| 精品精品国产高清a毛片牛牛| 精品国产一区二区三区不卡| 26uuu欧美| 中文字幕在线视频一区| 亚洲精品第一国产综合野| 性做久久久久久久久| 久久国产精品色婷婷| 国产高清在线精品| 91一区在线观看| 91麻豆精品国产91久久久久| 日韩美女视频一区二区在线观看| 91精品国产色综合久久ai换脸| 精品伦理精品一区| 国产精品久久久久aaaa| 亚洲国产婷婷综合在线精品| 免费av成人在线| 成人动漫在线一区| 欧美日韩国产系列| 精品1区2区在线观看| 日韩久久一区二区| 日本少妇一区二区| 国产盗摄视频一区二区三区| 91黄视频在线观看| 精品国产91亚洲一区二区三区婷婷| 洋洋av久久久久久久一区| 日韩电影在线观看一区| 国产99久久精品| 欧美日韩精品一区视频| 2欧美一区二区三区在线观看视频| 国产精品免费人成网站| 日韩在线卡一卡二| 成人禁用看黄a在线| 欧美精品 日韩| 中文字幕中文字幕中文字幕亚洲无线| 亚洲五月六月丁香激情| 福利一区在线观看| 欧美精品 国产精品| 中文在线免费一区三区高中清不卡| 亚洲风情在线资源站| 国产精品一区二区免费不卡| 欧美婷婷六月丁香综合色| 国产亚洲欧美日韩日本| 日韩国产欧美一区二区三区| jiyouzz国产精品久久| 精品久久久久久最新网址| 悠悠色在线精品| 丁香亚洲综合激情啪啪综合| 欧美成人女星排行榜| 亚洲综合视频在线观看| 波多野结衣一区二区三区| 精品久久一区二区| 日本欧美加勒比视频| 91久久久免费一区二区| 最新成人av在线| 福利一区二区在线观看| 日韩精品自拍偷拍| 亚洲第一搞黄网站| 日本精品免费观看高清观看| 国产三区在线成人av| 狠狠色丁香久久婷婷综合丁香| 欧美日韩精品电影| 亚洲一区二区三区四区在线观看| 99热精品一区二区| 国产精品久久久一本精品| 国产成人aaaa| 欧美国产综合色视频| 国产不卡视频在线播放| 精品va天堂亚洲国产| 久久精品国产亚洲a| 91精品国产综合久久香蕉的特点| 午夜精品久久久久久久99樱桃| 91福利视频网站| 亚洲一区在线视频观看| 欧美曰成人黄网|