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

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

?? genrsakey.cpp

?? Microsoft CryptoAPI 加解密技術源代碼實例
?? CPP
字號:
// GenRsaKey.cpp : implementation file
//

#include "stdafx.h"
#include "CSPtest.h"
#include "GenRsaKey.h"
//密鑰操作類頭文件
#include "KeyOperation.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CGenRsaKey dialog


CGenRsaKey::CGenRsaKey(CWnd* pParent /*=NULL*/)
	: CDialog(CGenRsaKey::IDD, pParent)
{
	//{{AFX_DATA_INIT(CGenRsaKey)
	m_SelectButton = -1;
	m_strSrcPath = _T("");
	m_strDestPath = _T("");
	m_strPWD = _T("");
	m_strSymDestPath = _T("");
	m_strSymSrcPath = _T("");
	m_strSSrcPath = _T("");
	m_strVDestPath = _T("");
	//}}AFX_DATA_INIT
}


void CGenRsaKey::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CGenRsaKey)
	DDX_Radio(pDX, IDC_RADIO1, m_SelectButton);
	DDX_Text(pDX, IDC_SRC_PATH, m_strSrcPath);
	DDX_Text(pDX, IDC_DEST_PATH, m_strDestPath);
	DDX_Text(pDX, IDC_PWD, m_strPWD);
	DDX_Text(pDX, IDC_SYM_DEST_PATH, m_strSymDestPath);
	DDX_Text(pDX, IDC_SYM_SRC_PATH, m_strSymSrcPath);
	DDX_Text(pDX, IDC_SIGN_SRC_PATH, m_strSSrcPath);
	DDX_Text(pDX, IDC_VERIFY_DEST_PATH, m_strVDestPath);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CGenRsaKey, CDialog)
	//{{AFX_MSG_MAP(CGenRsaKey)
	ON_BN_CLICKED(IDC_GEN_RSA_KEY, OnGenRsaKey)
	ON_BN_CLICKED(IDC_EXPORT_KEY, OnExportKey)
	ON_BN_CLICKED(IDC_OPEN_BUTTON, OnOpenButton)
	ON_BN_CLICKED(IDC_SAVE_BUTTON, OnSaveButton)
	ON_BN_CLICKED(IDC_RSA_ENCRYPT, OnRsaEncrypt)
	ON_BN_CLICKED(IDC_RSA_DECRYPT, OnRsaDecrypt)
	ON_BN_CLICKED(IDC_SYM_OPEN_BUTTON, OnSymOpenButton)
	ON_BN_CLICKED(IDC_SYM_SAVE_BUTTON, OnSymSaveButton)
	ON_BN_CLICKED(IDC_ENCRYPT, OnEncrypt)
	ON_BN_CLICKED(IDC_DECRYPT, OnDecrypt)
	ON_BN_CLICKED(IDC_SIGN_OPEN_BUTTON, OnSOpenButton)
	ON_BN_CLICKED(IDC_VERIFY_SAVE_BUTTON, OnVerifySaveButton)
	ON_BN_CLICKED(IDC_RSA_SIGN, OnRsaSign)
	ON_BN_CLICKED(IDC_RSA_VERIFY, OnRsaVerify)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGenRsaKey message handlers



void CGenRsaKey::OnGenRsaKey() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	int r;
	int nflag; //密鑰類型
	
	CKeyOperation obj_RSA; //密鑰操作類對象
	
	if(m_SelectButton == 0)
	{
		nflag = 1;
		r = obj_RSA.CRYPTAPI_GenRsaKey(nflag);
		if(r != 0)
		{
			MessageBox("產生簽名密鑰對失敗!");
			return;
		}
	}
	else if(m_SelectButton == 1)
	{
		nflag = 2;
		r = obj_RSA.CRYPTAPI_GenRsaKey(nflag);
		if(r != 0)
		{
			MessageBox("產生加密密鑰對失敗!");
			return;
		}
	}
	else
	{
		MessageBox("請先選擇密鑰類型!");
		return;
	}
	MessageBox("生成RSA密鑰對成功!");
	return;
}

