successful login
This commit is contained in:
@@ -33,7 +33,6 @@ class CustomerDBModel(BaseModel):
|
|||||||
|
|
||||||
passcode_set_vals = user.user_keys.decipher_mask(
|
passcode_set_vals = user.user_keys.decipher_mask(
|
||||||
user.enciphered_passcode.mask, self.interface.set_vals, len(selected_keys))
|
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]
|
set_vals_idx = [self.interface.get_set_index(set_val) for set_val in passcode_set_vals]
|
||||||
|
|
||||||
presumed_selected_attributes = []
|
presumed_selected_attributes = []
|
||||||
|
|||||||
@@ -86,7 +86,8 @@ class UserCipherKeys(BaseModel):
|
|||||||
) -> str:
|
) -> str:
|
||||||
passcode_len = len(passcode_attr_idx)
|
passcode_len = len(passcode_attr_idx)
|
||||||
passcode_attrs = [customer_interface.customer_interface[idx] for idx in 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):
|
for idx in range(passcode_len):
|
||||||
attr_idx = passcode_attr_idx[idx]
|
attr_idx = passcode_attr_idx[idx]
|
||||||
@@ -117,5 +118,3 @@ class UserCipherKeys(BaseModel):
|
|||||||
set_idx = set_key_ciphers.index(set_cipher)
|
set_idx = set_key_ciphers.index(set_cipher)
|
||||||
passcode_sets.append(set_vals[set_idx])
|
passcode_sets.append(set_vals[set_idx])
|
||||||
return passcode_sets
|
return passcode_sets
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,11 +10,16 @@ class UserInterface(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def new_interface(cls, numb_sets: int, numb_keys: int):
|
def new_interface(cls, numb_sets: int, numb_keys: int):
|
||||||
return UserInterface(
|
# Todo: this a hack do a proper random interface
|
||||||
interface_index=secure_fisher_yates_shuffle(list(range(numb_sets*numb_keys))),
|
interface = UserInterface(
|
||||||
|
interface_index=list(range(numb_sets*numb_keys)),
|
||||||
numb_sets=numb_sets,
|
numb_sets=numb_sets,
|
||||||
numb_keys=numb_keys,
|
numb_keys=numb_keys,
|
||||||
)
|
)
|
||||||
|
interface.disperse_interface()
|
||||||
|
for _ in range(10):
|
||||||
|
interface.shuffle_interface()
|
||||||
|
return interface
|
||||||
|
|
||||||
def disperse_interface(self):
|
def disperse_interface(self):
|
||||||
user_interface_matrix = list_to_matrix(self.interface_index, self.numb_sets)
|
user_interface_matrix = list_to_matrix(self.interface_index, self.numb_sets)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user