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

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

?? 08d.c

?? Program for implementing AES on 8051 based microcontrollers. SDCC is used as the C compiler. Microco
?? C
?? 第 1 頁 / 共 2 頁
字號:
// Program Description: DECRYPT 16-bytes of data received from UART and display DECRYPTED data on LCD
//
// Author: Anurag Chugh (anurag@ucmicrosys.com)

// NOTES:
// --01--
// 128-bit Advanced Standard Encryption is being used.
//
// --02--
// All communication (LCD or UART) is done using the characters
// '0','1','2','3','4','5','6','7','8','9','A','B','C','D','F'
// These characters represent the Hexadecimal Digits
// 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F Respectively
// 
// This is done so that the input and output can be carried out easily by using UART and LCD
// in a human readable form.
// 
// --03--
// The following code has been taken from
// http://www.hoozi.com/Articles/AESEncryption.htm
// It has been modified by Anurag Chugh (lithiumhead@msn.com) on 10th June 2008
// for use as a training exercie using the UNI-51-SDK
//
// --04-- 
// Here is one of the test vectors taken from
// http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf
// to test if your encryption/decryption functions are working properly
// Key (128-bit):	E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FA
// Plaintext:		014BAF2278A69D331D5180103643E99A
// Ciphertext:		6743C3D1519AB4F2CD9A78AB09A511BD
//
// Actual code to be used at proper places in the following program:
//
// Key:
// const unsigned char Key[16] = {0xE8,0xE9,0xEA,0xEB,0xED,0xEE,0xEF,0xF0,0xF2,0xF3,0xF4,0xF5,0xF7,0xF8,0xF9,0xFA}; //Test Vector
//
// Plain text:
// xdata at 0x0000 unsigned char in[16] = {0x01,0x4B,0xAF,0x22,0x78,0xA6,0x9D,0x33,0x1D,0x51,0x80,0x10,0x36,0x43,0xE9,0x9A}; //Test Vector



/*
******************************************************************
**       Advanced Encryption Standard implementation in C.      **
**       By Niyaz PK                                            **
**       E-mail: niyazlife@gmail.com                            **
**       Downloaded from Website: www.hoozi.com                 **
******************************************************************
This is the source code for decryption using the latest AES algorithm.
AES algorithm is also called Rijndael algorithm. AES algorithm is 
recommended for non-classified use by the National Institute of Standards 
and Technology(NIST), USA. Now-a-days AES is being used for almost 
all encryption applications all around the world.

THE MAIN FEATURE OF THIS AES ENCRYPTION PROGRAM IS NOT EFFICIENCY; IT
IS SIMPLICITY AND READABILITY. THIS SOURCE CODE IS PROVIDED FOR ALL
TO UNDERSTAND THE AES ALGORITHM.

Comments are provided as needed to understand the program. But the 
user must read some AES documentation to understand the underlying 
theory correctly.

It is not possible to describe the complete AES algorithm in detail 
here. For the complete description of the algorithm, point your 
browser to:
http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf

Find the Wikipedia page of AES at:
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
******************************************************************
*/



#include"UART.H"
#include"LCD.H"


// The number of columns comprising a state in AES. This is a constant in AES. Value=4
#define Nb 4

// The number of rounds in AES Cipher. It is simply initiated to zero.
// The actual value is specified in the program.
int Nr=0;

// The number of 32 bit words in the key. It is simply initiated to zero.
// The actual value is recieved in the program.
int Nk=0;

// in - it is the array that holds the CipherText to be decrypted.
// out - it is the array that holds the output of the for decryption.
// state - the array that holds the intermediate results during encryption.
//
// All these are stored in the Internal XRAM of P89V51RD2 which is addressable
// from 0x000 to 0x2FF (768 bytes ie 1024-256=768).
xdata at 0x0000 unsigned char in[16];
xdata at 0x0010 unsigned char out[16];
xdata at 0x0020 unsigned char state[4][4];

// The array that stores the round keys.
// This array is also stored in the Internal XRAM immediately after the above arrays.
xdata at 0x0030 unsigned char RoundKey[240];

// The Key input to the AES Program
// It is stored in the Flash Memory along with the program code using the const keyword.
// It doesn't change during the execution of the program and is must be known
// beforehand to the sender and receiver.
const unsigned char Key[16] = {0xE8,0xE9,0xEA,0xEB,0xED,0xEE,0xEF,0xF0,0xF2,0xF3,0xF4,0xF5,0xF7,0xF8,0xF9,0xFA};

const int rsbox[256] =
{ 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb
, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb
, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e
, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25
, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92
, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84
, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06
, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b
, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73
, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e
, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b
, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4
, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f
, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef
, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61
, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d };

int getSBoxInvert(int num)
{
	return rsbox[num];
}

