779e75cccb4d7c34de32ffeb3ebf2a696ae4f09b
[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 _0xcba9=['map','model','join','createHash','md5','update','digest','hex','getUuid','platform','licenseToken','test','win32','dmidecode\x20--string\x20system-uuid','utf8','replace','macAddress','ipAddress','substring','crypto','bimedia-machine-uuid','../environment','networkInterfaces','orderBy','keys','length','family','concat','head','mac','00:00:00:00:00:00','address','127.0.0.1','getFirstInterface','cpus'];(function(_0x56bc3f,_0x3bdff1){var _0x155808=function(_0x7cbae){while(--_0x7cbae){_0x56bc3f['push'](_0x56bc3f['shift']());}};_0x155808(++_0x3bdff1);}(_0xcba9,0x12b));var _0x9cba=function(_0x114563,_0x2d49db){_0x114563=_0x114563-0x0;var _0x28759e=_0xcba9[_0x114563];return _0x28759e;};'use strict';var _=require('lodash');var os=require('os');var crypto=require(_0x9cba('0x0'));var machine=require(_0x9cba('0x1'));var exec=require('child_process')['execSync'];var config=require(_0x9cba('0x2'));function getInterfaces(){var _0x33fcb0=[];var _0x39fec5=os[_0x9cba('0x3')]();var _0x173491=_[_0x9cba('0x4')](_[_0x9cba('0x5')](_0x39fec5));for(var _0x4eab11=0x0;_0x4eab11<_0x173491[_0x9cba('0x6')];_0x4eab11++){var _0xb0a937=_0x39fec5[_0x173491[_0x4eab11]]['filter'](function(_0x15fa19){return _0x15fa19[_0x9cba('0x7')]==='IPv4'&&_0x15fa19['internal']===![];});_0x33fcb0=_0x33fcb0[_0x9cba('0x8')](_0xb0a937);}return _0x33fcb0;}function getFirstInterface(){var _0xc87735=_[_0x9cba('0x9')](getInterfaces());return{'macAddress':_0xc87735&&_0xc87735[_0x9cba('0xa')]?_0xc87735[_0x9cba('0xa')]:_0x9cba('0xb'),'ipAddress':_0xc87735&&_0xc87735['address']?_0xc87735[_0x9cba('0xc')]:_0x9cba('0xd')};}exports[_0x9cba('0xe')]=getFirstInterface;function getCPUhash(){var _0x2b2ea1=_[_0x9cba('0x4')](os[_0x9cba('0xf')]()[_0x9cba('0x10')](function(_0x2cd5ca){return _0x2cd5ca[_0x9cba('0x11')];}))[_0x9cba('0x12')](':');return crypto[_0x9cba('0x13')](_0x9cba('0x14'))[_0x9cba('0x15')](_0x2b2ea1)[_0x9cba('0x16')](_0x9cba('0x17'));}exports[_0x9cba('0x18')]=function(){var _0x104484=os[_0x9cba('0x19')]();var _0x5ac106=/[0-9a-f-]{36}/;if(config[_0x9cba('0x1a')]&&_0x5ac106[_0x9cba('0x1b')](config[_0x9cba('0x1a')])){return config[_0x9cba('0x1a')];}else if(_0x104484===_0x9cba('0x1c')){return exec(_0x9cba('0x1d'),{'encoding':_0x9cba('0x1e')})[_0x9cba('0x1f')]('\x0d\x0a','');}else{var _0xbbc4c3=getFirstInterface();var _0x30aa3e=getCPUhash();var _0x351c0d=_0x30aa3e+'|'+os['hostname']()+'|'+_0xbbc4c3[_0x9cba('0x20')]+'|'+_0xbbc4c3[_0x9cba('0x21')];var _0x5ac180=crypto['createHash'](_0x9cba('0x14'))[_0x9cba('0x15')](_0x351c0d)[_0x9cba('0x16')](_0x9cba('0x17'));return _0x5ac180[_0x9cba('0x22')](0x0,0x8)+'-'+_0x5ac180['substring'](0x8,0xc)+'-'+_0x5ac180[_0x9cba('0x22')](0xc,0x10)+'-'+_0x5ac180[_0x9cba('0x22')](0x10,0x14)+'-'+_0x5ac180[_0x9cba('0x22')](0x14);}};