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

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

?? 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中文一区二区三区桃花岛| 中国av一区二区三区| 日韩欧美你懂的| 欧美中文一区二区三区| 成人午夜av电影| 国产美女av一区二区三区| 亚洲高清视频中文字幕| 亚洲视频网在线直播| 国产欧美日韩在线看| 日韩三级视频在线看| 欧美日韩高清一区| 在线观看日韩av先锋影音电影院| 高清不卡一区二区| 国产制服丝袜一区| 麻豆免费精品视频| 日韩精品久久久久久| 亚洲一区二区三区四区在线| 亚洲另类中文字| 中文字幕一区二区三区四区 | 一区二区三区欧美| 中文字幕不卡在线观看| 久久网站最新地址| 日韩三级视频在线看| 在线不卡免费av| 欧美区在线观看| 日本精品视频一区二区| 91网站视频在线观看| 95精品视频在线| 97se亚洲国产综合在线| 色综合夜色一区| 91一区一区三区| 91麻豆国产精品久久| 色婷婷综合久久久| 在线一区二区观看| 欧美综合亚洲图片综合区| 欧洲一区在线观看| 欧美片在线播放| 777欧美精品| 日韩一区二区三区电影| 日韩精品一区在线| 日韩一区二区三区观看| 2017欧美狠狠色| 国产欧美一区二区精品秋霞影院 | 亚洲综合男人的天堂| 一区二区不卡在线视频 午夜欧美不卡在| 综合自拍亚洲综合图不卡区| 亚洲欧洲日产国产综合网| 亚洲日本乱码在线观看| 亚洲一级电影视频| 日韩av不卡在线观看| 久久综合综合久久综合| 国产一区二区三区蝌蚪| 成人性生交大片免费看中文 | 亚洲欧洲三级电影| 一区二区三区四区高清精品免费观看| 亚洲影院理伦片| 麻豆一区二区三| 国产一区二区伦理| 91色.com| 欧美一区二区三区四区视频| 2021国产精品久久精品| 亚洲色图.com| 日本伊人色综合网| 国产二区国产一区在线观看| 91久久线看在观草草青青| 欧美精品在线一区二区| 久久夜色精品国产噜噜av| 亚洲视频 欧洲视频| 秋霞成人午夜伦在线观看| 国产乱码精品一区二区三区五月婷| 成人av网在线| 91精品欧美久久久久久动漫| 久久久.com| 午夜精品爽啪视频| 国产福利91精品一区二区三区| 在线免费精品视频| 久久亚洲免费视频| 一二三区精品视频| 国内精品伊人久久久久影院对白| 色综合天天综合给合国产| 日韩欧美国产一区二区在线播放 | 亚瑟在线精品视频| 国产一区二区不卡老阿姨| 在线观看视频欧美| 久久久精品日韩欧美| 亚洲国产精品人人做人人爽| 国产呦萝稀缺另类资源| 欧美私人免费视频| 国产欧美1区2区3区| 七七婷婷婷婷精品国产| 99re在线视频这里只有精品| 日韩精品一区二区三区视频| 亚洲精品国产a| 黄色日韩三级电影| 欧美日韩高清一区| 亚洲欧洲99久久| 国产做a爰片久久毛片| 欧美三级韩国三级日本三斤| 欧美激情综合五月色丁香| 久久精品国产第一区二区三区| 91亚洲精华国产精华精华液| 精品成人一区二区三区四区| 亚洲午夜激情av| 99久精品国产| 国产色爱av资源综合区| 美女脱光内衣内裤视频久久网站 | 日韩**一区毛片| 色哟哟一区二区| 中文字幕精品一区| 国产一区不卡视频| 日韩精品一区二区三区在线播放 | zzijzzij亚洲日本少妇熟睡| 日韩欧美在线影院| 亚洲三级小视频| 日本乱码高清不卡字幕| 欧美人动与zoxxxx乱| 最新不卡av在线| 国产一区二区伦理| 精品处破学生在线二十三| 婷婷综合另类小说色区| 在线精品视频一区二区| 国产精品不卡在线| 成人v精品蜜桃久久一区| 2019国产精品| 国模一区二区三区白浆| 精品99一区二区| 久久99在线观看| 日韩一区二区三区四区| 青草av.久久免费一区| 欧美妇女性影城| 午夜精品福利一区二区蜜股av| 在线观看区一区二| 亚洲一区二区三区免费视频| 欧美亚洲国产bt| 亚洲国产一二三| 欧美精品丝袜中出| 日韩成人免费电影| 国产成+人+日韩+欧美+亚洲| 久久网站最新地址| 粗大黑人巨茎大战欧美成人| 欧美国产日韩精品免费观看| 成人听书哪个软件好| 日韩理论片在线| 在线精品视频一区二区三四| 偷窥国产亚洲免费视频| 欧美成人国产一区二区| 韩国av一区二区三区四区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | www.久久精品| 亚洲欧美国产毛片在线| 欧美三级一区二区| 免费观看一级欧美片| 久久综合色婷婷| 波多野结衣精品在线| 一级精品视频在线观看宜春院| 欧美剧在线免费观看网站| 美腿丝袜亚洲色图| 国产亚洲精品bt天堂精选| av在线播放不卡| 亚洲综合色区另类av| 日韩免费视频线观看| 国产成人免费视频网站| 亚洲最新在线观看| 日韩亚洲欧美成人一区| 成人av电影在线| 亚洲国产欧美另类丝袜| 日韩免费视频线观看| 成人不卡免费av| 日韩电影在线观看网站| 欧美激情一区二区三区四区| 欧美中文字幕一二三区视频| 老司机一区二区| 亚洲三级免费电影| 欧美变态tickle挠乳网站| 成人av在线网站| 日本不卡中文字幕| 国产精品久久久久久久久免费樱桃 | 6080yy午夜一二三区久久| 国产乱码精品一区二区三区av| 一区二区三区精品视频| 久久综合久久99| 在线看国产一区二区| 国产一区二区免费看| 午夜精品123| 国产精品蜜臀在线观看| 91精品欧美一区二区三区综合在 | 亚洲国产电影在线观看| 欧美日韩大陆一区二区| 成人精品鲁一区一区二区| 日韩主播视频在线| 中文字幕一区二区三区四区 | 亚洲一区二区在线播放相泽| 久久亚区不卡日本| 欧美久久久一区| 色天天综合色天天久久| 国产东北露脸精品视频| 日韩影院精彩在线|