Ver código fonte

Z991239-1350 #comment 准入以及初始化实体删除注释代码

雷志明80280620 4 anos atrás
pai
commit
2a94575cf7

+ 2 - 151
Module/mod_Initializer/InitializerConn.cpp

@@ -7,13 +7,11 @@
 #include "strutil.h"
 #include "EventCode.h"
 #include "comm.h"
+#include <string.h>
 #pragma comment(lib, "crypt32.lib")
 
-#include <string.h>
 
-//#define PUKFILENAME_RSA "RVCPubKey.ini"
-//#define PUKFILENAME_SM2 "RVCSM2PubKey.ini"
-//#include "MyBase64.h"
+
 CInitializerConn::CInitializerConn(CEntityBase *pEntity)
 :SpSecureClient(pEntity)
 {
@@ -87,67 +85,6 @@ DWORD CInitializerConn::SendInitMKPackage()
 			rc = ERR_INITIALIZER_READ_WRITE_FILE;
 			return rc;
 		}
-		//国产化之后不再使用原方法获取KMC密钥
-		/*
-		{
-			// 1:3des only; 2: sm4 only; 3: both 3des and sm4
-			int nCapability = pEntity->GetPinPadCapability();
-			Dbg("pinpad capability: %d", nCapability);
-			if (nCapability == 1 || nCapability == 3)
-			{
-				// support des key
-				char buf[632];
-				memset(buf, 0, 632);
-				MKDownloadReq2* pReq2 = (MKDownloadReq2*)buf;
-				strncpy(pReq2->szSubBankNo, (const char*)strSubBankNo, sizeof(pReq2->szSubBankNo) - 1);
-				strncpy(pReq2->szBranchNo, (const char*)strBranchNo, sizeof(pReq2->szBranchNo) - 1);
-
-				CBlob blob;
-				blob.Refer(pReq2->kmcData, 600);
-
-				rc = pEntity->CreateInitMKData(blob, false);
-				if (rc != Error_Succeed)
-				{
-					LogWarn(Severity_Middle, (ErrorCodeEnum)rc, ERR_INITIALIZER_CREATE_INIT_MK,
-						GetOutPutStr("%s%d", "CreateInitTMK", rc).c_str());
-					rc = ERR_INITIALIZER_CREATE_INIT_MK;
-					pEntity->m_strLastErrMsg = CSimpleStringA::Format("调用KMC接口CreateInitTMKReq(0)失败,错误信息[%s],返回值[%d],请联系维护人员!",
-						(const char*)pEntity->GetKMCLastErrMsg(), rc);
-					return rc;
-				}
-
-				// 添加KMC信息
-				package->AddStruct("MKD_REQ2", false, false, (BYTE*)buf, sizeof(MKDownloadReq2) + blob.m_iLength);
-			}
-
-			if (nCapability == 2 || nCapability == 3)
-			{
-				// support sm key
-				char buf[632];
-				memset(buf, 0, 632);
-				SMMKDownloadReq2* pReq2 = (SMMKDownloadReq2*)buf;
-				strncpy(pReq2->szSubBankNo, (const char*)strSubBankNo, sizeof(pReq2->szSubBankNo) - 1);
-				strncpy(pReq2->szBranchNo, (const char*)strBranchNo, sizeof(pReq2->szBranchNo) - 1);
-
-				CBlob blob;
-				blob.Refer(pReq2->kmcData, 600);
-
-				rc = pEntity->CreateInitMKData(blob, true);
-				if (rc != Error_Succeed)
-				{
-					LogWarn(Severity_Middle, Error_Unexpect, ERR_INITIALIZER_CREATE_INIT_MK,
-						GetOutPutStr("%s%d", "CreateInitTMK", rc).c_str());
-					rc = ERR_INITIALIZER_CREATE_INIT_MK;
-					pEntity->m_strLastErrMsg = CSimpleStringA::Format("调用KMC接口CreateInitTMKReq(0)失败,错误信息[%s],返回值[%d],请联系维护人员",
-						(const char*)pEntity->GetKMCLastErrMsg(), rc);
-					return rc;
-				}
-
-				// 添加KMC信息
-				package->AddStruct("MKD_SMR2", false, false, (BYTE*)buf, sizeof(SMMKDownloadReq2) + blob.m_iLength);
-			}
-		}
-		*/
 	}
 	else
 	{
@@ -588,92 +525,6 @@ DWORD CInitializerConn::HandleInitMKRet(const CSmartPointer<IPackage> &pRecvPkg)
 	}
 	else if (pEntity->HasPinPad())	// 有PinPad
 	{
-		//国产化不再使用原方法生成KMC密钥
-		/*
-		{
-			// 主密钥初始返回
-			int nRetLen = pRecvPkg->GetStructLen("MKD_RET");
-			if (nRetLen > 0)
-			{
-				// support des key
-				BYTE* pBuf = new BYTE[nRetLen];
-				memset(pBuf, 0, nRetLen);
-
-				int nArrayNum(0);
-				pRecvPkg->GetStructData("MKD_RET", pBuf, &nRetLen, &nArrayNum);
-
-				// 调用KMC解析返回
-				CBlob blob;
-				blob.Refer(pBuf, nRetLen);
-				rc = pEntity->ParseInitMKResult(blob, false);
-				delete pBuf;
-
-				if (rc == Error_Succeed)
-				{
-					Dbg("parse des tmk succ");
-					rc = pEntity->LoadKeysToPinPad(false);
-					if (rc != Error_Succeed)
-					{
-						strRetErrMsg = "加载DES主密钥到密码键盘失败";
-						LogWarn(Severity_Middle, (ErrorCodeEnum)rc, ERR_INITIALIZER_LOAD_KEYS_TO_PINPAD,
-							GetOutPutStr("%s%08X%s%s", "LoadKeysToPinPad", rc, "strRetErrMsg", strRetErrMsg).c_str());
-						//rc = ERR_INITIALIZER_LOAD_KEYS_TO_PINPAD;
-					}
-
-					else
-						strRetErrMsg = "加载DES主密钥成功。";
-				}
-				else
-				{
-					strRetErrMsg = "解析DES主密钥返回数据失败";
-					LogWarn(Severity_Middle, (ErrorCodeEnum)rc, ERR_INITIALIZER_PARSE_INIT_MK,
-						GetOutPutStr("%s%08X%s%s", "ParseInitMKResult", rc, "strRetErrMsg", strRetErrMsg).c_str());
-					rc = ERR_INITIALIZER_PARSE_INIT_MK;
-				}
-			}
-
-			nRetLen = pRecvPkg->GetStructLen("MKD_SMT");
-			if (nRetLen > 0)
-			{
-				Dbg("正在加载国密密钥至pinpad");
-				// support sm key
-				BYTE* pBuf = new BYTE[nRetLen];
-				memset(pBuf, 0, nRetLen);
-
-				int nArrayNum(0);
-				pRecvPkg->GetStructData("MKD_SMT", pBuf, &nRetLen, &nArrayNum);
-
-				// 调用KMC解析返回
-				CBlob blob;
-				blob.Refer(pBuf, nRetLen);
-				rc = pEntity->ParseInitMKResult(blob, true);
-				delete pBuf;
-
-				if (rc == Error_Succeed)
-				{
-					Dbg("parse sm4 tmk succ");
-
-					rc = pEntity->LoadKeysToPinPad(true);
-					if (rc != Error_Succeed)
-					{
-						strRetErrMsg = "加载SM主密钥到密码键盘失败";
-						LogWarn(Severity_Middle, (ErrorCodeEnum)rc, ERR_INITIALIZER_LOAD_KEYS_TO_PINPAD,
-							GetOutPutStr("%s%08X%s%s", "LoadKeysToPinPad", rc, "strRetErrMsg", strRetErrMsg).c_str());
-						rc = ERR_INITIALIZER_LOAD_KEYS_TO_PINPAD;
-					}
-					else
-						strRetErrMsg += "加载SM主密钥成功。";
-				}
-				else
-				{
-					strRetErrMsg = "解析SM主密钥返回数据失败";
-					LogWarn(Severity_Middle, (ErrorCodeEnum)rc, ERR_INITIALIZER_PARSE_INIT_MK,
-						GetOutPutStr("%s%08X%s%s", "ParseInitMKResult", rc, "strRetErrMsg", strRetErrMsg).c_str());
-					rc = ERR_INITIALIZER_PARSE_INIT_MK;
-				}
-			}
-		}
-		*/
 		if (!pEntity->m_afterSMIsFirst) {
 			//只支持国密
 			rc = pEntity->LoadKeysToPinPad(true);

+ 92 - 377
Module/mod_Initializer/mod_Initializer.cpp

@@ -10,6 +10,8 @@
 #include "EventCode.h"
 #include "libtoolkit/iniutil.h"
 #include "PinPad_client_g.h"
+#include "comm.h"
+#include "fileutil.h"
 using namespace PinPad;
 
 #include "CenterSetting_client_g.h"	
@@ -21,8 +23,6 @@ using namespace CardSwiper;
 #include "MaintainWatcher_client_g.h"
 using namespace MaintainWatcher;
 
-#include "comm.h"
-#include <fileutil.h>
 #define BUF_SIZE 256
 #define KEY_SIZE 16
 
@@ -69,16 +69,16 @@ void CInitializerSession::Handle_InitializeForBlueTooth(SpReqAnsContext<Initiali
 
 void CInitializerEntity::OnStarted()
 { 
-	
 	LOG_FUNCTION();
+#ifdef RVC_OS_WIN
 	CSimpleStringA strKmclogPath;
 	GetFunction()->GetPath("Dbg", strKmclogPath);
-	strKmclogPath += "/kmc/";
-
+	strKmclogPath += "\\kmc\\";
 	if (!ExistsDirA(strKmclogPath))
 	{
 		CreateDirA(strKmclogPath, TRUE);
 	}
+#endif // RVC_OS_WIN
 
 	m_bHasCkCode = false;
 
@@ -89,8 +89,6 @@ void CInitializerEntity::OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPoint
 { 
 	m_FSM.PostExitEvent();
 
-	CloseGUI();
-
 	pTransactionContext->SendAnswer(Error_Succeed); 
 }
 
@@ -139,9 +137,20 @@ CSimpleStringA CInitializerEntity::GetKMCLastErrMsg()
 
 ErrorCodeEnum CInitializerEntity::ReleaseKMC()
 {
-	
 	return Error_Succeed;
 }
+
+ErrorCodeEnum CInitializerEntity::CreateInitMKData(CBlob& blob, bool bSM)
+{
+	return Error_Succeed;
+}
+
+// 解析返回DES主密钥
+ErrorCodeEnum CInitializerEntity::ParseInitMKResult(CBlob& blob, bool bSM)
+{
+	return Error_Succeed;
+}
+
 	
 // 将16进制字符串转成BYTE数据
 bool CInitializerEntity::HexStrToByteArray(const char* pHex, BYTE *pBuf, int *pBufLen)
@@ -239,6 +248,7 @@ DWORD CInitializerEntity::LoadKeysToPinPad(bool bSM)
 			LogWarn(Severity_Middle, Error_Unexpect, ERR_INITIALIZER_GET_KMC_KEY_NULL,
 				GetOutPutStr("%s%s", "m_bGetKMCKey", "False").c_str());
 			rc = ERR_INITIALIZER_GET_KMC_KEY_NULL;
+			pPinPad->GetFunction()->CloseSession();
 			return rc;
 		}
 		PinPadService_LoadKeysSM_Ans ans = {};
@@ -265,17 +275,6 @@ DWORD CInitializerEntity::LoadKeysToPinPad(bool bSM)
 	return rc;
 }
 
-ErrorCodeEnum CInitializerEntity::CreateInitMKData(CBlob &blob, bool bSM)
-{
-	return Error_Succeed;
-}
-
-// 解析返回DES主密钥
-ErrorCodeEnum CInitializerEntity::ParseInitMKResult(CBlob &blob, bool bSM)
-{
-	return Error_Succeed;
-}
-
 bool CInitializerEntity::GetAuthAccessAddr(CSimpleStringA &strAddr, int &nPort)
 {
 	CSmartPointer<IConfigInfo> pConfig;
@@ -327,7 +326,6 @@ bool CInitializerEntity::SetCenterSettingAddr(const char *pszAddr, int nPort)
 	GetFunction()->GetPath("CenterSetting", strPath);
 	
 	auto strAuthAccessAddr = CSimpleStringA::Format("%s %d", pszAddr, nPort);
-	//return !!WritePrivateProfileString("CenterSetting", "Server", strAuthAccessAddr, strPath);
 	return inifile_format_write(strPath.GetData(), "CenterSetting", "Server", "%s", strAuthAccessAddr.GetData());
 }
 
@@ -537,6 +535,7 @@ void CInitializerEntity::BeginLogin(const char *pszAuthServer, int nAuthPort, co
 			LogWarn(Severity_Middle, Error_Unexpect, ERR_INITIALIZER_CONNECT_MAINTAINWATCHER,
 				GetOutPutStr("%s%08X%s%s", "Connect", rc , "Desc" ,"在初始化登录阶段连接MaintainWatcher实体失败了").c_str());
 			EndLogin(ERR_INITIALIZER_CONNECT_MAINTAINWATCHER, "连接MaintainWatcher实体失败。");
+			pClient->SafeDelete();
 			return;
 		}
 		else
@@ -583,6 +582,7 @@ void CInitializerEntity::BeginLogin(const char *pszAuthServer, int nAuthPort, co
 					(const char*)m_strAuthorizer,
 					(const char*)m_strAuthTime);
 			}
+			pClient->GetFunction()->CloseSession();
 		}
 	}	
 
