Fixed race condition when timed-out link receives a late establishment proof a few milliseconds after it has timed out
This commit is contained in:
parent
a8a7af4b74
commit
4f78973751
19
RNS/Link.py
19
RNS/Link.py
@ -225,15 +225,18 @@ class Link:
|
|||||||
self.hash = self.link_id
|
self.hash = self.link_id
|
||||||
|
|
||||||
def handshake(self):
|
def handshake(self):
|
||||||
self.status = Link.HANDSHAKE
|
if self.status == Link.PENDING and self.prv != None:
|
||||||
self.shared_key = self.prv.exchange(self.peer_pub)
|
self.status = Link.HANDSHAKE
|
||||||
|
self.shared_key = self.prv.exchange(self.peer_pub)
|
||||||
|
|
||||||
self.derived_key = RNS.Cryptography.hkdf(
|
self.derived_key = RNS.Cryptography.hkdf(
|
||||||
length=32,
|
length=32,
|
||||||
derive_from=self.shared_key,
|
derive_from=self.shared_key,
|
||||||
salt=self.get_salt(),
|
salt=self.get_salt(),
|
||||||
context=self.get_context(),
|
context=self.get_context(),
|
||||||
)
|
)
|
||||||
|
else:
|
||||||
|
RNS.log("Handshake attempt on "+str(self)+" with invalid state "+str(self.status), RNS.LOG_ERROR)
|
||||||
|
|
||||||
|
|
||||||
def prove(self):
|
def prove(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user