//---------------------------------------------------------------------------- // EgalTech 2019-2019 //---------------------------------------------------------------------------- // File : DongleSN.cpp Data : 13.05.18 Versione : 2.1e1 // Contenuto : Funzioni per lettura SN chiave OxySec. // // // // Modifiche : 13.05.18 DS Creazione modulo. // // //---------------------------------------------------------------------------- //------------------ Include ------------------------------------------------- #include "stdafx.h" #include "Obfuscate.h" #include "DongleId.h" #include "/EgtDev/Include/EgtBase64.h" #include "/EgtDev/Include/EgtCrc32.h" #include "/EgtDev/Extern/OxySec/Include/xnd.h" using namespace std ; //---------------------------------------------------------------------------- bool GetDongleSN( int& nDongleSN) { // imposto l'esito bool bOk = true ; // cerco la chiave unsigned char label[XLT_LABEL_SIZE] ; string sLabel = "EgalTech s.r.l. - CAD/CAM/CIM Software Solutions" ; strcpy_s( (char*)label, XLT_LABEL_SIZE, sLabel.c_str()) ; memset( label + sLabel.size(), 0x00, sizeof( label) - sLabel.size()) ; XND_XLT_ENV env = xnd_xlt_env_create() ; if ( env == nullptr) { bOk = false ; goto end ; } int nStatus = 0 ; XND_DEVICE_CONTEXT dev_ctx = xnd_xlt_locate( env, label, &nStatus) ; if ( dev_ctx == nullptr) { bOk = false ; goto end ; } // eseguo la lettura del Serial Number unsigned int nVer ; unsigned int nModel ; unsigned int nFlags ; unsigned int nSerial ; unsigned char szLabelPrint[XLT_LABEL_SIZE + 1] ; int nRes = xnd_xlt_getinfo( dev_ctx, &nVer, &nModel, &nFlags, &nSerial, szLabelPrint) ; if ( nRes != XLT_ERROR_SUCCESS) { bOk = false ; goto end ; } szLabelPrint[XLT_LABEL_SIZE] = '\0' ; nDongleSN = int( nSerial) ; end : xnd_xlt_devctx_release( dev_ctx) ; xnd_xlt_env_release( env) ; return bOk ; }