void CGenRsaKey::OnExportKey() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	int r;
	int nflag; //公鑰類型
	
	CKeyOperation obj_PubKey;
	
	unsigned char szPubKeyBuf[1024] = {0};
	int nPubKeyLen;

	if(m_SelectButton == 0)
	{
		nflag = 1;
		r = obj_PubKey.CRYPTAPI_ExportPubKey(nflag, szPubKeyBuf, nPubKeyLen);
		if(r != 0)
		{
			MessageBox("導出簽名公鑰失敗!");
			return;
		}
	}
	else if(m_SelectButton == 1)
	{
		nflag = 2;
		r = obj_PubKey.CRYPTAPI_ExportPubKey(nflag, szPubKeyBuf, nPubKeyLen);
		if(r != 0)
		{
			MessageBox("導出加密公鑰失敗!");
			return;
		}
	}
	else
	{
		MessageBox("請先選擇導出公鑰類型!");
		return;
	}
	MessageBox("導出公鑰成功!");
	return;
}

void CGenRsaKey::OnOpenButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	char szFilter[] = "全部文件(*.*)|*.*||";
	CFileDialog OpenFile(TRUE, NULL, "*.*", 
		OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
	if(OpenFile.DoModal() != IDOK)
	{
		return;
	}

	m_strSrcPath = OpenFile.GetPathName();

	UpdateData(FALSE);
	return;
}

void CGenRsaKey::OnSaveButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
	static char szFilter[] = "全部文件(*.*)|*.*||";
	CFileDialog saveFileDlg(FALSE, NULL, "*.*",
		OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR,szFilter,NULL);
	if(saveFileDlg.DoModal() != IDOK)
	{
		return;
	}
	m_strDestPath = saveFileDlg.GetPathName();
	UpdateData(FALSE);
	return;
	
}

void CGenRsaKey::OnRsaEncrypt() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(m_strSrcPath == "" && m_strDestPath == "")
	{
		MessageBox("請選擇要的操作文件路徑!");
		return;
	}
	
	CKeyOperation obj_Encrypt;
	//讀取待加密文件
	CFile fpSrcFile;
	if(fpSrcFile.Open(m_strSrcPath, CFile::modeRead) == 0)
	{
		MessageBox("讀取待加密文件失敗!");
		return;
	}
	
	int nSrcFileLen = fpSrcFile.GetLength();
	unsigned char *pbSrcData = new unsigned char [128+1]; //分配待加密文件緩沖區 
	//一定要分配到128以上不管明文多長
	memset(pbSrcData, 0x00, 128+1);
	fpSrcFile.Read(pbSrcData, nSrcFileLen);
	fpSrcFile.Close();
	
	int nDestFileLen = 128;
	unsigned char *pbDestData = new unsigned char [nDestFileLen+1]; //分配加密后文件緩沖區
	memset(pbDestData, 0x00, nDestFileLen+1);
	
	int r = obj_Encrypt.CRYPTAPI_RSAEncrypt(pbSrcData, nSrcFileLen, pbDestData, nDestFileLen);
	if(r != 0)
	{
		delete [] pbSrcData;
		pbSrcData = NULL;
		delete [] pbDestData;
		pbDestData = NULL;
		MessageBox("非對稱加密失敗!");
		return;
	}
	
	//保存加密后的數據為文件
	CFile fpDestFile;
	if(fpDestFile.Open(m_strDestPath, CFile::modeWrite | CFile::modeCreate ) == 0)
	{
		MessageBox("創建保存文件失敗!");
		return;
	}
	fpDestFile.Write(pbDestData, nDestFileLen);
	fpDestFile.Close();
	
	delete [] pbSrcData;
	pbSrcData = NULL;
	delete [] pbDestData;
	pbDestData = NULL;
	
	MessageBox("非對稱加密成功!");
	return;
}