@@ -691,41 +691,27 @@ void CInitializerEntity::EndLogin(DWORD rc, const char *pErrMsg)
 		m_eErrNum = rc;
 		m_strLastErrMsg = pErrMsg;
 
-		//if (m_hGUIWindow == 0)
-		{	
-			//判断是否为蓝牙多合一,登录失败,返回给上层
-			if (m_type != 1 && m_ctx != NULL)
-			{
-				//详细错误码,成功rc的值为Error_Succeed
-				m_ctx->Ans.Errcode = rc;
-				m_ctx->Ans.ErrMsg = pErrMsg;
-				//成功返回Error_Succeed,详细错误由Ans.Errcode体现
-				m_ctx->Answer(Error_Succeed);
-			}
-			//蓝牙多合一自动初始化
-			else if(m_ctx_blue != NULL){
-				m_ctx_blue->Ans.Errcode = rc;
-				m_ctx_blue->Ans.ErrMsg = pErrMsg;
-				m_ctx_blue->Answer(Error_Succeed);
-			}
-		}		
+		//判断是否为蓝牙多合一,登录失败,返回给上层
+		if (m_type != 1 && m_ctx != NULL)
+		{
+			//详细错误码,成功rc的值为Error_Succeed
+			m_ctx->Ans.Errcode = rc;
+			m_ctx->Ans.ErrMsg = pErrMsg;
+			//成功返回Error_Succeed,详细错误由Ans.Errcode体现
+			m_ctx->Answer(Error_Succeed);
+		}
+		//蓝牙多合一自动初始化
+		else if(m_ctx_blue != NULL){
+			m_ctx_blue->Ans.Errcode = rc;
+			m_ctx_blue->Ans.ErrMsg = pErrMsg;
+			m_ctx_blue->Answer(Error_Succeed);
+		}
 	}
 	else
 	{
 		Dbg("登录成功。。。");
 		m_strLastErrMsg = "";
-	}
-
-	//if (m_hGUIWindow != 0)
-	{
-		//PostMessage(m_hGUIWindow, WM_LOGIN_RESULT, rc, 0);
-	}
-	//else
-	{
-		if (rc == Error_Succeed)
-		{
-			BeginGetKMCKey();
-		}				
+		BeginGetKMCKey();
 	}
 }
 
@@ -820,18 +806,7 @@ void CInitializerEntity::EndSyncPK(DWORD rc, const char *pszErrMsg)
 	{
 		Dbg("同步公钥成功。。。");
 		m_strLastErrMsg = "";
-	}
-
-	//if (m_hGUIWindow != 0)
-	{
-		//PostMessage(m_hGUIWindow, WM_SYNCPK_RESULT, rc, 0);
-	}
-	//else
-	{
-		if (rc == Error_Succeed)
-		{
-			BeginInitMK();
-		}	
+		BeginInitMK();
 	}
 }
 
@@ -856,37 +831,23 @@ void CInitializerEntity::EndGetKMCKey(DWORD rc, const char* pszErrMsg) {
 
 		m_eErrNum = rc;
 		m_strLastErrMsg = pszErrMsg;
-
-		//if (m_hGUIWindow == 0)
-		{
-			if (m_type == 0 && m_ctx != NULL) {
-				m_ctx->Ans.Errcode = rc;
-				m_ctx->Ans.ErrMsg = pszErrMsg;
-				m_ctx->Answer(Error_Succeed);
-			}
-			else if (m_type == 1 && m_ctx_blue != NULL) {
-				m_ctx_blue->Ans.Errcode = rc;
-				m_ctx_blue->Ans.ErrMsg = pszErrMsg;
-				m_ctx_blue->Answer(Error_Succeed);
-			}
+		
+		if (m_type == 0 && m_ctx != NULL) {
+			m_ctx->Ans.Errcode = rc;
+			m_ctx->Ans.ErrMsg = pszErrMsg;
+			m_ctx->Answer(Error_Succeed);
+		}
+		else if (m_type == 1 && m_ctx_blue != NULL) {
+			m_ctx_blue->Ans.Errcode = rc;
+			m_ctx_blue->Ans.ErrMsg = pszErrMsg;
+			m_ctx_blue->Answer(Error_Succeed);
 		}
 	}
 	else
 	{
 		Dbg("获取KMC密钥成功。。。");
 		m_strLastErrMsg = "";
-	}
-
-	/*if (m_hGUIWindow != 0)
-	{
-		PostMessage(m_hGUIWindow, WM_SYNCPK_RESULT, rc, 0);
-	}
-	else*/
-	{
-		if (rc == Error_Succeed)
-		{
-			BeginInitMK();
-		}
+		BeginInitMK();
 	}
 }
 
