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

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

?? testcspdlg.cpp

?? Windows Mobile 5.0下的CSP圖形化測(cè)試工具。
?? CPP
字號(hào):
// TestCSPDlg.cpp : implementation file
//
/*
	call SCWCSPCE.dll to test csp functions
	
*/
#include "stdafx.h"
#include "TestCSP.h"
#include "TestCSPDlg.h"
#include "Test.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

#define CREATE_CONTAINER "Create Container"
#define DELETE_CONTAINER "Delete Container"
#define GEN_KEYS "Gen RSA Keys"
#define HASH_DATA  "Hash_Data"
#define SIGN_HASH "Sign Hash"
#define GET_PROV_PARAM "Get Prov Param"
#define ENCRYPT_DECRYPT "En/decrypt"
#define SDLISTEN "SDListen"
#define SDNOTLISTEN "SDNotListen"

#define BUF_SIZE 256

HMODULE csp = LoadLibrary(TEXT("SCWCSPCE.dll"));

CSPFunc cf;


// CTestCSPDlg dialog

CTestCSPDlg::CTestCSPDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTestCSPDlg::IDD, pParent)
	, msg(_T(""))
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CTestCSPDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, MSG, msg);
}

BEGIN_MESSAGE_MAP(CTestCSPDlg, CDialog)
#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
	ON_WM_SIZE()
#endif
	//}}AFX_MSG_MAP
	ON_BN_CLICKED(IDC_BUTTON1, &CTestCSPDlg::OnBnClickedButton1)
END_MESSAGE_MAP()

void CTestCSPDlg::WriteLog(CString log)
{
	msg = msg + log + (CString)"\r\n";
	UpdateData(false);
}

void CTestCSPDlg::WL(const char *bytes)
{
	msg += (CString)bytes + (CString)"\r\n";
	UpdateData(false);
}

void CTestCSPDlg::SL()
{
	msg += (CString)"	Succeed!\r\n";
	UpdateData(false);
}

void CTestCSPDlg::FL()
{
	msg += (CString)"	Failed!\r\n";
	UpdateData(false);
}
// CTestCSPDlg message handlers
void InitCSPFuntions()
{
	if(csp == NULL)
	{
		CTestCSPDlg dlg1;
		dlg1.WriteLog((CString)"Error:The module SCWCSPCE.DLL is not found!");
	};
	cf.lp_fnAcquire = (ACQUIRECONTEXT)GetProcAddress(csp,TEXT("CPAcquireContext"));
	cf.lp_fnRelease = (RELEASECONTEXT)GetProcAddress(csp,TEXT("CPReleaseContext"));

	cf.lp_fnGetProvParam = (GETPROVPARAM)GetProcAddress(csp,TEXT("CPGetProvParam"));

	cf.lp_fnCreateHash = (CREATEHASH)GetProcAddress(csp,TEXT("CPCreateHash"));
	cf.lp_fnDestroyHash = (DESTROYHASH)GetProcAddress(csp,TEXT("CPDestroyHash"));
	cf.lp_fnGetHashParam = (GETHASHPARAM)GetProcAddress(csp,TEXT("CPGetHashParam"));
	cf.lp_fnHashData = (HASHDATA)GetProcAddress(csp,TEXT("CPHashData"));
	cf.lp_fnHashSessionKey = (HASHSESSIONKEY)GetProcAddress(csp,TEXT("CPHashSessionKey"));
	cf.lp_fnSetHashParam = (SETHASHPARAM)GetProcAddress(csp,TEXT("CPSetHashParam"));

	cf.lp_fnEncrypt = (ENCRYPT)GetProcAddress(csp,TEXT("CPEncrypt"));
	cf.lp_fnDecrypt = (DECRYPT)GetProcAddress(csp,TEXT("CPDecrypt"));
	cf.lp_fnSignHash = (SIGNHASH)GetProcAddress(csp,TEXT("CPSignHash"));

	cf.lp_fnVerifySignature = (VERIFYSIGNATURE)GetProcAddress(csp,TEXT("CPVerifySignature"));

	cf.lp_fnDeriveKey = (DERIVEKEY)GetProcAddress(csp,TEXT("CPDeriveKey"));
	cf.lp_fnDestroyKey = (DESTROYKEY)GetProcAddress(csp,TEXT("CPDestroyKey"));
	cf.lp_fnImportKey = (IMPORTKEY)GetProcAddress(csp,TEXT("CPImportKey"));
	cf.lp_fnExportKey = (EXPORTKEY)GetProcAddress(csp,TEXT("CPExportKey"));
	cf.lp_fnGenKey = (GENKEY)GetProcAddress(csp,TEXT("CPGenKey"));
	cf.lp_fnGetKeyParam = (GETKEYPARAM)GetProcAddress(csp,TEXT("CPGetKeyParam"));
	cf.lp_fnSetKeyParam = (SETKEYPARAM)GetProcAddress(csp,TEXT("CPSetKeyParam"));
	cf.lp_fnGetUserKey = (GETUSERKEY)GetProcAddress(csp,TEXT("CPGetUserKey"));
	cf.lp_fnGenRandom = (GENRANDOM)GetProcAddress(csp,TEXT("CPGenRandom"));

	//cui.lp_fnNewCard = (NEWCARD)GetProcAddress(hUI,TEXT("NewCard"));
}
BOOL CTestCSPDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	InitCSPFuntions();
	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

