e8d0e9122d09ab71a4888f9a7b6f60a2771743d9
[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 _0x5622=['ipAddress','md5','hex','substring','crypto','bimedia-machine-uuid','../environment','keys','length','filter','family','IPv4','internal','concat','head','mac','00:00:00:00:00:00','127.0.0.1','getFirstInterface','cpus','map','createHash','update','digest','getUuid','platform','licenseToken','test','win32','utf8','hostname'];(function(_0x40475a,_0x5dddd6){var _0xac4dbb=function(_0x215da2){while(--_0x215da2){_0x40475a['push'](_0x40475a['shift']());}};_0xac4dbb(++_0x5dddd6);}(_0x5622,0x9f));var _0x2562=function(_0x288a66,_0x3b5bc4){_0x288a66=_0x288a66-0x0;var _0x1a9482=_0x5622[_0x288a66];return _0x1a9482;};'use strict';var _=require('lodash');var os=require('os');var crypto=require(_0x2562('0x0'));var machine=require(_0x2562('0x1'));var exec=require('child_process')['execSync'];var config=require(_0x2562('0x2'));function getInterfaces(){var _0x7463ea=[];var _0x2b63c5=os['networkInterfaces']();var _0x59b48e=_['orderBy'](_[_0x2562('0x3')](_0x2b63c5));for(var _0x1f29d4=0x0;_0x1f29d4<_0x59b48e[_0x2562('0x4')];_0x1f29d4++){var _0x13124a=_0x2b63c5[_0x59b48e[_0x1f29d4]][_0x2562('0x5')](function(_0x6af367){return _0x6af367[_0x2562('0x6')]===_0x2562('0x7')&&_0x6af367[_0x2562('0x8')]===![];});_0x7463ea=_0x7463ea[_0x2562('0x9')](_0x13124a);}return _0x7463ea;}function getFirstInterface(){var _0x1412ad=_[_0x2562('0xa')](getInterfaces());return{'macAddress':_0x1412ad&&_0x1412ad[_0x2562('0xb')]?_0x1412ad['mac']:_0x2562('0xc'),'ipAddress':_0x1412ad&&_0x1412ad['address']?_0x1412ad['address']:_0x2562('0xd')};}exports[_0x2562('0xe')]=getFirstInterface;function getCPUhash(){var _0x101fd7=_['orderBy'](os[_0x2562('0xf')]()[_0x2562('0x10')](function(_0x391e8f){return _0x391e8f['model'];}))['join'](':');return crypto[_0x2562('0x11')]('md5')[_0x2562('0x12')](_0x101fd7)[_0x2562('0x13')]('hex');}exports[_0x2562('0x14')]=function(){var _0x2895c7=os[_0x2562('0x15')]();var _0x137cae=/[0-9a-f-]{36}/;if(config[_0x2562('0x16')]&&_0x137cae[_0x2562('0x17')](config['licenseToken'])){return config[_0x2562('0x16')];}else if(_0x2895c7===_0x2562('0x18')){return exec('dmidecode\x20--string\x20system-uuid',{'encoding':_0x2562('0x19')})['replace']('\x0d\x0a','');}else{var _0x3c407e=getFirstInterface();var _0x3b33a9=getCPUhash();var _0x1a9b3a=_0x3b33a9+'|'+os[_0x2562('0x1a')]()+'|'+_0x3c407e['macAddress']+'|'+_0x3c407e[_0x2562('0x1b')];var _0x3a2e34=crypto[_0x2562('0x11')](_0x2562('0x1c'))['update'](_0x1a9b3a)['digest'](_0x2562('0x1d'));return _0x3a2e34[_0x2562('0x1e')](0x0,0x8)+'-'+_0x3a2e34['substring'](0x8,0xc)+'-'+_0x3a2e34[_0x2562('0x1e')](0xc,0x10)+'-'+_0x3a2e34[_0x2562('0x1e')](0x10,0x14)+'-'+_0x3a2e34[_0x2562('0x1e')](0x14);}};