@@ -909,83 +870,7 @@ DWORD CInitializerEntity::ReportInitMKState(const char *pszUserID, DWORD dwErrCo
 void CInitializerEntity::BeginInitMK()
 {
 	LOG_FUNCTION();
-	//国产化新框架只走国密
-	/*
-	{
-		// 1:3des only; 2: sm4 only; 3: both 3des and sm4
-		int nCapability = GetPinPadCapability();
-		Dbg("pinpad capability: %d", nCapability);
-
-		// check if pubkey file exists
-		if (HasCkCodeFlg())
-		{
-			if ((nCapability == 1 || nCapability == 3) && (0 == m_iTDESPukeyLen))
-			{
-				Dbg("rsa public key buf not exists");
-				EndInitMK(ERR_INITIALIZER_SYNC_PUBKEY_RSA_BUF_NO_EXIST, "RSA公钥缓存不存在,请联系分行技术部处理故障!");
-				return;
-			}
-
-			if ((nCapability == 2 || nCapability == 3) && (0 == m_iSM2Pukeylen))
-			{
-				Dbg("sm2 public key buf not exists");
-				//如果分行服务没有国密公钥,则不初始化国密
-				//EndInitMK(ERR_INITIALIZER_SYNC_PUBKEY_SM2_BUF_NO_EXIST, "SM2公钥文件不存在");
-				//return;
-			}
-		}
-		else
-		{
-			CSimpleStringA strKmcPath;
-			GetFunction()->GetPath("RunInfo", strKmcPath);
-			strKmcPath += "\\kmc\\";
-
-			CSimpleStringA strRsaPubKeyFile = strKmcPath + PUKFILENAME_RSA;
-			if ((nCapability == 1 || nCapability == 3) && !ExistsFileA(strRsaPubKeyFile))
-			{
-				Dbg("rsa public key file %s not exists", PUKFILENAME_RSA);
-				LogWarn(Severity_Middle, Error_Unexpect, ERR_INITIALIZER_SYNC_PUBKEY_RSA_FIL_NO_EXIST,
-					GetOutPutStr("%s%s%s%s", "File", PUKFILENAME_RSA, "Desc", "RSA公钥文件不存在。。。").c_str());
-				EndInitMK(ERR_INITIALIZER_SYNC_PUBKEY_RSA_FIL_NO_EXIST, "RSA公钥文件不存在,请联系分行技术部处理故障!");
-				return;
-			}
-
-			CSimpleStringA strSm2PubKeyFile = strKmcPath + PUKFILENAME_SM2;
-			if ((nCapability == 2 || nCapability == 3) && !ExistsFileA(strSm2PubKeyFile))
-			{
-				Dbg("sm2 public key file %s not exists", PUKFILENAME_SM2);
-				LogWarn(Severity_Middle, Error_Unexpect, ERR_INITIALIZER_SYNC_PUBKEY_SM2_FIL_NO_EXIST,
-					GetOutPutStr("%s%s%s%s", "File", PUKFILENAME_SM2, "Desc", "Sm2公钥文件不存在。。。").c_str());
-				//EndInitMK(Error_NotExist, "SM2公钥文件不存在");
-				//return;
-			}
-
-			// delete key data file first
-			CSimpleStringA strKeyFile = strKmcPath + PFKEYFILENAME_DES;
-			if (ExistsFileA(strKeyFile))
-			{
-				Dbg("delete des data file");
-				DeleteFileA(strKeyFile);
-			}
-
-			strKeyFile = strKmcPath + PFKEYFILENAME_SM4;
-			if (ExistsFileA(strKeyFile))
-			{
-				Dbg("delete sm4 data file");
-				DeleteFileA(strKeyFile);
-			}
-		}
-
-		DWORD rc = InitKMC(nCapability);
-		if (rc != Error_Succeed)
-		{
-			LogWarn(Severity_Middle, Error_Unexpect, ERR_INITIALIZER_INIT_KMC,
-				GetOutPutStr("%s%08X", "InitKMC", rc).c_str());
-			EndInitMK(ERR_INITIALIZER_INIT_KMC, (const char*)CSimpleStringA::Format("InitKMC失败, %s, ,请联系分行技术部处理故障!", (const char*)m_strLastErrMsg));
-			return;
-		}
-	}
-	*/
+	
 	// 开始连接
 	DWORD rc = SecureClientConnect();
 	if (rc != Error_Succeed)
@@ -1079,44 +964,29 @@ void CInitializerEntity::EndInitMK(DWORD rc, const char *pszErrMsg)
 	pEvent->param1 = bSuc ? 0 : 1;
 	m_FSM.PostEventFIFO(pEvent);
 
-	// 通知UI窗口
-	//if (m_hGUIWindow != 0)
+	int nInitializedFlg = 1;
+	GetInitializedFlg(nInitializedFlg);
+	if (IsIL() && 0 == nInitializedFlg && bSuc)
 	{
-		//PostMessage(m_hGUIWindow, WM_INITMK_RESULT, rc, 0);
+		//修改初始化状态					
+		SetInitializedFlg("1");		
 	}
-	//else
+	else
 	{
-		int nInitializedFlg = 1;
-		GetInitializedFlg(nInitializedFlg);
-		if (IsIL() && 0 == nInitializedFlg && bSuc)
-		{
-			//修改初始化状态					
-			SetInitializedFlg("1");		
-		}
-		else
-		{
-			if (m_type != 1 && m_ctx != NULL) {
+		if (m_type != 1 && m_ctx != NULL) {
 				
-				m_ctx->Ans.Errcode = rc;
-				m_ctx->Ans.ErrMsg = m_strLastErrMsg;
-				m_ctx->Answer(Error_Succeed);
-			}
-			else if(m_ctx_blue != NULL) {
-				m_ctx_blue->Ans.Errcode = rc;
-				m_ctx_blue->Ans.ErrMsg = "";
-				m_ctx_blue->Answer(Error_Succeed);
-			}
+			m_ctx->Ans.Errcode = rc;
+			m_ctx->Ans.ErrMsg = m_strLastErrMsg;
+			m_ctx->Answer(Error_Succeed);
+		}
+		else if(m_ctx_blue != NULL) {
+			m_ctx_blue->Ans.Errcode = rc;
+			m_ctx_blue->Ans.ErrMsg = "";
+			m_ctx_blue->Answer(Error_Succeed);
 		}
-		
-	}
-
-	//初始化成功,关闭任务
-	if (bSuc)
-	{
-		CloseTask();
 	}
-	
-	ReleaseKMC();
+	//release connect
+	SecureClientRelease();
 }
 
 void CInitializerEntity::CloseTask()
@@ -1143,7 +1013,6 @@ void CInitializerEntity::OnTimeout(DWORD dwTimerID)
 	}
 	else if (dwTimerID == 33)		// 同步公钥超时
 	{
-		//EndSyncPK(ERR_INITIALIZER_SYNC_PUBKEY_TIME_OUT, "同步公钥文件超时");
 		EndGetKMCKey(ERR_INITIALIZER_GET_KMC_KEY_TIME_OUT,"获取KMC密钥超时");
 	}
 }
@@ -1167,52 +1036,8 @@ ErrorCodeEnum CInitializerEntity::ParseIPAddress(const char *str, CSimpleStringA
 	return Error;
 }
 
-bool CInitializerEntity::IsServiceAvailable(const char *pszServiceAddr, int nServerPort)
-{
-	if (pszServiceAddr == NULL || strlen(pszServiceAddr) <=8 || nServerPort <=0)
-		return false;
-
-	SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-	if (s == INVALID_SOCKET)
-		return false;
-
-	sockaddr_in addr = {0};
-		
-	addr.sin_family = AF_INET;
-	addr.sin_addr.s_addr = inet_addr(pszServiceAddr);
-	addr.sin_port = htons(nServerPort);
-
-	bool bRet = (connect(s, (SOCKADDR*)&addr, sizeof(addr)) !=  SOCKET_ERROR);
-	closesocket(s);
-	return bRet;
-}
-
-const char* CInitializerEntity::GetLastErrMsg()
-{
-	return m_strLastErrMsg;
-}
-
 ErrorCodeEnum CInitializerEntity::StartGUI()
 {
-//	if (m_hGUIWindow != 0) 
-//		return Error_Duplication;
-//	
-//	if (m_hGUIReadyEvent == 0)
-//		m_hGUIReadyEvent = CreateEventA(NULL, TRUE, FALSE, NULL);
-//
-//	if (m_hGUIClosedEvent == 0)
-//		m_hGUIClosedEvent = CreateEventA(NULL, TRUE, FALSE, NULL);
-//
-//	HANDLE hGUIThread = (HANDLE)_beginthreadex(0, 0, &__GUIThreadEntry, this, 0, 0);
-//	if (hGUIThread == 0) 
-//		return Error_Resource;
-//	
-//	CloseHandle(hGUIThread);
-//	
-//	if (WaitForSingleObject(m_hGUIReadyEvent, 10000) == WAIT_OBJECT_0)
-//		return  Error_Succeed;
-//	else
-//		return Error_TimeOut;
 	return Error_Succeed;
 }
 
@@ -1237,16 +1062,34 @@ ErrorCodeEnum CInitializerEntity::StartGUINew()
 
 ErrorCodeEnum CInitializerEntity::CloseGUI()
 {
-	
-	/*if (m_hGUIWindow ==0)
-		return Error_NotInit;
-
-	ResetEvent(m_hGUIClosedEvent);
-	PostMessage(m_hGUIWindow, WM_CLOSE, 0, 0);
-	WaitForSingleObject(m_hGUIClosedEvent, INFINITE);*/
 	return Error_Succeed;
 }
 
+bool CInitializerEntity::IsServiceAvailable(const char* pszServiceAddr, int nServerPort)
+{
+	if (pszServiceAddr == NULL || strlen(pszServiceAddr) <= 8 || nServerPort <= 0)
+		return false;
+
+	SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+	if (s == INVALID_SOCKET)
+		return false;
+
+	sockaddr_in addr = { 0 };
+
+	addr.sin_family = AF_INET;
+	addr.sin_addr.s_addr = inet_addr(pszServiceAddr);
+	addr.sin_port = htons(nServerPort);
+
+	bool bRet = (connect(s, (SOCKADDR*)& addr, sizeof(addr)) != SOCKET_ERROR);
+	closesocket(s);
+	return bRet;
+}
+
+const char* CInitializerEntity::GetLastErrMsg()
+{
+	return m_strLastErrMsg;
+}
+
 bool CInitializerEntity::HasPinPad()
 {	
 	
@@ -1257,10 +1100,6 @@ bool CInitializerEntity::HasPinPad()
 		LogWarn(Severity_Middle, Error_Unexpect, ERR_INITIALIZER_GET_SYSTEM_STATIC_INFO,
 				GetOutPutStr("%s%08X", "GetSystemStaticInfo", rc).c_str());
 	}
-	//@test自测shi使用
-	/*if (info.strMachineType.IsStartWith("RVC.Stand2S", true))
-		return false;*/
-	
 
 	if (info.strMachineType.IsStartWith("RPM", true) || info.strMachineType.IsStartWith("RVC.CardStore", true) || info.strMachineType.IsStartWith("RVC.IL", true))		// 回单打印机、简化版
 		return false;