#if defined(_DEVICE_RESOLUTION_AWARE) && !defined(WIN32_PLATFORM_WFSP)
void CTestCSPDlg::OnSize(UINT /*nType*/, int /*cx*/, int /*cy*/)
{
	DRA::RelayoutDialog(
		AfxGetInstanceHandle(), 
		this->m_hWnd, 
		DRA::GetDisplayMode() != DRA::Portrait ? 
			MAKEINTRESOURCE(IDD_TESTCSP_DIALOG_WIDE) : 
			MAKEINTRESOURCE(IDD_TESTCSP_DIALOG));
}
#endif

bool CTestCSPDlg::AcquireContext(HCRYPTPROV* hProv)
{
	WL("Begin in CPAcquireContext....");
	if(cf.lp_fnAcquire(hProv,0,0,NULL))
	{
		SL();
		return true;
	} 
	else 
	{
		if(GetLastError() == NTE_BAD_KEYSET)
		{
			WriteLog((CString)"Key container need to be created.");
			if(cf.lp_fnAcquire(hProv,0,CRYPT_NEWKEYSET,NULL))
			{
				WriteLog((CString)"A new key container has been created.");
				return true;
			}
			else
			{
				WriteLog((CString)"Could not create a key container.");
				return false;
			}
		}
		else
		{
			FL();
			return false;
		}
	}
	return true;
}

void CTestCSPDlg::TestCreateContainer()
{
	HCRYPTPROV hProv;
	WriteLog((CString)"CPAcquireContext....");
	if(cf.lp_fnAcquire(&hProv,0,0,NULL))
	{
		WriteLog((CString)"	 Container is already there.");
	} 
	else 
	{
		if(GetLastError() == NTE_BAD_KEYSET)
		{
			if(cf.lp_fnAcquire(&hProv,0,CRYPT_NEWKEYSET,NULL))
			{
				WriteLog((CString)"	 Container created.");
			}
			else
			{
				FL();
			}
		}
	}
	WL("CPReleaseContext....");
	if(cf.lp_fnRelease(hProv,0))
	{
		SL();
	}
	else
	{
		FL();
	}
}
void CTestCSPDlg::TestDeleteKeySet()
{
	HCRYPTPROV hProv;
	WriteLog((CString)"Begin in CPAcquireContext....");
	if(cf.lp_fnAcquire(&hProv,0,CRYPT_DELETEKEYSET,NULL))
	{
		WriteLog((CString)"		Deleted.");
	} 
	else 
	{
		if(GetLastError() == NTE_BAD_KEYSET)
		{
			WL("Key set not exist!");
		}
		else
		{
			WL("Failed to delete!");
		}
	}
	
}

void CTestCSPDlg::TestGenKey()
{  
	HCRYPTPROV hProv;
	HCRYPTKEY hKey;
	if(!AcquireContext(&hProv))
		return;
	WriteLog((CString)"CPGetUserKey ....");
	if(cf.lp_fnGetUserKey(hProv,AT_SIGNATURE,&hKey))
	{    
		WriteLog((CString)"Key already there!");
	}
	else 
	{ 
		WriteLog((CString)"CPGenKey...");
		if (cf.lp_fnGenKey(hProv,AT_SIGNATURE,0,&hKey))
		{
			SL();
		} 
		else
		{
			FL();
		}
	}
	WL("CPReleaseContext...");
	if(cf.lp_fnRelease(hProv,0))
	{
		SL();
	}
	else
	{
		FL();
	}
}

