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

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

?? generic.cpp

?? PKCS#11 讀取USB KEY證書
?? CPP
字號:
#include "StdAfx.h"
#include "generic.h"

void ShowData(unsigned char * pData, unsigned long ulDataLen)
{
	if(pData == NULL)
	{
		cout << "Data to be showed is NULL!" << endl;
		return;
	}
	else
	{
		cout << "Data (" << ulDataLen << " bytes) in HEX:";
		cout.setf(std::ios::uppercase);
		cout << std::setfill('0') << std::setw(2);
		for(unsigned long i = 0; i < ulDataLen; ++i)
		{
			if(0 == i % 16)
				cout << endl;

			cout << std::setw(2) << hex << (DWORD)pData[i] << ' ';
		}
	}

	cout << dec << endl;

	return ;
}

void BeginAction(const string& strOperation)
{
	cout << strOperation.c_str();
}

#ifndef NERR_BASE
#	define NERR_BASE		2100
#	define MAX_NERR			NERR_BASE + 899
#endif

void ActionFailed(DWORD dwLastError)
{
	cout.setf(std::ios::uppercase);
	cout<< "......[FAILED]." << endl
		<< "    [0x" << std::setfill('0') << std::setw(8) << hex
		<< dwLastError << "] "
		<< dec
		<< endl;

//	DWORD dwLastError = GetLastError();
	HMODULE hModule = NULL; // default to system source
	LPSTR MessageBuffer = NULL;
	DWORD dwBufferLength = 0;

	DWORD dwFormatFlags = FORMAT_MESSAGE_ALLOCATE_BUFFER |
		FORMAT_MESSAGE_IGNORE_INSERTS |
		FORMAT_MESSAGE_FROM_SYSTEM ;

	if(dwLastError >= NERR_BASE && dwLastError <= MAX_NERR)
	{
		hModule = LoadLibraryEx("netmsg.dll", NULL, LOAD_LIBRARY_AS_DATAFILE);

		if(hModule != NULL)
		{
			dwFormatFlags |= FORMAT_MESSAGE_FROM_HMODULE;
		}
	}

	if(dwBufferLength = FormatMessageA(dwFormatFlags, hModule,
		dwLastError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
		(LPSTR) &MessageBuffer, 0, NULL))
	{
		cout.setf(std::ios::uppercase);
		//cout<< "ERROR: " << strInfo << endl
		cout<< "......[FAILED]." << endl
			<< "    [0x" << std::setfill('0') << std::setw(8) << hex
			<< dwLastError << "] "
			<< MessageBuffer << dec
			<< endl;

		LocalFree(MessageBuffer);
	}

	if(hModule != NULL)
	{
		FreeLibrary(hModule);
	}
}

void ActionSuccess(void)
{
	cout << "......[OK]" << endl;
}