@@ -1345,7 +1184,6 @@ int CInitializerEntity::GetPinPadCapability()
 		{
 			LogWarn(Severity_Middle,(ErrorCodeEnum) rc, ERR_INITIALIZER_FROM_PINPAD_QUERY_FUNC,
 				GetOutPutStr("%s%08X%s%s", "QueryFunc", rc ,"Desc","调用pinpad实体的QueryFunc失败。。。").c_str());
-			//LogError(Severity_Low, rc, ERROR_ACCESSAUTH_GETPINPADCAPABILITY, "从PinPad获取主密钥类型失败");
 		}
 		else
 		{
@@ -1384,56 +1222,6 @@ int CInitializerEntity::GetPinPadCapability()
 	return nCapability;
 }
 
-//unsigned int CInitializerEntity::__GUIThreadEntry(void *arg)
-//{
-//	CInitializerEntity *pThis = static_cast<CInitializerEntity *>(arg);
-//	{
-//		pThis->GetFunction()->InitLogCurrentThread();
-//	}
-//
-//	pThis->GUIThreadEntry();
-//
-//	_endthreadex(0);
-//	return 0;
-//}
-
-//int CInitializerEntity::GUIThreadEntry()
-//{
-//	HRESULT hRes = ::CoInitialize(NULL);
-//// If you are running on NT 4.0 or higher you can use the following call instead to 
-//// make the EXE free threaded. This means that calls come in on a random RPC thread.
-////	HRESULT hRes = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
-//	ATLASSERT(SUCCEEDED(hRes));
-//
-//	// this resolves ATL window thunking problem when Microsoft Layer for Unicode (MSLU) is used
-//	::DefWindowProc(NULL, 0, 0, 0L);
-//
-//	AtlInitCommonControls(
-//		ICC_WIN95_CLASSES |
-//		ICC_DATE_CLASSES |
-//		ICC_USEREX_CLASSES |
-//		ICC_COOL_CLASSES |
-//		ICC_PAGESCROLLER_CLASS |
-//		ICC_NATIVEFNTCTL_CLASS);
-//
-//	//hRes = _Module.Init(NULL, ModuleBase::GetModuleBase()->GetInstance());
-//	//ATLASSERT(SUCCEEDED(hRes));		
-//
-//	int nRet = 0;
-//	{
-//		CMKInitDlg dlgMain(this);		
-//		nRet = dlgMain.DoModal();
-//	}
-//		
-//	SetEvent(m_hGUIClosedEvent);
-//	m_hGUIWindow = 0;	
-//	
-//	//_Module.Term();
-//
-//	::CoUninitialize();
-//	return nRet;
-//}
-
 ErrorCodeEnum CInitializerEntity::SecureClientConnect()
 {
 	if (m_pConnection != NULL && m_pConnection->IsConnectionOK())
@@ -1468,37 +1256,6 @@ void CInitializerEntity::OnSecureClientDisconnect()
 
 bool CInitializerEntity::GetMD5Hash(const char *pStr, BYTE md5[16])
 {
-//	HCRYPTPROV hCryptProv;
-//	bool bRet = false;
-//	if (CryptAcquireContextA(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_MACHINE_KEYSET))
-//	{
-//		HCRYPTHASH hHash;
-//		if (CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, &hHash))
-//		{
-//			CryptHashData(hHash, (LPBYTE)pStr, strlen(pStr), 0);
-//
-//			DWORD dwLen = 16;
-//			CryptGetHashParam(hHash, HP_HASHVAL, (LPBYTE)&md5[0], &dwLen, 0);
-//			bRet = true;
-//		}
-//		else
-//		{
-//			//LogError(Severity_Low, Error_Unexpect, ERROR_ACCESSAUTH_GETMD5HASH, CSimpleStringA::Format("CryptCreateHash fail: %d", GetLastError()));
-//			LogWarn(Severity_Middle, Error_Unexpect, ERR_INITIALIZER_MD5_HASH,
-//				GetOutPutStr("%s%s%s%d", "CryptHashData", "False", "GetLastError", GetLastError()).c_str());
-//		}
-//
-//		CryptDestroyHash(hHash);
-//	}
-//	else
-//	{
-//		//LogError(Severity_Low, Error_Unexpect, ERROR_ACCESSAUTH_GETMD5HASH, CSimpleStringA::Format("CryptAcquireContextA fail: %d", GetLastError()));
-//		LogWarn(Severity_Middle, Error_Unexpect, ERR_INITIALIZER_MD5_HASH,
-//			GetOutPutStr("%s%s%s%d", "CryptAcquireContextA", "False", "GetLastError", GetLastError()).c_str());
-//	}
-//
-//	CryptReleaseContext(hCryptProv, 0);
-//	return bRet;
 	return Error_Succeed;
 }
 
@@ -1538,7 +1295,6 @@ bool CInitializerEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 #ifdef RVC_OS_WIN
 	if (!QueryWMIDevice(Processor, "ProcessorId", szTmp, &nTmpBufLen))
 #else
-	//if(!get_cpu_id_by_asm(strTmp))
 	if(!get_cpu_id_by_system(strTmp))
 #endif // RVC_OS_WIN
 	{
@@ -1549,7 +1305,6 @@ bool CInitializerEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 	}
 	
 #ifdef RVC_OS_WIN
-	//Dbg("cpu id: %s", szTmp);
 	strRet = szTmp;
 	nTmpBufLen = 1024;
 	memset(szTmp, 0, sizeof(szTmp));
@@ -1568,7 +1323,6 @@ bool CInitializerEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 	}
 	strRet += "|";
 #ifdef RVC_OS_WIN
-	//Dbg("baseboard sn: %s", szTmp);
 	strRet += szTmp;
 	nTmpBufLen = 1024;
 	memset(szTmp, 0, sizeof(szTmp));
@@ -1588,7 +1342,6 @@ bool CInitializerEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 	
 	strRet += "|";
 #ifdef RVC_OS_WIN
-	//Dbg("harddisk sn: %s", szTmp);
 	strRet += szTmp;
 #else
 	strTmp = "";
@@ -1631,14 +1384,6 @@ bool CInitializerEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 	return true;
 }
 
