Commit 0e6ec306 authored by Hubert Chathi's avatar Hubert Chathi
Browse files

remove other_key checks from Python binding since it's done in C now

parent ec5ff1e0
...@@ -42,16 +42,6 @@ from ._compat import URANDOM, to_bytearray, to_bytes ...@@ -42,16 +42,6 @@ from ._compat import URANDOM, to_bytearray, to_bytes
from ._finalize import track_for_finalization from ._finalize import track_for_finalization
def other_pubkey_set(func):
"""Ensure that the other pubkey is added to the Sas object."""
@wraps(func)
def wrapper(self, *args, **kwargs):
if not self.other_key_set:
raise OlmSasError("The other public key isn't set.")
return func(self, *args, **kwargs)
return wrapper
def _clear_sas(sas): def _clear_sas(sas):
# type: (ffi.cdata) -> None # type: (ffi.cdata) -> None
lib.olm_clear_sas(sas) lib.olm_clear_sas(sas)
...@@ -73,16 +63,11 @@ class Sas(object): ...@@ -73,16 +63,11 @@ class Sas(object):
key is necesary to generate bytes for the authentication string key is necesary to generate bytes for the authentication string
as well as to calculate the MAC. as well as to calculate the MAC.
Attributes:
other_key_set (bool): A boolean flag that tracks if we set the
other users public key for this SAS object.
Raises OlmSasError on failure. Raises OlmSasError on failure.
""" """
self._buf = ffi.new("char[]", lib.olm_sas_size()) self._buf = ffi.new("char[]", lib.olm_sas_size())
self._sas = lib.olm_sas(self._buf) self._sas = lib.olm_sas(self._buf)
self.other_key_set = False
track_for_finalization(self, self._sas, _clear_sas) track_for_finalization(self, self._sas, _clear_sas)
random_length = lib.olm_create_sas_random_length(self._sas) random_length = lib.olm_create_sas_random_length(self._sas)
...@@ -132,6 +117,13 @@ class Sas(object): ...@@ -132,6 +117,13 @@ class Sas(object):
return bytes_to_native_str(ffi.unpack(pubkey_buffer, pubkey_length)) return bytes_to_native_str(ffi.unpack(pubkey_buffer, pubkey_length))
@property
def other_key_set(self):
# type: () -> bool
"""Check if the other user's pubkey has been set.
"""
return lib.olm_sas_is_their_key_set(self._sas) == 1
def set_their_pubkey(self, key): def set_their_pubkey(self, key):
# type: (str) -> None # type: (str) -> None
"""Set the public key of the other user. """Set the public key of the other user.
...@@ -155,9 +147,7 @@ class Sas(object): ...@@ -155,9 +147,7 @@ class Sas(object):
len(byte_key) len(byte_key)
) )
) )
self.other_key_set = True
@other_pubkey_set
def generate_bytes(self, extra_info, length): def generate_bytes(self, extra_info, length):
# type: (str, int) -> bytes # type: (str, int) -> bytes
"""Generate bytes to use for the short authentication string. """Generate bytes to use for the short authentication string.
...@@ -189,7 +179,6 @@ class Sas(object): ...@@ -189,7 +179,6 @@ class Sas(object):
return ffi.unpack(out_buffer, length) return ffi.unpack(out_buffer, length)
@other_pubkey_set
def calculate_mac(self, message, extra_info): def calculate_mac(self, message, extra_info):
# type: (str, str) -> str # type: (str, str) -> str
"""Generate a message authentication code based on the shared secret. """Generate a message authentication code based on the shared secret.
...@@ -221,7 +210,6 @@ class Sas(object): ...@@ -221,7 +210,6 @@ class Sas(object):
) )
return bytes_to_native_str(ffi.unpack(mac_buffer, mac_length)) return bytes_to_native_str(ffi.unpack(mac_buffer, mac_length))
@other_pubkey_set
def calculate_mac_long_kdf(self, message, extra_info): def calculate_mac_long_kdf(self, message, extra_info):
# type: (str, str) -> str # type: (str, str) -> str
"""Generate a message authentication code based on the shared secret. """Generate a message authentication code based on the shared secret.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment