diff --git a/DllMain.h b/DllMain.h index 9fda55b..50ca012 100644 --- a/DllMain.h +++ b/DllMain.h @@ -1,20 +1,22 @@ //---------------------------------------------------------------------------- -// EgalTech 2014-2014 +// EgalTech 2014-2023 //---------------------------------------------------------------------------- -// File : DllMain.h Data : 25.02.14 Versione : 1.5b2 +// File : DllMain.h Data : 29.05.23 Versione : 2.5e3 // Contenuto : Prototipi funzioni per uso locale della DLL. // // // // Modifiche : 25.02.14 DS Creazione modulo. -// +// 29.05.23 DS Aggiunte funzioni per chiavi di protezione. // //---------------------------------------------------------------------------- #pragma once - #include "/EgtDev/Include/EgtILogger.h" +#include //----------------------------------------------------------------------------- ILogger* GetEGnLogger( void) ; +const std::string& GetEGnKey( void) ; +bool GetEGnNetHwKey( void) ; diff --git a/EGnDllMain.cpp b/EGnDllMain.cpp index 19b45de..8f7231a 100644 --- a/EGnDllMain.cpp +++ b/EGnDllMain.cpp @@ -1,22 +1,24 @@ //---------------------------------------------------------------------------- -// EgalTech 2013-2013 +// EgalTech 2013-2023 //---------------------------------------------------------------------------- -// File : EGnDllMain.cpp Data : 20.11.13 Versione : 1.3a1 +// File : EGnDllMain.cpp Data : 29.05.23 Versione : 2.5e3 // Contenuto : Inizializzazione della DLL. // // // // Modifiche : 20.11.13 DS Creazione modulo. // 21.11.13 DS Agg. GetEGnVersion. +// 29.05.23 DS Agg. funzioni per chiave. // //---------------------------------------------------------------------------- //--------------------------- Include ---------------------------------------- #include "stdafx.h" #include "DllMain.h" -#include <\EgtDev\Include\EGnDllMain.h> -#include <\EgtDev\Include\EGnGetModuleVer.h> -#include <\EgtDev\Include\EgtTrace.h> +#include "/EgtDev/Include/EGnDllMain.h" +#include "/EgtDev/Include/EGnGetModuleVer.h" +#include "/EgtDev/Include/EgtTrace.h" +#include "/EgtDev/Include/SELkLockId.h" using namespace std ; @@ -92,3 +94,45 @@ GetEGnLogger( void) { return s_pLogger ; } + +//----------------------------------------------------------------------------- +static string s_sKey ; +static int s_nKeyType = KEY_LOCK_TYPE_ANY ; +static bool s_bNetHwKey = false ; + +//----------------------------------------------------------------------------- +void +SetEGnKey( const string& sKey) +{ + s_sKey = sKey ; +} + +//----------------------------------------------------------------------------- +void +SetEGnKeyType( int nType) +{ + s_nKeyType = nType ; +} + +//----------------------------------------------------------------------------- +void +SetEGnNetHwKey( bool bNetHwKey) +{ + s_bNetHwKey = bNetHwKey ; +} + +//----------------------------------------------------------------------------- +const string& +GetEGnKey( void) +{ + SetLockType( s_nKeyType) ; + return s_sKey ; +} + +//----------------------------------------------------------------------------- +bool +GetEGnNetHwKey( void) +{ + SetNetHwKey( s_bNetHwKey) ; + return s_bNetHwKey ; +} diff --git a/EgtGeneral.rc b/EgtGeneral.rc index a62a0aa..c10bc09 100644 Binary files a/EgtGeneral.rc and b/EgtGeneral.rc differ diff --git a/EgtGeneral.vcxproj b/EgtGeneral.vcxproj index 0d78fd7..c257adb 100644 --- a/EgtGeneral.vcxproj +++ b/EgtGeneral.vcxproj @@ -108,7 +108,7 @@ Windows true - version.lib;shlwapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + version.lib;shlwapi.lib;Rpcrt4.lib;C:\EgtDev\Extern\OxySec\Lib\x32\xnodus32.obj;%(AdditionalDependencies) copy $(TargetDir)$(TargetName).pdb \EgtDev\Lib\ @@ -131,7 +131,7 @@ copy $(TargetPath) \EgtProg\DllD32 Windows true - version.lib;shlwapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + version.lib;shlwapi.lib;Rpcrt4.lib;C:\EgtDev\Extern\OxySec\Lib\x64\xnodus.obj;%(AdditionalDependencies) copy $(TargetDir)$(TargetName).pdb \EgtDev\Lib\ @@ -164,7 +164,7 @@ copy $(TargetPath) \EgtProg\DllD64 false true true - version.lib;shlwapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + version.lib;shlwapi.lib;Rpcrt4.lib;C:\EgtDev\Extern\OxySec\Lib\x32\xnodus32.obj;%(AdditionalDependencies) UseLinkTimeCodeGeneration @@ -198,7 +198,7 @@ copy $(TargetPath) \EgtProg\Dll32 false true true - version.lib;shlwapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + version.lib;shlwapi.lib;Rpcrt4.lib;C:\EgtDev\Extern\OxySec\Lib\x64\xnodus.obj;%(AdditionalDependencies) UseLinkTimeCodeGeneration @@ -215,6 +215,7 @@ copy $(TargetPath) \EgtProg\Dll64 + @@ -258,6 +259,7 @@ copy $(TargetPath) \EgtProg\Dll64 false false + diff --git a/EgtGeneral.vcxproj.filters b/EgtGeneral.vcxproj.filters index b3645ea..88cbc19 100644 --- a/EgtGeneral.vcxproj.filters +++ b/EgtGeneral.vcxproj.filters @@ -72,6 +72,9 @@ File di intestazione + + File di intestazione + @@ -116,6 +119,9 @@ File di origine + + File di origine + diff --git a/GetModuleVer.cpp b/GetModuleVer.cpp index f0b00fa..8c63535 100644 --- a/GetModuleVer.cpp +++ b/GetModuleVer.cpp @@ -84,4 +84,4 @@ bool SetCurrentDirectory( const string& sDir) { return ( SetCurrentDirectoryW( stringtoW( sDir)) != 0) ; -} \ No newline at end of file +} diff --git a/GeyKeyData.cpp b/GeyKeyData.cpp new file mode 100644 index 0000000..73ae760 --- /dev/null +++ b/GeyKeyData.cpp @@ -0,0 +1,104 @@ +//---------------------------------------------------------------------------- +// EgalTech 2023-2023 +//---------------------------------------------------------------------------- +// File : GetKeyData.cpp Data : 29.05.23 Versione : 2.5e3 +// Contenuto : Funzione che restituisce i dati della chiave di protezione. +// +// +// +// Modifiche : 29.05.23 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +//--------------------------- Include ---------------------------------------- +#include "stdafx.h" +#include "DllMain.h" +#include "/EgtDev/Include/EGnGetKeyData.h" +#include "/EgtDev/Include/SELkKeyProc.h" + +using namespace std ; + +//----------------------------------------------------------------------------- +static int s_nKeyLevRet = - 1; +static int s_nKeyLev = 0 ; +static int s_nKeyExpDays = 0 ; +static int s_nKeyOptRet = - 1; +static int s_nKeyOpt1 = 0 ; +static int s_nKeyOpt2 = 0 ; +static int s_nKeyOptExpDays = 0 ; + +//----------------------------------------------------------------------------- +bool +SetEGnKeyLevel( int nRet, int nKeyLev, int nKeyExpDays) +{ + s_nKeyLevRet = nRet ; + s_nKeyLev = nKeyLev ; + s_nKeyExpDays = nKeyExpDays ; + return true ; +} + +//----------------------------------------------------------------------------- +int +GetEGnKeyLevel( int nProd, int nVer, int nLev, int& nKeyLev, int& nKeyExpDays) +{ + // Chiave di rete + if ( GetEGnNetHwKey()) { + int nCurrDay = GetCurrDay() ; + int nMinDay = GetMinDay() ; + if ( nCurrDay < nMinDay) + return KEY_ERR_WRONG_TIME ; + } + // chiave Hw locale + else { + int nMyKeyLev, nMyKeyExpDays ; + int nRet = GetKeyLevel( GetEGnKey(), nProd, nVer, nLev, nMyKeyLev, nMyKeyExpDays) ; + s_nKeyLevRet = nRet ; + s_nKeyLev = nMyKeyLev ; + s_nKeyExpDays = nMyKeyExpDays ; + } + // restituzione dati + nKeyLev = s_nKeyLev ; + nKeyExpDays = s_nKeyExpDays ; + return s_nKeyLevRet ; +} + +//----------------------------------------------------------------------------- +bool +SetEGnKeyOptions( int nRet, int nKeyOpt1, int nKeyOpt2, int nKeyOptExpDays) +{ + s_nKeyOptRet = nRet ; + s_nKeyOpt1 = nKeyOpt1 ; + s_nKeyOpt2 = nKeyOpt2 ; + s_nKeyOptExpDays = nKeyOptExpDays ; + return true ; +} + +//----------------------------------------------------------------------------- +int +GetEGnKeyOptions( int nProd, int nVer, int nLev, unsigned int& nKeyOpt1, unsigned int& nKeyOpt2, int& nKeyOptExpDays) +{ + // Chiave di rete + if ( GetEGnNetHwKey()) { + int nCurrDay = GetCurrDay() ; + int nMinDay = GetMinDay() ; + if ( nCurrDay < nMinDay) + return KEY_ERR_WRONG_TIME ; + } + // chiave Hw locale + else { + unsigned int nMyKeyOpt1, nMyKeyOpt2 ; + int nMyKeyOptExpDays ; + int nRet = GetKeyOptions( GetEGnKey(), nProd, nVer, nLev, nMyKeyOpt1, nMyKeyOpt2, nMyKeyOptExpDays) ; + s_nKeyOptRet = nRet ; + s_nKeyOpt1 = nMyKeyOpt1 ; + s_nKeyOpt2 = nMyKeyOpt2 ; + s_nKeyOptExpDays = nMyKeyOptExpDays ; + } + // restituzione dati + nKeyOpt1 = s_nKeyOpt1 ; + nKeyOpt2 = s_nKeyOpt2 ; + nKeyOptExpDays = s_nKeyOptExpDays ; + return s_nKeyOptRet ; +} + diff --git a/stdafx.h b/stdafx.h index b0f2732..e11cece 100644 --- a/stdafx.h +++ b/stdafx.h @@ -30,3 +30,4 @@ #pragma comment(lib, EGTEXTDIR "zlib/lib/zlib" EGTLIBVER ".lib") #pragma comment(lib, EGTEXTDIR "Lua/Lib/Lua54" EGTLIBVER ".lib") +#pragma comment(lib, EGTLIBDIR "SEgtLock" EGTLIBVER ".lib")