implement keypad size
This commit is contained in:
@@ -4,7 +4,7 @@ import bcrypt
|
||||
from secrets import choice
|
||||
from pydantic import BaseModel
|
||||
|
||||
from src.models import EncipheredNKode
|
||||
from src.models import EncipheredNKode, KeypadSize
|
||||
from src.customer_interface import CustomerInterface
|
||||
from src.utils import generate_random_nonrepeating_list, xor_lists, int_array_to_bytes
|
||||
|
||||
@@ -18,14 +18,14 @@ class UserCipherKeys(BaseModel):
|
||||
max_nkode_len: int
|
||||
|
||||
@staticmethod
|
||||
def new(numb_of_keys: int, attrs_per_key: int, set_values: list[int], max_nkode_len: int):
|
||||
assert len(set_values) == attrs_per_key
|
||||
def new(keypad_size: KeypadSize, set_values: list[int], max_nkode_len: int):
|
||||
assert len(set_values) == keypad_size.attrs_per_key
|
||||
|
||||
set_key = generate_random_nonrepeating_list(attrs_per_key)
|
||||
set_key = generate_random_nonrepeating_list(keypad_size.attrs_per_key)
|
||||
set_key = xor_lists(set_key, set_values)
|
||||
|
||||
return UserCipherKeys(
|
||||
alpha_key=generate_random_nonrepeating_list(attrs_per_key * numb_of_keys),
|
||||
alpha_key=generate_random_nonrepeating_list(keypad_size.attrs_per_key * keypad_size.numb_of_keys),
|
||||
pass_key=generate_random_nonrepeating_list(max_nkode_len),
|
||||
mask_key=generate_random_nonrepeating_list(max_nkode_len),
|
||||
set_key=set_key,
|
||||
|
||||
Reference in New Issue
Block a user