void CTestCSPDlg::TestHashData()
{
	HCRYPTPROV hProv;
	HCRYPTHASH hash;
	if(!AcquireContext(&hProv))
		return;
	WriteLog((CString)"CPCreateHash....");
	if(cf.lp_fnCreateHash(hProv,CALG_MD5,0,0,&hash))
		SL();
	else
	{
		FL();
		return;
	}

	DWORD bLen = 100;
	BYTE* pbData = new BYTE[bLen];
	WCHAR* temp = TEXT("Welcome to test.");
	WideCharToMultiByte(CP_ACP,0,temp,wcslen(temp),(LPSTR)pbData,bLen,0,0);
	WriteLog((CString)temp);
	bLen = sizeof(pbData);

	WL("CPHashData....");
	if(cf.lp_fnHashData(hProv,hash,pbData,bLen,0))
	{  
		SL();
	}
	else 
	{ 
		FL();
		return;
	}

	WL("CPReleaseContext...");
	if(cf.lp_fnRelease(hProv,0))
	{
		SL();
	}
	else
	{
		FL();
	}
}
void CTestCSPDlg::TestSignHash()
{  
	HCRYPTPROV hProv;
	HCRYPTHASH hash;
	HCRYPTKEY hKey;

	if(!AcquireContext(&hProv))
		return;

	WriteLog((CString)"Begin in test RSA sign....");

	if(!cf.lp_fnGetUserKey(hProv,AT_SIGNATURE,&hKey))
	{
		WriteLog((CString)"The signature keys are not exist.\r\nBegin to generate them....");
		WriteLog((CString)"CPGenKey");
		if(!cf.lp_fnGenKey(hProv,AT_SIGNATURE,0,&hKey))
		{
			WriteLog((CString)"  Failed.");
			return;
		}
		else
		{
			WriteLog((CString)"  Succeed.");
		}		
	}

	WriteLog((CString)"CPCreateHash...");
	if(cf.lp_fnCreateHash(hProv,CALG_MD5,0,0,&hash))
		WriteLog((CString)"  Succeed.");
	else
		WriteLog((CString)"  Failed.");
	DWORD bLen = 100;
	BYTE* pbData = new BYTE[bLen];
	WCHAR* temp = TEXT("Welcome to test.");
	WideCharToMultiByte(CP_ACP,0,temp,wcslen(temp),(LPSTR)pbData,bLen,0,0);
	bLen = sizeof(pbData);
	WriteLog((CString)"CPHashData");
	if(cf.lp_fnHashData(hProv,hash,pbData,bLen,0))
		WriteLog((CString)"  Succeed.");
	else 
		WriteLog((CString)"  Failed.");

	DWORD bufferLength;
	if(!cf.lp_fnSignHash(hProv,hash,AT_SIGNATURE,NULL,0,NULL,&bufferLength))
		WriteLog((CString)"Get signature size failed.");
	BYTE* buffer = new BYTE[sizeof(BYTE)*bufferLength];

	WriteLog((CString)"CPSignHash");
	if(cf.lp_fnSignHash(hProv,hash,AT_SIGNATURE,NULL,0,buffer,&bufferLength))
		WriteLog((CString)"  Succeed.");
	else
		WriteLog((CString)"  Failed.");
	
	WriteLog((CString)"CPVerifySignature");
	if(cf.lp_fnVerifySignature(hProv,hash,buffer,bufferLength,hKey,NULL,0))
		WriteLog((CString)"  Succeed.");
	else
		WriteLog((CString)"  Failed.");
	
	WriteLog((CString)"CPReleaseContext....");
	if(cf.lp_fnRelease(hProv,0))
	{
		WriteLog((CString)"  Succeed.");
	}
	else
	{
		WriteLog((CString)"  Failed");
	}
}

