bfb335fa1434e3ec8d669bf02c6b17eb131afafe
[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 _0xa83f=['lodash','bimedia-machine-uuid','child_process','execSync','networkInterfaces','keys','family','IPv4','head','mac','00:00:00:00:00:00','address','getFirstInterface','cpus','join','createHash','md5','update','digest','platform','test','licenseToken','win32','dmidecode\x20--string\x20system-uuid','utf8','replace','hostname','macAddress','ipAddress','hex','substring'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa83f,0xf8));var _0xfa83=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xa83f[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xfa83('0x0'));var os=require('os');var crypto=require('crypto');var machine=require(_0xfa83('0x1'));var exec=require(_0xfa83('0x2'))[_0xfa83('0x3')];var config=require('../environment');function getInterfaces(){var _0x4b1dcd=[];var _0x2972b7=os[_0xfa83('0x4')]();var _0x5ba4f9=_['orderBy'](_[_0xfa83('0x5')](_0x2972b7));for(var _0x279000=0x0;_0x279000<_0x5ba4f9['length'];_0x279000++){var _0x506670=_0x2972b7[_0x5ba4f9[_0x279000]]['filter'](function(_0x237536){return _0x237536[_0xfa83('0x6')]===_0xfa83('0x7')&&_0x237536['internal']===![];});_0x4b1dcd=_0x4b1dcd['concat'](_0x506670);}return _0x4b1dcd;}function getFirstInterface(){var _0x791d45=_[_0xfa83('0x8')](getInterfaces());return{'macAddress':_0x791d45&&_0x791d45['mac']?_0x791d45[_0xfa83('0x9')]:_0xfa83('0xa'),'ipAddress':_0x791d45&&_0x791d45['address']?_0x791d45[_0xfa83('0xb')]:'127.0.0.1'};}exports[_0xfa83('0xc')]=getFirstInterface;function getCPUhash(){var _0x3328ba=_['orderBy'](os[_0xfa83('0xd')]()['map'](function(_0x1edd12){return _0x1edd12['model'];}))[_0xfa83('0xe')](':');return crypto[_0xfa83('0xf')](_0xfa83('0x10'))[_0xfa83('0x11')](_0x3328ba)[_0xfa83('0x12')]('hex');}exports['getUuid']=function(){var _0x29207e=os[_0xfa83('0x13')]();var _0x481218=/[0-9a-f-]{36}/;if(config['licenseToken']&&_0x481218[_0xfa83('0x14')](config[_0xfa83('0x15')])){return config[_0xfa83('0x15')];}else if(_0x29207e===_0xfa83('0x16')){return exec(_0xfa83('0x17'),{'encoding':_0xfa83('0x18')})[_0xfa83('0x19')]('\x0d\x0a','');}else{var _0x480413=getFirstInterface();var _0x1049d4=getCPUhash();var _0x3a739f=_0x1049d4+'|'+os[_0xfa83('0x1a')]()+'|'+_0x480413[_0xfa83('0x1b')]+'|'+_0x480413[_0xfa83('0x1c')];var _0x38db68=crypto[_0xfa83('0xf')](_0xfa83('0x10'))[_0xfa83('0x11')](_0x3a739f)[_0xfa83('0x12')](_0xfa83('0x1d'));return _0x38db68['substring'](0x0,0x8)+'-'+_0x38db68[_0xfa83('0x1e')](0x8,0xc)+'-'+_0x38db68['substring'](0xc,0x10)+'-'+_0x38db68[_0xfa83('0x1e')](0x10,0x14)+'-'+_0x38db68[_0xfa83('0x1e')](0x14);}};