45bf2db7e45448cae85bfba355e46cbb2cbcc605
[motion2.git] / server / config / license / hardware.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xd817=['concat','head','mac','address','127.0.0.1','getFirstInterface','map','model','join','createHash','md5','update','hex','getUuid','platform','licenseToken','win32','dmidecode\x20--string\x20system-uuid','utf8','replace','hostname','ipAddress','digest','substring','crypto','child_process','execSync','../environment','networkInterfaces','orderBy','keys','filter','family','IPv4'];(function(_0x51020b,_0x38c2c7){var _0x371e47=function(_0x2a538f){while(--_0x2a538f){_0x51020b['push'](_0x51020b['shift']());}};_0x371e47(++_0x38c2c7);}(_0xd817,0xe4));var _0x7d81=function(_0x3fc287,_0x5c3f36){_0x3fc287=_0x3fc287-0x0;var _0x33af9f=_0xd817[_0x3fc287];return _0x33af9f;};'use strict';var _=require('lodash');var os=require('os');var crypto=require(_0x7d81('0x0'));var machine=require('bimedia-machine-uuid');var exec=require(_0x7d81('0x1'))[_0x7d81('0x2')];var config=require(_0x7d81('0x3'));function getInterfaces(){var _0x47b0cb=[];var _0x2e36ec=os[_0x7d81('0x4')]();var _0x1c862f=_[_0x7d81('0x5')](_[_0x7d81('0x6')](_0x2e36ec));for(var _0x271ecb=0x0;_0x271ecb<_0x1c862f['length'];_0x271ecb++){var _0x250f5e=_0x2e36ec[_0x1c862f[_0x271ecb]][_0x7d81('0x7')](function(_0x5c95c4){return _0x5c95c4[_0x7d81('0x8')]===_0x7d81('0x9')&&_0x5c95c4['internal']===![];});_0x47b0cb=_0x47b0cb[_0x7d81('0xa')](_0x250f5e);}return _0x47b0cb;}function getFirstInterface(){var _0x438ef9=_[_0x7d81('0xb')](getInterfaces());return{'macAddress':_0x438ef9&&_0x438ef9[_0x7d81('0xc')]?_0x438ef9[_0x7d81('0xc')]:'00:00:00:00:00:00','ipAddress':_0x438ef9&&_0x438ef9['address']?_0x438ef9[_0x7d81('0xd')]:_0x7d81('0xe')};}exports[_0x7d81('0xf')]=getFirstInterface;function getCPUhash(){var _0x41dcd5=_['orderBy'](os['cpus']()[_0x7d81('0x10')](function(_0x1b217e){return _0x1b217e[_0x7d81('0x11')];}))[_0x7d81('0x12')](':');return crypto[_0x7d81('0x13')](_0x7d81('0x14'))[_0x7d81('0x15')](_0x41dcd5)['digest'](_0x7d81('0x16'));}exports[_0x7d81('0x17')]=function(){var _0x30619f=os[_0x7d81('0x18')]();var _0x53ffb4=/[0-9a-f-]{36}/;if(config[_0x7d81('0x19')]&&_0x53ffb4['test'](config[_0x7d81('0x19')])){return config[_0x7d81('0x19')];}else if(_0x30619f===_0x7d81('0x1a')){return exec(_0x7d81('0x1b'),{'encoding':_0x7d81('0x1c')})[_0x7d81('0x1d')]('\x0d\x0a','');}else{var _0x3f1889=getFirstInterface();var _0x4a1376=getCPUhash();var _0x4c8cd0=_0x4a1376+'|'+os[_0x7d81('0x1e')]()+'|'+_0x3f1889['macAddress']+'|'+_0x3f1889[_0x7d81('0x1f')];var _0x4f9c37=crypto[_0x7d81('0x13')](_0x7d81('0x14'))['update'](_0x4c8cd0)[_0x7d81('0x20')](_0x7d81('0x16'));return _0x4f9c37[_0x7d81('0x21')](0x0,0x8)+'-'+_0x4f9c37['substring'](0x8,0xc)+'-'+_0x4f9c37['substring'](0xc,0x10)+'-'+_0x4f9c37[_0x7d81('0x21')](0x10,0x14)+'-'+_0x4f9c37[_0x7d81('0x21')](0x14);}};