change USER_MANAGER to WEB_SERVICE

This commit is contained in:
KF7EEL 2021-09-05 18:53:20 -07:00
parent 0b9d70b141
commit 73c5ec938f
5 changed files with 56 additions and 56 deletions

View File

@ -86,10 +86,10 @@ __email__ = 'kf7eel@qsl.net'
# Function to download rules # Function to download rules
def update_tg(CONFIG, mode, dmr_id, data): def update_tg(CONFIG, mode, dmr_id, data):
user_man_url = CONFIG['USER_MANAGER']['URL'] user_man_url = CONFIG['WEB_SERVICE']['URL']
shared_secret = str(sha256(CONFIG['USER_MANAGER']['SHARED_SECRET'].encode()).hexdigest()) shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest())
update_srv = { update_srv = {
'update_tg':CONFIG['USER_MANAGER']['THIS_SERVER_NAME'], 'update_tg':CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'],
'secret':shared_secret, 'secret':shared_secret,
'dmr_id': dmr_id, 'dmr_id': dmr_id,
## 'ts1': data['ts1'], ## 'ts1': data['ts1'],
@ -111,10 +111,10 @@ def update_tg(CONFIG, mode, dmr_id, data):
def ping(CONFIG): def ping(CONFIG):
user_man_url = CONFIG['USER_MANAGER']['URL'] user_man_url = CONFIG['WEB_SERVICE']['URL']
shared_secret = str(sha256(CONFIG['USER_MANAGER']['SHARED_SECRET'].encode()).hexdigest()) shared_secret = str(sha256(CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest())
ping_data = { ping_data = {
'ping': CONFIG['USER_MANAGER']['THIS_SERVER_NAME'], 'ping': CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'],
'secret':shared_secret 'secret':shared_secret
} }
@ -133,10 +133,10 @@ def ping(CONFIG):
# Function to download rules # Function to download rules
def download_rules(L_CONFIG_FILE, cli_file): def download_rules(L_CONFIG_FILE, cli_file):
user_man_url = L_CONFIG_FILE['USER_MANAGER']['URL'] user_man_url = L_CONFIG_FILE['WEB_SERVICE']['URL']
shared_secret = str(sha256(L_CONFIG_FILE['USER_MANAGER']['SHARED_SECRET'].encode()).hexdigest()) shared_secret = str(sha256(L_CONFIG_FILE['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest())
rules_check = { rules_check = {
'get_rules':L_CONFIG_FILE['USER_MANAGER']['THIS_SERVER_NAME'], 'get_rules':L_CONFIG_FILE['WEB_SERVICE']['THIS_SERVER_NAME'],
'secret':shared_secret 'secret':shared_secret
} }
## print(rules_check) ## print(rules_check)
@ -154,10 +154,10 @@ def download_rules(L_CONFIG_FILE, cli_file):
# Function to download config # Function to download config
def download_config(L_CONFIG_FILE, cli_file): def download_config(L_CONFIG_FILE, cli_file):
user_man_url = L_CONFIG_FILE['USER_MANAGER']['URL'] user_man_url = L_CONFIG_FILE['WEB_SERVICE']['URL']
shared_secret = str(sha256(L_CONFIG_FILE['USER_MANAGER']['SHARED_SECRET'].encode()).hexdigest()) shared_secret = str(sha256(L_CONFIG_FILE['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest())
config_check = { config_check = {
'get_config':L_CONFIG_FILE['USER_MANAGER']['THIS_SERVER_NAME'], 'get_config':L_CONFIG_FILE['WEB_SERVICE']['THIS_SERVER_NAME'],
'secret':shared_secret 'secret':shared_secret
} }
json_object = json.dumps(config_check, indent = 4) json_object = json.dumps(config_check, indent = 4)
@ -172,13 +172,13 @@ def download_config(L_CONFIG_FILE, cli_file):
iterate_config.update(resp['masters'].copy()) iterate_config.update(resp['masters'].copy())
corrected_config['SYSTEMS'].update(iterate_config) corrected_config['SYSTEMS'].update(iterate_config)
corrected_config['LOGGER'].update(L_CONFIG_FILE['LOGGER']) corrected_config['LOGGER'].update(L_CONFIG_FILE['LOGGER'])
## corrected_config['USER_MANAGER'].update(resp['config']['USER_MANAGER']) ## corrected_config['WEB_SERVICE'].update(resp['config']['WEB_SERVICE'])
corrected_config['USER_MANAGER'] = {} corrected_config['WEB_SERVICE'] = {}
corrected_config['USER_MANAGER']['THIS_SERVER_NAME'] = L_CONFIG_FILE['USER_MANAGER']['THIS_SERVER_NAME'] corrected_config['WEB_SERVICE']['THIS_SERVER_NAME'] = L_CONFIG_FILE['WEB_SERVICE']['THIS_SERVER_NAME']
corrected_config['USER_MANAGER']['URL'] = L_CONFIG_FILE['USER_MANAGER']['URL'] corrected_config['WEB_SERVICE']['URL'] = L_CONFIG_FILE['WEB_SERVICE']['URL']
corrected_config['USER_MANAGER']['SHARED_SECRET'] = L_CONFIG_FILE['USER_MANAGER']['SHARED_SECRET'] corrected_config['WEB_SERVICE']['SHARED_SECRET'] = L_CONFIG_FILE['WEB_SERVICE']['SHARED_SECRET']
corrected_config['USER_MANAGER']['REMOTE_CONFIG_ENABLED'] = L_CONFIG_FILE['USER_MANAGER']['REMOTE_CONFIG_ENABLED'] corrected_config['WEB_SERVICE']['REMOTE_CONFIG_ENABLED'] = L_CONFIG_FILE['WEB_SERVICE']['REMOTE_CONFIG_ENABLED']
corrected_config['USER_MANAGER'].update(resp['config']['USER_MANAGER']) corrected_config['WEB_SERVICE'].update(resp['config']['WEB_SERVICE'])
corrected_config['GLOBAL']['TG1_ACL'] = config.acl_build(corrected_config['GLOBAL']['TG1_ACL'], 4294967295) corrected_config['GLOBAL']['TG1_ACL'] = config.acl_build(corrected_config['GLOBAL']['TG1_ACL'], 4294967295)
corrected_config['GLOBAL']['TG2_ACL'] = config.acl_build(corrected_config['GLOBAL']['TG2_ACL'], 4294967295) corrected_config['GLOBAL']['TG2_ACL'] = config.acl_build(corrected_config['GLOBAL']['TG2_ACL'], 4294967295)
corrected_config['GLOBAL']['REG_ACL'] = config.acl_build(corrected_config['GLOBAL']['REG_ACL'], 4294967295) corrected_config['GLOBAL']['REG_ACL'] = config.acl_build(corrected_config['GLOBAL']['REG_ACL'], 4294967295)
@ -1375,7 +1375,7 @@ if __name__ == '__main__':
# Call the external routine to build the configuration dictionary # Call the external routine to build the configuration dictionary
LOCAL_CONFIG = config.build_config(cli_args.CONFIG_FILE) LOCAL_CONFIG = config.build_config(cli_args.CONFIG_FILE)
if LOCAL_CONFIG['USER_MANAGER']['REMOTE_CONFIG_ENABLED']: if LOCAL_CONFIG['WEB_SERVICE']['REMOTE_CONFIG_ENABLED']:
CONFIG = download_config(LOCAL_CONFIG, cli_args.CONFIG_FILE) CONFIG = download_config(LOCAL_CONFIG, cli_args.CONFIG_FILE)
## print(CONFIG['SYSTEMS']) ## print(CONFIG['SYSTEMS'])
## print('enabled') ## print('enabled')
@ -1462,7 +1462,7 @@ if __name__ == '__main__':
logger.info('Generated MASTER instances for proxy set: ' + i) logger.info('Generated MASTER instances for proxy set: ' + i)
# Attempt to use downloaded rules # Attempt to use downloaded rules
if LOCAL_CONFIG['USER_MANAGER']['REMOTE_CONFIG_ENABLED']: if LOCAL_CONFIG['WEB_SERVICE']['REMOTE_CONFIG_ENABLED']:
try: try:
remote_config = download_rules(LOCAL_CONFIG, cli_args.CONFIG_FILE) remote_config = download_rules(LOCAL_CONFIG, cli_args.CONFIG_FILE)
# Build the routing rules file # Build the routing rules file
@ -1528,7 +1528,7 @@ if __name__ == '__main__':
logger.info('Unit calls will be bridged to: ' + str(UNIT)) logger.info('Unit calls will be bridged to: ' + str(UNIT))
# Download burn list # Download burn list
with open(CONFIG['USER_MANAGER']['BURN_FILE'], 'w') as f: with open(CONFIG['WEB_SERVICE']['BURN_FILE'], 'w') as f:
f.write(str(download_burnlist(CONFIG))) f.write(str(download_burnlist(CONFIG)))
reactor.run() reactor.run()

View File

@ -107,7 +107,7 @@ def build_config(_config_file):
CONFIG['REPORTS'] = {} CONFIG['REPORTS'] = {}
CONFIG['LOGGER'] = {} CONFIG['LOGGER'] = {}
CONFIG['ALIASES'] = {} CONFIG['ALIASES'] = {}
CONFIG['USER_MANAGER'] = {} CONFIG['WEB_SERVICE'] = {}
CONFIG['SYSTEMS'] = {} CONFIG['SYSTEMS'] = {}
try: try:
@ -154,8 +154,8 @@ def build_config(_config_file):
'STALE_TIME': config.getint(section, 'STALE_DAYS') * 86400, 'STALE_TIME': config.getint(section, 'STALE_DAYS') * 86400,
}) })
elif section == 'USER_MANAGER': elif section == 'WEB_SERVICE':
CONFIG['USER_MANAGER'].update({ CONFIG['WEB_SERVICE'].update({
'THIS_SERVER_NAME': config.get(section, 'THIS_SERVER_NAME'), 'THIS_SERVER_NAME': config.get(section, 'THIS_SERVER_NAME'),
'URL': config.get(section, 'URL'), 'URL': config.get(section, 'URL'),
'REMOTE_CONFIG_ENABLED': config.getboolean(section, 'REMOTE_CONFIG_ENABLED'), 'REMOTE_CONFIG_ENABLED': config.getboolean(section, 'REMOTE_CONFIG_ENABLED'),

View File

@ -107,7 +107,7 @@ STALE_DAYS: 7
# USER MANAGER # USER MANAGER
# This is where to configure the details for use with a user managment script # This is where to configure the details for use with a user managment script
[USER_MANAGER] [WEB_SERVICE]
THIS_SERVER_NAME: MMDVM_Server THIS_SERVER_NAME: MMDVM_Server
REMOTE_CONFIG_ENABLED: True REMOTE_CONFIG_ENABLED: True
# URL of the user managment server # URL of the user managment server

View File

@ -126,8 +126,8 @@ def acl_check(_id, _acl):
def download_burnlist(_CONFIG): def download_burnlist(_CONFIG):
user_man_url = _CONFIG['USER_MANAGER']['URL'] user_man_url = _CONFIG['WEB_SERVICE']['URL']
shared_secret = str(sha256(_CONFIG['USER_MANAGER']['SHARED_SECRET'].encode()).hexdigest()) shared_secret = str(sha256(_CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest())
burn_check = { burn_check = {
'burn_list':True, 'burn_list':True,
'secret':shared_secret 'secret':shared_secret
@ -317,8 +317,8 @@ class HBSYSTEM(DatagramProtocol):
def check_user_man(self, _id, server_name, peer_ip, _system): def check_user_man(self, _id, server_name, peer_ip, _system):
#Change this to a config value #Change this to a config value
user_man_url = self._CONFIG['USER_MANAGER']['URL'] user_man_url = self._CONFIG['WEB_SERVICE']['URL']
shared_secret = str(sha256(self._CONFIG['USER_MANAGER']['SHARED_SECRET'].encode()).hexdigest()) shared_secret = str(sha256(self._CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest())
## print(int(str(int_id(_id))[:7])) ## print(int(str(int_id(_id))[:7]))
auth_check = { auth_check = {
'secret':shared_secret, 'secret':shared_secret,
@ -338,8 +338,8 @@ class HBSYSTEM(DatagramProtocol):
# Sends login confirmation for log # Sends login confirmation for log
def send_login_conf(self, _id, server_name, peer_ip, old_auth): def send_login_conf(self, _id, server_name, peer_ip, old_auth):
#Change this to a config value #Change this to a config value
user_man_url = self._CONFIG['USER_MANAGER']['URL'] user_man_url = self._CONFIG['WEB_SERVICE']['URL']
shared_secret = str(sha256(self._CONFIG['USER_MANAGER']['SHARED_SECRET'].encode()).hexdigest()) shared_secret = str(sha256(self._CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest())
#print(int(str(int_id(_id))[:7])) #print(int(str(int_id(_id))[:7]))
auth_conf = { auth_conf = {
'secret':shared_secret, 'secret':shared_secret,
@ -360,8 +360,8 @@ class HBSYSTEM(DatagramProtocol):
# Sends PEER info for map and other stuff # Sends PEER info for map and other stuff
def send_peer_loc(self, _id, call, lat, lon, url, description, loc, soft): def send_peer_loc(self, _id, call, lat, lon, url, description, loc, soft):
#Change this to a config value #Change this to a config value
user_man_url = self._CONFIG['USER_MANAGER']['URL'] user_man_url = self._CONFIG['WEB_SERVICE']['URL']
shared_secret = str(sha256(self._CONFIG['USER_MANAGER']['SHARED_SECRET'].encode()).hexdigest()) shared_secret = str(sha256(self._CONFIG['WEB_SERVICE']['SHARED_SECRET'].encode()).hexdigest())
peer_loc_conf = { peer_loc_conf = {
'secret':shared_secret, 'secret':shared_secret,
'loc_callsign':re.sub("b'|'|\s\s+", '', str(call)), 'loc_callsign':re.sub("b'|'|\s\s+", '', str(call)),
@ -383,7 +383,7 @@ class HBSYSTEM(DatagramProtocol):
logger.info(e) logger.info(e)
def calc_passphrase(self, peer_id, _salt_str): def calc_passphrase(self, peer_id, _salt_str):
burn_id = ast.literal_eval(os.popen('cat ' + self._CONFIG['USER_MANAGER']['BURN_FILE']).read()) burn_id = ast.literal_eval(os.popen('cat ' + self._CONFIG['WEB_SERVICE']['BURN_FILE']).read())
peer_id_trimmed = int(str(int_id(peer_id))[:7]) peer_id_trimmed = int(str(int_id(peer_id))[:7])
try: try:
## print(self.ums_response) ## print(self.ums_response)
@ -398,15 +398,15 @@ class HBSYSTEM(DatagramProtocol):
try: try:
if burn_id[peer_id_trimmed]: if burn_id[peer_id_trimmed]:
logger.info('User ID has been burned. Requiring passphrase version: ' + str(burn_id[peer_id_trimmed])) logger.info('User ID has been burned. Requiring passphrase version: ' + str(burn_id[peer_id_trimmed]))
calc_passphrase = sha256(str(self._CONFIG['USER_MANAGER']['EXTRA_1']).encode() + str(self._CONFIG['USER_MANAGER']['EXTRA_INT_1']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] + base64.b64encode(bytes.fromhex(str(hex(libscrc.ccitt((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))))[2:].zfill(4)) + (_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))+ sha256(str(self._CONFIG['USER_MANAGER']['EXTRA_2']).encode() + str(self._CONFIG['USER_MANAGER']['EXTRA_INT_2']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] calc_passphrase = sha256(str(self._CONFIG['WEB_SERVICE']['EXTRA_1']).encode() + str(self._CONFIG['WEB_SERVICE']['EXTRA_INT_1']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] + base64.b64encode(bytes.fromhex(str(hex(libscrc.ccitt((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))))[2:].zfill(4)) + (_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))+ sha256(str(self._CONFIG['WEB_SERVICE']['EXTRA_2']).encode() + str(self._CONFIG['WEB_SERVICE']['EXTRA_INT_2']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14]
except: except:
# + base64.b64encode(str.encode(str(_new_peer_id) + self._CONFIG['USER_MANAGER']['EXTRA_3'] + str(self._CONFIG['USER_MANAGER']['EXTRA_INT_1'] - self._CONFIG['USER_MANAGER']['APPEND_INT']) + str(_new_peer_id) + self._CONFIG['USER_MANAGER']['EXTRA_2'])) # + base64.b64encode(str.encode(str(_new_peer_id) + self._CONFIG['WEB_SERVICE']['EXTRA_3'] + str(self._CONFIG['WEB_SERVICE']['EXTRA_INT_1'] - self._CONFIG['WEB_SERVICE']['APPEND_INT']) + str(_new_peer_id) + self._CONFIG['WEB_SERVICE']['EXTRA_2']))
calc_passphrase = sha256(str(self._CONFIG['USER_MANAGER']['EXTRA_1']).encode() + str(self._CONFIG['USER_MANAGER']['EXTRA_INT_1']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] + base64.b64encode(bytes.fromhex(str(hex(libscrc.ccitt((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))))[2:].zfill(4)) + (_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8))) + sha256(str(self._CONFIG['USER_MANAGER']['EXTRA_2']).encode() + str(self._CONFIG['USER_MANAGER']['EXTRA_INT_2']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] calc_passphrase = sha256(str(self._CONFIG['WEB_SERVICE']['EXTRA_1']).encode() + str(self._CONFIG['WEB_SERVICE']['EXTRA_INT_1']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] + base64.b64encode(bytes.fromhex(str(hex(libscrc.ccitt((_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))))[2:].zfill(4)) + (_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8))) + sha256(str(self._CONFIG['WEB_SERVICE']['EXTRA_2']).encode() + str(self._CONFIG['WEB_SERVICE']['EXTRA_INT_2']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14]
## print(base64.b64encode(calc_passphrase)) ## print(base64.b64encode(calc_passphrase))
if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == True: if self._CONFIG['WEB_SERVICE']['SHORTEN_PASSPHRASE'] == True:
## print(calc_passphrase) ## print(calc_passphrase)
calc_passphrase = calc_passphrase[::int(self._CONFIG['USER_MANAGER']['SHORTEN_SAMPLE'])][-int(self._CONFIG['USER_MANAGER']['SHORTEN_LENGTH']):] calc_passphrase = calc_passphrase[::int(self._CONFIG['WEB_SERVICE']['SHORTEN_SAMPLE'])][-int(self._CONFIG['WEB_SERVICE']['SHORTEN_LENGTH']):]
if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == False: if self._CONFIG['WEB_SERVICE']['SHORTEN_PASSPHRASE'] == False:
pass pass
_calc_hash = bhex(sha256(_salt_str+calc_passphrase).hexdigest()) _calc_hash = bhex(sha256(_salt_str+calc_passphrase).hexdigest())
#If exception, assume UMS down and default to calculated passphrase #If exception, assume UMS down and default to calculated passphrase
@ -415,14 +415,14 @@ class HBSYSTEM(DatagramProtocol):
_new_peer_id = bytes_4(int(str(int_id(peer_id))[:7])) _new_peer_id = bytes_4(int(str(int_id(peer_id))[:7]))
if peer_id_trimmed in burn_id: if peer_id_trimmed in burn_id:
logger.info('User ID has been burned. Requiring passphrase version: ' + str(burn_id[peer_id_trimmed])) logger.info('User ID has been burned. Requiring passphrase version: ' + str(burn_id[peer_id_trimmed]))
calc_passphrase = sha256(str(self._CONFIG['USER_MANAGER']['EXTRA_1']).encode() + str(self._CONFIG['USER_MANAGER']['EXTRA_INT_1']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] + base64.b64encode(bytes.fromhex(str(hex(libscrc.ccitt((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))))[2:].zfill(4)) + (_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8))) + sha256(str(self._CONFIG['USER_MANAGER']['EXTRA_2']).encode() + str(self._CONFIG['USER_MANAGER']['EXTRA_INT_2']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] calc_passphrase = sha256(str(self._CONFIG['WEB_SERVICE']['EXTRA_1']).encode() + str(self._CONFIG['WEB_SERVICE']['EXTRA_INT_1']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] + base64.b64encode(bytes.fromhex(str(hex(libscrc.ccitt((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))))[2:].zfill(4)) + (_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + burn_id[peer_id_trimmed].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['BURN_INT'].to_bytes(2, 'big') + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8))) + sha256(str(self._CONFIG['WEB_SERVICE']['EXTRA_2']).encode() + str(self._CONFIG['WEB_SERVICE']['EXTRA_INT_2']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14]
else: else:
calc_passphrase = sha256(str(self._CONFIG['USER_MANAGER']['EXTRA_1']).encode() + str(self._CONFIG['USER_MANAGER']['EXTRA_INT_1']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] + base64.b64encode(bytes.fromhex(str(hex(libscrc.ccitt((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))))[2:].zfill(4)) + (_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8))) + sha256(str(self._CONFIG['USER_MANAGER']['EXTRA_2']).encode() + str(self._CONFIG['USER_MANAGER']['EXTRA_INT_2']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] calc_passphrase = sha256(str(self._CONFIG['WEB_SERVICE']['EXTRA_1']).encode() + str(self._CONFIG['WEB_SERVICE']['EXTRA_INT_1']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14] + base64.b64encode(bytes.fromhex(str(hex(libscrc.ccitt((_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))))[2:].zfill(4)) + (_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8))) + sha256(str(self._CONFIG['WEB_SERVICE']['EXTRA_2']).encode() + str(self._CONFIG['WEB_SERVICE']['EXTRA_INT_2']).encode() + str(_new_peer_id).encode()[-3:]).hexdigest().upper().encode()[::14]
#calc_passphrase = base64.b64encode(bytes.fromhex(str(hex(libscrc.ccitt((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))))[2:].zfill(4)) + (_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8))) #calc_passphrase = base64.b64encode(bytes.fromhex(str(hex(libscrc.ccitt((_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))))[2:].zfill(4)) + (_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['WEB_SERVICE']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))
if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == True: if self._CONFIG['WEB_SERVICE']['SHORTEN_PASSPHRASE'] == True:
calc_passphrase = calc_passphrase[::int(self._CONFIG['USER_MANAGER']['SHORTEN_SAMPLE'])][-int(self._CONFIG['USER_MANAGER']['SHORTEN_LENGTH']):] calc_passphrase = calc_passphrase[::int(self._CONFIG['WEB_SERVICE']['SHORTEN_SAMPLE'])][-int(self._CONFIG['WEB_SERVICE']['SHORTEN_LENGTH']):]
if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == False: if self._CONFIG['WEB_SERVICE']['SHORTEN_PASSPHRASE'] == False:
pass pass
_calc_hash = bhex(sha256(_salt_str+calc_passphrase).hexdigest()) _calc_hash = bhex(sha256(_salt_str+calc_passphrase).hexdigest())
## print(calc_passphrase) ## print(calc_passphrase)
@ -609,7 +609,7 @@ class HBSYSTEM(DatagramProtocol):
# Check for valid Radio ID # Check for valid Radio ID
#print(self.check_user_man(_peer_id)) #print(self.check_user_man(_peer_id))
if self._config['USE_USER_MAN'] == True: if self._config['USE_USER_MAN'] == True:
self.ums_response = self.check_user_man(_peer_id, self._CONFIG['USER_MANAGER']['THIS_SERVER_NAME'], _sockaddr[0], self._system) self.ums_response = self.check_user_man(_peer_id, self._CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], _sockaddr[0], self._system)
## print(self.ums_response) ## print(self.ums_response)
#Will allow anyone to attempt authentication, used for a transition period #Will allow anyone to attempt authentication, used for a transition period
## if acl_check(_peer_id, self._CONFIG['GLOBAL']['REG_ACL']) and self.ums_response['allow'] or acl_check(_peer_id, self._CONFIG['GLOBAL']['REG_ACL']) and acl_check(_peer_id, self._config['REG_ACL']): ## if acl_check(_peer_id, self._CONFIG['GLOBAL']['REG_ACL']) and self.ums_response['allow'] or acl_check(_peer_id, self._CONFIG['GLOBAL']['REG_ACL']) and acl_check(_peer_id, self._config['REG_ACL']):
@ -620,9 +620,9 @@ class HBSYSTEM(DatagramProtocol):
elif self._config['USE_USER_MAN'] == False: elif self._config['USE_USER_MAN'] == False:
## print('False') ## print('False')
#### print(self._config['REG_ACL']) #### print(self._config['REG_ACL'])
## print(self._CONFIG['USER_MANAGER']['REMOTE_CONFIG_ENABLED']) ## print(self._CONFIG['WEB_SERVICE']['REMOTE_CONFIG_ENABLED'])
b_acl = self._config['REG_ACL'] b_acl = self._config['REG_ACL']
if self._CONFIG['USER_MANAGER']['REMOTE_CONFIG_ENABLED'] == True: if self._CONFIG['WEB_SERVICE']['REMOTE_CONFIG_ENABLED'] == True:
b_acl = acl_build(self._config['REG_ACL'], 4294967295) b_acl = acl_build(self._config['REG_ACL'], 4294967295)
print(b_acl) print(b_acl)
if acl_check(_peer_id, self._CONFIG['GLOBAL']['REG_ACL']) and acl_check(_peer_id, b_acl):#acl_check(_peer_id, b_acl): if acl_check(_peer_id, self._CONFIG['GLOBAL']['REG_ACL']) and acl_check(_peer_id, b_acl):#acl_check(_peer_id, b_acl):
@ -692,11 +692,11 @@ class HBSYSTEM(DatagramProtocol):
_this_peer['CONNECTION'] = 'WAITING_CONFIG' _this_peer['CONNECTION'] = 'WAITING_CONFIG'
self.send_peer(_peer_id, b''.join([RPTACK, _peer_id])) self.send_peer(_peer_id, b''.join([RPTACK, _peer_id]))
logger.info('(%s) Peer %s has completed the login exchange successfully', self._system, _this_peer['RADIO_ID']) logger.info('(%s) Peer %s has completed the login exchange successfully', self._system, _this_peer['RADIO_ID'])
self.send_login_conf(_peer_id, self._CONFIG['USER_MANAGER']['THIS_SERVER_NAME'], _sockaddr[0], False) self.send_login_conf(_peer_id, self._CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], _sockaddr[0], False)
## if _sent_hash == _ocalc_hash: ## if _sent_hash == _ocalc_hash:
## self.send_login_conf(_peer_id, self._CONFIG['USER_MANAGER']['THIS_SERVER_NAME'], _sockaddr[0], True) ## self.send_login_conf(_peer_id, self._CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], _sockaddr[0], True)
## else: ## else:
## self.send_login_conf(_peer_id, self._CONFIG['USER_MANAGER']['THIS_SERVER_NAME'], _sockaddr[0], False) ## self.send_login_conf(_peer_id, self._CONFIG['WEB_SERVICE']['THIS_SERVER_NAME'], _sockaddr[0], False)
else: else:
logger.info('(%s) Peer %s has FAILED the login exchange successfully', self._system, _this_peer['RADIO_ID']) logger.info('(%s) Peer %s has FAILED the login exchange successfully', self._system, _this_peer['RADIO_ID'])
self.transport.write(b''.join([MSTNAK, _peer_id]), _sockaddr) self.transport.write(b''.join([MSTNAK, _peer_id]), _sockaddr)
@ -1081,7 +1081,7 @@ if __name__ == '__main__':
logger.debug('(GLOBAL) %s instance created: %s, %s', CONFIG['SYSTEMS'][system]['MODE'], system, systems[system]) logger.debug('(GLOBAL) %s instance created: %s, %s', CONFIG['SYSTEMS'][system]['MODE'], system, systems[system])
# Download burn list # Download burn list
with open(CONFIG['USER_MANAGER']['BURN_FILE'], 'w') as f: with open(CONFIG['WEB_SERVICE']['BURN_FILE'], 'w') as f:
f.write(str(download_burnlist(CONFIG))) f.write(str(download_burnlist(CONFIG)))
reactor.run() reactor.run()

View File

@ -2701,7 +2701,7 @@ TG #: <strong> ''' + str(tg_d.tg) + '''</strong>
s_config['GLOBAL'] = {} s_config['GLOBAL'] = {}
s_config['REPORTS'] = {} s_config['REPORTS'] = {}
s_config['ALIASES'] = {} s_config['ALIASES'] = {}
s_config['USER_MANAGER'] = {} s_config['WEB_SERVICE'] = {}
s_config['OTHER'] = {} s_config['OTHER'] = {}
s_config['GLOBAL'].update({ s_config['GLOBAL'].update({
@ -2731,7 +2731,7 @@ TG #: <strong> ''' + str(tg_d.tg) + '''</strong>
'SUBSCRIBER_URL': i.ai_subs_url, 'SUBSCRIBER_URL': i.ai_subs_url,
'STALE_TIME': i.ai_stale * 86400, 'STALE_TIME': i.ai_stale * 86400,
}) })
s_config['USER_MANAGER'].update({ s_config['WEB_SERVICE'].update({
'SHORTEN_LENGTH': shorten_length, 'SHORTEN_LENGTH': shorten_length,
'SHORTEN_SAMPLE': shorten_sample, 'SHORTEN_SAMPLE': shorten_sample,
'EXTRA_1': extra_1, 'EXTRA_1': extra_1,