const int sbox[256] =   {
//0	 1	2	  3	 4	5	 6	 7	  8	9	 A	  B	C	 D	 E	 F
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, //0
0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, //1
0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, //2
0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, //3
0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, //4
0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, //5
0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, //6
0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, //7
0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, //8
0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, //9
0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, //A
0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, //B
0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, //C
0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, //D
0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, //E
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 }; //F
  

int getSBoxValue(int num)
{
	return sbox[num];
}

// The round constant word array, Rcon[i], contains the values given by 
// x to the power (i-1) being powers of x (x is denoted as {02}) in the field GF(28)
// Note that i starts at 1, not 0).
// It is stored in the Flash Memory along with the program code using the const keyword.
// It doesn't change during the execution of the program.
const int Rcon[255] = {
0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 
0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 
0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 
0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 
0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 
0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 
0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 
0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 
0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 
0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 
0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 
0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 
0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 
0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 
0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 
0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb  };


// This function produces Nb(Nr+1) round keys. The round keys are used in each round to decrypt the states. 
void KeyExpansion()
{
	int i,j;
	unsigned char temp[4],k;
	
	// The first round key is the key itself.
	for(i=0;i<Nk;i++)
	{
		RoundKey[i*4]=Key[i*4];
		RoundKey[i*4+1]=Key[i*4+1];
		RoundKey[i*4+2]=Key[i*4+2];
		RoundKey[i*4+3]=Key[i*4+3];
	}

	// All other round keys are found from the previous round keys.
	while (i < (Nb * (Nr+1)))
	{
		for(j=0;j<4;j++)
		{
			temp[j]=RoundKey[(i-1) * 4 + j];
		}
		if (i % Nk == 0)
		{
			// This function rotates the 4 bytes in a word to the left once.
			// [a0,a1,a2,a3] becomes [a1,a2,a3,a0]

			// Function RotWord()
			{
				k = temp[0];
				temp[0] = temp[1];
				temp[1] = temp[2];
				temp[2] = temp[3];
				temp[3] = k;
			}

			// SubWord() is a function that takes a four-byte input word and 
			// applies the S-box to each of the four bytes to produce an output word.

			// Function Subword()
			{
				temp[0]=getSBoxValue(temp[0]);
				temp[1]=getSBoxValue(temp[1]);
				temp[2]=getSBoxValue(temp[2]);
				temp[3]=getSBoxValue(temp[3]);
			}

			temp[0] =  temp[0] ^ Rcon[i/Nk];
		}
		else if (Nk > 6 && i % Nk == 4)
		{
			// Function Subword()
			{
				temp[0]=getSBoxValue(temp[0]);
				temp[1]=getSBoxValue(temp[1]);
				temp[2]=getSBoxValue(temp[2]);
				temp[3]=getSBoxValue(temp[3]);
			}
		}
		RoundKey[i*4+0] = RoundKey[(i-Nk)*4+0] ^ temp[0];
		RoundKey[i*4+1] = RoundKey[(i-Nk)*4+1] ^ temp[1];
		RoundKey[i*4+2] = RoundKey[(i-Nk)*4+2] ^ temp[2];
		RoundKey[i*4+3] = RoundKey[(i-Nk)*4+3] ^ temp[3];
		i++;
	}
}