void CTestCSPDlg::TestGetProvParam()
{
	HCRYPTPROV hProv;
	if(!AcquireContext(&hProv))
		return;
	DWORD params[12] = {PP_CONTAINER,PP_ENUMALGS,PP_ENUMALGS_EX,PP_ENUMCONTAINERS,PP_IMPTYPE,PP_NAME,PP_VERSION,PP_SIG_KEYSIZE_INC,PP_KEYX_KEYSIZE_INC,
		PP_KEYSET_SEC_DESCR,PP_UNIQUE_CONTAINER,PP_PROVTYPE};
	DWORD flags[3] = {};
	DWORD dwParam;
	BYTE *pbData = new BYTE[256];
	DWORD pdwDataLen = 256;
	DWORD dwFlags = 0;
	char* temp = new char[400];
	WL("CPGetProvParam....");
	for(int i = 0; i < 12; i++)
	{
		pdwDataLen = 256;
		dwParam = params[i];
		switch(i)
		{

		case 1:
			{
				PROV_ENUMALGS	pbwData;
				dwFlags = CRYPT_FIRST;
				WL("{ALG_ID, BitLen, NameLen, Name}");
				while(cf.lp_fnGetProvParam(hProv,dwParam,reinterpret_cast<BYTE*>(&pbwData),&pdwDataLen,dwFlags))
				{
					dwFlags = 0;
					sprintf(temp,"{%d,   %d,   %d,   %S}",pbwData.aiAlgid,pbwData.dwBitLen,pbwData.dwNameLen,pbwData.szName);
					WL(temp);
					memset(temp,0,400);
					pdwDataLen = sizeof(pbwData);
				}
				break;
			}
		case 2:
			{
				/*PROV_ENUMALGS_EX	pbwData;
				dwFlags = CRYPT_FIRST;
				WL("{ALG_ID,  BitLen,  NameLen,  Name}");
				while(cf.lp_fnGetProvParam(hProv,dwParam,reinterpret_cast<BYTE*>(&pbwData),&pdwDataLen,dwFlags))
				{
					dwFlags = 0;
					sprintf(temp,"{%d, %d, %d, %S}",pbwData.aiAlgid,pbwData.dwDefaultLen,pbwData.dwNameLen,pbwData.szName);
					WL(temp);
					memset(temp,0,400);
					pdwDataLen = sizeof(pbwData);
				}*/
				break;
			}
		case 5:
			{
				if(cf.lp_fnGetProvParam(hProv,dwParam,pbData,&pdwDataLen,dwFlags))
				{
					sprintf(temp,"CSP name is:\r\n  %S",pbData);
					WL(temp);
					memset(temp,0,400);
				}
				else
				{
					SL();
				}
				break;
			}
		case 9:
			break;
		case 10:
			{
				if(cf.lp_fnGetProvParam(hProv,dwParam,pbData,&pdwDataLen,dwFlags))
				{
					sprintf(temp,"Default container is:\r\n  %S",pbData);
					WL(temp);
					memset(temp,0,400);
				}
				else
				{
					SL();
				}
				break;
			}
		default:
			{
				/*if(cf.lp_fnGetProvParam(hProv,dwParam,pbData,&pdwDataLen,dwFlags))
				{
					sprintf(temp,"%S - length:%d \n",pbData,pdwDataLen);
					WL(temp);
					memset(temp,0,400);
				}
				else
				{
					SL();
				}*/
				break;
			}

		}

	}
	WL("CPReleaseContext...");
	if(cf.lp_fnRelease(hProv,0))
	{
		SL();
	}
	else
	{
		FL();
	}
}


void CTestCSPDlg::TestEncrypt()
{
	HCRYPTPROV hProv;
	if(!AcquireContext(&hProv))
		return;

	DWORD bLen = 100;
	BYTE* pbData = new BYTE[bLen];
	WCHAR* temp = TEXT("Welcome to test.");
	WideCharToMultiByte(CP_ACP,0,temp,wcslen(temp),(LPSTR)pbData,bLen,0,0);
	bLen = sizeof(pbData);

	WL("Test data is:");
	WL((LPSTR)pbData);

	HCRYPTKEY hSessionKey;
	WL("CPGenKey....(3DES)");
	if(cf.lp_fnGenKey(hProv,CALG_3DES,CRYPT_EXPORTABLE,&hSessionKey))
	{
		SL();
	}
	else
	{
		FL();
		return;
	}
	
	WL("CPEncrypt...");
	if(cf.lp_fnEncrypt(hProv,hSessionKey,0,TRUE,0,pbData,&bLen,100))
	{
		SL();
	}
	else
	{
		FL();
		return;
	}
	
	WL("CPDecrypt...");
	if(cf.lp_fnDecrypt(hProv,hSessionKey,0,TRUE,0,pbData,&bLen))
	{
		SL();
		WL("Decrypt data is:");
		WL((LPSTR)pbData);
	}
	else
	{
		FL();
		return;
	}

	WriteLog((CString)"CPReleaseContext....");
	if(cf.lp_fnRelease(hProv,0))
	{
		WriteLog((CString)"  Succeed.");
	}
	else
	{
		WriteLog((CString)"  Failed");
	}
}

