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

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

?? pkcsdemodlg.cpp

?? PKCS#11 讀取USB KEY證書(shū)
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// PKCSDemoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "PKCSDemo.h"
#include "PKCSDemoDlg.h"

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

#include "DlgUserPIN.h"

#define NEWLINE "\r\n"

#define	countof(a)			(sizeof(a)/ sizeof(CK_ATTRIBUTE))

CK_BBOOL bTrue = TRUE;
CK_ULONG ulModulusBits = MODULUS_BIT_LENGTH; 
CK_BYTE subject[] = "Sample RSA Key Pair";
CK_ULONG keyType = CKK_RSA;

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)},
};	// Without specifying CKA_PRIVATE attribute in this case, 
// a public key will be created by default. 

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[] = "USB token bring you more security.";
CK_ULONG ulMsgLen = strlen((const char *)pbMsg);


/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
//////////////////////////////////////////////////////////////////////////
// byte to string according with special format
static CString nByteToStr(DWORD dwSize, void* pData, DWORD dwByte, DWORD dwSplit);

CString nByteToStr(DWORD dwSize, void* pData, DWORD dwByte, DWORD dwSplit)
{
	BYTE* pBuf = (BYTE*)pData; // local pointer to a BYTE in the BYTE array.
	
	CString strRet("");	
	DWORD nLine = 0;	
	DWORD dwLines = 0;
	DWORD dwRest = 0;
	bool bNeedSplit = true;
	char szTemp[20] = {0, };
	
	DWORD dwBlock = 0;	
	if(0 == dwSplit)
	{
		dwSplit = dwSize;
		bNeedSplit = false;
	}
	
	dwRest = dwSize % dwSplit;
	dwLines = dwSize / dwSplit;
	
	
	DWORD i, j, k, m;
	for(i = 0; i < dwLines; i++)
	{
		DWORD dwRestTemp = dwSplit % dwByte;
		DWORD dwByteBlock = dwSplit / dwByte;
		
		for(j = 0; j < dwByteBlock; j++)
		{
			for(k = 0; k < dwByte; k++)
			{
				wsprintf(szTemp, "%02X", pBuf[i * dwSplit + j * dwByte + k]);
				strRet += szTemp;
			}
			strRet += " ";
		}
		if(dwRestTemp)
		{
			for(m = 0; m < dwRestTemp; m++)
			{
				wsprintf(
					szTemp, "%02X",
					pBuf[i * dwSplit + j * dwByte + k - 3 + dwRestTemp]);
				strRet += szTemp;
			}
		}
		if(bNeedSplit)
			strRet += NEWLINE;
	}
	
	if(dwRest)
	{
		DWORD dwRestTemp = dwRest % dwByte;
		DWORD dwByteBlock = dwRest / dwByte;
		for(j = 0; j < dwByteBlock; j++)
		{
			for(k = 0; k < dwByte; k++)
			{
				wsprintf(szTemp, "%02X", pBuf[dwSize - dwRest + k]);
				strRet += szTemp;
			}
			strRet += " ";
		}
		if(dwRestTemp)
		{
			for(m = 0; m < dwRestTemp; m++)
			{
				wsprintf(
					szTemp, "%02X",
					pBuf[dwSize - dwRest + k - 1 + dwRestTemp]);
				strRet += szTemp;
			}
		}
		if(bNeedSplit)
			strRet += NEWLINE;
	}
	
	
	return strRet;
}  // End of ByteToStr

/////////////////////////////////////////////////////////////////////////////
// CPKCSDemoDlg dialog

CPKCSDemoDlg::CPKCSDemoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CPKCSDemoDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPKCSDemoDlg)
	m_strInfo = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	m_pSlotList = NULL_PTR;
	m_pApplication = new char[255];
	ZeroMemory(m_pApplication, 255);
	lstrcpy((char*)m_pApplication, "PKCS Demo App");
	m_hSession = NULL_PTR;
	m_hPubKey = NULL_PTR;
	m_hPriKey = NULL_PTR;
	m_bKeyGen = FALSE;
	ZeroMemory(m_pSignature, MODULUS_BIT_LENGTH);
	m_ulSignatureLen = sizeof(m_pSignature);
	m_pbCipherBuffer = NULL_PTR;
	m_ulCipherLen = 0;
}

CPKCSDemoDlg::~CPKCSDemoDlg()
{
	if(m_hSession)
	{
		C_CloseSession(m_hSession);
		m_hSession = NULL_PTR;
	}
	delete[] m_pApplication;
	if(m_pSlotList)
	{
		delete[] m_pSlotList;
		m_pSlotList = NULL_PTR;
	}
	if(m_pbCipherBuffer)
	{
		delete[] m_pbCipherBuffer;
		m_pbCipherBuffer = NULL_PTR;
		m_ulCipherLen = 0;
	}
}

void CPKCSDemoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPKCSDemoDlg)
	DDX_Control(pDX, IDC_BTN_VERIFY, m_btnVerify);
	DDX_Control(pDX, IDC_BTN_SIGN, m_btnSign);
	DDX_Control(pDX, IDC_BTN_ENCRYPT, m_btnEncrypt);
	DDX_Control(pDX, IDC_BTN_DECRYPT, m_btnDecrypt);
	DDX_Control(pDX, IDC_BTN_KEYPAIRGEN, m_btnKeyPairGen);
	DDX_Control(pDX, IDC_BTN_CONNECT, m_btnConnect);
	DDX_Control(pDX, IDC_INFO, m_edtInfo);
	DDX_Text(pDX, IDC_INFO, m_strInfo);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CPKCSDemoDlg, CDialog)
	//{{AFX_MSG_MAP(CPKCSDemoDlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BTN_CONNECT, OnBtnConnect)
	ON_BN_CLICKED(IDC_BTN_KEYPAIRGEN, OnBtnKeypairgen)
	ON_BN_CLICKED(IDC_BTN_SIGN, OnBtnSign)
	ON_BN_CLICKED(IDC_BTN_VERIFY, OnBtnVerify)
	ON_BN_CLICKED(IDC_BTN_CLEARINFO, OnBtnClearinfo)
	ON_BN_CLICKED(IDC_BTN_ENCRYPT, OnBtnEncrypt)
	ON_BN_CLICKED(IDC_BTN_DECRYPT, OnBtnDecrypt)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPKCSDemoDlg message handlers

BOOL CPKCSDemoDlg::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
	
	// TODO: Add extra initialization here

	ShowMsg("Before any operation, you should connect to token!"NEWLINE);

	m_btnKeyPairGen.EnableWindow(FALSE);
	m_btnSign.EnableWindow(FALSE);
	m_btnVerify.EnableWindow(FALSE);
	m_btnEncrypt.EnableWindow(FALSE);
	m_btnDecrypt.EnableWindow(FALSE);

	return TRUE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CPKCSDemoDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CPKCSDemoDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CPKCSDemoDlg::ShowMsg(CString strInfo)
{
	m_strInfo += strInfo;
	UpdateData(FALSE);

	int nLastLine = m_edtInfo.GetLineCount();// GetFirstVisibleLine();

	if (nLastLine > 0)
	{
		m_edtInfo.LineScroll(nLastLine, 0);
	}
}

void CPKCSDemoDlg::StartOP(void)
{
	ShowMsg(NEWLINE"================================================");
}

void CPKCSDemoDlg::ShowErr(CString strInfo, CK_RV rv)
{
	CString strTemp("");
	strTemp.Format(strInfo.GetBuffer(strInfo.GetLength()), rv);
	ShowMsg(strTemp);
}

