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

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

?? csp.cpp

?? 信息安全開發使用的
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************
* library : pkcs_csp.dll
* Purpose : It is a cryptographic service provider which is an independent 
* software module that actually performs cryptography algorithms for 
* authentication, encoding, and encryption.
* This DLL can be interfaced on any PKCS#11 module.  
*
* Copyright (C) 2003 Ilex Syst鑝es Informatiques
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Contact :
* Ilex 
* 51 boulevard Voltaire
* 92600 Asni鑢es-sur-Seine
* pkizy@ilex.fr
*
* Author: Delouvrier Antoine
*
*******************************************************************************/

/*
%----------------------------------------------------------------------------
% PROJECT : CSP_PKCS
%
% MODULE : csp
%
% VERSION : 1.00
%
% FILE : csp.cpp
%
% Entrance points of the DLL:  all the entrance points are redirected towards handlecontainer which manages a container
%----------------------------------------------------------------------------
% Version 1.00
% 
% CPX-31/03/2003-Creation
%----------------------------------------------------------------------------
% The PKCS#11 module must be defined in the csp_pkcs.ini as below :
% [CSP_PKCS]
% Name=name of pkcs#11 module
%
%----------------------------------------------------------------------------
% You can register the csp in Windows thanks to samples which one can find in 
% the CSPDK which is downloadable at the adress :
% http://www.microsoft.com/downloads/details.aspx?FamilyId=0F436C75-2304-42BB-B81A-BA0C2C47BAC2&displaylang=en
%
*/ 

#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif


/*
% HEADER Files include
%-----------------------
*/
#include "handlecontainer.h"
#include "csp_pkcs_const.h"
#include "resource.h"


/*
%Declaration of the private static variables
%-------------------------------------------
*/
extern "C" HINSTANCE g_hModule = NULL;
extern bool		 already_initialized=false;
extern int		 pkcsInitialized=0;





/*
%--------------------------------------------------------------------------
% DllMain
%
% Main of the dll
%--------------------------------------------------------------------------
*/
BOOL WINAPI
DllMain(
  HINSTANCE hinstanceDLL, 
  DWORD ulRaison,     
  LPVOID lpvReserve)  
{
    if (ulRaison == DLL_PROCESS_ATTACH)
    {
		setTraceLevel();
        TRACE(__LINE__,"DLL_PROCESS_ATTACH",NULL);
        DisableThreadLibraryCalls(hinstanceDLL);
        g_hModule = hinstanceDLL;

	}	
	return TRUE;
}	

/*------------------------------------------------------------------------*/

/*
Each of these functions can be found in MSDN.  Please refer there
for additional information.
*/

/*------------------------------------------------------------------------
	CPAcquireContext
-------------------------------------------------------------------------*/
BOOL WINAPI
CPAcquireContext(
    OUT HCRYPTPROV *phProv,
    IN  CHAR *pszContainer,
    IN  DWORD dwFlags,
    IN  PVTableProvStruc pVTable)
{

	BOOL rv=TRUE;
    TRACE(__LINE__,"CPAcquireContext BEGIN :%d %s %d %d",phProv,pszContainer,dwFlags,pVTable);
	rv=Pkcs::Initialize();
	if(rv!=TRUE)
		return FALSE;

	if (((dwFlags & CRYPT_VERIFYCONTEXT) == CRYPT_VERIFYCONTEXT) &&
        (NULL != pszContainer) && (0 != *pszContainer))

    {
        SetLastError((DWORD) NTE_BAD_FLAGS);
	    TRACE(__LINE__,"CPAcquireContext ERROR :%d %s %d %d",phProv,pszContainer,dwFlags,pVTable);
        return FALSE;
    }
	
	const CHAR * pszFinalContainer;
    
	if(!pszContainer || (0 == *pszContainer))
		pszFinalContainer = DEFAULT_CONTAINER;
	else
		pszFinalContainer =pszContainer;

	HandleContainer* pHandleContainer = new HandleContainer();

	if(!pHandleContainer){
	    TRACE(__LINE__,"CPAcquireContext ERROR :%d %s %d %d",phProv,pszContainer,dwFlags,pVTable);
		return FALSE;
	}

	if(!pHandleContainer->CreateHandleContainer(pszFinalContainer, dwFlags, pVTable))
	{
		delete pHandleContainer;
	    TRACE(__LINE__,"CPAcquireContext ERROR :%d %s %d %d",phProv,pszContainer,dwFlags,pVTable);
		return FALSE;
	}

	if((dwFlags & CRYPT_DELETEKEYSET) == CRYPT_DELETEKEYSET)
		delete pHandleContainer;
	else
		*phProv = (HCRYPTPROV)pHandleContainer;


    TRACE(__LINE__,"CPAcquireContext TRUE :%d %s %d %d",phProv,pszContainer,dwFlags,pVTable);
	return TRUE;
}