-#define RSAPUBKEY_BITLEN 1024
-//struct PublicKeyBlob
-//{
-//	PUBLICKEYSTRUC  publickeystruc;
-//	RSAPUBKEY rsapubkey;
-//	BYTE modulus[RSAPUBKEY_BITLEN / 8];
-//};
-
 int CInitializerEntity::ConvertStr2Byte(string input, BYTE* output,int outputLen) {
 	if (input.size() > outputLen) return 1;
 	for (int i = 0;i < input.size();i++) {
@@ -1769,36 +1514,9 @@ bool CInitializerEntity::GetTerminalPublicKey(BYTE *pBuf, int &nBufLen)
 		
 		Dbg("sm4 encrypt pri key success.");
 		Dbg("cryptPrivateKeyLen=%d", cryptPrivateKeyLen);
-		/*
-		rc = pConfig->WriteConfigValueInt("TerminalPD", "PrivateKeyLen", cryptPrivateKeyLen);
-		assert(rc == Error_Succeed);*/
-
-		/*char pEncodedCryptPrivateKey[BUF_SIZE];
-		if (!base64_encode(pEncodedCryptPrivateKey, (char*)pCryptPrivateKey, cryptPrivateKeyLen)) {
-			Dbg("base64 encode cryptPrivateKey error.");
-			rc = pConfig->WriteConfigValue("TerminalPD", "PublicKey", "");
-			assert(rc == Error_Succeed);
-			return false;
-		}*/
-		//char* pEncodedCryptPrivateKey = Str2Hex((char*)pCryptPrivateKey, cryptPrivateKeyLen);
+		
 		char* pEncodedCryptPrivateKey = Str2Hex((char*)pCryptPrivateKey, cryptPrivateKeyLen);
 		Dbg("encode pri key success.");
-		/*Dbg("pEncodedCryptPrivateKey=%s,%d;encodedPrivateKeyLen=%d", pEncodedCryptPrivateKey.get(),strlen(pEncodedCryptPrivateKey.get()), encodedPrivateKeyLen);
-		int decodedLen = base64_decode_len(pEncodedCryptPrivateKey.get());
-		
-		boost::shared_array<char> pDecodedPrivateKey(new char[2 * decodedLen]);
-		
-		if (!base64_decode(&pDecodedPrivateKey[0], pEncodedCryptPrivateKey.get())) {
-			Dbg("base64 decode publicKey error.");
-			return false;
-		}
-		Dbg("decodedLen=%d,decodedPrivateKeyLen=%d", decodedLen, decodedPrivateKeyLen);
-		boost::shared_array<char> pDecryptPrivateKey(new char[2 * decodedPrivateKeyLen]);
-		int decryprtLen =2 * decodedPrivateKeyLen;
-		if (!DecWithSM4_ECB((BYTE*)"s5da69gnh4!963@6s5da69gnh4!963@6", (BYTE*)& pDecodedPrivateKey[0], decodedPrivateKeyLen, (BYTE*)& pDecryptPrivateKey[0], &decryprtLen)) {
-			Dbg("DecWithSM4_ECB decrypt privateKey error.");
-			return false;
-		}*/
 
 		rc = pConfig->WriteConfigValue("TerminalPD", "PrivateKey", pEncodedCryptPrivateKey);
 		if (rc != Error_Succeed) {
@@ -1983,7 +1701,6 @@ bool CInitializerEntity::HasCkCodeFlg()
 		{
 			LogWarn(Severity_Middle, Error_Unexpect, ERR_INITIALIZER_GET_SYSTEM_STATIC_INFO,
 					GetOutPutStr("%s%08X", "GetSystemStaticInfo", rc).c_str());
-			//LogError(Severity_Middle, rc, ERROR_ACCESSAUTH_GETSTATICINFO, "HasCkCodeFlg()=>GetSystemStaticInfo() fail");
 			return false;
 		}
 
@@ -2093,8 +1810,6 @@ bool CInitializerEntity::GetAccessauthIsFirst()
 	}
 	runInfoPath += SPLIT_SLASH_STR "runcfg" SPLIT_SLASH_STR "AccessAuthorization.ini";
 
-	//char isFirst[BUF_SIZE] = { 0 };
-	//GetPrivateProfileString("SM", "IsFirst", "", isFirst, BUF_SIZE, runInfoPath.GetData());
 	char* isFirst;
 	isFirst = inifile_read_str(runInfoPath.GetData(), "SM", "IsFirst", "");
 

+ 12 - 11
Module/mod_Initializer/mod_Initializer.h

@@ -70,7 +70,7 @@ public:
 
 	// KMC初始化
 	ErrorCodeEnum InitKMC(int nPinPadCapability);
-		
+
 	// 获取KMC错误
 	CSimpleStringA GetKMCLastErrMsg();
 
@@ -85,8 +85,6 @@ public:
 
 	// 更新密码键盘主密钥
 	DWORD LoadKeysToPinPad(bool bSM);
-
-	//ErrorCodeEnum PrintAllKeys(bool bSM);
 		
 	bool HexStrToByteArray(const char* pHex, BYTE *pBuf, int *pBufLen);
 	string ByteArrayToHexStr(BYTE *pBuf, int nBufLen);
@@ -103,42 +101,46 @@ public:
 	
 	ErrorCodeEnum SecureClientConnect();
 	ErrorCodeEnum SecureClientRelease();
+
 	void OnSecureClientDisconnect();
 	
 	void BeginInitMK();
 	void EndInitMK(DWORD rc, const char *pszErrMsg);
+
 	void BeginLogin(const char *pszAuthServer, int nAuthPort, const char *pszUserID, const char *pszPassword);
 	void AutoBeginLogin(const char *pszAuthServer, int nAuthPort);
 	void EndLogin(DWORD rc, const char *pErrMsg);
+
 	void BeginSyncPK();
 	void BeginGetKMCKey();
 	void EndGetKMCKey(DWORD rc, const char* pszErrMsg);
 	void EndSyncPK(DWORD rc, const char *pszErrMsg);
-	DWORD ReportInitMKState(const char *pszUserID, DWORD dwErrCode,  const char *pszErrMsg);
-	ErrorCodeEnum DownloadCfg(const char *pszSettingServer, int nSettingPort);
+
 	DWORD InitCardSwiper();
-	const char* GetLastErrMsg();
+	DWORD ReportInitMKState(const char *pszUserID, DWORD dwErrCode,  const char *pszErrMsg);
 
+	ErrorCodeEnum DownloadCfg(const char *pszSettingServer, int nSettingPort);
 	ErrorCodeEnum StartGUI();
 	ErrorCodeEnum StartGUINew();
 	ErrorCodeEnum CloseGUI();
-	void CloseTask();
 
+	void CloseTask();
 	bool HasPinPad();
 	int GetPinPadCapability();
 	bool GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen);
 	bool GetTerminalPublicKey(BYTE *pBuf, int &nBufLen);
 	bool GetMD5Hash(const char *pStr, BYTE md5[16]);
+	const char* GetLastErrMsg();
     // 获取密码键盘ID和外设ID
 	// 返回1:只有PinPadID;2:只有DeviceID;3:两者都有;0:失败
 	int GetPinPadIDAndDeviceID(CSimpleStringA &strPinPadID, CSimpleStringA &strDeviceID);
-	
 	bool HasCkCodeFlg();
-
 	int ConvertStr2Byte(string input, BYTE* output, int outputLen);
 
 	//判断是否是国密改造之后的第一次初始化
 	int GetOrSetIsFirstSM(int type);
+	//判断是否为国密改造之后的第一次准入
+	bool GetAccessauthIsFirst();
 
 	BYTE m_cTDESPukey[2048];
 	BYTE m_cSM2Pukey[2048];
@@ -158,8 +160,7 @@ public:
 
 	CSimpleStringA m_strUserID;
 	CSimpleStringA m_strPassword;
-	//判断是否为国密改造之后的第一次准入
-	bool GetAccessauthIsFirst();
+	
 	//国密改造之后第一次准入的标志位
 	bool m_afterSMIsFirst;
 	//自动初始化的重试次数

+ 1 - 54
Module/mod_accessauth/AccessAuthConn.cpp

@@ -332,14 +332,12 @@ DWORD CAccessAuthConn::SendGetTokenPackage()
 		return Error_TooSmallBuffer;
 	}
 	memcpy_s(&req1.tpk[0], sizeof(req1.tpk) - 70, pubKey.m_pData, pubKey.m_iLength);
-	//memcpy(req1.tpk, pubKey.m_pData , pubKey.m_iLength);
 	// 拷贝临时私钥
 	if (priKey.m_iLength > 70) {
 		Dbg("临时私钥长度(%d)大于70。。。", priKey.m_iLength);
 		return Error_TooSmallBuffer;
 	}
 	memcpy_s(&req1.tpk[70], sizeof(req1.tpk) - 70 , priKey.m_pData,priKey.m_iLength);
-	//memcpy(req1.tpk + 70, priKey.m_pData, priKey.m_iLength);
 	// 获取设备信息
 	BYTE *pBuf = (BYTE*)&req1.encTerminalInfo;
 
@@ -350,7 +348,6 @@ DWORD CAccessAuthConn::SendGetTokenPackage()
 
 	strncpy(pInfo->szTerminalNo, (const char*)si.strTerminalID, sizeof(pInfo->szTerminalNo)-1);
 	
-	//strncpy(pInfo->szPadDeviceID, (const char*)si.strTerminalID, sizeof(pInfo->szPadDeviceID)-1);
 	if (nRet == 2 || nRet == 3)
 		strncpy(pInfo->szPadDeviceID, (const char*)strDeviceID, sizeof(pInfo->szPadDeviceID) - 1);
 	
@@ -405,8 +402,6 @@ DWORD CAccessAuthConn::SendGetTokenPackage()
 
 	strncpy(pInfo->szSites, si.strSite, sizeof(pInfo->szSites)-1);
 
-	//*(float*)&pInfo->currentGPS[0] = si.EnrolGPS.GetLongitude();
-	//*(float*)&pInfo->currentGPS[4] = si.EnrolGPS.GetLatitude();
 	si.EnrolGPS.GetBinaryLongitude(&pInfo->currentGPS[0]);
 	si.EnrolGPS.GetBinaryLatitude(&pInfo->currentGPS[4]);
 	
@@ -709,8 +704,6 @@ DWORD CAccessAuthConn::SendTerminalStagePackage(char cNewStage, CSmallDateTime d
 	}
 
 	strncpy(req.szSites, si.strSite, sizeof(req.szSites)-1);
-	//*(float*)&req.CurrentGPS[0] = si.EnrolGPS.GetLongitude();
-	//*(float*)&req.CurrentGPS[4] = si.EnrolGPS.GetLatitude();
 	si.EnrolGPS.GetBinaryLongitude(&req.CurrentGPS[0]);
 	si.EnrolGPS.GetBinaryLatitude(&req.CurrentGPS[4]);
 	
@@ -863,15 +856,12 @@ bool CAccessAuthConn::GetUKeyRootCertHash(CSimpleStringA &strHash)
 			base64_decode((BYTE*)pCert, nLen, buf, nRetLen);
 			
 			BYTE hash[32] = {0};
