Built motion from commit 1ea47bf4.|2.6.34
[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 _0x6913=['ipAddress','update','digest','substring','lodash','crypto','bimedia-machine-uuid','child_process','execSync','networkInterfaces','orderBy','length','filter','IPv4','concat','head','mac','address','getFirstInterface','map','model','join','createHash','md5','hex','getUuid','platform','licenseToken','test','win32','utf8','hostname','macAddress'];(function(_0x1b94c1,_0x3b4769){var _0x38c1ad=function(_0x1bca2f){while(--_0x1bca2f){_0x1b94c1['push'](_0x1b94c1['shift']());}};_0x38c1ad(++_0x3b4769);}(_0x6913,0x190));var _0x3691=function(_0x221035,_0x15a7e7){_0x221035=_0x221035-0x0;var _0x181c2b=_0x6913[_0x221035];return _0x181c2b;};'use strict';var _=require(_0x3691('0x0'));var os=require('os');var crypto=require(_0x3691('0x1'));var machine=require(_0x3691('0x2'));var exec=require(_0x3691('0x3'))[_0x3691('0x4')];var config=require('../environment');function getInterfaces(){var _0x1bf592=[];var _0xa31cae=os[_0x3691('0x5')]();var _0x2ab518=_[_0x3691('0x6')](_['keys'](_0xa31cae));for(var _0x4682b7=0x0;_0x4682b7<_0x2ab518[_0x3691('0x7')];_0x4682b7++){var _0x23fed0=_0xa31cae[_0x2ab518[_0x4682b7]][_0x3691('0x8')](function(_0x3dfb1c){return _0x3dfb1c['family']===_0x3691('0x9')&&_0x3dfb1c['internal']===![];});_0x1bf592=_0x1bf592[_0x3691('0xa')](_0x23fed0);}return _0x1bf592;}function getFirstInterface(){var _0x1116da=_[_0x3691('0xb')](getInterfaces());return{'macAddress':_0x1116da&&_0x1116da[_0x3691('0xc')]?_0x1116da[_0x3691('0xc')]:'00:00:00:00:00:00','ipAddress':_0x1116da&&_0x1116da[_0x3691('0xd')]?_0x1116da[_0x3691('0xd')]:'127.0.0.1'};}exports[_0x3691('0xe')]=getFirstInterface;function getCPUhash(){var _0x281ef8=_[_0x3691('0x6')](os['cpus']()[_0x3691('0xf')](function(_0x311dc2){return _0x311dc2[_0x3691('0x10')];}))[_0x3691('0x11')](':');return crypto[_0x3691('0x12')](_0x3691('0x13'))['update'](_0x281ef8)['digest'](_0x3691('0x14'));}exports[_0x3691('0x15')]=function(){var _0x11b156=os[_0x3691('0x16')]();var _0x404867=/[0-9a-f-]{36}/;if(config[_0x3691('0x17')]&&_0x404867[_0x3691('0x18')](config[_0x3691('0x17')])){return config['licenseToken'];}else if(_0x11b156===_0x3691('0x19')){return exec('dmidecode\x20--string\x20system-uuid',{'encoding':_0x3691('0x1a')})['replace']('\x0d\x0a','');}else{var _0x588450=getFirstInterface();var _0x3b568f=getCPUhash();var _0x1b3ace=_0x3b568f+'|'+os[_0x3691('0x1b')]()+'|'+_0x588450[_0x3691('0x1c')]+'|'+_0x588450[_0x3691('0x1d')];var _0x4b1df5=crypto[_0x3691('0x12')](_0x3691('0x13'))[_0x3691('0x1e')](_0x1b3ace)[_0x3691('0x1f')](_0x3691('0x14'));return _0x4b1df5[_0x3691('0x20')](0x0,0x8)+'-'+_0x4b1df5['substring'](0x8,0xc)+'-'+_0x4b1df5['substring'](0xc,0x10)+'-'+_0x4b1df5[_0x3691('0x20')](0x10,0x14)+'-'+_0x4b1df5[_0x3691('0x20')](0x14);}};