/*------------------------------------------------------------------------
	CPReleaseContext
-------------------------------------------------------------------------*/
BOOL WINAPI
CPReleaseContext(
    IN  HCRYPTPROV hProv,
    IN  DWORD ulFlags)
{
	TRACE(__LINE__,"CPReleaseContext : %d, %d",hProv,ulFlags);
	if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
	{
		TRACE(__LINE__,"CPReleaseContext ERROR: %d, %d",hProv,ulFlags);
		SetLastError(NTE_BAD_UID);
		return FALSE;
	}
	delete (HandleContainer*)hProv;
	Pkcs::FreePkcs();

	TRACE(__LINE__,"CPReleaseContext TRUE: %d, %d",hProv,ulFlags);
	return TRUE;
}




/*------------------------------------------------------------------------
	CPGenKey
-------------------------------------------------------------------------*/

BOOL WINAPI
CPGenKey(
    IN  HCRYPTPROV hProv,
    IN  ALG_ID uiAlgid,
    IN  DWORD ulFlags,
    OUT HCRYPTKEY *phKey)
{
	TRACE(__LINE__,"CPGenKey NOT IMPLEMENTED",NULL);
	SetLastError(E_NOTIMPL);
	return FALSE;
    
}


/*------------------------------------------------------------------------
	CPDeriveKey
-------------------------------------------------------------------------*/

BOOL WINAPI
CPDeriveKey(
    IN  HCRYPTPROV hProv,
    IN  ALG_ID Algid,
    IN  HCRYPTHASH hHash,
    IN  DWORD dwFlags,
    OUT HCRYPTKEY *phKey)
{
	TRACE(__LINE__,"CPDeriveKey NOT IMPLEMENTED",NULL);
	SetLastError(E_NOTIMPL);
	return FALSE;
}


/*------------------------------------------------------------------------
	CPDestroyKey
-------------------------------------------------------------------------*/

BOOL WINAPI
CPDestroyKey(
    IN  HCRYPTPROV hProv,
    IN  HCRYPTKEY hKey)
{
	TRACE(__LINE__,"CPDestroyKey NOT IMPLEMENTED",NULL);
    return CryptDestroyKey(hKey);
}



/*------------------------------------------------------------------------
	CPSetKeyParam
-------------------------------------------------------------------------*/

BOOL WINAPI
CPSetKeyParam(
    IN  HCRYPTPROV hProv,
    IN  HCRYPTKEY hKey,
    IN  DWORD ulParametre,
    IN  CONST BYTE *pucData,
    IN  DWORD ulFlags)
{
	BOOL result;
	TRACE(__LINE__,"CPSetKeyParam BEGIN: %d %d %x %d %d",hProv,hKey,ulParametre,pucData,ulFlags);
	if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
	{
		SetLastError(NTE_BAD_UID);
		TRACE(__LINE__,"CPSetKeyParam ERROR: %d %d %x %d %d",hProv,hKey,ulParametre,pucData,ulFlags);
		return FALSE;
	}

	result=((HandleContainer*)hProv)->SetKeyParam(hKey, ulParametre, pucData, ulFlags);
	if(!result)
	{
		TRACE(__LINE__,"CPSetKeyParam ERROR: %d %d %x %d %d",hProv,hKey,ulParametre,pucData,ulFlags);
		return FALSE;
	}
	
	TRACE(__LINE__,"CPSetKeyParam TRUE: %d %d %x %d %d",hProv,hKey,ulParametre,pucData,ulFlags);
	return TRUE;
}
   

/*------------------------------------------------------------------------
	CPGetKeyParam
-------------------------------------------------------------------------*/

