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

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

?? rijndael-test-fst.c

?? Arithmetic for integers of almost rijndael for C and C++. Developed for linux
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/** * 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;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频一区二区三区免费| 成人av网站在线观看免费| 在线播放/欧美激情| 丝袜美腿亚洲色图| 欧美日韩www| 蜜臀av一区二区在线观看| 日韩欧美成人午夜| 国产精品77777竹菊影视小说| 国产女人18水真多18精品一级做| 久久人人爽人人爽| 国产成人三级在线观看| 国产精品沙发午睡系列990531| 白白色 亚洲乱淫| 亚洲一区二区三区精品在线| 9191成人精品久久| 精品亚洲免费视频| 亚洲欧美自拍偷拍| 欧美午夜精品理论片a级按摩| 美女网站色91| 国产精品美女久久久久久久久久久| 99re8在线精品视频免费播放| 亚洲图片欧美综合| 日韩视频在线一区二区| 成人午夜电影网站| 亚洲成年人影院| 国产欧美综合在线| 欧美日韩国产123区| 国产成a人亚洲精品| 亚洲成人自拍一区| 国产人成亚洲第一网站在线播放| 色综合久久88色综合天天6| 麻豆成人av在线| 中文字幕在线不卡国产视频| 777久久久精品| caoporen国产精品视频| 奇米影视一区二区三区| 亚洲欧洲日韩综合一区二区| 日韩欧美一区二区免费| 97久久精品人人做人人爽50路| 日韩不卡一区二区| 亚洲欧美影音先锋| 精品美女在线观看| 欧美视频在线一区二区三区| 国产精品资源在线观看| 亚洲国产精品一区二区久久 | 欧美日韩亚洲高清一区二区| 黄网站免费久久| 亚洲国产aⅴ天堂久久| 中文字幕+乱码+中文字幕一区| 欧美高清激情brazzers| 波多野结衣亚洲| 国产一区二区三区在线观看免费视频| 亚洲视频免费观看| 亚洲精品久久久蜜桃| 精品久久人人做人人爽| 欧美日韩国产系列| 成人午夜看片网址| 国产一区欧美日韩| 日韩av网站免费在线| 亚洲一区免费视频| 亚洲色欲色欲www| 日本一区二区三区在线不卡| 日韩色视频在线观看| 欧美三级韩国三级日本三斤| www.日韩大片| 成人午夜又粗又硬又大| 另类小说综合欧美亚洲| 日本美女一区二区三区视频| 亚洲第一福利一区| 亚洲3atv精品一区二区三区| 亚洲免费视频成人| 亚洲视频图片小说| 亚洲色图制服诱惑| 亚洲日本成人在线观看| 国产一区二区在线看| 蜜桃av一区二区在线观看| 五月天视频一区| 午夜亚洲福利老司机| 亚洲3atv精品一区二区三区| 午夜伊人狠狠久久| 亚洲福利视频一区二区| 亚洲成av人在线观看| 日韩高清在线不卡| 免费人成精品欧美精品| 捆绑调教美女网站视频一区| 激情久久久久久久久久久久久久久久 | av在线播放成人| 99视频在线精品| 色综合久久中文字幕| 91国模大尺度私拍在线视频| 欧美影院午夜播放| 日韩一级欧美一级| 国产午夜精品一区二区三区视频| 久久久国产精品麻豆 | 亚洲欧洲美洲综合色网| 亚洲欧美另类在线| 亚洲成人免费在线| 美腿丝袜在线亚洲一区| 国产在线精品一区二区不卡了| 国产成人精品综合在线观看| 91色|porny| 8v天堂国产在线一区二区| 26uuu色噜噜精品一区二区| 国产精品美女久久久久aⅴ| 亚洲乱码国产乱码精品精小说 | 精品一区二区三区影院在线午夜| 国内精品伊人久久久久av影院| 国产成人免费在线视频| 色综合久久久网| 欧美一级午夜免费电影| 国产欧美一区二区精品性| 一区二区三区在线视频播放| 日本亚洲三级在线| 成人av在线电影| 欧美性视频一区二区三区| 久久综合资源网| 一区二区三区在线视频免费观看| 麻豆一区二区在线| 99天天综合性| 精品国产乱码久久久久久浪潮| 国产精品久久久久久久久免费樱桃| 亚洲一二三区在线观看| 国产一区二区调教| 欧美色男人天堂| 国产精品视频免费看| 美女看a上一区| 日本电影亚洲天堂一区| 久久久久国产成人精品亚洲午夜| 亚洲女同ⅹxx女同tv| 久久精品国产精品亚洲精品| 91免费国产视频网站| 欧美v日韩v国产v| 99精品欧美一区| 亚洲精品一区二区三区99| 一区二区三区波多野结衣在线观看| 黑人巨大精品欧美黑白配亚洲| 在线观看国产日韩| 国产精品网站在线| 狠狠色2019综合网| 91精品国产综合久久久久久久久久| 中文字幕亚洲一区二区av在线| 蜜臀久久99精品久久久久久9| 在线看国产一区二区| 欧美激情一区二区在线| 久热成人在线视频| 欧美精品一卡两卡| 亚洲精品久久7777| 成人永久免费视频| 国产午夜精品福利| 免费成人av在线| 欧美裸体bbwbbwbbw| 一区二区三区四区视频精品免费 | 一区二区三区丝袜| eeuss鲁片一区二区三区| 久久精品一二三| 精品一区二区三区在线播放| 欧美一区二区在线免费观看| 亚洲尤物视频在线| 一本大道综合伊人精品热热 | 国产乱对白刺激视频不卡| 4438成人网| 午夜久久久久久久久| 欧洲一区在线电影| 一区二区在线观看视频在线观看| caoporen国产精品视频| 国产精品毛片a∨一区二区三区| 国产精品88av| 中文字幕国产一区| 成人av集中营| 中文字幕亚洲欧美在线不卡| av资源网一区| 国产精品欧美综合在线| 不卡av电影在线播放| 国产精品久久久久精k8| 97se亚洲国产综合自在线观| 国产精品二三区| 在线亚洲一区二区| 亚洲资源中文字幕| 欧美高清精品3d| 久久精品99久久久| 久久精品日韩一区二区三区| 国产sm精品调教视频网站| 综合久久久久久久| 欧美午夜电影网| 日韩av一区二区三区四区| 精品国产免费久久| 成人免费福利片| 亚洲一区二区欧美日韩| 欧美日韩成人综合| 精品一区二区三区在线播放| 国产欧美日韩另类视频免费观看| av中文字幕亚洲| 亚洲国产日韩一区二区| 日韩精品一区二区三区视频在线观看| 六月丁香综合在线视频| 中文av一区二区| 欧美私模裸体表演在线观看| 老司机精品视频线观看86| 国产精品毛片久久久久久久| 欧美午夜精品久久久久久超碰|