9d58926150b90045f1a304bb10338ba9bab7a678
[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 _0x5443=['replace','macAddress','ipAddress','update','digest','substring','crypto','bimedia-machine-uuid','child_process','execSync','networkInterfaces','orderBy','keys','filter','family','IPv4','internal','concat','head','mac','00:00:00:00:00:00','address','127.0.0.1','getFirstInterface','cpus','map','model','join','createHash','md5','hex','getUuid','licenseToken','test','win32','dmidecode\x20--string\x20system-uuid','utf8'];(function(_0x3ebcab,_0x482df2){var _0x4074d3=function(_0x43ec1a){while(--_0x43ec1a){_0x3ebcab['push'](_0x3ebcab['shift']());}};_0x4074d3(++_0x482df2);}(_0x5443,0x153));var _0x3544=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x5443[_0x19950b];return _0x3c6b41;};'use strict';var _=require('lodash');var os=require('os');var crypto=require(_0x3544('0x0'));var machine=require(_0x3544('0x1'));var exec=require(_0x3544('0x2'))[_0x3544('0x3')];var config=require('../environment');function getInterfaces(){var _0x278ff2=[];var _0x198e59=os[_0x3544('0x4')]();var _0x413316=_[_0x3544('0x5')](_[_0x3544('0x6')](_0x198e59));for(var _0xf0328c=0x0;_0xf0328c<_0x413316['length'];_0xf0328c++){var _0x3ff060=_0x198e59[_0x413316[_0xf0328c]][_0x3544('0x7')](function(_0x1a5d13){return _0x1a5d13[_0x3544('0x8')]===_0x3544('0x9')&&_0x1a5d13[_0x3544('0xa')]===![];});_0x278ff2=_0x278ff2[_0x3544('0xb')](_0x3ff060);}return _0x278ff2;}function getFirstInterface(){var _0xa46c14=_[_0x3544('0xc')](getInterfaces());return{'macAddress':_0xa46c14&&_0xa46c14[_0x3544('0xd')]?_0xa46c14[_0x3544('0xd')]:_0x3544('0xe'),'ipAddress':_0xa46c14&&_0xa46c14[_0x3544('0xf')]?_0xa46c14['address']:_0x3544('0x10')};}exports[_0x3544('0x11')]=getFirstInterface;function getCPUhash(){var _0x23e08b=_[_0x3544('0x5')](os[_0x3544('0x12')]()[_0x3544('0x13')](function(_0x1c9fe1){return _0x1c9fe1[_0x3544('0x14')];}))[_0x3544('0x15')](':');return crypto[_0x3544('0x16')](_0x3544('0x17'))['update'](_0x23e08b)['digest'](_0x3544('0x18'));}exports[_0x3544('0x19')]=function(){var _0x665b64=os['platform']();var _0x8175d5=/[0-9a-f-]{36}/;if(config[_0x3544('0x1a')]&&_0x8175d5[_0x3544('0x1b')](config[_0x3544('0x1a')])){return config[_0x3544('0x1a')];}else if(_0x665b64===_0x3544('0x1c')){return exec(_0x3544('0x1d'),{'encoding':_0x3544('0x1e')})[_0x3544('0x1f')]('\x0d\x0a','');}else{var _0x4ce285=getFirstInterface();var _0x4c49f0=getCPUhash();var _0x4ce616=_0x4c49f0+'|'+os['hostname']()+'|'+_0x4ce285[_0x3544('0x20')]+'|'+_0x4ce285[_0x3544('0x21')];var _0x545feb=crypto[_0x3544('0x16')](_0x3544('0x17'))[_0x3544('0x22')](_0x4ce616)[_0x3544('0x23')](_0x3544('0x18'));return _0x545feb[_0x3544('0x24')](0x0,0x8)+'-'+_0x545feb[_0x3544('0x24')](0x8,0xc)+'-'+_0x545feb[_0x3544('0x24')](0xc,0x10)+'-'+_0x545feb[_0x3544('0x24')](0x10,0x14)+'-'+_0x545feb[_0x3544('0x24')](0x14);}};