Emergency fix - unique packets break hashing

ta
Simon 4 years ago
parent ac0228bce8
commit 6adf6e456b
No known key found for this signature in database
GPG Key ID: 6ACF11630B5D8F82

@ -81,7 +81,7 @@ BCST = b'BCST'
BCVE = b'BCVE'
#Protocol version
VER = 2
VER = 3
# Higheset peer ID permitted by HBP
PEER_MAX = 4294967295

@ -156,7 +156,15 @@ class OPENBRIDGE(DatagramProtocol):
if _packet[:3] == DMR and self._config['TARGET_IP']:
if 'VER' in self._config and self._config['VER'] > 1:
if 'VER' in self._config and self._config['VER'] >= 3:
_packet = b''.join([DMRF,_packet[4:11], self._CONFIG['GLOBAL']['SERVER_ID'],_packet[15:]])
_h = blake2b(key=self._config['PASSPHRASE'], digest_size=16)
_h.update(_packet)
_hash = _h.digest()
_packet = b''.join([_packet,time_ns().to_bytes(8,'big'), _hops, _hash])
self.transport.write(_packet, (self._config['TARGET_IP'], self._config['TARGET_PORT']))
if 'VER' in self._config and self._config['VER'] = 2:
_packet = b''.join([DMRF,_packet[4:11], self._CONFIG['GLOBAL']['SERVER_ID'],_packet[15:], time_ns().to_bytes(8,'big')])
_h = blake2b(key=self._config['PASSPHRASE'], digest_size=16)
_h.update(_packet)
@ -327,7 +335,10 @@ class OPENBRIDGE(DatagramProtocol):
_hash = _packet[62:]
#_ckhs = hmac_new(self._config['PASSPHRASE'],_data,sha1).digest()
_h = blake2b(key=self._config['PASSPHRASE'], digest_size=16)
_h.update(_packet[:61])
if 'VER' in self._config and self._config['VER'] = 2:
_h.update(_packet[:61])
elif 'VER' in self._config and self._config['VER'] >= 3:
_h.update(_packet[:53])
_ckhs = _h.digest()
if compare_digest(_hash, _ckhs) and (_sockaddr == self._config['TARGET_SOCK'] or self._config['RELAX_CHECKS']):

Loading…
Cancel
Save

Powered by TurnKey Linux.