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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? aes.c

?? WPA在Linux下實現(xiàn)的原代碼 WPA在Linux下實現(xiàn)的原代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
#define TE4(i) ((Te0[(i)] >> 8) & 0x000000ff)#define TD0(i) Td0[((i) >> 24) & 0xff]#define TD1(i) rotr(Td0[((i) >> 16) & 0xff], 8)#define TD2(i) rotr(Td0[((i) >> 8) & 0xff], 16)#define TD3(i) rotr(Td0[(i) & 0xff], 24)#define TD41(i) (Td4s[((i) >> 24) & 0xff] << 24)#define TD42(i) (Td4s[((i) >> 16) & 0xff] << 16)#define TD43(i) (Td4s[((i) >> 8) & 0xff] << 8)#define TD44(i) (Td4s[(i) & 0xff])#define TD0_(i) Td0[(i) & 0xff]#define TD1_(i) rotr(Td0[(i) & 0xff], 8)#define TD2_(i) rotr(Td0[(i) & 0xff], 16)#define TD3_(i) rotr(Td0[(i) & 0xff], 24)#endif /* AES_SMALL_TABLES */#define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)#ifdef _MSC_VER#define GETU32(p) SWAP(*((u32 *)(p)))#define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }#else#define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ \((u32)(pt)[2] <<  8) ^ ((u32)(pt)[3]))#define PUTU32(ct, st) { \(ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); \(ct)[2] = (u8)((st) >>  8); (ct)[3] = (u8)(st); }#endif/** * Expand the cipher key into the encryption key schedule. * * @return	the number of rounds for the given cipher key size. */void rijndaelKeySetupEnc(u32 rk[/*44*/], const u8 cipherKey[]){	int i;	u32 temp;	rk[0] = GETU32(cipherKey     );	rk[1] = GETU32(cipherKey +  4);	rk[2] = GETU32(cipherKey +  8);	rk[3] = GETU32(cipherKey + 12);	for (i = 0; i < 10; i++) {		temp  = rk[3];		rk[4] = rk[0] ^			TE421(temp) ^ TE432(temp) ^ TE443(temp) ^ TE414(temp) ^			RCON(i);		rk[5] = rk[1] ^ rk[4];		rk[6] = rk[2] ^ rk[5];		rk[7] = rk[3] ^ rk[6];		rk += 4;	}}/** * Expand the cipher key into the decryption key schedule. * * @return	the number of rounds for the given cipher key size. */void rijndaelKeySetupDec(u32 rk[/*44*/], const u8 cipherKey[]){	int Nr = 10, i, j;	u32 temp;	/* expand the cipher key: */	rijndaelKeySetupEnc(rk, cipherKey);	/* invert the order of the round keys: */	for (i = 0, j = 4*Nr; i < j; i += 4, j -= 4) {		temp = rk[i    ]; rk[i    ] = rk[j    ]; rk[j    ] = temp;		temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;		temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;		temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;	}	/* apply the inverse MixColumn transform to all round keys but the	 * first and the last: */	for (i = 1; i < Nr; i++) {		rk += 4;		for (j = 0; j < 4; j++) {			rk[j] = TD0_(TE4((rk[j] >> 24)       )) ^				TD1_(TE4((rk[j] >> 16) & 0xff)) ^				TD2_(TE4((rk[j] >>  8) & 0xff)) ^				TD3_(TE4((rk[j]      ) & 0xff));		}	}}void rijndaelEncrypt(const u32 rk[/*44*/], const u8 pt[16], u8 ct[16]){	u32 s0, s1, s2, s3, t0, t1, t2, t3;	const int Nr = 10;#ifndef FULL_UNROLL	int r;#endif /* ?FULL_UNROLL */	/*	 * map byte array block to cipher state	 * and add initial round key:	 */	s0 = GETU32(pt     ) ^ rk[0];	s1 = GETU32(pt +  4) ^ rk[1];	s2 = GETU32(pt +  8) ^ rk[2];	s3 = GETU32(pt + 12) ^ rk[3];#define ROUND(i,d,s) \d##0 = TE0(s##0) ^ TE1(s##1) ^ TE2(s##2) ^ TE3(s##3) ^ rk[4 * i]; \d##1 = TE0(s##1) ^ TE1(s##2) ^ TE2(s##3) ^ TE3(s##0) ^ rk[4 * i + 1]; \d##2 = TE0(s##2) ^ TE1(s##3) ^ TE2(s##0) ^ TE3(s##1) ^ rk[4 * i + 2]; \d##3 = TE0(s##3) ^ TE1(s##0) ^ TE2(s##1) ^ TE3(s##2) ^ rk[4 * i + 3]#ifdef FULL_UNROLL	ROUND(1,t,s);	ROUND(2,s,t);	ROUND(3,t,s);	ROUND(4,s,t);	ROUND(5,t,s);	ROUND(6,s,t);	ROUND(7,t,s);	ROUND(8,s,t);	ROUND(9,t,s);	rk += Nr << 2;#else  /* !FULL_UNROLL */	/* Nr - 1 full rounds: */	r = Nr >> 1;	for (;;) {		ROUND(1,t,s);		rk += 8;		if (--r == 0)			break;		ROUND(0,s,t);	}#endif /* ?FULL_UNROLL */#undef ROUND	/*	 * apply last round and	 * map cipher state to byte array block:	 */	s0 = TE41(t0) ^ TE42(t1) ^ TE43(t2) ^ TE44(t3) ^ rk[0];	PUTU32(ct     , s0);	s1 = TE41(t1) ^ TE42(t2) ^ TE43(t3) ^ TE44(t0) ^ rk[1];	PUTU32(ct +  4, s1);	s2 = TE41(t2) ^ TE42(t3) ^ TE43(t0) ^ TE44(t1) ^ rk[2];	PUTU32(ct +  8, s2);	s3 = TE41(t3) ^ TE42(t0) ^ TE43(t1) ^ TE44(t2) ^ rk[3];	PUTU32(ct + 12, s3);}void rijndaelDecrypt(const u32 rk[/*44*/], const u8 ct[16], u8 pt[16]){	u32 s0, s1, s2, s3, t0, t1, t2, t3;	const int Nr = 10;#ifndef FULL_UNROLL	int r;#endif /* ?FULL_UNROLL */	/*	 * map byte array block to cipher state	 * and add initial round key:	 */	s0 = GETU32(ct     ) ^ rk[0];	s1 = GETU32(ct +  4) ^ rk[1];	s2 = GETU32(ct +  8) ^ rk[2];	s3 = GETU32(ct + 12) ^ rk[3];#define ROUND(i,d,s) \d##0 = TD0(s##0) ^ TD1(s##3) ^ TD2(s##2) ^ TD3(s##1) ^ rk[4 * i]; \d##1 = TD0(s##1) ^ TD1(s##0) ^ TD2(s##3) ^ TD3(s##2) ^ rk[4 * i + 1]; \d##2 = TD0(s##2) ^ TD1(s##1) ^ TD2(s##0) ^ TD3(s##3) ^ rk[4 * i + 2]; \d##3 = TD0(s##3) ^ TD1(s##2) ^ TD2(s##1) ^ TD3(s##0) ^ rk[4 * i + 3]#ifdef FULL_UNROLL	ROUND(1,t,s);	ROUND(2,s,t);	ROUND(3,t,s);	ROUND(4,s,t);	ROUND(5,t,s);	ROUND(6,s,t);	ROUND(7,t,s);	ROUND(8,s,t);	ROUND(9,t,s);	rk += Nr << 2;#else  /* !FULL_UNROLL */	/* Nr - 1 full rounds: */	r = Nr >> 1;	for (;;) {		ROUND(1,t,s);		rk += 8;		if (--r == 0)			break;		ROUND(0,s,t);	}#endif /* ?FULL_UNROLL */#undef ROUND	/*	 * apply last round and	 * map cipher state to byte array block:	 */	s0 = TD41(t0) ^ TD42(t3) ^ TD43(t2) ^ TD44(t1) ^ rk[0];	PUTU32(pt     , s0);	s1 = TD41(t1) ^ TD42(t0) ^ TD43(t3) ^ TD44(t2) ^ rk[1];	PUTU32(pt +  4, s1);	s2 = TD41(t2) ^ TD42(t1) ^ TD43(t0) ^ TD44(t3) ^ rk[2];	PUTU32(pt +  8, s2);	s3 = TD41(t3) ^ TD42(t2) ^ TD43(t1) ^ TD44(t0) ^ rk[3];	PUTU32(pt + 12, s3);}/* Generic wrapper functions for AES functions */void * aes_encrypt_init(const u8 *key, size_t len){	u32 *rk;	if (len != 16)		return NULL;	rk = malloc(4 * 44);	if (rk == NULL)		return NULL;	rijndaelKeySetupEnc(rk, key);	return rk;}void aes_encrypt(void *ctx, const u8 *plain, u8 *crypt){	rijndaelEncrypt(ctx, plain, crypt);}void aes_encrypt_deinit(void *ctx){	free(ctx);}void * aes_decrypt_init(const u8 *key, size_t len){	u32 *rk;	if (len != 16)		return NULL;	rk = malloc(4 * 44);	if (rk == NULL)		return NULL;	rijndaelKeySetupDec(rk, key);	return rk;}void aes_decrypt(void *ctx, const u8 *crypt, u8 *plain){	rijndaelDecrypt(ctx, crypt, plain);}void aes_decrypt_deinit(void *ctx){	free(ctx);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷综合久久一区二区三区| 一区二区三区四区在线播放| 在线视频综合导航| 麻豆精品在线视频| 国产a区久久久| 亚洲电影在线免费观看| 欧美国产日本韩| 日韩欧美你懂的| 欧美亚洲免费在线一区| 成人免费视频免费观看| 日韩不卡一区二区| 亚洲品质自拍视频网站| 国产亚洲欧洲997久久综合| 欧美精品777| 91网上在线视频| 国产福利不卡视频| 蜜桃视频在线一区| 亚洲va韩国va欧美va精品| 亚洲色图丝袜美腿| 亚洲国产成人一区二区三区| 精品国产一区二区亚洲人成毛片| 欧美午夜精品一区二区三区| 99久久国产综合精品女不卡| 国产精品一二三四| 韩国欧美国产1区| 日本亚洲天堂网| 亚洲国产你懂的| 一区二区在线电影| 综合色中文字幕| 中文字幕高清一区| 亚洲v日本v欧美v久久精品| 久久se精品一区二区| 天堂久久一区二区三区| 一区二区欧美视频| 一区二区在线观看免费视频播放| 中文字幕精品在线不卡| 国产精品国产a| 国产精品三级av| 国产精品久久777777| 国产精品国产自产拍高清av王其| 国产女人18水真多18精品一级做| 精品国产伦理网| 欧美精品一区二区高清在线观看| 欧美哺乳videos| 精品久久久久久综合日本欧美| 欧美成人免费网站| 精品日韩99亚洲| 久久亚洲免费视频| 国产亚洲欧美色| 国产精品久久久久久久蜜臀| 国产精品久久久久久久岛一牛影视| 国产日韩欧美高清| 中文字幕一区二区三区在线观看| 国产精品国产三级国产aⅴ入口| 国产精品青草久久| 亚洲免费av高清| 亚洲国产日韩一区二区| 日韩激情一区二区| 韩国在线一区二区| 国产成人精品亚洲午夜麻豆| 成人高清免费观看| 欧美色图激情小说| 日韩一区二区三区高清免费看看| 日韩欧美在线不卡| 日本一区二区动态图| 亚洲日本欧美天堂| 亚洲国产aⅴ天堂久久| 日韩1区2区3区| 国产一区福利在线| 91视频免费观看| 欧美日韩不卡视频| 精品精品国产高清一毛片一天堂| 国产欧美日韩三级| 亚洲六月丁香色婷婷综合久久 | 亚洲国产精品av| 久久精子c满五个校花| 国产精品不卡一区二区三区| 亚洲在线中文字幕| 国精产品一区一区三区mba桃花| 成人午夜免费视频| 欧美日韩国产a| 久久精品欧美日韩精品| 一区二区三区四区在线| 六月丁香综合在线视频| 99精品国产视频| 欧美乱妇15p| 国产精品视频麻豆| 免费高清视频精品| 91麻豆swag| 欧美videos中文字幕| 夜夜精品视频一区二区| 九一久久久久久| 欧美在线观看视频一区二区 | 欧美一区二区免费| 国产日韩精品一区二区浪潮av | 成人av在线一区二区三区| 欧美调教femdomvk| 国产精品卡一卡二| 麻豆成人免费电影| 在线免费观看视频一区| 欧美激情在线免费观看| 蜜臀精品久久久久久蜜臀 | 在线不卡免费av| 国产精品青草综合久久久久99| 免费看日韩精品| 在线观看日韩国产| 欧美国产日本视频| 国产一区二区三区在线观看精品| 欧美三级视频在线观看| 亚洲欧洲精品一区二区精品久久久| 免费成人小视频| 欧美日韩一区 二区 三区 久久精品| 国产嫩草影院久久久久| 久久99热这里只有精品| 欧美日韩成人在线| 亚洲资源在线观看| 99在线视频精品| 日韩欧美一区在线| 日韩国产精品91| 日本精品视频一区二区| 国产精品麻豆久久久| 国产成人精品一区二区三区四区 | 亚洲另类在线制服丝袜| 风间由美一区二区三区在线观看| 欧美一区二区免费视频| 同产精品九九九| 精品视频在线免费观看| 亚洲免费观看高清| av电影天堂一区二区在线| 亚洲国产精品ⅴa在线观看| 国产成人av电影在线播放| 久久综合五月天婷婷伊人| 免费观看30秒视频久久| 欧美一级二级三级乱码| 日韩成人午夜精品| 日韩欧美中文一区二区| 久久精品国产一区二区| 日韩欧美123| 久久国产日韩欧美精品| 精品少妇一区二区三区| 精品在线视频一区| 久久久久国产精品人| 国产一区欧美二区| 日本一区二区三区在线不卡| 国产一区二区91| 日本aⅴ精品一区二区三区| 欧美浪妇xxxx高跟鞋交| 天天做天天摸天天爽国产一区| 欧美疯狂做受xxxx富婆| 日本不卡高清视频| 欧美精品一区二区三| 国产成人综合在线| 国产精品传媒视频| 色综合久久中文字幕| 亚洲电影第三页| 91精品国产一区二区三区| 精久久久久久久久久久| 国产精品视频yy9299一区| av爱爱亚洲一区| 亚洲午夜视频在线| 欧美成人女星排名| www.亚洲激情.com| 亚洲线精品一区二区三区| 欧美久久一二三四区| 狠狠狠色丁香婷婷综合久久五月| 亚洲国产高清aⅴ视频| 欧美三级在线看| 久久超碰97中文字幕| 中文字幕av一区二区三区免费看| 色av成人天堂桃色av| 日韩经典中文字幕一区| 亚洲精品一区二区三区福利| 成+人+亚洲+综合天堂| 亚洲成精国产精品女| 久久蜜桃一区二区| 色婷婷综合五月| 蜜臀av亚洲一区中文字幕| 久久新电视剧免费观看| 97久久精品人人爽人人爽蜜臀| 国产精品沙发午睡系列990531| 99re这里只有精品首页| 性做久久久久久免费观看| 欧美精品一区二区三区在线| 91香蕉视频污| 久久精品国产一区二区| 一区二区三区四区乱视频| 欧美mv日韩mv国产| 91麻豆免费看片| 久久99久久99小草精品免视看| 亚洲日本一区二区| 久久久另类综合| 91免费视频网| 国产一区二区三区免费| 亚洲第一成人在线| 国产精品素人视频| 欧美成人video| 在线视频欧美精品| av不卡一区二区三区| 国产在线视视频有精品| 五月天国产精品|