deallocate channel even if key-exchange fails (wrong password)
This commit is contained in:
parent
0474cc18d5
commit
bc1b367f06
|
@ -104,15 +104,16 @@ class Initiator(Common):
|
|||
|
||||
def get_data(self):
|
||||
key = self._poll_pake([])
|
||||
outbound_key = HKDF(key, SecretBox.KEY_SIZE, CTXinfo=b"sender")
|
||||
outbound_encrypted = self._encrypt_data(outbound_key, self.data)
|
||||
other_msgs = self._post_data(outbound_encrypted)
|
||||
try:
|
||||
outbound_key = HKDF(key, SecretBox.KEY_SIZE, CTXinfo=b"sender")
|
||||
outbound_encrypted = self._encrypt_data(outbound_key, self.data)
|
||||
other_msgs = self._post_data(outbound_encrypted)
|
||||
|
||||
inbound_encrypted = self._poll_data(other_msgs)
|
||||
inbound_key = HKDF(key, SecretBox.KEY_SIZE, CTXinfo=b"receiver")
|
||||
inbound_data = self._decrypt_data(inbound_key, inbound_encrypted)
|
||||
|
||||
self._deallocate()
|
||||
inbound_encrypted = self._poll_data(other_msgs)
|
||||
inbound_key = HKDF(key, SecretBox.KEY_SIZE, CTXinfo=b"receiver")
|
||||
inbound_data = self._decrypt_data(inbound_key, inbound_encrypted)
|
||||
finally:
|
||||
self._deallocate()
|
||||
return inbound_data
|
||||
|
||||
|
||||
|
@ -142,13 +143,14 @@ class Receiver(Common):
|
|||
other_msgs = self._post_pake()
|
||||
key = self._poll_pake(other_msgs)
|
||||
|
||||
outbound_key = HKDF(key, SecretBox.KEY_SIZE, CTXinfo=b"receiver")
|
||||
outbound_encrypted = self._encrypt_data(outbound_key, self.data)
|
||||
other_msgs = self._post_data(outbound_encrypted)
|
||||
try:
|
||||
outbound_key = HKDF(key, SecretBox.KEY_SIZE, CTXinfo=b"receiver")
|
||||
outbound_encrypted = self._encrypt_data(outbound_key, self.data)
|
||||
other_msgs = self._post_data(outbound_encrypted)
|
||||
|
||||
inbound_encrypted = self._poll_data(other_msgs)
|
||||
inbound_key = HKDF(key, SecretBox.KEY_SIZE, CTXinfo=b"sender")
|
||||
inbound_data = self._decrypt_data(inbound_key, inbound_encrypted)
|
||||
|
||||
self._deallocate()
|
||||
inbound_encrypted = self._poll_data(other_msgs)
|
||||
inbound_key = HKDF(key, SecretBox.KEY_SIZE, CTXinfo=b"sender")
|
||||
inbound_data = self._decrypt_data(inbound_key, inbound_encrypted)
|
||||
finally:
|
||||
self._deallocate()
|
||||
return inbound_data
|
||||
|
|
Loading…
Reference in New Issue
Block a user