void CPKCSDemoDlg::ClearMsg(void)
{

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利一区二区三区在线视频| 精品国产乱码久久久久久图片| 免费国产亚洲视频| 久久精品国产免费看久久精品| 亚洲一区精品在线| 偷拍日韩校园综合在线| 麻豆一区二区三| 国内成人精品2018免费看| 成人综合婷婷国产精品久久蜜臀| 成人av资源在线| 色哟哟一区二区在线观看| 欧美一区二区三区在线电影| 蜜桃在线一区二区三区| 久久久久久电影| 国产精品色婷婷| 国产资源精品在线观看| 国产欧美一区二区精品婷婷| 国产综合成人久久大片91| 欧美日韩高清一区| 蜜桃在线一区二区三区| 久久精品亚洲精品国产欧美kt∨| 不卡的av在线| 日韩精品午夜视频| 国产日韩v精品一区二区| 日本电影欧美片| 久久99国产乱子伦精品免费| 1024精品合集| 欧美一激情一区二区三区| 不卡视频在线看| 日韩和欧美一区二区三区| 国产精品欧美一级免费| 欧美一区二区三区视频免费| av欧美精品.com| 久久成人综合网| 一区二区三区电影在线播| 精品免费国产一区二区三区四区| 91猫先生在线| 国产精品一区久久久久| 亚洲bt欧美bt精品777| 国产精品国产馆在线真实露脸| 91精品国产综合久久精品app| 成人福利电影精品一区二区在线观看| 三级欧美在线一区| 亚洲欧美日韩精品久久久久| 国产色婷婷亚洲99精品小说| 欧美一区在线视频| 色婷婷久久99综合精品jk白丝| 精品综合免费视频观看| 性做久久久久久久免费看| 亚洲色图20p| 国产精品久久久久久久久免费桃花| 欧美一区二区视频网站| 在线欧美日韩国产| 99久久精品免费观看| 国产成人在线观看| 国产在线精品视频| 久久成人麻豆午夜电影| 亚洲chinese男男1069| 亚洲精品国产一区二区精华液 | 免费看黄色91| 夜夜嗨av一区二区三区网页| 国产精品嫩草影院com| 久久精品亚洲国产奇米99| 日韩欧美一区在线| 欧美一区二区免费观在线| 欧美性猛交xxxxxx富婆| 欧美性生活一区| 欧美色欧美亚洲另类二区| 91女厕偷拍女厕偷拍高清| 99综合影院在线| 99re热视频精品| 99久久夜色精品国产网站| 成人综合在线观看| 不卡视频一二三| 不卡的av在线| 色成人在线视频| 欧美三级电影一区| 欧美美女激情18p| 在线不卡欧美精品一区二区三区| 欧美日韩精品一区二区三区 | 国产精品久久久久三级| 欧美国产综合色视频| 国产色综合久久| 中文字幕免费一区| 亚洲免费观看高清完整版在线观看| 日韩理论在线观看| 高清不卡在线观看| 中文字幕精品一区二区三区精品| 欧美精品一区二区三区蜜臀| 欧美成人在线直播| 国产午夜亚洲精品不卡| 国产精品久久午夜夜伦鲁鲁| 中文字幕一区二区三区在线播放| 国产精品对白交换视频| 一区二区久久久久| 性做久久久久久免费观看| 久久成人免费网站| 国产成人av电影在线| 色婷婷av久久久久久久| 欧美日韩一区三区| 日韩一级在线观看| 久久久久久久av麻豆果冻| 国产精品理伦片| 亚洲一区二区四区蜜桃| 日韩成人精品视频| 国产精品一卡二卡| 成人av电影观看| 精品污污网站免费看| 欧美电视剧在线看免费| 国产精品蜜臀在线观看| 亚洲成a人片综合在线| 国产一区二区成人久久免费影院 | 国产在线精品一区二区不卡了| 高清beeg欧美| 在线不卡免费欧美| 欧美激情在线观看视频免费| 亚洲一二三四在线| 国产激情视频一区二区三区欧美| 色综合久久中文字幕| 精品欧美一区二区久久 | 在线欧美日韩国产| 亚洲精品一区二区精华| 一区二区三区日本| 国模少妇一区二区三区| 在线观看日韩精品| 久久精品在线观看| 婷婷激情综合网| 99久久精品久久久久久清纯| 欧美一区二区三区系列电影| 亚洲人成小说网站色在线| 精品一区二区精品| 欧美日韩视频第一区| 国产精品剧情在线亚洲| 国内精品写真在线观看| 欧美日韩在线播| 亚洲人一二三区| 国产91在线看| 精品久久久久久久一区二区蜜臀| 亚洲激情网站免费观看| 国产99久久久国产精品潘金网站| 日韩限制级电影在线观看| 亚洲欧美一区二区三区极速播放| 国产精品69毛片高清亚洲| 日韩欧美国产一二三区| 性做久久久久久免费观看| 色94色欧美sute亚洲线路一ni | 2020国产精品久久精品美国| 午夜电影网亚洲视频| 91在线观看免费视频| 国产欧美一区二区三区鸳鸯浴| 蜜桃av噜噜一区二区三区小说| 欧洲av在线精品| 亚洲美女视频在线观看| 久久久久97国产精华液好用吗| 欧美日韩电影在线播放| 亚洲欧美视频在线观看| av网站一区二区三区| 国产欧美一区二区精品性色 | 国产成人免费9x9x人网站视频| 欧美电影在线免费观看| 亚洲国产精品影院| 日本韩国精品在线| 亚洲综合视频网| 91福利在线观看| 一区二区三区四区精品在线视频| 91丨porny丨国产入口| 自拍av一区二区三区| 成人国产精品免费网站| 国产精品乱子久久久久| 成人黄动漫网站免费app| 国产精品乱码久久久久久| 不卡欧美aaaaa| 中文字幕一区二区三区蜜月| 91蜜桃免费观看视频| 中文字幕制服丝袜成人av| 91视视频在线观看入口直接观看www | 亚洲三级在线看| 色综合久久中文字幕综合网| 一区二区三区四区激情| 欧美日本在线看| 欧美三级视频在线| 97久久人人超碰| 国产精品久久久久久久久动漫| 成人小视频免费观看| 亚洲天天做日日做天天谢日日欢| 91一区二区在线观看| 亚洲国产精品嫩草影院| 日韩一本二本av| 成人免费视频视频| 国产网红主播福利一区二区| 亚洲在线一区二区三区| 免费成人av在线播放| 精品亚洲欧美一区| 韩国精品久久久| 欧美三级日本三级少妇99| 欧美日韩日本视频| 91精品午夜视频| 日韩欧美美女一区二区三区| 日韩一区欧美小说| 亚洲色图制服丝袜|