void CGenRsaKey::OnRsaDecrypt() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
	if(m_strSrcPath == "" && m_strDestPath == "")
	{
		MessageBox("請選擇要的操作文件路徑!");
		return;
	}
	
	CKeyOperation obj_Decrypt;
	//讀取待加密文件
	CFile fpSrcFile;
	if(fpSrcFile.Open(m_strSrcPath, CFile::modeRead) == 0)
	{
		MessageBox("讀取待解密文件失敗!");
		return;
	}
	
	int nSrcFileLen = fpSrcFile.GetLength();
	unsigned char *pbSrcData = new unsigned char [nSrcFileLen+1]; //分配待解密文件緩沖區
	memset(pbSrcData, 0x00, nSrcFileLen+1);
	fpSrcFile.Read(pbSrcData, nSrcFileLen);
	fpSrcFile.Close();
	
	int nDestFileLen = 128;
	unsigned char *pbDestData = new unsigned char [nDestFileLen+1]; //分配加密后文件緩沖區
	memset(pbDestData, 0x00, nDestFileLen+1);
	
	int r = obj_Decrypt.CRYPTAPI_RSADecrypt(pbSrcData, nSrcFileLen, pbDestData, nDestFileLen);
	if(r != 0)
	{
		delete [] pbSrcData;
		pbSrcData = NULL;
		delete [] pbDestData;
		pbDestData = NULL;
		MessageBox("非對稱解密失敗!");
		return;
	}
	
	//保存加密后的數據為文件
	CFile fpDestFile;
	if(fpDestFile.Open(m_strDestPath, CFile::modeCreate | CFile::modeWrite) == 0)
	{
		MessageBox("創建保存文件失敗!");
		return;
	}
	fpDestFile.Write(pbDestData, nDestFileLen);
	fpDestFile.Close();
	
	delete [] pbSrcData;
	pbSrcData = NULL;
	delete [] pbDestData;
	pbDestData = NULL;
	
	MessageBox("非對稱解密成功!");
	return;
	
	return;
	
}

void CGenRsaKey::OnSymOpenButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	char szFilter[] = "全部文件(*.*)|*.*||";
	CFileDialog OpenFile(TRUE, NULL, "*.*", 
		OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
	if(OpenFile.DoModal() != IDOK)
	{
		return;
	}

	m_strSymSrcPath = OpenFile.GetPathName();

	UpdateData(FALSE);
	return;
}


void CGenRsaKey::OnSymSaveButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	static char szFilter[] = "全部文件(*.*)|*.*||";
	CFileDialog saveFileDlg(FALSE, NULL, "*.*",
		OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR,szFilter,NULL);
	if(saveFileDlg.DoModal() != IDOK)
	{
		return;
	}
	m_strSymDestPath = saveFileDlg.GetPathName();
	UpdateData(FALSE);
	return;
}

void CGenRsaKey::OnEncrypt() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
	if(m_strPWD == "" && m_strSymDestPath == "" && m_strSymSrcPath == "")
	{
		MessageBox("請確認 口令,待加密文件,加密文件是否填寫正確!");
		return;
	}
	//讀取待加密文件
	CFile fpSrcFile;
	if(fpSrcFile.Open(m_strSymSrcPath, CFile::modeRead) == 0)
	{
		MessageBox("讀取待對稱加密文件失敗!");
		return;
	}
	
	int nSrcFileLen = fpSrcFile.GetLength();
	unsigned char *pbSrcData = new unsigned char [nSrcFileLen+1];
	memset(pbSrcData, 0x00, nSrcFileLen+1);
	fpSrcFile.Read(pbSrcData, nSrcFileLen);
	fpSrcFile.Close();
	
	CKeyOperation obj_SymEn;
	
	int nDestFileLen;
	unsigned char *pbDestData = new unsigned char[nSrcFileLen+256];//對稱加密會填充數據至少是16字節
	//所以開的緩沖大些防止溢出
	memset(pbDestData, 0x00, nSrcFileLen+256);					  
	//對稱加密文件
	int r = obj_SymEn.CRYPTAPI_Encrypt((unsigned char *)m_strPWD.GetBuffer(0), m_strPWD.GetLength(), pbSrcData, 
		nSrcFileLen, pbDestData, nDestFileLen);
	if(r != 0)
	{
		delete [] pbSrcData;
		pbSrcData = NULL;
		delete [] pbDestData;
		pbDestData = NULL;
		MessageBox("對稱加密失敗!");
		return;
	}
	
	//保存對稱加密文件
	CFile fpDestFile;
	if(fpDestFile.Open(m_strSymDestPath, CFile::modeCreate | CFile::modeWrite) == 0)
	{
		MessageBox("創建保存加密文件失敗!");
		return;
	}

	fpDestFile.Write(pbDestData, nDestFileLen);
	fpDestFile.Close();
	
	//delete [] pbSrcData;
	//pbSrcData = NULL;
	delete [] pbDestData;
	pbDestData = NULL;
	
	MessageBox("對稱加密成功!");
	
	return;
}

