implement burn list
This commit is contained in:
		
							parent
							
								
									d87c67acb0
								
							
						
					
					
						commit
						f94d68ae81
					
				@ -160,6 +160,9 @@ def build_config(_config_file):
 | 
				
			|||||||
                    'APPEND_INT': config.getint(section, 'APPEND_INT'),
 | 
					                    'APPEND_INT': config.getint(section, 'APPEND_INT'),
 | 
				
			||||||
                    'SHARED_SECRET': config.get(section, 'SHARED_SECRET'),
 | 
					                    'SHARED_SECRET': config.get(section, 'SHARED_SECRET'),
 | 
				
			||||||
                    'SHORTEN_PASSPHRASE': config.getboolean(section, 'SHORTEN_PASSPHRASE'),
 | 
					                    'SHORTEN_PASSPHRASE': config.getboolean(section, 'SHORTEN_PASSPHRASE'),
 | 
				
			||||||
 | 
					                    'BURN_FILE': config.get(section, 'BURN_FILE'),
 | 
				
			||||||
 | 
					                    'BURN_INT': config.getint(section, 'BURN_INT'),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                })
 | 
					                })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										63
									
								
								hblink.py
									
									
									
									
									
								
							
							
						
						
									
										63
									
								
								hblink.py
									
									
									
									
									
								
							@ -255,33 +255,44 @@ class HBSYSTEM(DatagramProtocol):
 | 
				
			|||||||
            return {'allow':True}
 | 
					            return {'allow':True}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def calc_passphrase(self, peer_id, _salt_str):
 | 
					    def calc_passphrase(self, peer_id, _salt_str):
 | 
				
			||||||
                try:
 | 
					        burn_id = ast.literal_eval(os.popen('cat ' + self._CONFIG['USER_MANAGER']['BURN_FILE']).read())
 | 
				
			||||||
                    if self.ums_response['mode'] == 'legacy':
 | 
					        peer_id_trimmed = int(str(int_id(peer_id))[:7])
 | 
				
			||||||
                        _calc_hash = bhex(sha256(_salt_str+self._config['PASSPHRASE']).hexdigest())
 | 
					        #print(self._CONFIG)
 | 
				
			||||||
                    if self.ums_response['mode'] == 'override':
 | 
					        try:
 | 
				
			||||||
                        _calc_hash = bhex(sha256(_salt_str+str.encode(self.ums_response['value'])).hexdigest())
 | 
					            if self.ums_response['mode'] == 'legacy':
 | 
				
			||||||
                    if self.ums_response['mode'] == 'normal':
 | 
					                _calc_hash = bhex(sha256(_salt_str+self._config['PASSPHRASE']).hexdigest())
 | 
				
			||||||
                        _new_peer_id = bytes_4(int(str(int_id(peer_id))[:7]))
 | 
					            if self.ums_response['mode'] == 'override':
 | 
				
			||||||
                        #print(self._CONFIG['USER_MANAGER']['APPEND_INT'])
 | 
					                _calc_hash = bhex(sha256(_salt_str+str.encode(self.ums_response['value'])).hexdigest())
 | 
				
			||||||
                        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)))
 | 
					            if self.ums_response['mode'] == 'normal':
 | 
				
			||||||
                        if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == True:
 | 
					                _new_peer_id = bytes_4(int(str(int_id(peer_id))[:7]))
 | 
				
			||||||
                            calc_passphrase = calc_passphrase[-8:]
 | 
					                if peer_id_trimmed in burn_id:
 | 
				
			||||||
                        if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == False:
 | 
					                    logger.info('User ID has been burned. Requiring passphrase version: ' + str(burn_id[peer_id_trimmed]))
 | 
				
			||||||
                            pass
 | 
					                    calc_passphrase = 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)))
 | 
				
			||||||
                        _calc_hash = bhex(sha256(_salt_str+calc_passphrase).hexdigest())
 | 
					                else:
 | 
				
			||||||
                    #ums_down = False
 | 
					 | 
				
			||||||
                #If exception, assume UMS down and default to calculated passphrase
 | 
					 | 
				
			||||||
                except Exception as e:
 | 
					 | 
				
			||||||
                        # If UMS down, default to base 64 auth
 | 
					 | 
				
			||||||
                    _new_peer_id = bytes_4(int(str(int_id(peer_id))[:7]))
 | 
					 | 
				
			||||||
                    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['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)))
 | 
				
			||||||
                    if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == True:
 | 
					                if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == True:
 | 
				
			||||||
                        calc_passphrase = calc_passphrase[-8:]
 | 
					                    calc_passphrase = calc_passphrase[-8:]
 | 
				
			||||||
                    if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == False:
 | 
					                if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == False:
 | 
				
			||||||
                        pass
 | 
					                    pass
 | 
				
			||||||
                    _calc_hash = bhex(sha256(_salt_str+calc_passphrase).hexdigest())
 | 
					                _calc_hash = bhex(sha256(_salt_str+calc_passphrase).hexdigest())
 | 
				
			||||||
                    #ums_down = True
 | 
					        #If exception, assume UMS down and default to calculated passphrase
 | 
				
			||||||
                return _calc_hash
 | 
					        except Exception as e:
 | 
				
			||||||
 | 
					            logger.info('Execption, UMS possibly down')
 | 
				
			||||||
 | 
					            _new_peer_id = bytes_4(int(str(int_id(peer_id))[:7]))
 | 
				
			||||||
 | 
					            if peer_id_trimmed in burn_id:
 | 
				
			||||||
 | 
					                logger.info('User ID has been burned. Requiring passphrase version: ' + str(burn_id[peer_id_trimmed]))
 | 
				
			||||||
 | 
					                calc_passphrase = 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)))
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                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['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)))
 | 
				
			||||||
 | 
					            if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == True:
 | 
				
			||||||
 | 
					                calc_passphrase = calc_passphrase[-8:]
 | 
				
			||||||
 | 
					            if self._CONFIG['USER_MANAGER']['SHORTEN_PASSPHRASE'] == False:
 | 
				
			||||||
 | 
					                pass
 | 
				
			||||||
 | 
					            _calc_hash = bhex(sha256(_salt_str+calc_passphrase).hexdigest())
 | 
				
			||||||
 | 
					        print((calc_passphrase))
 | 
				
			||||||
 | 
					        return _calc_hash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def startProtocol(self):
 | 
					    def startProtocol(self):
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user