Skip to content

Commit 0ad135e

Browse files
committed
modify:custom serial number and type for key parse function
1 parent bba611f commit 0ad135e

File tree

4 files changed

+110
-17
lines changed

4 files changed

+110
-17
lines changed

XEngine_Module/XEngine_Verification/Verification_Define.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,13 +530,23 @@ extern "C" bool Verification_XAuthKey_MemoryWrite(VERIFICATION_XAUTHKEY* pSt_XAu
530530
类型:字符指针
531531
可空:N
532532
意思:输出解析到的信息
533+
参数.二:enHWType
534+
In/Out:In
535+
类型:枚举型
536+
可空:Y
537+
意思:输入要验证的硬件类型,默认使用主板序列类型
538+
参数.三:lpszHWCode
539+
In/Out:In
540+
类型:常量字符指针
541+
可空:Y
542+
意思:输入原始注册的硬件码,此参数传值,参数二将无效
533543
返回值
534544
类型:逻辑型
535545
意思:是否成功
536546
备注:无限制版本不做验证
537547
其他验证nHasTime将被设置还拥有时间
538548
*********************************************************************/
539-
extern "C" bool Verification_XAuthKey_KeyParse(VERIFICATION_XAUTHKEY* pSt_XAuthInfo);
549+
extern "C" bool Verification_XAuthKey_KeyParse(VERIFICATION_XAUTHKEY* pSt_XAuthInfo, ENUM_VERIFICATION_MODULE_HW_TYPE enHWType = ENUM_VERIFICATION_MODULE_HW_TYPE_UNKNOW, LPCXSTR lpszHWCode = NULL);
540550
/********************************************************************
541551
函数名称:Verification_XAuthKey_KeyInit
542552
函数功能:KEY结构初始化

XEngine_Module/XEngine_Verification/Verification_XAuth/Verification_XAuthKey.cpp

Lines changed: 96 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -279,13 +279,23 @@ bool CVerification_XAuthKey::Verification_XAuthKey_MemoryWrite(VERIFICATION_XAUT
279279
类型:字符指针
280280
可空:N
281281
意思:输出解析到的信息
282+
参数.二:enHWType
283+
In/Out:In
284+
类型:枚举型
285+
可空:Y
286+
意思:输入要验证的硬件类型,默认使用主板序列类型
287+
参数.三:lpszHWCode
288+
In/Out:In
289+
类型:常量字符指针
290+
可空:Y
291+
意思:输入原始注册的硬件码,此参数传值,参数二将无效
282292
返回值
283293
类型:逻辑型
284294
意思:是否成功
285295
备注:无限制版本不做验证
286296
其他验证nHasTime将被设置还拥有时间
287297
*********************************************************************/
288-
bool CVerification_XAuthKey::Verification_XAuthKey_KeyParse(VERIFICATION_XAUTHKEY* pSt_XAuthInfo)
298+
bool CVerification_XAuthKey::Verification_XAuthKey_KeyParse(VERIFICATION_XAUTHKEY* pSt_XAuthInfo, ENUM_VERIFICATION_MODULE_HW_TYPE enHWType /* = ENUM_VERIFICATION_MODULE_HW_TYPE_UNKNOW */, LPCXSTR lpszHWCode /* = NULL */)
289299
{
290300
Verification_IsErrorOccur = false;
291301

@@ -361,28 +371,101 @@ bool CVerification_XAuthKey::Verification_XAuthKey_KeyParse(VERIFICATION_XAUTHKE
361371
return false;
362372
}
363373
}
364-
365-
SYSTEMAPI_SERIAL_INFOMATION st_SDKSerial = {};
366-
SystemApi_HardWare_GetSerial(&st_SDKSerial);
374+
//类型不匹配
367375
if (ENUM_VERIFICATION_MODULE_VERMODE_TYPE_LOCAL != pSt_XAuthInfo->st_AuthRegInfo.enVModeType)
368376
{
369377
Verification_IsErrorOccur = true;
370378
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_MODETYPE;
371379
return false;
372380
}
373-
if (ENUM_VERIFICATION_MODULE_HW_TYPE_BOARD != pSt_XAuthInfo->st_AuthRegInfo.enHWType)
381+
//是否有自定义硬件码,如果有,那么可以不用关心硬件类型
382+
if (NULL == lpszHWCode)
374383
{
375-
Verification_IsErrorOccur = true;
376-
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_HWTYPE;
377-
return false;
384+
SYSTEMAPI_SERIAL_INFOMATION st_SDKSerial = {};
385+
SystemApi_HardWare_GetSerial(&st_SDKSerial);
386+
387+
if (ENUM_VERIFICATION_MODULE_HW_TYPE_UNKNOW == enHWType)
388+
{
389+
//采用默认主板序列验证
390+
if (ENUM_VERIFICATION_MODULE_HW_TYPE_BOARD != pSt_XAuthInfo->st_AuthRegInfo.enHWType)
391+
{
392+
Verification_IsErrorOccur = true;
393+
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_HWTYPE;
394+
return false;
395+
}
396+
if (0 != _tcsxnicmp(st_SDKSerial.tszBoardSerial, pSt_XAuthInfo->st_AuthRegInfo.tszHardware, _tcsxlen(st_SDKSerial.tszBoardSerial)))
397+
{
398+
Verification_IsErrorOccur = true;
399+
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_SERIAL;
400+
return false;
401+
}
402+
}
403+
else
404+
{
405+
//验证硬件类型是否匹配
406+
if (enHWType == pSt_XAuthInfo->st_AuthRegInfo.enHWType)
407+
{
408+
if (ENUM_VERIFICATION_MODULE_HW_TYPE_CPU == enHWType)
409+
{
410+
if (0 != _tcsxnicmp(st_SDKSerial.tszCPUSerial, pSt_XAuthInfo->st_AuthRegInfo.tszHardware, _tcsxlen(st_SDKSerial.tszCPUSerial)))
411+
{
412+
Verification_IsErrorOccur = true;
413+
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_SERIAL;
414+
return false;
415+
}
416+
}
417+
else if (ENUM_VERIFICATION_MODULE_HW_TYPE_DISK == enHWType)
418+
{
419+
if (0 != _tcsxnicmp(st_SDKSerial.tszDiskSerial, pSt_XAuthInfo->st_AuthRegInfo.tszHardware, _tcsxlen(st_SDKSerial.tszDiskSerial)))
420+
{
421+
Verification_IsErrorOccur = true;
422+
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_SERIAL;
423+
return false;
424+
}
425+
}
426+
else if (ENUM_VERIFICATION_MODULE_HW_TYPE_BOARD == enHWType)
427+
{
428+
if (0 != _tcsxnicmp(st_SDKSerial.tszBoardSerial, pSt_XAuthInfo->st_AuthRegInfo.tszHardware, _tcsxlen(st_SDKSerial.tszBoardSerial)))
429+
{
430+
Verification_IsErrorOccur = true;
431+
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_SERIAL;
432+
return false;
433+
}
434+
}
435+
else if (ENUM_VERIFICATION_MODULE_HW_TYPE_SYSTEM == enHWType)
436+
{
437+
if (0 != _tcsxnicmp(st_SDKSerial.tszSystemSerial, pSt_XAuthInfo->st_AuthRegInfo.tszHardware, _tcsxlen(st_SDKSerial.tszSystemSerial)))
438+
{
439+
Verification_IsErrorOccur = true;
440+
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_SERIAL;
441+
return false;
442+
}
443+
}
444+
else
445+
{
446+
Verification_IsErrorOccur = true;
447+
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_NOTSUPPORT;
448+
return false;
449+
}
450+
}
451+
else
452+
{
453+
Verification_IsErrorOccur = true;
454+
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_HWTYPE;
455+
return false;
456+
}
457+
}
378458
}
379-
if (0 != _tcsxnicmp(st_SDKSerial.tszBoardSerial, pSt_XAuthInfo->st_AuthRegInfo.tszHardware, _tcsxlen(st_SDKSerial.tszBoardSerial)))
459+
else
380460
{
381-
Verification_IsErrorOccur = true;
382-
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_SERIAL;
383-
return false;
461+
if (0 != _tcsxnicmp(lpszHWCode, pSt_XAuthInfo->st_AuthRegInfo.tszHardware, _tcsxlen(lpszHWCode)))
462+
{
463+
Verification_IsErrorOccur = true;
464+
Verification_dwErrorCode = ERROR_XENGINE_MODULE_VERIFICATION_XAUTH_SERIAL;
465+
return false;
466+
}
384467
}
385-
468+
386469
return true;
387470
}
388471
/********************************************************************

XEngine_Module/XEngine_Verification/Verification_XAuth/Verification_XAuthKey.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class CVerification_XAuthKey
2222
bool Verification_XAuthKey_MemoryRead(VERIFICATION_XAUTHKEY* pSt_XAuthInfo, LPCXSTR lpszMSGBuffer, int nMSGLen, LPCXSTR lpszKeyPass = NULL);
2323
bool Verification_XAuthKey_MemoryWrite(VERIFICATION_XAUTHKEY* pSt_XAuthInfo, XCHAR* ptszMSGBuffer, int* pInt_MSGLen, LPCXSTR lpszKeyPass = NULL);
2424
public:
25-
bool Verification_XAuthKey_KeyParse(VERIFICATION_XAUTHKEY* pSt_XAuthInfo);
25+
bool Verification_XAuthKey_KeyParse(VERIFICATION_XAUTHKEY* pSt_XAuthInfo, ENUM_VERIFICATION_MODULE_HW_TYPE enHWType = ENUM_VERIFICATION_MODULE_HW_TYPE_UNKNOW, LPCXSTR lpszHWCode = NULL);
2626
bool Verification_XAuthKey_KeyInit(VERIFICATION_XAUTHKEY* pSt_XAuthInfo);
2727
bool Verification_XAuthKey_KeySerial(XCHAR* ptszSerialStr, int nCount, int nType);
2828
public:

XEngine_Module/XEngine_Verification/pch.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,9 @@ extern "C" bool Verification_XAuthKey_MemoryWrite(VERIFICATION_XAUTHKEY* pSt_XAu
9797
{
9898
return m_XAuthKeyVerification.Verification_XAuthKey_MemoryWrite(pSt_XAuthInfo, ptszMSGBuffer, pInt_MSGLen, lpszKeyPass);
9999
}
100-
extern "C" bool Verification_XAuthKey_KeyParse(VERIFICATION_XAUTHKEY* pSt_XAuthInfo)
100+
extern "C" bool Verification_XAuthKey_KeyParse(VERIFICATION_XAUTHKEY* pSt_XAuthInfo, ENUM_VERIFICATION_MODULE_HW_TYPE enHWType, LPCXSTR lpszHWCode)
101101
{
102-
return m_XAuthKeyVerification.Verification_XAuthKey_KeyParse(pSt_XAuthInfo);
102+
return m_XAuthKeyVerification.Verification_XAuthKey_KeyParse(pSt_XAuthInfo, enHWType, lpszHWCode);
103103
}
104104
extern "C" bool Verification_XAuthKey_KeyInit(VERIFICATION_XAUTHKEY* pSt_XAuthInfo)
105105
{

0 commit comments

Comments
 (0)