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

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

?? rijndael-test-fst.c

?? AES最新加密解密算法
?? C
?? 第 1 頁 / 共 2 頁
字號:
/** * rijndael-test-fst.c * * @version 3.0 (December 2000) * * Optimised ANSI C code for the Rijndael cipher (now AES) * * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be> * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be> * @author Paulo Barreto <paulo.barreto@terra.com.br> * * This code is hereby placed in the public domain. * * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */#ifndef INTERMEDIATE_VALUE_KAT#error "Must #define INTERMEDIATE_VALUE_KAT to generate the Intermediate Value Known Answer Test."#endif /* INTERMEDIATE_VALUE_KAT */#include <assert.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include "rijndael-api-fst.h"#define SUBMITTER "Joan Daemen"static void blockPrint(FILE *fp, const BYTE *block, const char *tag) {	int i;	fprintf (fp, "%s=", tag);	for (i = 0; i < 16; i++) {		fprintf (fp, "%02X", block[i]);	}	fprintf (fp, "\n");	fflush (fp);} /* blockPrint */static void rijndaelVKKAT(FILE *fp, int keyLength) {	int i, j, r;	BYTE block[4*4];	BYTE keyMaterial[320];	BYTE byteVal = (BYTE)'8';	keyInstance keyInst;	cipherInstance cipherInst;#ifdef TRACE_KAT_MCT	printf("Executing Variable-Key KAT (key %d): ", keyLength);	fflush(stdout);#endif /* ?TRACE_KAT_MCT */	fprintf(fp,		"\n"		"==========\n"		"\n"		"KEYSIZE=%d\n"		"\n", keyLength);	fflush(fp);	memset(block, 0, 16);	blockPrint(fp, block, "PT");	memset(keyMaterial, 0, sizeof (keyMaterial));	memset(keyMaterial, '0', keyLength/4);	for (i = 0; i < keyLength; i++) {		keyMaterial[i/4] = byteVal; /* set only the i-th bit of the i-th test key */		r = makeKey(&keyInst, DIR_ENCRYPT, keyLength, keyMaterial);		if (TRUE != r) {			fprintf(stderr,"makeKey error %d\n",r);			exit(-1);		}		fprintf(fp, "\nI=%d\n", i+1);		fprintf(fp, "KEY=%s\n", keyMaterial);		memset(block, 0, 16);		r = cipherInit(&cipherInst, MODE_ECB, NULL);		if (TRUE != r) {			fprintf(stderr,"cipherInit error %d\n",r);			exit(-1);		}		r = blockEncrypt(&cipherInst, &keyInst, block, 128, block);		if (128 != r) {			fprintf(stderr,"blockEncrypt error %d\n",r);			exit(-1);		}		blockPrint(fp, block, "CT");		/* now check decryption: */		makeKey(&keyInst, DIR_DECRYPT, keyLength, keyMaterial);		blockDecrypt(&cipherInst, &keyInst, block, 128, block);		for (j = 0; j < 16; j++) {			assert(block[j] == 0);		}		/* undo changes for the next iteration: */		keyMaterial[i/4] = (BYTE)'0';		byteVal =			(byteVal == '8') ?	'4' :			(byteVal == '4') ?	'2' :			(byteVal == '2') ?	'1' :		/*	(byteVal == '1') */	'8';	}	assert(byteVal == (BYTE)'8');	#ifdef TRACE_KAT_MCT	printf(" done.\n");#endif /* ?TRACE_KAT_MCT */} /* rijndaelVKKAT */static void rijndaelVTKAT(FILE *fp, int keyLength) {	int i;	BYTE block[4*4];	BYTE keyMaterial[320];	keyInstance keyInst;	cipherInstance cipherInst;#ifdef TRACE_KAT_MCT	printf("Executing Variable-Text KAT (key %d): ", keyLength);	fflush(stdout);#endif /* ?TRACE_KAT_MCT */	fprintf(fp,		"\n"		"==========\n"		"\n"		"KEYSIZE=%d\n"		"\n", keyLength);	fflush(fp);	memset(keyMaterial, 0, sizeof (keyMaterial));	memset(keyMaterial, '0', keyLength/4);	makeKey(&keyInst, DIR_ENCRYPT, keyLength, keyMaterial);	fprintf(fp, "KEY=%s\n", keyMaterial);	for (i = 0; i < 128; i++) {		memset(block, 0, 16);		block[i/8] |= 1 << (7 - i%8); /* set only the i-th bit of the i-th test block */		fprintf (fp, "\nI=%d\n", i+1);		blockPrint(fp, block, "PT");		cipherInit(&cipherInst, MODE_ECB, NULL);		blockEncrypt(&cipherInst, &keyInst, block, 128, block);		blockPrint(fp, block, "CT");	}#ifdef TRACE_KAT_MCT	printf(" done.\n");#endif /* ?TRACE_KAT_MCT */}static void rijndaelTKAT(FILE *fp, int keyLength, FILE *in) {	int i, j;	unsigned int s;	BYTE block[4*4], block2[4*4];	BYTE keyMaterial[320];	keyInstance keyInst;	cipherInstance cipherInst;#ifdef TRACE_KAT_MCT	printf("Executing Tables KAT (key %d): ", keyLength);	fflush(stdout);#endif /* ?TRACE_KAT_MCT */	fprintf(fp,		"\n"		"==========\n"		"\n"		"KEYSIZE=%d\n"		"\n", keyLength);	fflush(fp);	memset(keyMaterial, 0, sizeof (keyMaterial));		for (i = 0; i < 64; i++) {		fprintf(fp, "\nI=%d\n", i+1);		for(j = 0; j < keyLength/4; j++) {			fscanf(in, "%c", &keyMaterial[j]);		}		makeKey(&keyInst, DIR_ENCRYPT, keyLength, keyMaterial);				fprintf(fp, "KEY=%s\n", keyMaterial);				for (j = 0; j < 16; j++) {			fscanf(in, "%02x", &s);			block[j] = s;		}		fscanf(in, "%c", (char *)&s);		fscanf(in, "%c", (char *)&s);		blockPrint(fp, block, "PT");		cipherInit(&cipherInst, MODE_ECB, NULL);		blockEncrypt(&cipherInst, &keyInst, block, 128, block2);		blockPrint(fp, block2, "CT");	}	for (i = 64; i < 128; i++) {		fprintf(fp, "\nI=%d\n", i+1);		for(j = 0; j < keyLength/4; j++) {			fscanf(in, "%c", &keyMaterial[j]);		}		makeKey(&keyInst, DIR_DECRYPT, keyLength, keyMaterial);				fprintf(fp, "KEY=%s\n", keyMaterial);				for (j = 0; j < 16; j++) {			fscanf(in, "%02x", &s);			block[j] = s;		}		fscanf(in, "%c", (char *)&s);		fscanf(in, "%c", (char *)&s);		cipherInit(&cipherInst, MODE_ECB, NULL);		blockDecrypt(&cipherInst, &keyInst, block, 128, block2);		blockPrint(fp, block2, "PT");		blockPrint(fp, block, "CT");	}#ifdef TRACE_KAT_MCT	printf(" done.\n");#endif /* ?TRACE_KAT_MCT */}#ifdef INTERMEDIATE_VALUE_KATstatic void rijndaelIVKAT (FILE *fp, int keyLength) {	int i;	BYTE pt[4*4], ct[4*4];	BYTE keyMaterial[320];	keyInstance keyInst;	cipherInstance cipherInst;	char format[10];#ifdef TRACE_KAT_MCT	printf ("Executing Intermediate value KAT (key %d): ", keyLength);	fflush (stdout);#endif /* ?TRACE_KAT_MCT */	fprintf(fp,		"\n"		"==========\n"		"\n"		"KEYSIZE=%d\n",		keyLength);	fflush(fp);	memset(keyMaterial, 0, sizeof (keyMaterial));	for (i = 0; i < keyLength/8; i++) {		sprintf(&keyMaterial[2*i], "%02X", i);	}	fprintf(fp, "KEY=%s\n", keyMaterial);		for (i = 0; i < 16; i++) {		pt[i] = i;	}		fprintf(fp, "\nIntermediate Ciphertext Values (Encryption)\n\n");	makeKey(&keyInst, DIR_ENCRYPT, keyLength, keyMaterial);	blockPrint(fp, pt, "PT");	cipherInit(&cipherInst, MODE_ECB, NULL);	for(i = 1; i < keyInst.Nr; i++) {		cipherUpdateRounds(&cipherInst, &keyInst, pt, 16, ct, i);		sprintf(format, "CT%d", i);		blockPrint(fp, ct, format);	}	cipherUpdateRounds(&cipherInst, &keyInst, pt, 16, ct, keyInst.Nr);	blockPrint(fp, ct, "CT");		fprintf(fp, "\nIntermediate Ciphertext Values (Decryption)\n\n");	makeKey(&keyInst, DIR_DECRYPT, keyLength, keyMaterial);	blockPrint(fp, ct, "CT");	cipherInit(&cipherInst, MODE_ECB, NULL);	for(i = 1; i < keyInst.Nr; i++) {		cipherUpdateRounds(&cipherInst, &keyInst, ct, 16, pt, i);		sprintf(format, "PT%d", i);		blockPrint(fp, pt, format);	}	cipherUpdateRounds(&cipherInst, &keyInst, ct, 16, pt, keyInst.Nr);	blockPrint(fp, pt, "PT");	#ifdef TRACE_KAT_MCT	printf(" done.\n");#endif }#endif /* INTERMEDIATE_VALUE_KAT */static void makeKATs(const char *vkFile, const char *vtFile, const char *tblFile, const char *ivFile) {	FILE *fp, *fp2;	/* prepare Variable Key Known Answer Tests: */	fp = fopen(vkFile, "w");	fprintf(fp,		"\n"		"=========================\n"		"\n"		"FILENAME:  \"%s\"\n"		"\n"		"Electronic Codebook (ECB) Mode\n"		"Variable Key Known Answer Tests\n"		"\n"		"Algorithm Name: Rijndael\n"		"Principal Submitter: %s\n",		vkFile, SUBMITTER);	fflush(fp);	rijndaelVKKAT(fp, 128);	rijndaelVKKAT(fp, 192);	rijndaelVKKAT(fp, 256);	fprintf(fp,		"\n"		"==========");	fclose(fp);	/* prepare Variable Text Known Answer Tests: */	fp = fopen(vtFile, "w");	fprintf(fp,		"\n"		"=========================\n"		"\n"		"FILENAME:  \"%s\"\n"		"\n"		"Electronic Codebook (ECB) Mode\n"		"Variable Text Known Answer Tests\n"		"\n"		"Algorithm Name: Rijndael\n"		"Principal Submitter: %s\n",		vtFile, SUBMITTER);	fflush(fp);	rijndaelVTKAT(fp, 128);	rijndaelVTKAT(fp, 192);	rijndaelVTKAT(fp, 256);	fprintf(fp,		"\n"		"==========");	fclose(fp);	/* prepare Tables Known Answer Tests: */	fp = fopen(tblFile, "w");	fprintf(fp,	    "/* Description of what tables are tested:\n"		"   The provided implementations each use a different set of tables\n"		"    - Java implementation: uses no tables\n"		"    - reference C implementation: uses Logtable, Alogtable, S, Si, rcon\n"		"    - fast C implementation: uses rcon and additionally\n"		"        Te0, Te1, Te2, Te3, Te4, Td0, Td1, Td2, Td3, Td4.\n"		"   All these tables are tested.\n"		"\n"		"=========================\n"		"\n"		"FILENAME:  \"%s\"\n"		"\n"		"Electronic Codebook (ECB) Mode\n"		"Tables Known Answer Tests\n"		"\n"		"Algorithm Name: Rijndael\n"		"Principal Submitter: %s\n",		tblFile, SUBMITTER);	fflush(fp);	if (NULL != (fp2 = fopen("table.128", "r"))) {		rijndaelTKAT(fp, 128, fp2);		fclose(fp2);	} else {		printf("Table Known Answer test expects file table.128\n");		fclose(fp);		exit(EXIT_FAILURE);	}	if (NULL != (fp2 = fopen("table.192", "r"))) {		rijndaelTKAT(fp, 192, fp2);		fclose(fp2);	} else {		printf("Table Known Answer test expects file table.192\n");		fclose(fp);		exit(EXIT_FAILURE);			}	if (NULL != (fp2 = fopen("table.256", "r"))) {		rijndaelTKAT(fp, 256, fp2);		fclose(fp2);	} else {		printf("Table Known Answer test expects file table.192\n");		fclose(fp);		exit(EXIT_FAILURE);	}		fprintf(fp,		"\n"		"==========");	fclose(fp);#ifdef INTERMEDIATE_VALUE_KAT	/* prepare Intermediate Values Known Answer Tests: */	fp = fopen(ivFile, "w");	fprintf(fp,		"\n"		"=========================\n"		"\n"		"FILENAME:  \"%s\"\n"		"\n"		"Electronic Codebook (ECB) Mode\n"		"Intermediate Value Known Answer Tests\n"		"\n"		"Algorithm Name: Rijndael\n"		"Principal Submitter: %s\n",		ivFile, SUBMITTER);	fflush(fp);	rijndaelIVKAT(fp, 128);	rijndaelIVKAT(fp, 192);	rijndaelIVKAT(fp, 256);	fprintf(fp,		"\n"		"==========");	fclose(fp);#endif /* INTERMEDIATE_VALUE_KAT */}static void rijndaelECB_MCT(FILE *fp, int keyLength, BYTE direction) {	int i, j;	BYTE inBlock[4*4], outBlock[4*4], binKey[4*MAXKC];	BYTE keyMaterial[320];	keyInstance keyInst;	cipherInstance cipherInst;#ifdef TRACE_KAT_MCT	int width = 0;	clock_t elapsed = -clock();	printf("Executing ECB MCT (%s, key %d): ",		direction == DIR_ENCRYPT ? "ENCRYPT" : "DECRYPT", keyLength);	fflush(stdout);#endif /* ?TRACE_KAT_MCT */	fprintf(fp,		"\n"		"=========================\n"		"\n"		"KEYSIZE=%d\n", keyLength);	fflush(fp);	memset(outBlock, 0, 16);	memset(binKey, 0, keyLength/8);	for (i = 0; i < 400; i++) {#ifdef TRACE_KAT_MCT                         while (width-- > 0) {        	putchar('\b');        }        width = printf("%d", i);        fflush(stdout);    #endif /* ?TRACE_KAT_MCT */		fprintf(fp, "\nI=%d\n", i);		/* prepare key: */		for (j = 0; j < keyLength/8; j++) {			sprintf(&keyMaterial[2*j], "%02X", binKey[j]);		}		keyMaterial[keyLength/4] = 0;		fprintf(fp, "KEY=%s\n", keyMaterial);		makeKey(&keyInst, direction, keyLength, keyMaterial);		/* do encryption/decryption: */		blockPrint(fp, outBlock, direction == DIR_ENCRYPT ? "PT" : "CT");		cipherInit(&cipherInst, MODE_ECB, NULL);		if (direction == DIR_ENCRYPT) {			for (j = 0; j < 10000; j++) {				memcpy(inBlock, outBlock, 16);				blockEncrypt(&cipherInst, &keyInst, inBlock, 128, outBlock);			}		} else {			for (j = 0; j < 10000; j++) {				memcpy(inBlock, outBlock, 16);				blockDecrypt(&cipherInst, &keyInst, inBlock, 128, outBlock);			}		}		blockPrint(fp, outBlock, direction == DIR_ENCRYPT ? "CT" : "PT");		/* prepare new key: */		switch (keyLength) {		case 128:			for (j = 0; j < 128/8; j++) {				binKey[j] ^= outBlock[j];			}			break;		case 192:			for (j = 0; j < 64/8; j++) {				binKey[j] ^= inBlock[j + 64/8];			}			for (j = 0; j < 128/8; j++) {				binKey[j + 64/8] ^= outBlock[j];			}			break;		case 256:			for (j = 0; j < 128/8; j++) {				binKey[j] ^= inBlock[j];			}			for (j = 0; j < 128/8; j++) {				binKey[j + 128/8] ^= outBlock[j];			}			break;		}	}#ifdef TRACE_KAT_MCT	elapsed += clock();    while (width-- > 0) {    	putchar('\b');    }	printf("%d done (%.1f s).\n", i, (float)elapsed/CLOCKS_PER_SEC);#endif /* ?TRACE_KAT_MCT */} /* rijndaelECB_MCT */static void rijndaelCBC_MCT(FILE *fp, int keyLength, BYTE direction) {	int i, j, r, t;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久av资源网| 欧美日韩精品一区二区三区蜜桃| 波多野结衣视频一区| 91美女片黄在线观看| 欧美色倩网站大全免费| 日韩精品中午字幕| 国产精品免费视频网站| 日韩高清中文字幕一区| 午夜视频久久久久久| 久久99精品久久只有精品| 国产成都精品91一区二区三| 欧美吻胸吃奶大尺度电影| 欧美日韩国产123区| 久久男人中文字幕资源站| 国产精品不卡视频| 性做久久久久久| 国产精品系列在线观看| 99国产精品久久久久| 91精品国产aⅴ一区二区| 国产精品欧美一级免费| 亚洲成人精品一区二区| 高清在线成人网| 欧美一区二区日韩| 国产精品美女www爽爽爽| 日韩制服丝袜av| 成人免费看黄yyy456| 日韩一区二区在线观看视频 | 久久久久国产成人精品亚洲午夜| 中文字幕一区二区不卡| 久久成人综合网| 欧美伊人精品成人久久综合97| 久久蜜臀精品av| 日本成人中文字幕| 成人美女视频在线看| 欧美日本精品一区二区三区| 国产农村妇女毛片精品久久麻豆| 亚洲同性同志一二三专区| 精品一区二区在线视频| 欧美一区二区三区在线观看| 97se亚洲国产综合在线| 日韩欧美黄色影院| 日本成人中文字幕在线视频| 欧美日韩国产欧美日美国产精品| 久久影视一区二区| 国产麻豆视频精品| 欧美极品少妇xxxxⅹ高跟鞋 | 亚洲色欲色欲www| 岛国一区二区三区| 精品理论电影在线观看| 久久精品国产99国产精品| 日韩精品一区二区三区中文精品| 日韩福利视频导航| 日韩欧美国产一区在线观看| 麻豆精品国产91久久久久久| 日韩精品专区在线影院观看| 午夜亚洲国产au精品一区二区| 欧美日韩卡一卡二| 亚洲国产精品久久久男人的天堂| 欧美日韩国产欧美日美国产精品| 免费看欧美美女黄的网站| 日韩一区二区电影在线| 国产在线播放一区三区四| 精品久久五月天| 国产成a人无v码亚洲福利| 最新日韩av在线| 欧美精品自拍偷拍| 国产精品18久久久久久久久| 一色屋精品亚洲香蕉网站| 欧美人牲a欧美精品| 成人av免费在线观看| 午夜久久电影网| 精品国产亚洲在线| 91丨国产丨九色丨pron| 亚洲国产一区视频| 在线播放91灌醉迷j高跟美女| 国产一区日韩二区欧美三区| 国产精品伦理一区二区| 欧美日韩国产高清一区二区三区| 国产福利视频一区二区三区| 性感美女极品91精品| 视频一区二区三区中文字幕| 久久久久99精品国产片| 欧美一区二区三区男人的天堂| 成人性视频免费网站| 亚洲一区二区三区四区在线| 国产日产欧美精品一区二区三区| 91在线免费视频观看| 久久国产精品露脸对白| 亚洲国产成人av好男人在线观看| 色乱码一区二区三区88| 国产69精品久久久久毛片| 国内久久精品视频| 日韩电影网1区2区| 亚洲精选免费视频| 亚洲欧美在线观看| 亚洲一级二级在线| 国产日韩欧美亚洲| 久久精品一区四区| 久久精品一区二区三区四区| 欧美剧情电影在线观看完整版免费励志电影| 国产成人午夜电影网| 国产suv精品一区二区6| 婷婷中文字幕综合| 亚洲一区免费在线观看| 亚洲bt欧美bt精品| 亚洲电影激情视频网站| 国产精品毛片a∨一区二区三区| 国产日产欧美精品一区二区三区| 中文字幕欧美三区| 欧美一区二区三区的| 久久精品一区二区三区不卡牛牛| 久久一留热品黄| 国产精品天干天干在线综合| 欧美成人猛片aaaaaaa| 日韩一区二区免费高清| 国产清纯美女被跳蛋高潮一区二区久久w | 国产成人在线影院| 成人黄色在线网站| 91国产免费看| 精品美女一区二区三区| 精品理论电影在线观看| 国产精品视频第一区| 一区二区三区高清| 亚洲愉拍自拍另类高清精品| 亚洲一区二区三区在线看| 麻豆国产欧美日韩综合精品二区| 国产精品白丝jk白祙喷水网站| 色猫猫国产区一区二在线视频| 在线欧美日韩精品| 精品区一区二区| 亚洲精品一卡二卡| 精品无人码麻豆乱码1区2区| 国产.欧美.日韩| 欧美精品久久天天躁| 国产精品免费久久| 亚洲电影一区二区| 不卡一区中文字幕| 精品国产青草久久久久福利| 亚洲一区在线看| 成人午夜视频在线| 精品国产污污免费网站入口| 亚洲成人av资源| 欧洲精品一区二区| 成人免费在线播放视频| 日韩精品乱码av一区二区| 91免费看片在线观看| 18成人在线观看| 激情久久五月天| 久久一区二区三区四区| 久久国产婷婷国产香蕉| 日韩一二三四区| 一区二区三区中文字幕精品精品| 成人动漫在线一区| 国产精品国产馆在线真实露脸 | 中文字幕在线视频一区| 国产一区视频网站| 国产亚洲成aⅴ人片在线观看| 日本一不卡视频| 久久久亚洲精品石原莉奈| 成熟亚洲日本毛茸茸凸凹| 国产精品久久久久久久久久免费看| 99视频在线精品| 午夜av区久久| 久久精品这里都是精品| 色视频成人在线观看免| 亚洲成人av电影在线| 国产丝袜欧美中文另类| 在线观看一区不卡| 精品一二三四区| 亚洲黄色片在线观看| 精品国产乱码91久久久久久网站| 成人av影视在线观看| 天天综合网 天天综合色| 亚洲国产精品二十页| 欧美一区二区三区在线看| 99riav一区二区三区| 免费看日韩a级影片| 亚洲人成网站影音先锋播放| 精品日韩在线一区| 欧美日韩三级一区| caoporm超碰国产精品| 精品一二线国产| 亚洲.国产.中文慕字在线| 国产欧美1区2区3区| 日韩一二三四区| 欧美日韩国产综合视频在线观看 | 国产精品久久网站| 欧美精品一区二区三区久久久 | 午夜欧美2019年伦理| 欧美中文字幕一区二区三区亚洲| 91麻豆国产香蕉久久精品| 91在线观看一区二区| 欧美亚洲一区二区在线| 欧美日韩和欧美的一区二区| 日韩欧美国产综合在线一区二区三区| 欧美中文字幕一区| 91天堂素人约啪| 色久优优欧美色久优优| 欧美日韩在线播放三区四区| 欧美三级日韩在线|