// This function adds the round key to state.
// The round key is added to the state by an XOR function.
void AddRoundKey(int round) 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美在线观看一区| 久久这里都是精品| 国产精品人成在线观看免费| 精品久久久影院| 亚洲精品一二三| 国产一区二区视频在线| 欧美三级电影精品| 成人欧美一区二区三区在线播放| 久久国产欧美日韩精品| 欧美肥妇毛茸茸| 亚洲精品成人在线| 成人av免费网站| 国产免费成人在线视频| 精彩视频一区二区三区| 欧美精品在线观看一区二区| 亚洲人精品午夜| 99视频精品在线| 国产视频一区在线观看| 国产一区在线不卡| 精品国产91乱码一区二区三区| 天天色综合天天| 666欧美在线视频| 精品黑人一区二区三区久久 | 亚洲国产另类av| 成人av资源在线观看| 久久精品一二三| 国产精品综合一区二区三区| 精品日韩在线观看| 青草av.久久免费一区| 在线成人免费观看| 日韩精品视频网站| 91精品在线一区二区| 青娱乐精品在线视频| 91精品欧美久久久久久动漫| 日韩电影在线观看网站| 欧美日本一道本| 日韩精品1区2区3区| 67194成人在线观看| 久久精品国产澳门| 精品国产一区a| 国产高清成人在线| 国产精品久久久久一区| 91麻豆免费看| 亚洲一区在线播放| 欧美二区三区的天堂| 老司机精品视频导航| 精品久久久久久久久久久久久久久久久| 美国毛片一区二区三区| 2021国产精品久久精品| 波多野结衣一区二区三区 | 8v天堂国产在线一区二区| 奇米一区二区三区| 欧美电视剧免费观看| 国产精品一品视频| 1024成人网| 欧美日韩成人激情| 久久97超碰色| 国产精品久久久99| 欧美日韩一级视频| 国产一区在线观看麻豆| 国产精品成人在线观看| 欧美男男青年gay1069videost| 免费的国产精品| 国产精品视频观看| 欧美视频中文一区二区三区在线观看| 丝袜a∨在线一区二区三区不卡| 精品少妇一区二区三区| av午夜一区麻豆| 七七婷婷婷婷精品国产| 欧美激情一区二区三区蜜桃视频| 色妞www精品视频| 麻豆视频一区二区| 亚洲女子a中天字幕| 欧美电视剧在线看免费| 一本久久a久久免费精品不卡| 人人超碰91尤物精品国产| 中文字幕日本不卡| 欧美成人福利视频| 色悠久久久久综合欧美99| 久久福利资源站| 亚洲精品菠萝久久久久久久| 久久亚区不卡日本| 欧美日韩美女一区二区| 成人丝袜18视频在线观看| 日韩不卡一区二区三区| 一区二区三区日韩欧美精品| 久久青草国产手机看片福利盒子| 欧美三级午夜理伦三级中视频| 国产精品1区二区.| 蜜臀久久久久久久| 亚洲国产日韩一级| 亚洲欧洲精品一区二区精品久久久| 精品少妇一区二区三区| 欧美区在线观看| 欧美在线观看视频一区二区三区| 国产mv日韩mv欧美| 国产综合成人久久大片91| 五月激情六月综合| 亚洲国产综合人成综合网站| 中文字幕一区二区三区在线观看| 欧美成人午夜电影| 日韩一区二区在线观看视频| 欧美日韩亚洲丝袜制服| 日本道免费精品一区二区三区| www.欧美.com| 成人晚上爱看视频| 成人美女视频在线观看| 国产一区二区三区香蕉| 精品制服美女久久| 午夜精品影院在线观看| 国产午夜精品久久久久久久| 激情文学综合插| 免费成人av在线播放| 偷拍亚洲欧洲综合| 午夜国产精品影院在线观看| 亚洲成人中文在线| 亚洲 欧美综合在线网络| 亚洲自拍偷拍九九九| 亚洲一区二区三区激情| 亚洲国产三级在线| 日本欧洲一区二区| 久久国产精品一区二区| 国产乱理伦片在线观看夜一区 | 色综合久久综合中文综合网| eeuss影院一区二区三区| av网站一区二区三区| 97超碰欧美中文字幕| 色吧成人激情小说| 欧美日韩成人一区二区| 日韩视频一区二区三区 | 国产精品自在在线| 国产白丝精品91爽爽久久| 精品国精品自拍自在线| 欧美一区二区三区啪啪| 91精品国产一区二区| 91视视频在线观看入口直接观看www | 欧美丰满美乳xxx高潮www| 欧美日韩精品系列| 欧美va亚洲va国产综合| 国产欧美日韩另类视频免费观看| 久久免费美女视频| 中文字幕一区二区三区av| 一区二区三区四区不卡在线| 日韩中文字幕区一区有砖一区| 麻豆高清免费国产一区| 国产永久精品大片wwwapp| 99精品视频在线播放观看| 欧美另类高清zo欧美| 久久久亚洲精华液精华液精华液 | 久久精品99久久久| 国产亚洲女人久久久久毛片| 欧洲一区二区三区免费视频| 欧美一区二区精品久久911| 国产欧美精品在线观看| 一区二区三区日韩欧美精品| 另类综合日韩欧美亚洲| 99国产精品99久久久久久| 欧美久久久久久蜜桃| 国产日韩欧美a| 亚洲 欧美综合在线网络| 国产激情一区二区三区| 欧美日韩精品二区第二页| 国产亚洲精品7777| 亚洲高清不卡在线| 成人免费毛片嘿嘿连载视频| 欧美精品乱人伦久久久久久| 国产精品久久久久久久蜜臀| 青娱乐精品视频| 色又黄又爽网站www久久| 久久免费视频一区| 日韩av电影免费观看高清完整版 | 亚洲国产日产av| 国产剧情在线观看一区二区| 欧美日韩亚洲国产综合| 国产精品私人影院| 久久99久久久久| 欧美三级视频在线观看| 亚洲欧美另类综合偷拍| 国产91丝袜在线播放| 日韩一区二区在线观看视频| 亚洲国产精品一区二区www在线| 高清日韩电视剧大全免费| 日韩女优制服丝袜电影| 亚洲成av人**亚洲成av**| 色婷婷久久一区二区三区麻豆| 日本一区二区视频在线观看| 紧缚奴在线一区二区三区| 91麻豆精品国产自产在线观看一区| 一区二区三区四区视频精品免费| 福利一区福利二区| 欧美国产精品一区二区三区| 激情综合网天天干| 欧美v国产在线一区二区三区| 视频一区视频二区在线观看| 欧美视频一区二区三区在线观看| 国产精品不卡视频| 97国产一区二区| 一区二区三区四区在线| 在线欧美日韩精品| 洋洋成人永久网站入口|