BOOL WINAPI
CPGetKeyParam(
    IN  HCRYPTPROV hProv,
    IN  HCRYPTKEY hKey,
    IN  DWORD ulParametre,
    OUT LPBYTE pucData,
    IN OUT LPDWORD pulDataLen,
    IN  DWORD ulFlags)
{
	BOOL result;
	TRACE(__LINE__,"CPGetKeyParam BEGIN :%d %d %d %d %d %d",hProv,hKey,ulParametre,pucData,pulDataLen,ulFlags);
	if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
	{
		SetLastError(NTE_BAD_UID);
		TRACE(__LINE__,"CPGetKeyParam ERROR :%d %d %d %d %d %d",hProv,hKey,ulParametre,pucData,pulDataLen,ulFlags);
		return FALSE;
	}

	result= ((HandleContainer*)hProv)->GetKeyParam(hKey, ulParametre, pucData, pulDataLen, ulFlags);
	if(!result)
	{
		TRACE(__LINE__,"CPGetKeyParam ERROR :%d %d %d %d %d %d",hProv,hKey,ulParametre,pucData,pulDataLen,ulFlags);
		return FALSE;
	}

	TRACE(__LINE__,"CPGetKeyParam TRUE :%d %d %d %d %d %d",hProv,hKey,ulParametre,pucData,pulDataLen,ulFlags);
	return TRUE;
}



/*------------------------------------------------------------------------
	CPSetProvParam
-------------------------------------------------------------------------*/
BOOL WINAPI
CPSetProvParam(
    IN  HCRYPTPROV hProv,
    IN  DWORD ulParametre,
    IN  CONST BYTE *pucData,
    IN  DWORD ulFlags)
{
	TRACE(__LINE__,"CPSetProvParam NOT IMPLEMENTED",NULL);
	SetLastError(E_NOTIMPL);
	return FALSE;
}



/*------------------------------------------------------------------------
	CPGetProvParam
-------------------------------------------------------------------------*/

