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

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

?? aes.c

?? WLAN無線網絡管理的最新程序
?? C
?? 第 1 頁 / 共 4 頁
字號:
#define TE443(i) (Te0[(i) & 0xff] & 0x0000ff00)#define TE414(i) ((Te0[((i) >> 24) & 0xff] >> 8) & 0x000000ff)#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 = os_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){	os_free(ctx);}void * aes_decrypt_init(const u8 *key, size_t len){	u32 *rk;	if (len != 16)		return NULL;	rk = os_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){	os_free(ctx);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国av一区二区三区四区| 欧美精品一二三四| 色琪琪一区二区三区亚洲区| 欧美一区二区国产| 国产精品久久免费看| 日韩一区精品视频| 一本大道综合伊人精品热热 | 亚洲成人你懂的| 黄色资源网久久资源365| 欧美亚洲图片小说| 国产农村妇女毛片精品久久麻豆| 性感美女极品91精品| 成人v精品蜜桃久久一区| 91精品国产欧美一区二区| 亚洲女同ⅹxx女同tv| 国产一区二区三区在线看麻豆| 欧美日韩mp4| 亚洲精品视频免费观看| 国产福利91精品一区二区三区| 51精品国自产在线| 依依成人综合视频| 91小视频在线免费看| 久久久国产一区二区三区四区小说| 奇米色一区二区| 色婷婷激情综合| 日韩毛片视频在线看| 国产成人免费高清| 91精品国产乱| 美女一区二区视频| 欧美日韩电影在线| 亚洲国产一区在线观看| 一本久久精品一区二区| 亚洲女人的天堂| 色综合久久综合| 一区二区三区在线影院| 99riav久久精品riav| 最新久久zyz资源站| 懂色av中文一区二区三区| 久久久不卡影院| 国产一区在线不卡| 久久久亚洲精品一区二区三区| 精品一区二区三区的国产在线播放| 91精品在线免费| 免费成人av在线| 日韩免费观看2025年上映的电影 | 欧美三级午夜理伦三级中视频| 日本一区二区三区高清不卡| 不卡的av网站| 自拍偷拍欧美精品| 色乱码一区二区三区88| 午夜精品福利一区二区蜜股av| 欧美美女喷水视频| 美女爽到高潮91| www国产成人免费观看视频 深夜成人网| 精品无人区卡一卡二卡三乱码免费卡 | 午夜国产精品影院在线观看| 欧美人与禽zozo性伦| 另类调教123区| 国产欧美一区二区精品仙草咪| 99这里只有久久精品视频| 亚洲乱码国产乱码精品精98午夜 | 欧美精品精品一区| 久久99热狠狠色一区二区| 国产亚洲成av人在线观看导航 | 一本久久精品一区二区| 婷婷亚洲久悠悠色悠在线播放| 日韩欧美一二三| 成人禁用看黄a在线| 亚洲一区二区欧美| 日韩女优电影在线观看| 福利电影一区二区三区| 亚洲欧美成aⅴ人在线观看| 欧美一区二区黄色| 波多野洁衣一区| 午夜精品福利一区二区蜜股av | 激情小说欧美图片| 日韩美女视频一区| 欧美xxxx在线观看| 色综合天天综合网天天看片| 日本成人在线网站| 亚洲欧洲一区二区在线播放| 日韩一区和二区| 91浏览器在线视频| 狠狠网亚洲精品| 一区二区三区高清在线| 久久久无码精品亚洲日韩按摩| 色欲综合视频天天天| 国模冰冰炮一区二区| 亚洲国产综合91精品麻豆| 久久久久久久久久久电影| 欧美亚洲一区三区| av在线不卡电影| 久草在线在线精品观看| 亚洲国产日韩在线一区模特| 国产区在线观看成人精品| 欧美浪妇xxxx高跟鞋交| 99精品欧美一区| 国产91丝袜在线18| 伦理电影国产精品| 午夜不卡av免费| 亚洲视频1区2区| 日本一区二区成人| 欧美精品一区二区在线观看| 欧美老年两性高潮| 欧美视频中文字幕| www.av精品| 东方aⅴ免费观看久久av| 蜜臀精品一区二区三区在线观看| 亚洲国产成人av网| 亚洲欧美区自拍先锋| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 日本不卡视频在线| 亚洲自拍偷拍综合| 《视频一区视频二区| 亚洲欧洲日韩在线| 成人免费一区二区三区在线观看| 国产精品家庭影院| 国产精品无遮挡| 国产精品久久久久久久岛一牛影视| 久久久精品免费网站| 久久久蜜桃精品| 国产精品午夜久久| 国产精品久久久一区麻豆最新章节| 国产亚洲美州欧州综合国| 久久看人人爽人人| 国产农村妇女毛片精品久久麻豆| 国产亚洲美州欧州综合国| 国产视频视频一区| 国产精品传媒视频| 一区二区三区中文免费| 亚洲h精品动漫在线观看| 亚洲不卡一区二区三区| 五月综合激情婷婷六月色窝| 视频一区国产视频| 另类调教123区| 国产成人综合亚洲网站| 成人国产精品免费观看视频| 91影视在线播放| 色视频成人在线观看免| 51精品秘密在线观看| 日韩欧美一区在线观看| 久久久久国产精品免费免费搜索 | 日韩欧美一区在线| 久久久久综合网| 亚洲欧美日韩国产综合在线| 视频一区二区三区中文字幕| 免费成人在线观看| 风流少妇一区二区| 91久久久免费一区二区| 欧美一级久久久| 国产精品视频你懂的| 亚洲国产精品久久久久秋霞影院 | 1区2区3区欧美| 日韩av在线发布| 成人性生交大片免费| 欧美日韩亚洲不卡| 久久五月婷婷丁香社区| 亚洲欧美韩国综合色| 蜜桃视频一区二区三区| 99国产精品久久久久久久久久久 | 久久亚洲捆绑美女| 亚洲人成7777| 久久99国产乱子伦精品免费| av一二三不卡影片| 日韩欧美区一区二| 最新国产の精品合集bt伙计| 久久av资源网| 欧美中文字幕亚洲一区二区va在线 | 亚洲国产综合色| 成人免费高清在线观看| 日韩一区二区视频| 亚洲免费av观看| 国产一区 二区 三区一级| 欧美日韩成人综合在线一区二区| 国产女主播视频一区二区| 青青草97国产精品免费观看| 色悠久久久久综合欧美99| 久久久亚洲精华液精华液精华液| 日韩精品亚洲一区| 色综合久久综合网97色综合| 国产欧美一区二区精品婷婷| 麻豆国产欧美日韩综合精品二区| 在线一区二区三区四区五区| 亚洲婷婷综合色高清在线| 国产在线精品免费| 日韩欧美资源站| 日韩黄色片在线观看| 欧美亚洲图片小说| 亚洲男同性视频| 99精品热视频| 中文字幕亚洲在| 成人免费视频国产在线观看| 国产亚洲欧美日韩日本| 精品午夜久久福利影院| 日韩欧美中文字幕精品| 日本中文字幕一区二区视频| 欧美少妇bbb| 亚洲成年人网站在线观看| 91丝袜美女网| 亚洲日本va在线观看|