diff --git a/src/pseudo_nkode_api.py b/src/pseudo_nkode_api.py index 84905b3..6ca01da 100644 --- a/src/pseudo_nkode_api.py +++ b/src/pseudo_nkode_api.py @@ -33,7 +33,6 @@ class CustomerDBModel(BaseModel): passcode_set_vals = user.user_keys.decipher_mask( user.enciphered_passcode.mask, self.interface.set_vals, len(selected_keys)) - set_vals_idx = [self.interface.get_set_index(set_val) for set_val in passcode_set_vals] presumed_selected_attributes = [] diff --git a/src/user_cipher_keys.py b/src/user_cipher_keys.py index bc520a5..3f7e4a5 100644 --- a/src/user_cipher_keys.py +++ b/src/user_cipher_keys.py @@ -86,7 +86,8 @@ class UserCipherKeys(BaseModel): ) -> str: passcode_len = len(passcode_attr_idx) passcode_attrs = [customer_interface.customer_interface[idx] for idx in passcode_attr_idx] - passcode_cipher = self.pass_key + + passcode_cipher = self.pass_key.copy() for idx in range(passcode_len): attr_idx = passcode_attr_idx[idx] @@ -117,5 +118,3 @@ class UserCipherKeys(BaseModel): set_idx = set_key_ciphers.index(set_cipher) passcode_sets.append(set_vals[set_idx]) return passcode_sets - - diff --git a/src/user_interface.py b/src/user_interface.py index f341c31..ae21cf1 100644 --- a/src/user_interface.py +++ b/src/user_interface.py @@ -10,11 +10,16 @@ class UserInterface(BaseModel): @classmethod def new_interface(cls, numb_sets: int, numb_keys: int): - return UserInterface( - interface_index=secure_fisher_yates_shuffle(list(range(numb_sets*numb_keys))), + # Todo: this a hack do a proper random interface + interface = UserInterface( + interface_index=list(range(numb_sets*numb_keys)), numb_sets=numb_sets, numb_keys=numb_keys, ) + interface.disperse_interface() + for _ in range(10): + interface.shuffle_interface() + return interface def disperse_interface(self): user_interface_matrix = list_to_matrix(self.interface_index, self.numb_sets) diff --git a/test/test_nkode_interface.py b/test/test_nkode_interface.py index e69de29..c527821 100644 --- a/test/test_nkode_interface.py +++ b/test/test_nkode_interface.py @@ -0,0 +1,15 @@ +import pytest +from src.nkode_interface import CustomerInterface +from src.user_interface import UserInterface + +@pytest.mark.parametrize( + "numb_keys,attrs_per_key", + [(10, 7, )] +) +def test_attr_set_idx(numb_keys, attrs_per_key): + user_interface = UserInterface.new_interface(attrs_per_key, numb_keys) + customer_interface = CustomerInterface.new_interface(numb_keys, attrs_per_key) + for attr_idx in range(70): + user_interface_idx = user_interface.interface_index[attr_idx] + + assert (attr_idx % attrs_per_key == user_interface_idx % attrs_per_key)