void CGenRsaKey::OnDecrypt() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
	if(m_strPWD == "" && m_strSymDestPath == "" && m_strSymSrcPath == "")
	{
		MessageBox("請確認 口令,待解密文件,解密文件是否填寫正確!");
		return;
	}
	
	CFile fpSrcFile;
	if(fpSrcFile.Open(m_strSymSrcPath, CFile::modeRead) == 0)
	{
		MessageBox("讀取待對稱解密文件失敗!");
		return;
	}
	
	int nSrcFileLen = fpSrcFile.GetLength();
	unsigned char *pbSrcData = new unsigned char [nSrcFileLen+1];
	memset(pbSrcData, 0x00, nSrcFileLen+1);
	fpSrcFile.Read(pbSrcData, nSrcFileLen);
	fpSrcFile.Close();
	
	CKeyOperation obj_SymDe;
	
	int nDestFileLen;
	unsigned char *pbDestData = new unsigned char [nSrcFileLen+1]; //解密時要去填充所以緩沖可以相同
	memset(pbDestData, 0x00, nSrcFileLen+1);
	
	int r = obj_SymDe.CRYPTAPI_Decrypt((unsigned char *)m_strPWD.GetBuffer(0), m_strPWD.GetLength(), pbSrcData, 
							nSrcFileLen,pbDestData, nDestFileLen);
	if(r != 0)
	{
		delete [] pbSrcData;
		pbSrcData = NULL;
		delete [] pbDestData;
		pbDestData = NULL;
		MessageBox("對稱解密失敗!");
		return;
	}
	
	CFile fpDestFile;
	if(fpDestFile.Open(m_strSymDestPath, CFile::modeCreate | CFile::modeWrite) == 0)
	{
		MessageBox("創建保存加密文件失敗!");
		return;
	}
	
	fpDestFile.Write(pbDestData, nDestFileLen);
	fpDestFile.Close();
	
	delete [] pbDestData;
	pbDestData = NULL;
	
	MessageBox("對稱解密成功!");
	
	return;
}

void CGenRsaKey::OnSOpenButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	char szFilter[] = "全部文件(*.*)|*.*||";
	CFileDialog OpenFile(TRUE, NULL, "*.*", 
		OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR, szFilter, NULL);
	if(OpenFile.DoModal() != IDOK)
	{
		return;
	}

	m_strSSrcPath = OpenFile.GetPathName();

	UpdateData(FALSE);
	return;
}

void CGenRsaKey::OnVerifySaveButton() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
	static char szFilter[] = "全部文件(*.*)|*.*||";
	CFileDialog saveFileDlg(FALSE, NULL, "*.*",
		OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_NOCHANGEDIR,szFilter,NULL);
	if(saveFileDlg.DoModal() != IDOK)
	{
		return;
	}
	m_strVDestPath = saveFileDlg.GetPathName();
	UpdateData(FALSE);
	return;
}

void CGenRsaKey::OnRsaSign() 
{
	// TODO: Add your control notification handler code here
	if(m_strSSrcPath == "" && m_strVDestPath == "" )
	{
		MessageBox("請選擇待簽名/待驗證文件路徑!");
		return;
	}
	
	unsigned char *pbSourceData;
	int nSourceLen;
	unsigned char pbDestData[1024] = {0}; //這里沒有用NEW 是偷懶主要是覺得不過128個字節而已
	int nDestLen;
	
	CFile fpSrcFile;
	if(fpSrcFile.Open(m_strSSrcPath, CFile::modeRead) == 0)
	{
		MessageBox("讀取待簽名文件失敗!");
		return;
	}
	
	nSourceLen = fpSrcFile.GetLength();
	pbSourceData = new unsigned char [nSourceLen+1];
	memset(pbSourceData, 0x00, nSourceLen+1);
	fpSrcFile.Read(pbSourceData, nSourceLen);
	fpSrcFile.Close();

	
	CKeyOperation obj_Sign;
	
	int r = obj_Sign.CRYPTAPI_RSASign(pbSourceData, nSourceLen, pbDestData, &nDestLen);
	if(r != 0)
	{
		MessageBox("簽名數據失敗!");
		return;
	}
	
	CFile fpDestFile;
	if(fpDestFile.Open(m_strVDestPath, CFile::modeCreate | CFile::modeWrite) == 0)
	{
		MessageBox("創建保存簽名數據文件失敗!");
		return;
	}
	
	fpDestFile.Write(pbDestData, nDestLen);
	fpDestFile.Close();
	
	delete [] pbSourceData;
	pbSourceData = NULL;

	MessageBox("簽名數據成功!");
	return;
}

