refactor set_key -> position_key

This commit is contained in:
2025-03-20 04:01:15 -05:00
parent 7b92a6b40b
commit 65f3559ef0
8 changed files with 241 additions and 247 deletions

View File

@@ -53,7 +53,7 @@ if __name__ == "__main__":
policy = NKodePolicy(
max_nkode_len=10,
min_nkode_len=4,
distinct_sets=0,
distinct_positions=0,
distinct_properties=4,
byte_len=2,
)
@@ -92,14 +92,14 @@ if __name__ == "__main__":
passcode_server_prop = [customer.cipher.property_key[idx] for idx in user_passcode]
passcode_server_set = customer.cipher.get_props_position_vals(user_passcode)
user_keys = customer.users[username].cipher
# TODO: pad_user_mask is deprecated
padded_passcode_server_set = user_keys.pad_user_mask(np.array(passcode_server_set), customer.cipher.position_key)
set_idx = [customer.cipher.get_position_index(set_val) for set_val in padded_passcode_server_set]
mask_set_keys = [user_keys.combined_set_key[idx] for idx in set_idx]
mask_set_keys = [user_keys.combined_position_key[idx] for idx in set_idx]
ciphered_mask = mask_set_keys ^ padded_passcode_server_set ^ user_keys.mask_key
mask = user_keys.encode_base64_str(ciphered_mask)
ciphered_customer_props = customer.cipher.property_key ^ user_keys.prop_key
ciphered_customer_props = customer.cipher.property_key ^ user_keys.property_key
passcode_ciphered_props = [ciphered_customer_props[idx] for idx in user_passcode]
pad_len = customer.nkode_policy.max_nkode_len - passcode_len
passcode_ciphered_props.extend([0 for _ in range(pad_len)])
@@ -133,7 +133,7 @@ if __name__ == "__main__":
user_mask = user.enciphered_passcode.mask
decoded_mask = user_keys.decode_base64_str(user_mask)
deciphered_mask = np.bitwise_xor(decoded_mask, user_keys.mask_key)
set_key_rand_component = np.bitwise_xor(set_vals, user_keys.combined_set_key)
set_key_rand_component = np.bitwise_xor(set_vals, user_keys.combined_position_key)
login_passcode_sets = []
for set_cipher in deciphered_mask[:passcode_len]:
set_idx = np.where(set_key_rand_component == set_cipher)[0][0]
@@ -162,8 +162,8 @@ if __name__ == "__main__":
sets_xor = np.bitwise_xor(new_sets, old_sets)
for user in customer.users.values():
user.renew = True
user.cipher.combined_set_key = np.bitwise_xor(user.cipher.combined_set_key, sets_xor)
user.cipher.prop_key = np.bitwise_xor(user.cipher.prop_key, props_xor)
user.cipher.combined_position_key = np.bitwise_xor(user.cipher.combined_position_key, sets_xor)
user.cipher.property_key = np.bitwise_xor(user.cipher.property_key, props_xor)
"""
REFRESH USER KEYS
@@ -184,7 +184,7 @@ if __name__ == "__main__":
'set_property_dict': set_property_dict,
'set_signup_keypad': signup_keypad,
'username': 'test_user',
'user_passcode_indices': user_passcode,
'passcode_property_indices': user_passcode,
'selected_keys_set': selected_keys_set,
'server_side_prop': server_side_prop,
'confirm_keypad': confirm_keypad,