-			//if (Sha1Hash(buf, nRetLen, hash))
 			if(SM3Hash(buf,nRetLen,hash))
 			{
 				char* szBuf;
 				
 				szBuf = Str2Hex((char *)hash,32);
-				//for (int i = 0; i < 32; i++)
-					//sprintf(szBuf, "%s%02x", szBuf, hash[i]);
-
+				
 				strHash = szBuf;
 				delete[] szBuf;
 				Dbg("Ex RootCert.pem hash=%s",strHash.GetData());
@@ -898,46 +888,6 @@ bool CAccessAuthConn::GetUKeyRootCertHash(CSimpleStringA &strHash)
 
 bool CAccessAuthConn::Sha1Hash(BYTE *pData, int nDataLen, BYTE hash[])
 {
-	/*bool bRet = false;
-	HCRYPTPROV hCryptProv;
-	if (CryptAcquireContextA(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_MACHINE_KEYSET)) {
-		HCRYPTHASH hHash;
-		if (CryptCreateHash(hCryptProv, CALG_SHA1, 0, 0, &hHash))
-		{
-			if (!CryptHashData(hHash, pData, nDataLen, 0))
-			{
-				LogError(Severity_Middle, Error_Unexpect, ERROR_ACCESSAUTH_GETSH1HASH, CSimpleStringA::Format("CryptHashData fail: %d", GetLastError()));
-			}				
-			else
-			{
-				DWORD dwLen = 20;
-				if (CryptGetHashParam(hHash, HP_HASHVAL, (LPBYTE)&hash[0], &dwLen, 0))
-					bRet = true;
-				else
-				{
-					LogError(Severity_Middle, Error_Unexpect, ERROR_ACCESSAUTH_GETSH1HASH, CSimpleStringA::Format("CryptGetHashParam fail: %d", GetLastError()));
-				}
-					
-			}
-			CryptDestroyHash(hHash);
-		}
-		else 
-		{
-			LogError(Severity_Middle, Error_Unexpect, ERROR_ACCESSAUTH_GETSH1HASH, CSimpleStringA::Format("CryptCreateHash fail: %d", GetLastError()));
-		}
-
-		CryptReleaseContext(hCryptProv, 0);
-	}
-	else 
-	{
-		LogError(Severity_Middle, Error_Unexpect, ERROR_ACCESSAUTH_GETSH1HASH, CSimpleStringA::Format("CryptAcquireContextA fail: %d", GetLastError()));
-	}
-	return bRet;*/
-
-	/*if (!SM3Hash(pData, nDataLen, hash)) {
-		LogWarn(Severity_Middle,Error_Unexpect, ERROR_ACCESSAUTH_GETSH1HASH,"Sha1hash failed.");
-		return false;
-	}*/
 	return true;
 }
 
@@ -1010,8 +960,6 @@ DWORD CAccessAuthConn::SendSyncTimePackageNew()
 	if (pRecvPkg->GetErrMsg(dwSysCode, dwUserCode, strErrMsg))
 	{
 		rc = dwUserCode;
-		//LogError(Severity_Middle, (ErrorCodeEnum)dwSysCode, dwUserCode, strErrMsg.c_str());
-		//Dbg("GetErrMsg error at SendSyncTimePackageNew,dwSysCode=%08X,strErrMsg=%s",dwUserCode, strErrMsg.c_str());
 		LogWarn(Severity_Middle, Error_Unexpect, rc,
 			GetOutPutStr("%s%08X%s%s", "GetErrMsg", rc, "strErrMsg", strErrMsg.c_str()).c_str());
 	}
@@ -1216,7 +1164,6 @@ DWORD CAccessAuthConn::HandleInitDeviceRet(const CSmartPointer<IPackage> &pRecvP
 		}
 		else
 		{
-			//LogError(Severity_Middle, Error_Unexpect, ERROR_ACCESSAUTH_GETSTRUCTLEN, "GetStructLen [InitDevA] fail!");
 			LogWarn(Severity_Middle, Error_Unexpect, ERR_ACCESSAUTH_INIT_DEV,
 				GetOutPutStr("%s%d", "GetStructLen", nRetLen).c_str());
 			rc = Error_Bug;

+ 3 - 47
Module/mod_accessauth/AccessAuthFSM.cpp

@@ -53,7 +53,6 @@ ErrorCodeEnum CAccessAuthFSM::OnExit()
 void CAccessAuthFSM::s1_on_entry()
 {
 	SetSysVar("I");
-	//PostEventFIFO(new FSMEvent(CAccessAuthFSM::Event_StartRegist));
 }
 
 void CAccessAuthFSM::s1_on_exit()
@@ -124,8 +123,7 @@ struct TimeOutTask : public ITaskSp {
 void CAccessAuthFSM::s2_on_entry()
 {
 	LOG_FUNCTION();
-	//  [6/16/2020 9:51 @Gifur]
-	//ScheduleTimer(2, 120 * 1000);		// 设定30秒准入超时
+
 	m_finishAccess = 0;
 	TimeOutTask* timeOutTask = new TimeOutTask(this,120 * 1000);// 设定30秒准入超时
 	GetEntityBase()->GetFunction()->PostThreadPoolTask(timeOutTask);
@@ -165,8 +163,6 @@ void CAccessAuthFSM::s2_on_exit()
 
 	SecureClientRelease();
 	CancelTimer(1);
-	
-	//CancelTimer(2);
 }
 
 // 会收到Event_UpdateWKResult和Event_ReqTokenResult和EVT_TIMER
@@ -259,15 +255,8 @@ unsigned int CAccessAuthFSM::s2_on_event(FSMEvent* pEvent)
 			return 0;
 		}
 
-		// 检查上次密钥同步时间(一天只同步一次)
-		//CSmartPointer<IConfigInfo> pConfig;
-		//m_pEntity->GetFunction()->OpenConfig(Config_Software, pConfig);		
-
-		
 		int nWKLastSyncTime(0);
-		//pConfig->ReadConfigValueInt("Main", "WKSyncSuccTime", nWKLastSyncTime);		
 		int nWKSyncFailCount(0);
-		//pConfig->ReadConfigValueInt("Main", "WKSyncFailCount", nWKSyncFailCount);
 		
 		CSimpleStringA strWKSyncSuccTime = "";
 		CSimpleStringA strWKSyncFailCount = "";
@@ -352,8 +341,6 @@ unsigned int CAccessAuthFSM::s2_on_event(FSMEvent* pEvent)
 		m_pConnection->SendReportStatePackage("UpdateWK", Error_Succeed, "更新工作密钥成功");
 
 		// 保存WK同步时间
-		//CSmartPointer<IConfigInfo> pConfig;
-		//m_pEntity->GetFunction()->OpenConfig(Config_Software, pConfig);
 #ifdef RVC_OS_WIN
 		DWORD rc = m_pEntity->GetFunction()->SetSysVar("WKSyncSuccTime", (const char*)CSimpleStringA::Format("0x%08X", (DWORD)CSmallDateTime::GetNow()), true);
 #else
@@ -364,11 +351,6 @@ unsigned int CAccessAuthFSM::s2_on_event(FSMEvent* pEvent)
 		delete tim;
 #endif
 		assert(rc == Error_Succeed);
-		/*pConfig->WriteConfigValue("Main", "WKSyncSuccTime", 
-			(const char*) CSimpleStringA::Format("0x%08X", (DWORD)CSmallDateTime::GetNow()));*/
-
-		// 重置失败次数
-		//pConfig->WriteConfigValueInt("Main", "WKSyncFailCount", 0);
 		rc = m_pEntity->GetFunction()->SetSysVar("WKSyncFailCount", "0", true);
 		assert(rc == Error_Succeed);
 
@@ -406,14 +388,6 @@ unsigned int CAccessAuthFSM::s2_on_event(FSMEvent* pEvent)
 
 		// 上报状态
 		m_pConnection->SendReportStatePackage("UpdateWK", Error_Unexpect, ((CAccessAuthEntity*)m_pEntity)->GetAuthErrMsg());
-		
-		// WK失败,累加失败次数,一天内失败3次以上,不再同步WK,直接请求Token
-		/*CSmartPointer<IConfigInfo> pConfig;
-		m_pEntity->GetFunction()->OpenConfig(Config_Software, pConfig);
-		int nWKSyncFailCount(0);
-		pConfig->ReadConfigValueInt("Main", "WKSyncFailCount", nWKSyncFailCount);
-
-		pConfig->WriteConfigValueInt("Main", "WKSyncFailCount", ++nWKSyncFailCount);*/
 
 		// zl@20190624 WKSyncFailCount迁移到系统变量
 		CSimpleStringA strWKSyncFailCount = "";
@@ -429,15 +403,8 @@ unsigned int CAccessAuthFSM::s2_on_event(FSMEvent* pEvent)
 		// xkm@20150702 启用新准入方案,密钥同步失败不得准入
 		// xkm@20151116 失败3次以上应直接跳过同步,避免KMC故障时影响可视柜台准入
 		// xkm@20161220 更新密钥失败直接准入
-		//if (nWKSyncFailCount >= 3)
-		{
-			//Dbg("update WK fail more than 3 times, ignore it");
-			PostEventFIFO(new FSMEvent(CAccessAuthFSM::Event_IgnoreUpdateWK));	
-		}
-		//else
-		//{
-		//	PostEventFIFO(new FSMEvent(CAccessAuthFSM::Event_ReqTokenFail));
-		//}
+		
+		PostEventFIFO(new FSMEvent(CAccessAuthFSM::Event_IgnoreUpdateWK));
 	}
 	else if (pEvent->iEvt == Event_ReqTokenFail)
 	{
@@ -452,16 +419,6 @@ unsigned int CAccessAuthFSM::s2_on_event(FSMEvent* pEvent)
 		// 上报状态
 		m_pConnection->SendReportStatePackage("AccessAuth", Error_Unexpect, ((CAccessAuthEntity*)m_pEntity)->GetAuthErrMsg());
 
-		//// 如果准入失败,表示前后台密钥可能不同步,需累加WKSyncFailCount
-		//CSmartPointer<IConfigInfo> pConfig;
-		//m_pEntity->GetFunction()->OpenConfig(Config_Software, pConfig);
-
-		//int nWKSyncFailCount(0);
-		//pConfig->ReadConfigValueInt("Main", "WKSyncFailCount", nWKSyncFailCount);
-
-		//if (nWKSyncFailCount == 0)
-		//	pConfig->WriteConfigValueInt("Main", "WKSyncFailCount", ++nWKSyncFailCount);
-
 		return 0;
 	}
 	else if (pEvent->iEvt == Event_ReqTokenCancel)
@@ -499,7 +456,6 @@ void CAccessAuthFSM::s3_on_entry()
 	CSimpleStringA strErrMsg = CSimpleStringA::Format("准入失败(%s)", (const char*)pEntity->GetAuthErrMsg());
 	
 	// 发送准入失败事件
-	//LogError(Severity_Middle, Error_Unexpect, EVENT_ACCESSAUTH_FAILED, strErrMsg);
 	LogWarn(Severity_Middle, Error_Unexpect, ERR_ACCESSAUTH_FAILED,
 		GetOutPutStr("%s%s","准入", (const char*)pEntity->GetAuthErrMsg()).c_str());
 	pEntity->GetFunction()->ShowFatalError(strErrMsg);

+ 3 - 224
Module/mod_accessauth/mod_AccessAuth.cpp

@@ -3,6 +3,7 @@
 #include "mod_AccessAuth.h"
 #include "RVCComm.h"
 #include "comm.h"
+#include "DeviceBaseClass.h"
 #include <fileutil.h>
 #include <iniutil.h>
 #include <cmath>
@@ -12,13 +13,10 @@ using namespace TokenKeeper;
 #include "PinPad_client_g.h"
 using namespace PinPad;
 
-#include "DeviceBaseClass.h"
-
 #ifdef RVC_OS_WIN
 #include "WMIDeviceQuery.h"
 #include <Strsafe.h>
 #endif
-//#define IGNORE_PINPAD
 
 #define KEY_SIZE 16
 #define BUF_SIZE 256
@@ -66,7 +64,6 @@ void CAccessAuthEntity::OnStarted()
 	//设置时区为北京标准时区
 	if (!SetLocalTimeZoneByKeyName("China Standard Time", FALSE))
 	{
-		//LogError(Severity_Middle, Error_Unexpect, ERROR_ACCESSAUTH_SETTIMEZONE, "设置标准时区失败");
 		LogWarn(Severity_Middle, Error_Unexpect, ERR_ACCESSAUTH_SETTIMEZONE,GetOutPutStr("%s%s","SetLocalTimeZoneByKeyName","False").c_str());
 	}
 
@@ -129,83 +126,6 @@ ErrorCodeEnum CAccessAuthEntity::PushTerminalStage(char cNewStage, DWORD dwNewSt
 // KMC初始化
 DWORD CAccessAuthEntity::InitKMC()
 {
-	//国产化之后不再通过这种方式访问KMC
-	/*
-	{
-		CSimpleStringA strErrMsg;
-		CSmartPointer<IEntityFunction> spFunction = this->GetFunction();
-		CSimpleStringA strPath;
-		int nRet = 0;
-
-		CSystemStaticInfo si;
-		DWORD rc = GetFunction()->GetSystemStaticInfo(si);
-		if (rc != Error_Succeed)
-		{
-			strErrMsg = "InitKMC()=>GetSystemStaticInfo() fail";
-			SetAuthErrMsg((const char*)strErrMsg);
-			spFunction->SetSysVar("AuthErrMsg", (const char*)strErrMsg, true);
-
-			LogWarn(Severity_Middle, Error_Unexpect, ERR_ACCESSAUTH_GET_SYSTEM_STATIC_INFO,
-				GetOutPutStr("%s%08X%s%s", "GetSystemStaticInfo", rc, "strErrMsg", (const char*)strErrMsg).c_str());
-			rc = ERR_ACCESSAUTH_GET_SYSTEM_STATIC_INFO;
-			return rc;
-		}
-
-		if (HasCkCodeFlg())
-		{
-			rc = GetFunction()->GetPath("Dbg", strPath);
-			LOG_ASSERT(rc == Error_Succeed);
-			strPath.Append("\\kmc");
-
-			nRet = ::RvcInit(NULL, 0, NULL, 0, (char*)strPath.GetData(), NO_ALG);
-			Dbg("has checkcode,RvcInit return %d", nRet);
-		}
-		else
-		{
-			rc = GetFunction()->GetPath("RunInfo", strPath);
-			LOG_ASSERT(rc == Error_Succeed);
-			strPath.Append("\\kmc");
-
-			int nPinPadCapability = GetPinPadCapability();
-			nRet = ::Init((const char*)strPath, strPath.GetLength(), nPinPadCapability);
-			Dbg("not has checkcode,Init strPath=%s, nPinPadCapability=%d, return nPinPadCapability=,%d", strPath, nPinPadCapability, nRet);
-		}
-
-		if (nRet == 1)
-		{
-			Dbg("DES WK need update, kmc init ret = %d", nRet);
-			return Error_Succeed;
-		}
-		else if (nRet == 2)
-		{
-			Dbg("DES MK need init, kmc init ret = %d", nRet);
-			return Error_Succeed;
-		}
-		else if (nRet == 11 || nRet == 12)
-		{
-			Dbg("SM WK need update, kmc init ret = %d", nRet);
-			return Error_Succeed;
-		}
-		else if (nRet == 20 || nRet == 22 || nRet == 21)
-		{
-			Dbg("SM MK need init, kmc init ret = %d", nRet);
-			return Error_Succeed;
-		}
-		else if (nRet != 0)
-		{
-			strErrMsg = CSimpleStringA::Format("KMC初始化失败, GetKMCLastErrMsg:[%s], 返回:[%d]", (const char*)GetKMCLastErrMsg(), nRet);
-			SetAuthErrMsg((const char*)strErrMsg);
-			spFunction->SetSysVar("AuthErrMsg", (const char*)strErrMsg, true);
-
-			LogWarn(Severity_Middle, Error_Unexpect, ERR_ACCESSAUTH_RVC_INIT,
-				GetOutPutStr("%s%d%s%s", "RvcInit", nRet, "strErrMsg", (const char*)strErrMsg).c_str());
-
-			return Error_Succeed;			//  xkm@20161214: 返回失败会强制使用密码键盘准入, 为了保持流程兼容改为成功
-		}
-
-		Dbg("kmc init succ");
-	}
-	*/
 	return Error_Succeed;
 }
 
@@ -224,93 +144,17 @@ DWORD CAccessAuthEntity::ParseWKUpdateResult(char *pBuf, int nLen, int nAlgFlag)
 
 CSimpleStringA CAccessAuthEntity::GetKMCLastErrMsg()
 {
-	/*char szBuf[256];
-	memset(szBuf, 0, 256);
-
-	int nBufLen = 256;
-	RvcGetLastErrorMsg(szBuf, &nBufLen);
-
-	return szBuf;*/
 	return "";
 }
 
 ErrorCodeEnum CAccessAuthEntity::ReleaseKMC()
 {
-	//::RvcRelease();
 	return Error_Succeed;
 }	
 
-//ErrorCodeEnum CAccessAuthEntity::PrintAllKeys(bool bSM)
-//{
-//	// 取出主密钥
-//	char keyBuf[64];
-//	int nKeyBufLen = 64;
-//	memset(keyBuf, 0, 64);
-//
-//	char chkBuf[16];
-//	int nChkBufLen = 16;
-//	memset(chkBuf, 0, 16);
-//
-//	int nRet = GetKey(keyBuf, &nKeyBufLen, chkBuf, &nChkBufLen, bSM ? csTMK : cTMK);
-//	if (nRet != 0)
-//	{
-//		Dbg("get %s TMK error, %s (%d)", bSM ? "SM" : "DES", (const char*)GetKMCLastErrMsg(), nRet);
-//		return Error_Unexpect;
-//	}
-//
-//	Dbg("get %s TMK succeed: [%s], checkcode: [%s]",
-//		bSM ? "SM" : "DES",
-//		ByteArrayToHexStr((BYTE*)keyBuf, nKeyBufLen).c_str(),
-//		ByteArrayToHexStr((BYTE*)chkBuf, nChkBufLen).c_str());
-//
-//	// 取出TPK
-//	nKeyBufLen = 64;
-//	memset(keyBuf, 0, 64);
-//
-//	nChkBufLen = 16;
-//	memset(chkBuf, 0, 16);
-//
-//	nRet = GetKey(keyBuf, &nKeyBufLen, chkBuf, &nChkBufLen, bSM ? csTPK : cTPK);
-//	if (nRet != 0)
-//	{
-//		Dbg("get %s TPK error, %s (%d)", bSM ? "SM" : "DES", (const char*)GetKMCLastErrMsg(), nRet);
-//		return Error_Unexpect;
-//	}
-//
-//	Dbg("get %s TPK succeed: [%s], checkcode: [%s]",
-//		bSM ? "SM" : "DES",
-//		ByteArrayToHexStr((BYTE*)keyBuf, nKeyBufLen).c_str(),
-//		ByteArrayToHexStr((BYTE*)chkBuf, nChkBufLen).c_str());
-//
-//
-//	// 取出EDK
-//	nKeyBufLen = 64;
-//	memset(keyBuf, 0, 64);
-//
-//	nChkBufLen = 16;
-//	memset(chkBuf, 0, 16);
-//
-//	nRet = GetKey(keyBuf, &nKeyBufLen, chkBuf, &nChkBufLen, bSM ? csEDK : cEDK);
-//	if (nRet != 0)
-//	{
-//		Dbg("get %s EDK error, %s (%d)", bSM ? "SM" : "DES", (const char*)GetKMCLastErrMsg(), nRet);
-//		return Error_Unexpect;
-//	}
-//
-//	Dbg("get %s EDK succeed: [%s], checkcode: [%s]",
-//		bSM ? "SM" : "DES",
-//		ByteArrayToHexStr((BYTE*)keyBuf, nKeyBufLen).c_str(),
-//		ByteArrayToHexStr((BYTE*)chkBuf, nChkBufLen).c_str());
-//	return Error_Succeed;
-//}
-
 // 加载新WK
 DWORD CAccessAuthEntity::LoadPinPadWK(bool bSM)
 {
-	
-	//@test	
-	//return Error_Succeed;
-
 	Dbg("load sm key to pinpad...");
 	CSimpleString strErrMsg;
 	CSmartPointer<IEntityFunction> spFunction = this->GetFunction();
@@ -581,6 +425,7 @@ DWORD CAccessAuthEntity::SaveSM2KeyPair(const CBlob &pubKey, const CBlob &priKey
 		}
 		else
 			Dbg("set sm2 key pair succ");
+		pTokenServiceClient->GetFunction()->CloseSession();
 	}
 
 	return rc;
@@ -660,14 +505,6 @@ bool CAccessAuthEntity::HasPinPad()
 			GetOutPutStr("%s%08X", "GetSystemStaticInfo", rc).c_str());
 		return true;
 	}