void CGenRsaKey::OnRsaVerify() 
{
	// TODO: Add your control notification handler code here
	if(m_strSSrcPath == "" && m_strVDestPath == "" )
	{
		MessageBox("請選擇待文件路徑!");
		return;
	}
	
	unsigned char *pbSrcData; //緩沖區可能還不夠啊
	int nSrcLen;
	unsigned char pbDestData[1024] = {0};
	int nDestLen;
	
	//讀取原文
	CFile fpSrcFile;
	if(fpSrcFile.Open(m_strVDestPath, CFile::modeRead) == 0)
	{
		MessageBox("讀取簽名原文失敗!");
		return;
	}
	
	nSrcLen = fpSrcFile.GetLength();
	pbSrcData = new unsigned char [nSrcLen+1];
	memset(pbSrcData, 0x00, nSrcLen+1);
	fpSrcFile.Read(pbSrcData, nSrcLen);
	fpSrcFile.Close();
	
	//讀取簽名數據
	CFile fpDestFile;
	if(fpDestFile.Open(m_strSSrcPath, CFile::modeRead) == 0)
	{
		MessageBox("讀取簽名原文失敗!");
		return;
	}
	
	nDestLen = fpDestFile.GetLength();
	fpDestFile.Read(pbDestData, nDestLen);
	fpDestFile.Close();
	
	
	CKeyOperation obj_Verify;
	
	int r = obj_Verify.CRYPTAPI_RSAVerify(pbSrcData, nSrcLen, pbDestData, nDestLen);
	if(r != 0)
	{
		MessageBox("驗證簽名失敗!");
		return;
	}
	
	delete [] pbSrcData;
	pbSrcData = NULL;

	MessageBox("驗證簽名成功!");
	
	return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a级高清视频欧美日韩| 日本道免费精品一区二区三区| 99综合影院在线| 国模冰冰炮一区二区| 国产在线精品一区二区不卡了| 美女视频黄免费的久久| 日本中文字幕不卡| 国产九色sp调教91| 成人欧美一区二区三区白人 | 狠狠色综合日日| 久久夜色精品国产噜噜av| 国内成人自拍视频| 丝袜脚交一区二区| 视频一区欧美精品| 中文字幕一区二区日韩精品绯色| 91成人网在线| 日日骚欧美日韩| 精品一区二区三区日韩| 精品国产乱子伦一区| 日韩亚洲电影在线| 成人在线综合网站| 色哟哟国产精品免费观看| 懂色av中文一区二区三区 | 亚洲永久精品大片| 日韩国产精品91| 久久综合久久99| 激情成人综合网| 91精品国产全国免费观看| 久久精品亚洲精品国产欧美 | 亚洲成人在线观看视频| 亚洲丶国产丶欧美一区二区三区| 欧美视频日韩视频在线观看| 2020国产精品| 国产精品一二三在| 日韩欧美国产午夜精品| 狠狠色狠狠色合久久伊人| 欧美精品久久99| 免费人成在线不卡| 亚洲少妇屁股交4| 亚洲三级电影全部在线观看高清| 国内精品伊人久久久久av一坑| 欧美日韩成人综合天天影院| 亚洲最大成人网4388xx| 在线观看亚洲成人| 亚洲午夜在线视频| 久久综合国产精品| 成人午夜在线免费| 亚洲一区二区偷拍精品| 欧美一区二区三区日韩视频| 久久 天天综合| 亚洲视频 欧洲视频| 欧美电视剧免费全集观看| 日韩精品一区二区三区视频播放 | 日本不卡在线视频| 午夜日韩在线观看| 天堂影院一区二区| 麻豆国产精品官网| 国产成人免费视频网站 | 国产乱码一区二区三区| 国产成人亚洲精品青草天美| 成人午夜激情片| 91丨九色porny丨蝌蚪| 欧美高清视频www夜色资源网| 欧美一区二区视频观看视频 | 欧美女孩性生活视频| 亚洲国产乱码最新视频| 午夜精彩视频在线观看不卡| 久久你懂得1024| 久久久久久免费毛片精品| 日韩欧美电影一二三| 制服.丝袜.亚洲.另类.中文| 在线电影欧美成精品| 欧美日韩国产大片| 88在线观看91蜜桃国自产| 9191久久久久久久久久久| 91精品国产综合久久久久| 69精品人人人人| 精品国产污污免费网站入口| 国产无人区一区二区三区| 国产精品福利在线播放| 亚洲电影你懂得| 国产a级毛片一区| 91网站在线播放| 欧美图区在线视频| 国产亚洲综合色| 亚洲一区二区三区四区五区中文| 亚洲国产一区二区三区| 久久精品国产99国产| www.欧美.com| 久久中文字幕电影| 亚洲男人的天堂在线观看| 久久精品久久99精品久久| 不卡的av电影在线观看| 欧美大胆一级视频| 亚洲在线中文字幕| av激情综合网| 精品黑人一区二区三区久久| 国产精品久久久久久久久免费相片| 亚洲综合免费观看高清在线观看| 国产一区在线观看麻豆| 日本久久电影网| 亚洲精选免费视频| 99精品国产91久久久久久| 欧美v国产在线一区二区三区| 性欧美疯狂xxxxbbbb| 欧美自拍丝袜亚洲| 一个色在线综合| 91激情五月电影| 亚洲午夜久久久久| 欧美性xxxxx极品少妇| 亚洲三级在线免费观看| 成人h动漫精品一区二区| 久久―日本道色综合久久| 国产精品一区二区久激情瑜伽| 4438成人网| 成人免费不卡视频| 亚洲精品老司机| 欧美电影一区二区| 国产在线看一区| 国产精品不卡在线观看| 精品视频在线看| 日韩av在线播放中文字幕| 精品日韩99亚洲| 国产一区在线精品| 亚洲国产综合色| 久久精品一区四区| 99久久夜色精品国产网站| 亚洲免费av高清| 精品国产青草久久久久福利| 97se亚洲国产综合自在线| 亚洲日本一区二区| 日韩欧美在线一区二区三区| 国产高清久久久久| 亚洲综合色在线| 亚洲视频中文字幕| 精品乱人伦一区二区三区| 粉嫩绯色av一区二区在线观看| 亚洲小说春色综合另类电影| 国产精品亲子乱子伦xxxx裸| 欧美军同video69gay| 色拍拍在线精品视频8848| 久久99热99| 男男视频亚洲欧美| 亚洲成a人v欧美综合天堂下载| 国产精品国模大尺度视频| 国产亚洲精品久| 日韩欧美激情四射| 日韩欧美一区在线观看| 欧美精品一二三| 91精品国产综合久久久久久漫画 | 一区二区三区在线观看欧美| 91麻豆精品国产91久久久久| 欧美日韩视频在线观看一区二区三区 | 欧美日韩在线播放三区| 欧美日韩在线综合| 在线免费观看一区| 欧美一三区三区四区免费在线看 | 天天综合天天综合色| 午夜私人影院久久久久| 一区二区三区欧美视频| 午夜精品久久久久久久久久 | 欧美一区二区在线播放| 精品国产伦一区二区三区免费| 欧美精品一区二区三区很污很色的| 欧美tk—视频vk| 一二三四区精品视频| 国产一二精品视频| 91在线观看美女| 精品国精品国产尤物美女| 国产精品久久久久精k8| 午夜欧美在线一二页| 国产成人精品aa毛片| 日韩一区二区三区四区| 亚洲色图丝袜美腿| 国产乱码精品1区2区3区| 欧美伊人精品成人久久综合97| 精品动漫一区二区三区在线观看| 一区在线观看免费| 国产在线一区观看| 欧美一级搡bbbb搡bbbb| 一区二区三区电影在线播| 国产成人日日夜夜| 精品国产露脸精彩对白| 亚洲午夜一二三区视频| 在线观看av一区二区| 亚洲特黄一级片| 欧美在线你懂的| 一区二区日韩av| 欧美色涩在线第一页| 亚洲成人动漫精品| 6080yy午夜一二三区久久| 五月天一区二区| 欧美一区午夜精品| 精品一区二区在线看| 久久久99精品免费观看| 成人午夜激情在线| 亚洲国产美国国产综合一区二区| 色偷偷成人一区二区三区91| 亚洲免费大片在线观看| 欧美日韩国产高清一区二区|