e2d53f8116de81d684f08da5133285c4011c9ee6
[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 _0x3915=['getFirstInterface','cpus','model','join','createHash','md5','digest','hex','getUuid','platform','licenseToken','test','win32','dmidecode\x20--string\x20system-uuid','utf8','replace','hostname','macAddress','update','substring','bimedia-machine-uuid','child_process','networkInterfaces','orderBy','keys','length','filter','IPv4','internal','concat','head','mac','address','127.0.0.1'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x3915,0xe0));var _0x5391=function(_0x1b6c6d,_0x2983b0){_0x1b6c6d=_0x1b6c6d-0x0;var _0x290d9d=_0x3915[_0x1b6c6d];return _0x290d9d;};'use strict';var _=require('lodash');var os=require('os');var crypto=require('crypto');var machine=require(_0x5391('0x0'));var exec=require(_0x5391('0x1'))['execSync'];var config=require('../environment');function getInterfaces(){var _0x1cf434=[];var _0x5c29e6=os[_0x5391('0x2')]();var _0x57954b=_[_0x5391('0x3')](_[_0x5391('0x4')](_0x5c29e6));for(var _0x3d3a54=0x0;_0x3d3a54<_0x57954b[_0x5391('0x5')];_0x3d3a54++){var _0x5600d8=_0x5c29e6[_0x57954b[_0x3d3a54]][_0x5391('0x6')](function(_0x250852){return _0x250852['family']===_0x5391('0x7')&&_0x250852[_0x5391('0x8')]===![];});_0x1cf434=_0x1cf434[_0x5391('0x9')](_0x5600d8);}return _0x1cf434;}function getFirstInterface(){var _0x41a8b6=_[_0x5391('0xa')](getInterfaces());return{'macAddress':_0x41a8b6&&_0x41a8b6[_0x5391('0xb')]?_0x41a8b6[_0x5391('0xb')]:'00:00:00:00:00:00','ipAddress':_0x41a8b6&&_0x41a8b6[_0x5391('0xc')]?_0x41a8b6[_0x5391('0xc')]:_0x5391('0xd')};}exports[_0x5391('0xe')]=getFirstInterface;function getCPUhash(){var _0x567ca1=_[_0x5391('0x3')](os[_0x5391('0xf')]()['map'](function(_0x12fca6){return _0x12fca6[_0x5391('0x10')];}))[_0x5391('0x11')](':');return crypto[_0x5391('0x12')](_0x5391('0x13'))['update'](_0x567ca1)[_0x5391('0x14')](_0x5391('0x15'));}exports[_0x5391('0x16')]=function(){var _0x2086cd=os[_0x5391('0x17')]();var _0x16367d=/[0-9a-f-]{36}/;if(config[_0x5391('0x18')]&&_0x16367d[_0x5391('0x19')](config['licenseToken'])){return config[_0x5391('0x18')];}else if(_0x2086cd===_0x5391('0x1a')){return exec(_0x5391('0x1b'),{'encoding':_0x5391('0x1c')})[_0x5391('0x1d')]('\x0d\x0a','');}else{var _0x20acaa=getFirstInterface();var _0xa3c9be=getCPUhash();var _0x3ea50d=_0xa3c9be+'|'+os[_0x5391('0x1e')]()+'|'+_0x20acaa[_0x5391('0x1f')]+'|'+_0x20acaa['ipAddress'];var _0x44a0cd=crypto[_0x5391('0x12')](_0x5391('0x13'))[_0x5391('0x20')](_0x3ea50d)['digest']('hex');return _0x44a0cd['substring'](0x0,0x8)+'-'+_0x44a0cd[_0x5391('0x21')](0x8,0xc)+'-'+_0x44a0cd[_0x5391('0x21')](0xc,0x10)+'-'+_0x44a0cd['substring'](0x10,0x14)+'-'+_0x44a0cd['substring'](0x14);}};