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

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

?? rsatest.cpp

?? PKCS#11 讀取USB KEY證書
?? CPP
字號:

#include "common.h"
#include "RSATest.h"

RSATest::RSATest(char* dll_file_path):CP11TestBase(dll_file_path)
{
}

RSATest::~RSATest()
{
}

void RSATest::Test(void)
{
	if(CKR_OK != Initialize())
		return;

	RsaKeyGenerationTest();

	Finalize();
}

void RSATest::RsaKeyGenerationTest(void)
{
	CK_RV rv = CKR_OK;
	CK_BBOOL bTrue = TRUE;
	CK_ULONG ulModulusBits = MODULUS_BIT_LENGTH;
	CK_BYTE subject[] = "Sample RSA Key Pair";
	CK_ULONG keyType = CKK_RSA;

	CK_OBJECT_HANDLE hPubKey = NULL_PTR;
	CK_OBJECT_CLASS pubClass = CKO_PUBLIC_KEY;
	CK_ATTRIBUTE pubTemplate[] =
	{ 
		{CKA_CLASS,			&pubClass,		sizeof(pubClass)},
		{CKA_KEY_TYPE,		&keyType,		sizeof(keyType)},
		{CKA_SUBJECT,		subject,		sizeof(subject)},
		{CKA_MODULUS_BITS,	&ulModulusBits, sizeof(ulModulusBits)},
		{CKA_ENCRYPT,		&bTrue,			sizeof(bTrue)},
		{CKA_TOKEN,			&bTrue,			sizeof(bTrue)},
		{CKA_WRAP,			&bTrue,			sizeof(bTrue)},
	};	

	CK_OBJECT_HANDLE hPriKey	= NULL_PTR;
	CK_OBJECT_CLASS priClass	= CKO_PRIVATE_KEY;
	CK_ATTRIBUTE priTemplate[]	= {
		{CKA_CLASS,			&priClass,	sizeof(priClass)},
		{CKA_KEY_TYPE,		&keyType,	sizeof(keyType)},
		{CKA_SUBJECT,		subject,	sizeof(subject)},
		{CKA_DECRYPT,		&bTrue,		sizeof(bTrue)},
		{CKA_PRIVATE,		&bTrue,		sizeof(bTrue)},
		{CKA_SENSITIVE,		&bTrue,		sizeof(bTrue)},
		{CKA_TOKEN,			&bTrue,		sizeof(bTrue)},
		{CKA_EXTRACTABLE,	&bTrue,		sizeof(bTrue)},
		{CKA_UNWRAP,		&bTrue,		sizeof(bTrue)},
	};
    CK_MECHANISM keyGenMechanism = {CKM_RSA_PKCS_KEY_PAIR_GEN, NULL_PTR, 0};
	CK_MECHANISM ckMechanism = {CKM_RSA_PKCS, NULL_PTR, 0};
	CK_BYTE pbMsg[] = "UsbToken RunRsaKeyGenerationTest...";
	CK_ULONG ulMsgLen = lstrlen((char *)pbMsg);
	CK_BYTE bSignatureBuffer[MODULUS_BIT_LENGTH] = {0};
	CK_ULONG ulSignatureLen = 0;
	CK_BYTE_PTR pbCipherBuffer = NULL;
	CK_ULONG ulCipherLen = 0;
	CK_BYTE_PTR pbRestoredMsg = NULL;
	CK_ULONG ulRestoredMsgLen = 0;

	rv =  m_p11->C_GenerateKeyPair(m_hSession, &keyGenMechanism,
							   pubTemplate, countof(pubTemplate),
							   priTemplate, countof(priTemplate),
							   &hPubKey, &hPriKey);
	if(!_CheckRV("C_GenerateKeyPair()", rv))
		return;

    // Try Sign and Verify operations with the key pair.
	// Sign a message. 
	ShowData("The message to be signed is: ", pbMsg, ulMsgLen);

	ulSignatureLen = sizeof(bSignatureBuffer);

	rv =  m_p11->C_SignInit(m_hSession, &ckMechanism, hPriKey);
	if(!_CheckRV("C_SignInit()", rv))
		return;

	rv =  m_p11->C_Sign(m_hSession, pbMsg, ulMsgLen, bSignatureBuffer, &ulSignatureLen);
	if(!_CheckRV("C_Sign()", rv))
		return;

	ShowData("Signature is: ", bSignatureBuffer, ulSignatureLen);

	// Verify the previously signed message.
	rv =  m_p11->C_VerifyInit(m_hSession, &ckMechanism, hPubKey);
	if(!_CheckRV("C_VerifyInit()", rv))
		return;
		
	rv =  m_p11->C_Verify(m_hSession, pbMsg, ulMsgLen, bSignatureBuffer, ulSignatureLen);
	if(!_CheckRV("C_Verify()", rv))
		return;

	// Encrypt a message. 
	ShowData("Message to be encrypt is: ", pbMsg, ulMsgLen);

	rv =  m_p11->C_EncryptInit(m_hSession, &ckMechanism, hPubKey);
	if(!_CheckRV("C_EncryptInit()", rv))
		return;

	rv =  m_p11->C_Encrypt(m_hSession, pbMsg, ulMsgLen, NULL_PTR, &ulCipherLen);
	if(!_CheckRV("C_Encrypt(1)", rv))
		return;

	pbCipherBuffer = (CK_BYTE_PTR)malloc(ulCipherLen);
	if (! pbCipherBuffer)
	{
		_CheckRV("Allocate buffer for encrypted data", CKR_HOST_MEMORY);
		return;
	}

	memset(pbCipherBuffer, 0, ulCipherLen);
	rv =  m_p11->C_Encrypt(m_hSession, pbMsg, ulMsgLen, pbCipherBuffer, &ulCipherLen);
	if(!_CheckRV("C_Encrypt(2)", rv))
	{
		free(pbCipherBuffer);
		return;
	}

	ShowData("Data encrypted: ", pbCipherBuffer, ulCipherLen);

	rv =  m_p11->C_DecryptInit(m_hSession, &ckMechanism, hPriKey);
	if(!_CheckRV("C_DecryptInit()", rv))
	{
		free(pbCipherBuffer);
		return;
	}

	rv =  m_p11->C_Decrypt(m_hSession, pbCipherBuffer, ulCipherLen, NULL_PTR, &ulRestoredMsgLen);
	if(!_CheckRV("C_Decrypt(1)", rv))
	{
		free(pbCipherBuffer);
		return;
	}

	pbRestoredMsg = (CK_BYTE_PTR)malloc(ulRestoredMsgLen + 1);
	if (! pbRestoredMsg)
	{
		_CheckRV("Allocate buffer for decrypted data", CKR_HOST_MEMORY);
		free(pbCipherBuffer);
		return;
	}

	memset(pbRestoredMsg, 0, ulRestoredMsgLen + 1);
	
	rv =  m_p11->C_Decrypt(m_hSession, pbCipherBuffer, ulCipherLen, 
			pbRestoredMsg, &ulRestoredMsgLen);
	if(!_CheckRV("C_Decrypt(2)", rv))
	{
		free(pbCipherBuffer);
		free(pbRestoredMsg);
		return;
	}

	ShowData("The message decrypted is: ", pbRestoredMsg, ulRestoredMsgLen);

	if(0 == memcmp(pbMsg, pbRestoredMsg, ulRestoredMsgLen))
		_CheckRV("Check data", CKR_OK);
	else
		_CheckRV("Check data", CKR_FUNCTION_FAILED);

	free(pbCipherBuffer);
	free(pbRestoredMsg);

	// Remove the RSA key pair from the UsbToken.

	rv =  m_p11->C_DestroyObject(m_hSession, hPubKey);
	_CheckRV("C_DestroyObject(public key)", rv);

	rv =  m_p11->C_DestroyObject(m_hSession, hPriKey);
	_CheckRV("C_DestroyObject(private key)", rv);

	rv = m_p11->C_Logout(m_hSession);
	_CheckRV("C_Logout()", rv);

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人免费影院| 色综合中文综合网| 欧美精品一区二区三区蜜桃 | 久久香蕉国产线看观看99| 国产精品理论片在线观看| 亚洲影院理伦片| 粉嫩av一区二区三区| 日韩免费一区二区| 亚洲最色的网站| 99久久er热在这里只有精品15| 日韩一级黄色片| 亚洲免费视频中文字幕| 日韩成人一区二区三区在线观看| 99这里都是精品| 精品美女一区二区三区| 亚瑟在线精品视频| 99在线热播精品免费| 久久免费看少妇高潮| 日韩av一二三| 欧美日韩国产天堂| 亚洲影院理伦片| 91啪亚洲精品| 中文字幕亚洲视频| 国产精品一区三区| 精品久久久久一区| 国产在线精品国自产拍免费| 欧美剧在线免费观看网站| 亚洲国产精品久久人人爱| 色婷婷亚洲精品| 一区二区三区在线观看网站| 91蜜桃婷婷狠狠久久综合9色| 国产精品久久看| 成人丝袜18视频在线观看| www久久精品| 国产91精品在线观看| 国产欧美日韩麻豆91| 国产在线日韩欧美| 国产视频一区二区在线| 成人激情综合网站| 在线观看视频91| 亚洲激情男女视频| 欧美网站大全在线观看| 一区二区三区欧美日韩| bt欧美亚洲午夜电影天堂| 国产精品成人在线观看 | 国产成人亚洲综合a∨婷婷 | 日韩主播视频在线| 日本精品视频一区二区| 亚洲精品水蜜桃| 欧美午夜精品理论片a级按摩| 亚洲一区国产视频| 成人性生交大片免费看在线播放 | 粉嫩在线一区二区三区视频| 国产精品视频一二三| 色菇凉天天综合网| 夜夜爽夜夜爽精品视频| 日韩欧美一级二级| 成人黄色a**站在线观看| 亚洲乱码精品一二三四区日韩在线| 91豆麻精品91久久久久久| 日本最新不卡在线| 国产精品色噜噜| 欧美日韩一二三| 国产一区二区伦理| 亚洲女人小视频在线观看| 欧美一区二区国产| 国产成人av电影| 亚洲高清在线精品| 日韩一级大片在线| 成人综合在线观看| 亚洲成人免费在线观看| 欧美一级二级在线观看| 国产精品一区二区久激情瑜伽| 亚洲欧洲日产国产综合网| 8v天堂国产在线一区二区| 韩国女主播一区二区三区| 国产清纯白嫩初高生在线观看91 | 色综合久久88色综合天天免费| 亚洲国产视频在线| 久久视频一区二区| 欧美日韩久久久久久| 国内精品视频一区二区三区八戒| 国产精品久久久久久久久免费丝袜 | 高清在线观看日韩| 同产精品九九九| 欧美国产日韩a欧美在线观看| 欧美久久久久久久久久| 大美女一区二区三区| 青青草原综合久久大伊人精品优势| 亚洲欧美在线观看| 久久久欧美精品sm网站| 日韩三级中文字幕| 欧美日韩亚洲高清一区二区| 成人网在线播放| 狠狠色综合日日| 麻豆成人久久精品二区三区小说| 国产精品丝袜黑色高跟| 久久免费视频色| 久久久精品tv| 精品国产凹凸成av人网站| 欧美一区二区三区在线电影| 欧美亚洲高清一区| 色94色欧美sute亚洲线路一ni | 国产一区二区三区美女| 免费观看成人av| 青草国产精品久久久久久| 午夜电影网亚洲视频| 亚洲一区二区三区爽爽爽爽爽| 亚洲少妇屁股交4| 亚洲欧美激情一区二区| 国产精品久久久久久久久免费樱桃| 国产免费久久精品| 国产亚洲综合性久久久影院| 久久久久久亚洲综合| 精品99一区二区| 久久久久久久久久久黄色| 久久综合成人精品亚洲另类欧美 | 中文字幕欧美三区| 欧美韩国日本综合| 日本一区二区成人| 日本一二三不卡| 亚洲视频在线观看三级| 亚洲女人****多毛耸耸8| 亚洲精品日韩一| 亚洲午夜免费电影| 首页国产欧美久久| 经典三级在线一区| 高清在线不卡av| 日本乱人伦一区| 欧美精品在线一区二区| 欧美大度的电影原声| 国产欧美日韩一区二区三区在线观看| 国产色一区二区| 亚洲婷婷在线视频| 亚洲一区二区三区精品在线| 图片区小说区区亚洲影院| 久久疯狂做爰流白浆xx| 粉嫩av一区二区三区在线播放 | 一区二区三区不卡视频| 视频一区二区国产| 国产麻豆日韩欧美久久| 97精品国产97久久久久久久久久久久| 91福利区一区二区三区| 亚洲精品一区二区三区影院| 中文字幕巨乱亚洲| 亚洲二区视频在线| 精品在线观看免费| 97超碰欧美中文字幕| 91精品在线麻豆| 欧美高清视频www夜色资源网| 精品成人一区二区| 久久久夜色精品亚洲| 一区二区三区在线观看视频| 免费成人小视频| 97久久人人超碰| 欧美疯狂做受xxxx富婆| 久久亚洲综合av| 亚洲一线二线三线视频| 国产在线乱码一区二区三区| 一本久道久久综合中文字幕 | 在线日韩一区二区| 2022国产精品视频| 中文字幕中文乱码欧美一区二区| 亚洲国产成人porn| 亚洲成人av一区二区| 亚洲va欧美va天堂v国产综合| 国产精品一区二区久激情瑜伽| 欧美亚洲高清一区二区三区不卡| 日韩你懂的在线播放| 亚洲精品视频观看| 成人精品亚洲人成在线| 欧美性猛片aaaaaaa做受| 国产欧美精品区一区二区三区 | 成人免费三级在线| 99久久夜色精品国产网站| 久久老女人爱爱| 精品少妇一区二区三区| 国产精品免费视频网站| 日韩精品一二三四| 91在线视频观看| 国产精品第一页第二页第三页| 韩国三级电影一区二区| 在线精品视频免费观看| 久久九九全国免费| 日韩精品91亚洲二区在线观看| 99热99精品| 久久精品亚洲一区二区三区浴池| 亚洲国产日韩综合久久精品| 国产综合色视频| 欧美精品一区二区三区蜜臀| 久久99国产精品久久99| 日韩一二三区视频| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩一区三区| 香蕉乱码成人久久天堂爱免费| 欧美日韩在线三区| 日韩高清在线观看| 欧美电影免费观看高清完整版在线 | 欧美日韩一区二区欧美激情| 亚洲一区在线视频|