void CTestCSPDlg::TestReleaseContext()
{
	HCRYPTPROV hProv;
	if(!AcquireContext(&hProv))
		return;
	WriteLog((CString)"CPReleaseContext....");
	if(cf.lp_fnRelease( hProv,0))
	{
		SL();
	}
	else
	{
		FL();
	}
}
void CTestCSPDlg::OnBnClickedButton1()
{
	// TODO: Add your control notification handler code here
	HANDLE hDrv;
	CString elem;
	GetDlgItem(FUNC_CHOOSE)->GetWindowText(elem);
	if(elem ==CREATE_CONTAINER)
	{ 
		msg=(CString)"";
		TestCreateContainer();
	}
	else if(elem == DELETE_CONTAINER)
	{
		msg = (CString)"";
		TestDeleteKeySet();
	}
	else if (elem==GEN_KEYS)
	{  msg=(CString)"";
	   TestGenKey();
	} 
	else if(elem==HASH_DATA)
	{  msg=(CString)"";
	   TestHashData();
	}
	else if(elem == SIGN_HASH)
	{
		msg = (CString)"";
		TestSignHash();
	}
	else if(elem == GET_PROV_PARAM)
	{
		msg = (CString)"";
		TestGetProvParam();
	}
	else if(ENCRYPT_DECRYPT == elem)
	{
		msg = (CString)"";
		TestEncrypt();
	}
	else if(SDLISTEN == elem)
	{
		msg = (CString)"";
		WL("Activate SDListen.dll as service....");
		hDrv = RegisterService (TEXT("MSL"), 0, TEXT("ListenSD.dll"), 0);
		
		if(hDrv)
		{
			SL();
		}
		else
		{
			FL();
		}
	}
	else if(SDNOTLISTEN == elem)
	{
		msg = (CString)"";
		if(hDrv)
		{
			WL("Deregister SDListen.dll ....");
			if(DeregisterService(hDrv))
			{
				SL();
			}
			else
			{
				FL();
				WCHAR* err = new WCHAR[20];
				wsprintf(err,TEXT("Error Code:%d."),GetLastError());
				WriteLog((CString)err);
				delete[] err;
			}
		}
		else
		{
			WL("SD listen service is not started.");
		}
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲成人自拍网| 国产三级一区二区| 亚洲精品一区二区三区香蕉| 欧美二区在线观看| 欧美日韩美少妇| 91精品国产福利| 日韩视频一区二区三区在线播放| 91精品欧美综合在线观看最新| 欧美精品日韩精品| 日韩午夜小视频| 久久一区二区三区四区| 国产视频一区在线观看| 国产午夜亚洲精品羞羞网站| 国产精品久久久久影院老司| 亚洲精品写真福利| 亚洲mv在线观看| 久久精品二区亚洲w码| 国产精品 日产精品 欧美精品| 国产盗摄女厕一区二区三区| 99精品视频一区二区| 91麻豆免费视频| 欧美精品乱码久久久久久| 欧美一级免费大片| 久久久噜噜噜久噜久久综合| 美女任你摸久久| 国产一级精品在线| 暴力调教一区二区三区| www.在线欧美| 在线不卡的av| 亚洲国产精品成人久久综合一区| 亚洲丝袜自拍清纯另类| 天天综合色天天综合色h| 久88久久88久久久| 99久久精品国产麻豆演员表| 欧美日韩成人激情| 久久久777精品电影网影网| 亚洲色图.com| 日本在线不卡视频| 成人毛片在线观看| 91精彩视频在线| 欧美喷潮久久久xxxxx| 久久久久久久精| 午夜视频在线观看一区| 国产麻豆精品在线| 欧美色手机在线观看| 久久亚洲一区二区三区四区| 亚洲乱码中文字幕综合| 毛片一区二区三区| 99精品久久99久久久久| 欧美一区欧美二区| 最新成人av在线| 狠狠久久亚洲欧美| 91精品1区2区| 国产精品无人区| 天天色天天爱天天射综合| 成人免费毛片嘿嘿连载视频| 欧美日本一区二区三区四区 | 午夜免费久久看| 盗摄精品av一区二区三区| 欧美猛男男办公室激情| 国产精品成人免费| 精品一区二区久久久| 欧美亚男人的天堂| 国产精品情趣视频| 国精产品一区一区三区mba桃花| 91香蕉视频在线| 久久精品免视看| 亚洲成人一二三| 日本道免费精品一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 夜夜嗨av一区二区三区网页| 成人看片黄a免费看在线| 欧美一区二区视频在线观看2020| 一区二区激情小说| www.亚洲色图.com| 国产精品区一区二区三区| 国产精品影音先锋| 制服丝袜日韩国产| 亚洲成av人影院| 在线亚洲+欧美+日本专区| 国产精品久久三区| 国产成人高清在线| 国产亚洲精品精华液| 久久成人免费电影| 日韩女优av电影在线观看| 日韩va亚洲va欧美va久久| 欧美性感一区二区三区| 亚洲精品视频一区| 一本到不卡免费一区二区| 中文字幕日韩一区| 99久久精品情趣| 久久久久久久免费视频了| 激情小说亚洲一区| 亚洲高清久久久| 日本大香伊一区二区三区| 国产精品国产三级国产普通话蜜臀| 国产精品一区二区三区四区| 欧美成人乱码一区二区三区| 久久精品国产免费看久久精品| 欧美一区二区视频观看视频| 日日夜夜精品视频免费| 91精品在线免费观看| 美日韩黄色大片| 精品剧情v国产在线观看在线| 日韩激情视频网站| 欧美男男青年gay1069videost| 亚洲第一精品在线| 91精品国产91热久久久做人人| 老鸭窝一区二区久久精品| 欧美成人精品福利| 国产精品一线二线三线精华| 欧美激情一区在线观看| www.色综合.com| 夜夜操天天操亚洲| 69精品人人人人| 国产美女av一区二区三区| 精品剧情在线观看| 成人app网站| 亚洲一区二区在线观看视频| 欧美男生操女生| 激情都市一区二区| 国产精品视频观看| 欧美亚洲丝袜传媒另类| 日本va欧美va欧美va精品| 亚洲精品一区在线观看| 成人app在线观看| 亚洲一二三区在线观看| 日韩欧美一级在线播放| 国产成人啪免费观看软件| 亚洲人成网站影音先锋播放| 欧美揉bbbbb揉bbbbb| 激情av综合网| 亚洲激情在线播放| 日韩一区二区三免费高清| 懂色av一区二区三区蜜臀| 亚洲一区国产视频| 精品捆绑美女sm三区| 色综合久久久久久久久| 美女在线视频一区| 中文字幕一区二区三区视频| 91精品国产综合久久精品| 国产成a人亚洲| 午夜亚洲福利老司机| 国产欧美综合色| 欧美日韩精品一区二区天天拍小说 | 亚洲色图在线播放| 欧美美女一区二区| 成人午夜精品在线| 亚洲综合色视频| 国产区在线观看成人精品| 欧美三级日韩在线| 国产成人精品免费一区二区| 亚洲精选视频在线| 日本道精品一区二区三区| 国产麻豆91精品| 亚洲成av人片观看| 久久久精品影视| 色老头久久综合| 国产河南妇女毛片精品久久久 | 国模一区二区三区白浆| 一区二区三区四区视频精品免费| 精品国产凹凸成av人网站| 91久久一区二区| 欧美精品日韩一本| 91免费看`日韩一区二区| 亚洲444eee在线观看| 国产三级一区二区三区| 亚洲色图一区二区| 精品日产卡一卡二卡麻豆| 欧美日韩一区成人| 99riav一区二区三区| 日韩激情av在线| 国产精品国产三级国产aⅴ无密码| 精品国产91久久久久久久妲己| 欧美视频完全免费看| 成人动漫在线一区| 国产一区二区在线观看视频| 日本伊人精品一区二区三区观看方式| 亚洲欧美国产77777| 国产精品视频你懂的| 国产视频一区二区在线观看| 精品免费99久久| 日韩一区二区麻豆国产| 欧美日韩你懂的| 在线观看亚洲成人| 色综合久久中文综合久久牛| 岛国精品在线播放| 风流少妇一区二区| 国产精品自在欧美一区| 激情五月婷婷综合| 国产在线播精品第三| 久久国产精品色| 久久国产精品一区二区| 麻豆国产精品777777在线| 青青草原综合久久大伊人精品 | 成人性生交大片免费看中文网站| 美女性感视频久久| 久久不见久久见免费视频7| 免费观看一级欧美片|