-	//@test
-	/*
-	if (info.strMachineType.IsStartWith("RVC.Stand2S", true))
-	{
-		Dbg("MachineType[%s], not exist pinpad", info.strMachineType.GetData());
-		return false;
-	}
-	*/
 	if (info.strMachineType.IsStartWith("RPM", true) || info.strMachineType.IsStartWith("RVC.CardStore", true) || info.strMachineType.IsStartWith("RVC.IL", true))		// 回单打印机、简化版
 	{
 		Dbg("MachineType[%s], not exist pinpad", info.strMachineType);
@@ -811,12 +648,7 @@ bool CAccessAuthEntity::SaveAuthVerAndKey(int nAuthVer, BYTE *pKey)
 		}
 		Dbg("privateKey=%s,%d", privateKey, strlen(privateKey));
 
-		int decodedPrivateKeyLen;// = GetPrivateProfileInt("TerminalPD", "PrivateKeyLen", 0, runInfoPath.GetData());
-		/*Dbg("decodedPrivateKeyLen=%d", decodedPrivateKeyLen);
-		if (!decodedPrivateKeyLen) {
-			Dbg("读取PrivateKeyLen失败,请重新初始化!");
-			printPasswdError();
-		}*/
+		int decodedPrivateKeyLen;
 
 		char* pDecodedPrivateKey = Hex2Str(privateKey, decodedPrivateKeyLen);
 		Dbg("decodedPrivateKeyLen=%d", decodedPrivateKeyLen);
