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

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

?? sqcts.c

?? 一些加密解密的源代碼
?? C
字號(hào):
/*----------------------------*//* Cipher Text Stealing mode  *//*----------------------------*/#include <assert.h>#include <stdlib.h>#include <string.h>#include "square.h"#include "sqcts.h"#define D(p) ((word32 *)(p))#define COPY_BLOCK(target, source) \{ \	(target)[0] = (source)[0]; \	(target)[1] = (source)[1]; \	(target)[2] = (source)[2]; \	(target)[3] = (source)[3]; \} /* COPY_BLOCK */void squareCtsInit (squareCtsContext *ctxCts, const squareBlock key){	assert (ctxCts != NULL);	assert (key != NULL);	memset (ctxCts, 0, sizeof (squareCtsContext));	squareGenerateRoundKeys (key, ctxCts->roundKeys_e, ctxCts->roundKeys_d);} /* squareCtsInit */void squareCtsSetIV (squareCtsContext *ctxCts, const squareBlock iv){	assert (ctxCts != NULL);	if (iv != NULL) {		memcpy (ctxCts->mask, iv, SQUARE_BLOCKSIZE);	}	/* Encrypt the IV so that possibility of correlation with ciphertext is avoided */	squareEncrypt (D(ctxCts->mask), ctxCts->roundKeys_e);} /* squareCtsSetIV */void squareCtsEncrypt (squareCtsContext *ctxCts, byte *buffer, unsigned length){	byte *mask;	unsigned i;	assert (ctxCts != NULL);	assert (buffer != NULL);	assert (length >= SQUARE_BLOCKSIZE);	mask = ctxCts->mask;	while (length >= SQUARE_BLOCKSIZE) {		/* mask and encrypt the current block: */		D(buffer)[0] ^= D(mask)[0];		D(buffer)[1] ^= D(mask)[1];		D(buffer)[2] ^= D(mask)[2];		D(buffer)[3] ^= D(mask)[3];		squareEncrypt (D(buffer), ctxCts->roundKeys_e);		/* update the mask: */		mask = buffer;		/* proceed to the next block, if any: */		buffer += SQUARE_BLOCKSIZE;		length -= SQUARE_BLOCKSIZE;	}	/* save last encrypted block in context */	COPY_BLOCK (D(ctxCts->mask), D(mask));	if (length != 0) {		/* "ciphertext stealing" (using ctxCts->mask as temporary buffer) */		for (i = 0; i < length; i++) {			ctxCts->mask[i] ^= buffer[i];		}		memcpy (buffer, mask, length); /* last, incomplete block */		squareEncrypt (D(ctxCts->mask), ctxCts->roundKeys_e);		memcpy (mask, ctxCts->mask, SQUARE_BLOCKSIZE); /* next-to-last, complete block */		/* note that ctxCts->mask contains an encrypted block still unused as mask */	}	mask = NULL;} /* squareCtsEncrypt */void squareCtsDecrypt (squareCtsContext *ctxCts, byte *buffer, unsigned length){	unsigned i;	squareBlock temp; 	assert (ctxCts != NULL);	assert (buffer != NULL);	assert (length >= SQUARE_BLOCKSIZE);	while (length >= 2*SQUARE_BLOCKSIZE) {		/* save the current block for chaining: */		COPY_BLOCK (D(temp), D(buffer));		/* decrypt and unmask the block: */		squareDecrypt (D(buffer), ctxCts->roundKeys_d);		D(buffer)[0] ^= D(ctxCts->mask)[0];		D(buffer)[1] ^= D(ctxCts->mask)[1];		D(buffer)[2] ^= D(ctxCts->mask)[2];		D(buffer)[3] ^= D(ctxCts->mask)[3];		/* update the mask: */		COPY_BLOCK (D(ctxCts->mask), D(temp));		/* proceed to the next block, if any: */		buffer += SQUARE_BLOCKSIZE;		length -= SQUARE_BLOCKSIZE;	}	/* now SQUARE_BLOCKSIZE <= length < 2*SQUARE_BLOCKSIZE */	/* save the current block for chaining: */	COPY_BLOCK (D(temp), D(buffer));	if (length > SQUARE_BLOCKSIZE) {		/* decrypt and unmask the last, incomplete block: */		squareDecrypt (D(buffer), ctxCts->roundKeys_d);		for (i = 0; i < length - SQUARE_BLOCKSIZE; i++) {			/* at this point, buffer[i + SQUARE_BLOCKSIZE]  contains */			/* a cipherbyte C, and buffer[i] contains the XOR of the */			/* same cipherbyte with the corresponding plainbyte P... */			buffer[i] ^= (buffer[i + SQUARE_BLOCKSIZE] ^= buffer[i]);			/* ... now buffer[i] contains only the cipherbyte C, and */			/* buffer[i + SQUARE_BLOCKSIZE] contains the plainbyte P */		}		/* decrypt the next-to-last, complete block: */		squareDecrypt (D(buffer), ctxCts->roundKeys_d);	} else {		/* decrypt the last, complete block: */		squareDecrypt (D(buffer), ctxCts->roundKeys_d);	}	D(buffer)[0] ^= D(ctxCts->mask)[0];	D(buffer)[1] ^= D(ctxCts->mask)[1];	D(buffer)[2] ^= D(ctxCts->mask)[2];	D(buffer)[3] ^= D(ctxCts->mask)[3];	/* update the mask: */	COPY_BLOCK (D(ctxCts->mask), D(temp));#ifdef DESTROY_TEMPORARIES	/* destroy potentially sensitive data: */	memset (temp, 0, sizeof (temp));	/* N.B. this cleanup is in principle unnecessary */	/* as temp only contains encrypted (public) data */#endif /* ?DESTROY_TEMPORARIES */} /* squareCtsDecrypt */void squareCtsFinal (squareCtsContext *ctxCts){	assert (ctxCts != NULL);	memset (ctxCts, 0, sizeof (squareCtsContext));} /* squareCtsFinal */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品视频在线观看| 日韩国产欧美一区二区三区| 国产大陆a不卡| 久久久精品免费免费| 国产精品99久久久久久有的能看| 久久欧美一区二区| 成人免费av在线| 亚洲欧美日韩小说| 欧美丰满少妇xxxxx高潮对白| 日韩—二三区免费观看av| 在线播放欧美女士性生活| 美国av一区二区| 欧美激情在线免费观看| 一本一道久久a久久精品综合蜜臀| 亚洲综合一区二区三区| 欧美人伦禁忌dvd放荡欲情| 久久99国产精品久久| 欧美激情中文字幕一区二区| 在线免费观看日本一区| 男男视频亚洲欧美| 日本一区二区动态图| 在线观看网站黄不卡| 一区二区三区丝袜| 精品久久久久一区二区国产| 成人免费视频视频| 日韩专区在线视频| 国产精品热久久久久夜色精品三区| 色偷偷一区二区三区| 蜜桃一区二区三区在线观看| 国产精品网站在线| 在线综合视频播放| 不卡的av电影在线观看| 日韩1区2区3区| 中文字幕一区日韩精品欧美| 9191久久久久久久久久久| 国产一区二区在线视频| 亚洲视频在线观看三级| 精品日韩在线观看| 欧美日韩在线播放一区| 高潮精品一区videoshd| 日本中文一区二区三区| 综合精品久久久| 精品久久国产字幕高潮| 欧美性高清videossexo| 国产精品亚洲第一区在线暖暖韩国 | 日韩一区精品字幕| 国产精品久久久久永久免费观看| 日韩欧美国产不卡| 色综合亚洲欧洲| 国产精品一区在线观看乱码| 香蕉成人伊视频在线观看| 中文字幕亚洲成人| 国产亚洲欧美一区在线观看| 91精品国产综合久久精品麻豆| 99久久精品一区| 国产高清无密码一区二区三区| 午夜免费久久看| 亚洲一区二区三区四区在线| 中文字幕在线观看一区| 国产日韩欧美一区二区三区综合| 日韩一区二区影院| 制服丝袜在线91| 欧美视频中文字幕| 91影院在线观看| 波多野洁衣一区| 丁香婷婷综合色啪| 国产成a人亚洲精品| 久久国产尿小便嘘嘘尿| 天堂蜜桃一区二区三区| 午夜久久久影院| 午夜精彩视频在线观看不卡| 亚洲国产精品欧美一二99| 亚洲人被黑人高潮完整版| 中文字幕一区日韩精品欧美| 国产精品丝袜久久久久久app| 久久久久国产精品麻豆| 26uuuu精品一区二区| 精品处破学生在线二十三| 欧美大片一区二区| 精品免费一区二区三区| 久久婷婷色综合| 久久精子c满五个校花| 国产欧美中文在线| 中文字幕av免费专区久久| 国产精品色哟哟| 亚洲欧美自拍偷拍| 一区二区成人在线视频| 一区二区理论电影在线观看| 亚洲国产日韩一级| 天堂在线一区二区| 韩国一区二区在线观看| 国产高清精品在线| 波多野结衣中文字幕一区| 99在线热播精品免费| 在线亚洲+欧美+日本专区| 欧美日韩一区在线观看| 91精品国产综合久久香蕉麻豆 | 成人免费看的视频| 91视频在线观看| 欧美性生活大片视频| 91精品国产综合久久久蜜臀粉嫩| 精品av久久707| 一区二区三区四区精品在线视频| 三级在线观看一区二区| 精品一区二区三区在线观看国产 | 精品一区中文字幕| 粉嫩欧美一区二区三区高清影视| 91网站在线观看视频| 欧美人动与zoxxxx乱| 久久无码av三级| 一区二区三区四区不卡视频| 日韩黄色小视频| 国产福利91精品一区二区三区| 99久久久国产精品| 日韩一区二区三区三四区视频在线观看| 久久伊99综合婷婷久久伊| 亚洲精品v日韩精品| 免费在线观看精品| 99久久国产免费看| 这里只有精品电影| 亚洲欧洲日韩在线| 蜜桃视频一区二区三区| 成人激情校园春色| 日韩一区二区视频在线观看| 亚洲欧洲精品一区二区三区| 午夜成人免费视频| 成人免费看的视频| 日韩亚洲欧美成人一区| 亚洲乱码国产乱码精品精98午夜 | 欧美大片在线观看一区二区| 亚洲欧美色图小说| 国产精一区二区三区| 欧美三级电影在线看| 国产精品久久久久一区二区三区共| 日韩va欧美va亚洲va久久| 一本色道久久综合亚洲91| 久久久久久久久99精品| 午夜欧美在线一二页| 91免费观看国产| 久久久久久久网| 免费观看成人鲁鲁鲁鲁鲁视频| 色综合久久中文综合久久97| 久久精品视频免费观看| 日韩高清欧美激情| 欧美日韩一区二区三区四区 | 亚洲免费av观看| 国产高清精品久久久久| 精品粉嫩aⅴ一区二区三区四区| 亚洲国产va精品久久久不卡综合| 成人精品免费看| 2019国产精品| 久久草av在线| 91精品国产综合久久小美女| 亚洲成人av一区二区三区| 99精品国产一区二区三区不卡| 久久精品在线观看| 国内精品久久久久影院薰衣草 | 91精品国产综合久久久久久久久久 | 国产大陆亚洲精品国产| 日韩欧美专区在线| 美日韩黄色大片| 69堂亚洲精品首页| 三级成人在线视频| 欧美一区二区私人影院日本| 亚洲国产一区二区三区青草影视| 在线亚洲免费视频| 一区二区国产视频| 欧美系列在线观看| 午夜不卡在线视频| 欧美一区二区黄色| 美女尤物国产一区| 精品美女在线播放| 国产久卡久卡久卡久卡视频精品| 久久久精品影视| av一区二区三区在线| 亚洲欧洲成人自拍| 色先锋资源久久综合| 亚洲高清视频中文字幕| 67194成人在线观看| 美女www一区二区| 国产高清久久久| 欧美综合天天夜夜久久| eeuss鲁一区二区三区| 国产欧美一区二区精品性| 成人免费视频app| 亚洲手机成人高清视频| 欧美日韩一区二区三区高清 | 欧美日韩精品一区视频| 午夜精品一区二区三区三上悠亚 | 日韩一级免费观看| 韩国欧美国产一区| 亚洲国产精品ⅴa在线观看| 91亚洲精品久久久蜜桃| 亚洲123区在线观看| 欧美电影免费观看高清完整版| 国产成人午夜高潮毛片| 成人欧美一区二区三区白人 | 婷婷亚洲久悠悠色悠在线播放| 日韩一区二区三| 成人性视频免费网站|