234f06a262273b915633daba431d5dbb69a6c5be
[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 _0xf49a=['getUuid','test','licenseToken','win32','dmidecode\x20--string\x20system-uuid','utf8','replace','hostname','macAddress','ipAddress','substring','crypto','child_process','execSync','../environment','networkInterfaces','length','filter','family','IPv4','internal','head','mac','00:00:00:00:00:00','address','getFirstInterface','cpus','map','model','createHash','md5','update','digest','hex'];(function(_0x173441,_0x26b0d9){var _0x2423a8=function(_0x4d96c2){while(--_0x4d96c2){_0x173441['push'](_0x173441['shift']());}};_0x2423a8(++_0x26b0d9);}(_0xf49a,0xf9));var _0xaf49=function(_0x494986,_0x4debb8){_0x494986=_0x494986-0x0;var _0x1c805b=_0xf49a[_0x494986];return _0x1c805b;};'use strict';var _=require('lodash');var os=require('os');var crypto=require(_0xaf49('0x0'));var machine=require('bimedia-machine-uuid');var exec=require(_0xaf49('0x1'))[_0xaf49('0x2')];var config=require(_0xaf49('0x3'));function getInterfaces(){var _0x357697=[];var _0x3c1755=os[_0xaf49('0x4')]();var _0x268c8f=_['orderBy'](_['keys'](_0x3c1755));for(var _0x19d1d8=0x0;_0x19d1d8<_0x268c8f[_0xaf49('0x5')];_0x19d1d8++){var _0x23dcaa=_0x3c1755[_0x268c8f[_0x19d1d8]][_0xaf49('0x6')](function(_0x2fa6df){return _0x2fa6df[_0xaf49('0x7')]===_0xaf49('0x8')&&_0x2fa6df[_0xaf49('0x9')]===![];});_0x357697=_0x357697['concat'](_0x23dcaa);}return _0x357697;}function getFirstInterface(){var _0x410346=_[_0xaf49('0xa')](getInterfaces());return{'macAddress':_0x410346&&_0x410346[_0xaf49('0xb')]?_0x410346[_0xaf49('0xb')]:_0xaf49('0xc'),'ipAddress':_0x410346&&_0x410346[_0xaf49('0xd')]?_0x410346['address']:'127.0.0.1'};}exports[_0xaf49('0xe')]=getFirstInterface;function getCPUhash(){var _0x573e46=_['orderBy'](os[_0xaf49('0xf')]()[_0xaf49('0x10')](function(_0x26a9af){return _0x26a9af[_0xaf49('0x11')];}))['join'](':');return crypto[_0xaf49('0x12')](_0xaf49('0x13'))[_0xaf49('0x14')](_0x573e46)[_0xaf49('0x15')](_0xaf49('0x16'));}exports[_0xaf49('0x17')]=function(){var _0x5180f1=os['platform']();var _0x373f2d=/[0-9a-f-]{36}/;if(config['licenseToken']&&_0x373f2d[_0xaf49('0x18')](config[_0xaf49('0x19')])){return config[_0xaf49('0x19')];}else if(_0x5180f1===_0xaf49('0x1a')){return exec(_0xaf49('0x1b'),{'encoding':_0xaf49('0x1c')})[_0xaf49('0x1d')]('\x0d\x0a','');}else{var _0x363e2e=getFirstInterface();var _0x2d686a=getCPUhash();var _0x5259c0=_0x2d686a+'|'+os[_0xaf49('0x1e')]()+'|'+_0x363e2e[_0xaf49('0x1f')]+'|'+_0x363e2e[_0xaf49('0x20')];var _0x1355f3=crypto['createHash'](_0xaf49('0x13'))['update'](_0x5259c0)[_0xaf49('0x15')]('hex');return _0x1355f3[_0xaf49('0x21')](0x0,0x8)+'-'+_0x1355f3[_0xaf49('0x21')](0x8,0xc)+'-'+_0x1355f3['substring'](0xc,0x10)+'-'+_0x1355f3[_0xaf49('0x21')](0x10,0x14)+'-'+_0x1355f3[_0xaf49('0x21')](0x14);}};