void GetProvParam(void)
{
	HCRYPTPROV hCryptProv = NULL;
	cout << endl << "Test CSP: " << CSP_NAME << endl << endl;

	BeginAction("CryptAcquireContext()");
	if(!CryptAcquireContext(&hCryptProv,
				NULL,
				CSP_NAME,
				PROV_RSA_FULL,
				CRYPT_VERIFYCONTEXT))
	{
		ActionFailed(GetLastError());
		return;
	}
	else
	{
		ActionSuccess();
	}

	// Hold the handle and release when this function return.
	HCRYPTPROV_Holder holder(hCryptProv);

	//Enum algs those CSP support:
	DWORD i = 0;
	CHAR szName[100] = {0}; // Often allocated dynamically
	BYTE pbData[1000] = {0}; // Often allocated dynamically
	DWORD cbData = 0;
	DWORD dwFlags = 0;
	CHAR *pszAlgType = NULL;
	
	// Enumerate the supported algorithms.
	cout<< "  ALG_ID     KeyLen   Type            Name" << endl
		<< "----------------------------------------------------------------" << endl;

	for(i=0 ; ; ++i) 
	{
		// Set the CRYPT_FIRST flag the first time through the loop.
		if(i == 0) 
		{
			dwFlags = CRYPT_FIRST;
		} 
		else 
		{
			dwFlags = 0;
		}
		
		// Retrieve information about an algorithm.
		cbData = 1000;
		if(!CryptGetProvParam(hCryptProv, PP_ENUMALGS, pbData, &cbData, dwFlags)) 
		{
			DWORD dwLastErr = GetLastError();
			if(ERROR_NO_MORE_ITEMS == dwLastErr)
			{
				// Exit the loop.
				break;
			}
			else 
			{
				;
				return;
			}
		}
		// Extract algorithm information from the 'pbData' buffer.
		PROV_ENUMALGS* pEnum = (PROV_ENUMALGS*)pbData;
		
		// Determine the algorithm type.
		switch(GET_ALG_CLASS(pEnum->aiAlgid)) 
		{
		case ALG_CLASS_DATA_ENCRYPT: pszAlgType = "Encrypt     ";
			break;
		case ALG_CLASS_HASH: pszAlgType = "Hash        ";
			break;
		case ALG_CLASS_KEY_EXCHANGE: pszAlgType = "Exchange    ";
			break;
		case ALG_CLASS_SIGNATURE: pszAlgType = "Signature   ";
			break;
		default: pszAlgType = "Unknown     ";
		}
		
		// Print information about the algorithm.  
//		printf("Algid:%8.8xh, Bits:%-4d, Type:%s, NameLen:%-2d, Name:%s\n",
//			aiAlgid, dwBits, pszAlgType, dwNameLen, szName
//			);

//		cout<< "ALG_ID: " << std::setfill('0') << std::setw(8) << hex << pEnum->aiAlgid
//			<< "KeyLen: " << std::setfill(' ') << std::setw(4) << dec << pEnum->dwBitLen
//			<< "Type  : " << pszAlgType
//			<< "Name  : " << pEnum->szName
//			<< endl;
		cout<< "  "
			<< std::setfill('0') << std::setw(8) << hex << pEnum->aiAlgid
			<< "    "
			<< std::setfill(' ') << std::setw(4) << dec << pEnum->dwBitLen
			<< "    "
			<< pszAlgType
			<< "    "
			<< pEnum->szName
			<< endl;
	}

	//ActionSuccess();

}