BOOL WINAPI
CPGetProvParam(
    IN  HCRYPTPROV hProv,
    IN  DWORD ulParametre,
    OUT LPBYTE pucData,
    IN OUT LPDWORD pulDataLen,
    IN  DWORD ulFlags)
{
	TRACE(__LINE__,"CPGetProvParam BEGIN :%d,%d;%d,%d,%d",hProv,ulParametre,pucData,pulDataLen,ulFlags);
	if(!HandleContainer::VerifyHandleContainer((HandleContainer*)hProv))
	{
		SetLastError(NTE_BAD_UID);
		TRACE(__LINE__,"CPGetProvParam ERROR :%d,%d;%d,%d,%d",hProv,ulParametre,pucData,pulDataLen,ulFlags);
		return FALSE;
	}

	TRACE(__LINE__,"CPGetProvParam TRUE :%d,%d;%d,%d,%d",hProv,ulParametre,pucData,pulDataLen,ulFlags);
	return ((HandleContainer*)hProv)->GetProvParam(ulParametre, pucData, pulDataLen, ulFlags);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚一区二区| 中文字幕中文乱码欧美一区二区| 26uuu精品一区二区| 亚洲女性喷水在线观看一区| 蜜桃av一区二区三区| 色94色欧美sute亚洲线路一ni| 2024国产精品| 另类小说图片综合网| 欧美日韩三级视频| 亚洲精品国产精品乱码不99| 福利视频网站一区二区三区| 欧美成人猛片aaaaaaa| 日韩在线卡一卡二| 欧美日韩亚洲不卡| 亚洲一区二区av电影| 99国内精品久久| 日本一区二区动态图| 国产成人亚洲综合色影视| 精品国精品国产尤物美女| 热久久一区二区| 欧美高清激情brazzers| 视频在线观看一区| 欧美日韩一区二区欧美激情| 亚洲成人资源网| 欧美日韩高清在线播放| 亚洲亚洲精品在线观看| 91精彩视频在线| 亚洲在线视频一区| 在线免费观看日韩欧美| 亚洲国产视频在线| 欧美久久久影院| 免费在线欧美视频| 日韩欧美亚洲国产精品字幕久久久| 亚洲自拍偷拍欧美| 精品视频一区二区三区免费| 午夜精品久久久久久久| 欧美高清激情brazzers| 麻豆成人久久精品二区三区小说| 日韩欧美中文字幕一区| 国内外精品视频| 欧美激情一区二区三区蜜桃视频| 成人免费视频一区| 亚洲天堂成人在线观看| 欧美视频一区二区在线观看| 午夜精品福利一区二区三区av | 一本色道久久综合精品竹菊| 亚洲天堂精品在线观看| 欧美三级一区二区| 久久99精品久久久久久动态图| 久久亚洲免费视频| 不卡视频一二三| 亚洲123区在线观看| 精品日本一线二线三线不卡| 成人网在线免费视频| 亚洲精品国产精华液| 欧美一级一级性生活免费录像| 国产资源在线一区| 亚洲视频电影在线| 日韩三级视频中文字幕| 成人一级视频在线观看| 夜夜嗨av一区二区三区网页| 日韩一二在线观看| av成人免费在线观看| 日韩精品色哟哟| 久久综合狠狠综合久久激情| 色综合天天在线| 日本不卡视频在线| 亚洲日本va在线观看| 日韩精品自拍偷拍| 一本色道a无线码一区v| 日本亚洲电影天堂| 亚洲免费观看高清在线观看| 日韩欧美国产wwwww| 色婷婷国产精品综合在线观看| 久久激情五月激情| 亚洲一级在线观看| 中文天堂在线一区| 欧美成人video| 色狠狠av一区二区三区| 国产成人精品三级| 美女脱光内衣内裤视频久久网站 | 成人欧美一区二区三区视频网页| 91精品国产黑色紧身裤美女| 一本大道久久a久久精二百| 国产在线国偷精品产拍免费yy| 亚洲综合成人在线视频| 中文字幕免费观看一区| 日韩精品最新网址| 欧美日韩大陆一区二区| 99re视频精品| 国产不卡视频一区| 久久er99热精品一区二区| 午夜精品成人在线视频| 亚洲精品视频在线| 国产精品免费久久| xnxx国产精品| 欧美videos中文字幕| 欧美欧美欧美欧美首页| 色综合中文字幕国产 | 亚洲综合小说图片| 日韩美女视频19| 国产精品视频九色porn| 久久久久国色av免费看影院| 日韩欧美国产午夜精品| 日韩欧美亚洲另类制服综合在线| 欧美日韩国产精品成人| 欧美精品自拍偷拍| 欧美日精品一区视频| 欧美日韩一区在线| 欧美日免费三级在线| 欧美色图一区二区三区| 欧美三级日韩三级| 欧美日韩国产首页在线观看| 欧美日韩综合在线| 欧美久久久一区| 日韩欧美国产wwwww| 日韩欧美第一区| 久久综合色综合88| 亚洲精品一区二区三区香蕉 | 经典一区二区三区| 国产尤物一区二区在线 | 日本不卡中文字幕| 七七婷婷婷婷精品国产| 韩国理伦片一区二区三区在线播放 | 国产精品视频你懂的| 国产精品久久久久久久久搜平片| 亚洲人成亚洲人成在线观看图片| 亚洲欧美另类小说视频| 亚洲成人你懂的| 久久er精品视频| 成人av高清在线| 欧美午夜宅男影院| 日韩欧美的一区二区| 国产欧美视频在线观看| 亚洲国产精品二十页| 亚洲精品国产第一综合99久久| 亚洲成人先锋电影| 国产尤物一区二区在线| 91欧美一区二区| 欧美一级专区免费大片| 国产目拍亚洲精品99久久精品| 一区二区视频免费在线观看| 石原莉奈在线亚洲二区| 国产成人午夜电影网| 欧美色图12p| 国产亚洲精品7777| 亚洲午夜久久久久久久久久久 | 青青草成人在线观看| 国产精品乡下勾搭老头1| 色成人在线视频| 日韩午夜电影在线观看| 亚洲色图欧美激情| 美女精品自拍一二三四| 成人av网址在线观看| 欧美一区二区三区精品| 国产精品午夜久久| 日本伊人午夜精品| 成人午夜激情影院| 欧美日韩国产a| 中文字幕在线观看不卡视频| 日日摸夜夜添夜夜添精品视频 | 欧美日韩国产天堂| 日本一区二区三区久久久久久久久不 | 91国偷自产一区二区三区观看| 精品日产卡一卡二卡麻豆| 洋洋av久久久久久久一区| 国产麻豆9l精品三级站| 在线综合亚洲欧美在线视频| 亚洲同性同志一二三专区| 国产一二三精品| 91精品国产欧美一区二区18| 一区二区三区在线视频免费| 国产成人av电影免费在线观看| 日韩午夜激情av| 午夜在线成人av| 色婷婷亚洲综合| **欧美大码日韩| 国产精品888| xf在线a精品一区二区视频网站| 偷拍一区二区三区四区| 在线观看一区日韩| 成人免费在线视频观看| 粉嫩aⅴ一区二区三区四区五区| 欧美成人国产一区二区| 午夜精品久久久| 欧美日韩国产一级| 亚洲一区日韩精品中文字幕| 一本色道久久综合狠狠躁的推荐 | 久久99精品久久久久久久久久久久| 欧美唯美清纯偷拍| 亚洲影院在线观看| 在线影视一区二区三区| 亚洲精品中文在线| 一本色道亚洲精品aⅴ| 亚洲欧美日韩国产中文在线| 99在线视频精品| 亚洲乱码中文字幕| 在线亚洲精品福利网址导航| 一区二区三区免费观看| 欧美日韩一区三区四区|