@@ -837,7 +669,6 @@ bool CAccessAuthEntity::SaveAuthVerAndKey(int nAuthVer, BYTE *pKey)
 
 		char pPlainKey[KEY_SIZE];
 		int plainKeyLen = KEY_SIZE;
-		//if (!DecWithSM2PriKey(pKey, KEY_SIZE, (BYTE*)pPlainKey, &plainKeyLen, (BYTE*)pDecryptPrivateKey, decryprtLen)) {
 		char pKeyLen[4] = { 0 };
 		memcpy(pKeyLen, pKey, 4);
 		int kenLen = Char2Int(pKeyLen);
@@ -931,33 +762,6 @@ ErrorCodeEnum CAccessAuthEntity::EncryptDataWithSessionKey(const CBlob &raw, CBl
 
 bool CAccessAuthEntity::GetMD5Hash(const char *pStr, BYTE md5[16])
 {
-	/*HCRYPTPROV hCryptProv;
-	bool bRet = false;
-	if (CryptAcquireContextA(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT | CRYPT_MACHINE_KEYSET))
-	{
-		HCRYPTHASH hHash;
-		if (CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, &hHash))
-		{
-			CryptHashData(hHash, (LPBYTE)pStr, strlen(pStr), 0);
-
-			DWORD dwLen = 16;
-			CryptGetHashParam(hHash, HP_HASHVAL, (LPBYTE)&md5[0], &dwLen, 0);
-			bRet = true;
-		}
-		else
-		{
-			LogError(Severity_Low, Error_Unexpect, ERROR_ACCESSAUTH_GETMD5HASH, CSimpleStringA::Format("CryptCreateHash fail: %d", GetLastError()));
-		}
-
-		CryptDestroyHash(hHash);
-	}
-	else
-	{
-		LogError(Severity_Low, Error_Unexpect, ERROR_ACCESSAUTH_GETMD5HASH, CSimpleStringA::Format("CryptAcquireContextA fail: %d", GetLastError()));
-	}
-
-	CryptReleaseContext(hCryptProv, 0);
-	return bRet;*/
 	return false;
 }
 
@@ -999,7 +803,6 @@ bool CAccessAuthEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 #ifdef RVC_OS_WIN
 		if (!QueryWMIDevice(Processor, "ProcessorId", szTmp, &nTmpBufLen))
 #else
-		//if (!get_cpu_id_by_asm(strTmp))
 	if (!get_cpu_id_by_system(strTmp))
 #endif // RVC_OS_WIN
 	{
@@ -1012,7 +815,6 @@ bool CAccessAuthEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 	}
 	
 #ifdef RVC_OS_WIN
-	//Dbg("cpu id: %s", szTmp);
 	strRet = szTmp;
 	nTmpBufLen = 1024;
 	memset(szTmp, 0, sizeof(szTmp));
@@ -1034,7 +836,6 @@ bool CAccessAuthEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 	strRet += "|";
 
 #ifdef RVC_OS_WIN
-	//Dbg("baseboard sn: %s", szTmp);
 	strRet += szTmp;
 	nTmpBufLen = 1024;
 	memset(szTmp, 0, sizeof(szTmp));
@@ -1057,7 +858,6 @@ bool CAccessAuthEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 	strRet += "|";
 
 #ifdef RVC_OS_WIN
-	//Dbg("harddisk sn: %s", szTmp);
 	strRet += szTmp;
 #else
 	strTmp = "";
@@ -1072,10 +872,7 @@ bool CAccessAuthEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 
 	Dbg("device info: [%s]", (const char*)strRet);
 
-	// md5 hash , modify to sm3
-	//BYTE md5[16] = {};
 	BYTE sm3[32] = { 0 };
-	//if (!GetMD5Hash((const char*)strRet, md5))
 	if(!SM3Hash(reinterpret_cast<BYTE*>(const_cast<char*>(strRet.GetData())),strRet.GetLength(),sm3))
 	{
 		strErrMsg = "get sm3 hash as fingerprint fail";
@@ -1087,7 +884,6 @@ bool CAccessAuthEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 
 	if (nBufLen < 32)
 	{
-		//Dbg("buf len is too small");
 		LogError(Severity_Low, Error_Unexpect, ERROR_ACCESSAUTH_GETSM3HASH, "buf len is too small fail");
 		return false;
 	}
@@ -1101,14 +897,6 @@ bool CAccessAuthEntity::GetTerminalFingerPrint(BYTE *pBuf, int &nBufLen)
 	return true;
 }
 
-#define RSAPUBKEY_BITLEN 1024
-//struct PublicKeyBlob
-//{
-//	PUBLICKEYSTRUC  publickeystruc;
-//	RSAPUBKEY rsapubkey;
-//	BYTE modulus[RSAPUBKEY_BITLEN / 8];
-//};
-
 // 生成SM2密钥对,并导出公钥
 bool CAccessAuthEntity::GetTerminalPublicKey(BYTE *pBuf, int &nBufLen)
 {
@@ -1165,8 +953,6 @@ int CAccessAuthEntity::GetPinPadIDAndDeviceID(CSimpleStringA &strPinPadID, CSimp
 			GetOutPutStr("%s%08X", "GetSystemStaticInfo", rc).c_str());
 		return -1;
 	}
-	//@test 
-	//if (info.strMachineType.IsStartWith("RVC.Stand2S", true) )	return 0;
 
 	if (info.strMachineType.IsStartWith("RPM", true) || info.strMachineType.IsStartWith("RVC.CardStore", true) || info.strMachineType.IsStartWith("RVC.IL", true))		// 回单打印机、简化版
 		return 0;
@@ -1453,7 +1239,6 @@ BOOL CAccessAuthEntity::SetLocalTimeZoneByKeyName(const TCHAR* szTimeZoneKeyName
 	ErrorCode = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szSubKey, 0, KEY_QUERY_VALUE, &hKey);
 	if (ErrorCode != ERROR_SUCCESS)
 	{
-		//LogError(Severity_Middle, Error_Unexpect, ErrorCode, "RegOpenKeyEx Software\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\China Standard Time fail");
 		Dbg("RegOpenKeyEx Software\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\China Standard Time fail");
 		return FALSE;
 	}
@@ -1464,7 +1249,6 @@ BOOL CAccessAuthEntity::SetLocalTimeZoneByKeyName(const TCHAR* szTimeZoneKeyName
 	if (ErrorCode != ERROR_SUCCESS)
 	{
 		RegCloseKey(hKey);
-		//LogError(Severity_Middle, Error_Unexpect, ErrorCode, "RegQueryValueEx Software\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\China Standard Time\\Std fail");
 		Dbg("RegQueryValueEx Software\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\China Standard Time\\Std fail");
 		return FALSE;
 	}
@@ -1475,7 +1259,6 @@ BOOL CAccessAuthEntity::SetLocalTimeZoneByKeyName(const TCHAR* szTimeZoneKeyName
 	if (ErrorCode != ERROR_SUCCESS)
 	{
 		RegCloseKey(hKey);
-		//LogError(Severity_Middle, Error_Unexpect, ErrorCode, "RegQueryValueEx Software\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\China Standard Time\\Dlt fail");
 		Dbg("RegQueryValueEx Software\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\China Standard Time\\Dlt fail");
 		return FALSE;
 	}
@@ -1486,7 +1269,6 @@ BOOL CAccessAuthEntity::SetLocalTimeZoneByKeyName(const TCHAR* szTimeZoneKeyName
 	RegCloseKey(hKey);
 	if ((ErrorCode != ERROR_SUCCESS) || (dwByteLen > sizeof(regTZI)))
 	{
-		//LogError(Severity_Middle, Error_Unexpect, ErrorCode, "RegQueryValueEx Software\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\China Standard Time\\TZI fail");
 		Dbg("RegQueryValueEx Software\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\China Standard Time\\TZI fail");
 		return FALSE;
 	}
@@ -1498,7 +1280,6 @@ BOOL CAccessAuthEntity::SetLocalTimeZoneByKeyName(const TCHAR* szTimeZoneKeyName
 
 	if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken))
 	{
-		//LogError(Severity_Middle, Error_Unexpect, GetLastError(), "OpenProcessToken Standard Time\\Dlt fail");
 		Dbg("OpenProcessToken Standard Time\\Dlt fail");
 		return FALSE;
 	}
@@ -1511,7 +1292,6 @@ BOOL CAccessAuthEntity::SetLocalTimeZoneByKeyName(const TCHAR* szTimeZoneKeyName
 	if (GetLastError() != ERROR_SUCCESS)
 	{
 		CloseHandle(hToken);
-		//LogError(Severity_Middle, Error_Unexpect, GetLastError(), "AdjustTokenPrivileges fail");
 		Dbg("AdjustTokenPrivileges fail");
 		return FALSE;
 	}
@@ -1531,7 +1311,6 @@ BOOL CAccessAuthEntity::SetLocalTimeZoneByKeyName(const TCHAR* szTimeZoneKeyName
 	isOK = SetDynamicTimeZoneInformation(&tzi);	// 设置动态时区
 	if (!isOK)
 	{
-		//LogError(Severity_Middle, Error_Unexpect,  GetLastError(), "SetDynamicTimeZoneInformation fail");
 		Dbg("SetDynamicTimeZoneInformation fail");
 	}	
 

+ 0 - 2
Module/mod_accessauth/mod_AccessAuth.h

@@ -79,8 +79,6 @@ public:
 	// 释放KMC
 	ErrorCodeEnum ReleaseKMC();
 
-	//ErrorCodeEnum PrintAllKeys(bool bSM);
-
 	// 加载新WK
 	DWORD LoadPinPadWK(bool bSM);