?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久国色av免费看影院| 欧美视频一区在线| 精品在线一区二区| 亚洲国产综合在线| 亚洲综合精品自拍| 亚洲二区视频在线| 欧美aaaaa成人免费观看视频| 亚洲成人av电影| 亚洲va天堂va国产va久| 国产精品综合二区| 美女视频一区二区三区| 久久精品国产精品青草| 激情六月婷婷久久| 不卡在线观看av| thepron国产精品| 一本大道久久a久久精品综合| 欧美亚男人的天堂| 日韩一区二区中文字幕| 精品成人在线观看| 国产精品婷婷午夜在线观看| 亚洲三级免费观看| 亚洲成人av电影| 国产一区二区三区高清播放| av不卡一区二区三区| 欧美在线综合视频| 精品国产制服丝袜高跟| 国产精品免费丝袜| 亚洲猫色日本管| 日本欧美大码aⅴ在线播放| 国产一区二区在线看| 99riav一区二区三区| 欧美一区二区三区公司| 国产婷婷色一区二区三区| 亚洲品质自拍视频网站| 日韩黄色免费电影| 99久久婷婷国产| 日韩一级精品视频在线观看| 国产精品视频免费看| 日本成人在线看| 91美女在线看| 精品国内片67194| 亚洲综合免费观看高清在线观看| 婷婷国产在线综合| 不卡一卡二卡三乱码免费网站 | 日韩欧美二区三区| 国产精品久久综合| 久久国产精品99久久人人澡| 在线免费观看不卡av| 日本一区二区三区国色天香| 天天色 色综合| 色美美综合视频| 2021久久国产精品不只是精品| 亚洲伊人伊色伊影伊综合网| 国产高清精品在线| 欧美第一区第二区| 亚洲国产三级在线| 色狠狠综合天天综合综合| 国产日韩高清在线| 国精品**一区二区三区在线蜜桃| 欧美色图天堂网| 亚洲精品乱码久久久久久久久 | 国产成人综合在线观看| 欧美一区二区国产| 婷婷国产v国产偷v亚洲高清| 色综合中文综合网| 狠狠色综合播放一区二区| 欧美久久久久久久久中文字幕| 亚洲国产高清在线| 国产精品正在播放| 久久青草国产手机看片福利盒子 | 欧美日韩成人高清| 一区二区三区精品视频在线| 色综合咪咪久久| 一区二区视频在线| 在线视频亚洲一区| 亚洲国产人成综合网站| 色悠悠久久综合| 一区二区在线观看免费| 欧亚洲嫩模精品一区三区| 亚洲午夜羞羞片| 欧美日韩国产bt| 久久国产精品99精品国产| 日韩美一区二区三区| 韩国女主播成人在线| 久久久久久久久久久久电影| 国产夫妻精品视频| 国产精品国产自产拍高清av| 色哟哟一区二区| 亚洲高清一区二区三区| 91精品国产色综合久久不卡电影 | 亚洲色图制服丝袜| 色香蕉成人二区免费| 亚洲成人一二三| 精品久久人人做人人爰| 成人午夜短视频| 伊人夜夜躁av伊人久久| 欧美一级片免费看| 国产精品99久久久久久久女警| 国产精品三级av| 欧美日产在线观看| 极品少妇一区二区三区精品视频 | 亚洲一区二区影院| 日韩欧美亚洲一区二区| 国产成人自拍在线| 亚洲综合在线电影| 欧美精品一区二区在线观看| 99久久免费精品| 日本一不卡视频| 中文字幕制服丝袜一区二区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产精品剧情在线亚洲| 欧美日韩视频不卡| 国产一区二区视频在线| 一区二区三区四区国产精品| 精品三级在线看| 欧美性xxxxx极品少妇| 黄色资源网久久资源365| 亚洲国产精品影院| 中文字幕欧美区| 日韩色在线观看| 色av综合在线| 成人毛片在线观看| 麻豆91在线观看| 亚洲国产精品一区二区久久| 国产无人区一区二区三区| 51午夜精品国产| 91色视频在线| 岛国精品在线观看| 精品亚洲欧美一区| 男男gaygay亚洲| 亚洲国产中文字幕在线视频综合 | 欧美一区二区三区日韩| 99久久精品99国产精品| 成人性生交大片免费看视频在线| 看片的网站亚洲| 日韩电影在线一区二区三区| 一区二区三区中文字幕精品精品| 久久久www成人免费无遮挡大片 | 风间由美性色一区二区三区| 免费三级欧美电影| 日韩av不卡一区二区| 亚洲综合色区另类av| 亚洲综合一二三区| 亚洲精品成a人| 亚洲精品免费在线| 亚洲日本欧美天堂| 中文字幕视频一区二区三区久| 国产日产欧产精品推荐色 | 91精品黄色片免费大全| 欧美午夜免费电影| 欧美丝袜丝交足nylons图片| 在线观看免费亚洲| 在线精品视频小说1| 在线免费亚洲电影| 精品视频一区 二区 三区| 欧美日韩国产成人在线免费| 欧美精选午夜久久久乱码6080| 在线精品亚洲一区二区不卡| 欧美性三三影院| 在线播放中文字幕一区| 欧美一区二区三区视频免费| 精品久久久久久综合日本欧美| 亚洲精品一区二区三区福利| 国产女人18毛片水真多成人如厕| 中文字幕 久热精品 视频在线| 国产午夜精品久久久久久免费视| 中文久久乱码一区二区| 最近中文字幕一区二区三区| 亚洲黄色片在线观看| 天天免费综合色| 国产米奇在线777精品观看| 成人激情文学综合网| 一本到高清视频免费精品| 欧美色图12p| 日韩精品中文字幕一区| 中文字幕免费一区| 一区二区三区不卡视频| 蜜臀av一区二区在线免费观看| 激情综合色综合久久| av电影在线观看不卡| 欧美日韩精品一区二区| 久久综合色8888| 亚洲免费在线视频| 九色综合国产一区二区三区| 成人动漫精品一区二区| 4438亚洲最大| 国产精品色呦呦| 日韩av电影一区| 91丨porny丨国产| 精品国产凹凸成av人网站| 综合久久久久久久| 九九**精品视频免费播放| 91视视频在线观看入口直接观看www | 久久精品国产精品亚洲综合| 成人午夜电影久久影院| 欧美精品丝袜中出| 最新国产の精品合集bt伙计| 狠狠色丁香九九婷婷综合五月| 91精品办公室少妇高潮对白| 精品人在线二区三区|