cleanup phase4
This commit is contained in:
0
src/client_darc.py
Normal file
0
src/client_darc.py
Normal file
@@ -1,8 +1,7 @@
|
|||||||
from src.models import ServerEphemeralKeys, ServerPersistentKeys, ClientEphemeralKeys, ClientPersistentKeys, \
|
from src.models import (AlphabetKey, DarcKey, OuterKey, ClientKeys, ServerKeys,
|
||||||
MutualEphemeralKeys, AlphabetKey, DarcKey, OuterKey, MutualPersistentKeys, ClientKeys, ServerKeys, \
|
MutualKeys, ServerPersistentDataKeys, ServerEphemeralDataKeys, MutualPersistentDataKeys, MutualEphemeralDataKeys,
|
||||||
MutualKeys, ServerPersistentDataKeys, ServerEphemeralDataKeys, MutualPersistentDataKeys, MutualEphemeralDataKeys, \
|
ServerPersistentMediumKeys, ServerEphemeralMediumKeys, MutualPersistentMediumKeys, MutualEphemeralMediumKeys,
|
||||||
ServerPersistentMediumKeys, ServerEphemeralMediumKeys, MutualPersistentMediumKeys, MutualEphemeralMediumKeys, \
|
ClientPersistentDataKeys, ClientEphemeralDataKeys, ClientEphemeralMediumKeys, ClientPersistentMediumKeys, InnerKey)
|
||||||
ClientPersistentDataKeys, ClientEphemeralDataKeys, ClientEphemeralMediumKeys, ClientPersistentMediumKeys, InnerKey
|
|
||||||
import json
|
import json
|
||||||
|
|
||||||
height = 256
|
height = 256
|
||||||
@@ -232,78 +231,65 @@ def merge_message(alphabet: DarcKey, medium: DarcKey, client_keys: ClientKeys, m
|
|||||||
mmo6 = mutual_keys.persistent.medium.outer_key_6 << mutual_keys.ephemeral.medium.outer_key_6
|
mmo6 = mutual_keys.persistent.medium.outer_key_6 << mutual_keys.ephemeral.medium.outer_key_6
|
||||||
mmo4 = mutual_keys.persistent.medium.outer_key_4 << mutual_keys.ephemeral.medium.outer_key_4
|
mmo4 = mutual_keys.persistent.medium.outer_key_4 << mutual_keys.ephemeral.medium.outer_key_4
|
||||||
mmo5 = mutual_keys.persistent.medium.outer_key_5 << mutual_keys.ephemeral.medium.outer_key_5
|
mmo5 = mutual_keys.persistent.medium.outer_key_5 << mutual_keys.ephemeral.medium.outer_key_5
|
||||||
mpmi4_memi2 = mutual_keys.persistent.medium.inner_key_4 << mutual_keys.ephemeral.medium.inner_key_2
|
mmi4 = mutual_keys.persistent.medium.inner_key_4 << mutual_keys.ephemeral.medium.inner_key_4
|
||||||
|
|
||||||
nmmo6 = ~mmo6
|
nmmo6 = ~mmo6
|
||||||
message = medium ^ (a_i << (mmi3 < ~(mmo4 << mmo6)))
|
message = medium ^ (a_i << (mmi3 < ~(mmo4 << mmo6)))
|
||||||
|
|
||||||
mmo5_nmmo6 = mmo5 << nmmo6
|
mmo5_nmmo6 = mmo5 << nmmo6
|
||||||
|
|
||||||
message = (message < mmo4) << (mpmi4_memi2 < mmo5_nmmo6)
|
message = (message < mmo4) << (mmi4 < mmo5_nmmo6)
|
||||||
|
|
||||||
return message
|
return message
|
||||||
|
|
||||||
|
|
||||||
def darc_phase_4(alphabet: AlphabetKey, darc_message: AlphabetKey, server_keys: ServerKeys, mutual_keys: MutualKeys) -> DarcKey:
|
def darc_phase_4(alphabet: AlphabetKey, darc_message: AlphabetKey, server_keys: ServerKeys, mutual_keys: MutualKeys) -> DarcKey:
|
||||||
mutual_med_outer_key_6 = mutual_keys.persistent.medium.outer_key_6 << mutual_keys.ephemeral.medium.outer_key_6
|
mmo6 = mutual_keys.persistent.medium.outer_key_6 << mutual_keys.ephemeral.medium.outer_key_6
|
||||||
mutual_med_outer_key_4 = mutual_keys.persistent.medium.outer_key_4 << mutual_keys.ephemeral.medium.outer_key_4
|
mmo4 = mutual_keys.persistent.medium.outer_key_4 << mutual_keys.ephemeral.medium.outer_key_4
|
||||||
|
|
||||||
outer_key_1 = ~(mutual_med_outer_key_4 << mutual_med_outer_key_6)
|
nmmo6_nmmo4 = ~(mmo4 << mmo6)
|
||||||
mutual_med_outer_key_4 = ~mutual_med_outer_key_4
|
|
||||||
|
|
||||||
mutual_med_outer_key_5 = mutual_keys.persistent.medium.outer_key_5 << mutual_keys.ephemeral.medium.outer_key_5
|
mmo5 = mutual_keys.persistent.medium.outer_key_5 << mutual_keys.ephemeral.medium.outer_key_5
|
||||||
mutual_med_outer_key_5 = mutual_med_outer_key_5 << outer_key_1
|
mmo5_nmmo6_nmmo4 = mmo5 << nmmo6_nmmo4
|
||||||
|
|
||||||
mutual_med_outer_key_2 = mutual_keys.persistent.medium.outer_key_2 << mutual_keys.ephemeral.medium.outer_key_2
|
mmo2 = mutual_keys.persistent.medium.outer_key_2 << mutual_keys.ephemeral.medium.outer_key_2
|
||||||
mutual_outer_key_3 = mutual_keys.persistent.data.outer_key_3 << mutual_keys.ephemeral.data.outer_key_3
|
|
||||||
|
|
||||||
mutual_med_outer_key_3 = mutual_keys.persistent.medium.outer_key_3 << mutual_keys.ephemeral.medium.outer_key_3
|
mmo3 = mutual_keys.persistent.medium.outer_key_3 << mutual_keys.ephemeral.medium.outer_key_3
|
||||||
|
|
||||||
mutual_med_inner_key_1 = mutual_keys.persistent.medium.inner_key_1 << mutual_keys.ephemeral.medium.inner_key_1
|
mmi3 = mutual_keys.persistent.medium.inner_key_3 << mutual_keys.ephemeral.medium.inner_key_3
|
||||||
|
mmi1 = mutual_keys.persistent.medium.inner_key_1 << mutual_keys.ephemeral.medium.inner_key_1
|
||||||
|
|
||||||
mutual_med_inner_key_2 = mutual_keys.persistent.medium.inner_key_2 < mutual_med_outer_key_3
|
mpmi2 = mutual_keys.persistent.medium.inner_key_2 < mmo3
|
||||||
inner_key_1 = (mutual_med_inner_key_1 < mutual_med_outer_key_2) << mutual_med_inner_key_2
|
|
||||||
|
|
||||||
inner_key_2 = mutual_keys.persistent.medium.inner_key_4 << mutual_keys.ephemeral.medium.inner_key_2
|
mmi4 = mutual_keys.persistent.medium.inner_key_4 << mutual_keys.ephemeral.medium.inner_key_4
|
||||||
|
|
||||||
inner_key_2 = inner_key_2 < mutual_med_outer_key_5
|
mmo1 = mutual_keys.persistent.medium.outer_key_1 << mutual_keys.ephemeral.medium.outer_key_1
|
||||||
inner_key_3 = inner_key_1 << inner_key_2
|
|
||||||
|
sub_med_mmo1 = (server_keys.persistent.medium.alpha_key ^ server_keys.ephemeral.medium.alpha_key ^ mutual_keys.persistent.medium.alpha_key ^ mutual_keys.ephemeral.medium.alpha_key) < mmo1
|
||||||
|
|
||||||
|
medium_unwrapped = (((darc_message < ~mmo4) << ~(mmi4 < mmo5_nmmo6_nmmo4)) ^ (sub_med_mmo1 << ((mmi1 < mmo2) << mpmi2))) << (~mmi3 < nmmo6_nmmo4)
|
||||||
|
|
||||||
|
|
||||||
mutual_med_outer_key_1 = mutual_keys.persistent.medium.outer_key_1 << mutual_keys.ephemeral.medium.outer_key_1
|
mdo3 = mutual_keys.persistent.data.outer_key_3 << mutual_keys.ephemeral.data.outer_key_3
|
||||||
|
mpi2_mdo3 = mutual_keys.persistent.data.inner_key_2 < mdo3
|
||||||
|
mdo2 = mutual_keys.persistent.data.outer_key_2 << mutual_keys.ephemeral.data.outer_key_2
|
||||||
|
|
||||||
message = darc_message < mutual_med_outer_key_4
|
mdi1 = mutual_keys.persistent.data.inner_key_1 << mutual_keys.ephemeral.data.inner_key_1
|
||||||
|
mdi1_mdo2_mpi2_mdo3 = (mdi1 < mdo2) << mpi2_mdo3
|
||||||
|
sdi1_mpdi2__mdo3 = (server_keys.persistent.data.inner_key_1 << server_keys.ephemeral.data.inner_key_1 << mutual_keys.persistent.data.inner_key_2) < mdo3
|
||||||
|
|
||||||
operand1 = server_keys.persistent.medium.alpha_key < mutual_med_outer_key_1
|
sdo1 = server_keys.persistent.data.outer_key_1 << server_keys.ephemeral.data.outer_key_1
|
||||||
operand2 = server_keys.ephemeral.medium.alpha_key < mutual_med_outer_key_1
|
alpha_sdo1__sdi1_mpdi2__mdo3 = (alphabet < sdo1) << sdi1_mpdi2__mdo3
|
||||||
operand3 = mutual_keys.persistent.medium.alpha_key < mutual_med_outer_key_1
|
|
||||||
operand4 = mutual_keys.ephemeral.medium.alpha_key < mutual_med_outer_key_1
|
|
||||||
|
|
||||||
message = message ^ (operand1 << inner_key_3) ^ (operand2 << inner_key_3) ^ (operand3 << inner_key_3) ^ (operand4 << inner_key_3)
|
mdo1 = mutual_keys.persistent.data.outer_key_1 << mutual_keys.ephemeral.data.outer_key_1
|
||||||
|
|
||||||
mutual_med_inner_key_3 = mutual_keys.persistent.medium.inner_key_3 << mutual_keys.ephemeral.medium.inner_key_3
|
sub_mdo1 = (server_keys.persistent.data.alpha_key ^ server_keys.ephemeral.data.alpha_key ^ mutual_keys.persistent.data.alpha_key ^ mutual_keys.ephemeral.data.alpha_key) < mdo1
|
||||||
message = message << (~inner_key_2 << (~mutual_med_inner_key_3 < outer_key_1))
|
translated_alpha = alpha_sdo1__sdi1_mpdi2__mdo3 ^ (sub_mdo1 << mdi1_mdo2_mpi2_mdo3)
|
||||||
|
|
||||||
mutual_inner_key_2 = mutual_keys.persistent.data.inner_key_2 < mutual_outer_key_3
|
return resolve_message(
|
||||||
mutual_outer_key_2 = mutual_keys.persistent.data.outer_key_2 << mutual_keys.ephemeral.data.outer_key_2
|
translated_alpha.matrix,
|
||||||
|
medium_unwrapped.matrix
|
||||||
mutual_inner_key_1 = mutual_keys.persistent.data.inner_key_1 << mutual_keys.ephemeral.data.inner_key_1
|
)
|
||||||
inner_key_4 = (mutual_inner_key_1 < mutual_outer_key_2) << mutual_inner_key_2
|
|
||||||
inner_key_5 = ~(server_keys.ephemeral.data.inner_key_1 << mutual_keys.persistent.data.inner_key_2) << ~(server_keys.persistent.data.inner_key_1)
|
|
||||||
inner_key_5 = ~(inner_key_5 < mutual_outer_key_3)
|
|
||||||
|
|
||||||
server_outer_key_1 = server_keys.persistent.data.outer_key_1 << server_keys.ephemeral.data.outer_key_1
|
|
||||||
translated_alpha = (alphabet < server_outer_key_1) << inner_key_5
|
|
||||||
|
|
||||||
mutual_outer_key_1 = mutual_keys.persistent.data.outer_key_1 << mutual_keys.ephemeral.data.outer_key_1
|
|
||||||
|
|
||||||
operand1 = server_keys.persistent.data.alpha_key < mutual_outer_key_1
|
|
||||||
operand2 = server_keys.ephemeral.data.alpha_key < mutual_outer_key_1
|
|
||||||
operand3 = mutual_keys.persistent.data.alpha_key < mutual_outer_key_1
|
|
||||||
operand4 = mutual_keys.ephemeral.data.alpha_key < mutual_outer_key_1
|
|
||||||
translated_alpha = translated_alpha ^ (operand1 << inner_key_4) ^ (operand2 << inner_key_4) ^ (operand3 << inner_key_4) ^ (operand4 << inner_key_4)
|
|
||||||
|
|
||||||
return resolve_message(translated_alpha.matrix, message.matrix)
|
|
||||||
|
|
||||||
|
|
||||||
def resolve_message(translated_alphabet, translated_messasge):
|
def resolve_message(translated_alphabet, translated_messasge):
|
||||||
@@ -348,13 +334,13 @@ if __name__ == "__main__":
|
|||||||
# outer_key_1=client_persistent_keys["outer_key_1"],
|
# outer_key_1=client_persistent_keys["outer_key_1"],
|
||||||
# outer_key_2=client_persistent_keys["outer_key_2"],
|
# outer_key_2=client_persistent_keys["outer_key_2"],
|
||||||
# alpha_key=client_persistent_keys["alpha_key"],
|
# alpha_key=client_persistent_keys["alpha_key"],
|
||||||
# inner_key_2=client_persistent_keys["inner_key_2"]
|
# inner_key_4=client_persistent_keys["inner_key_4"]
|
||||||
|
|
||||||
# ),
|
# ),
|
||||||
# medium_phase2=ClientPersistentMediumKeys(
|
# medium_phase2=ClientPersistentMediumKeys(
|
||||||
# outer_key_1=client_persistent_keys["outer_key_1"],
|
# outer_key_1=client_persistent_keys["outer_key_1"],
|
||||||
# outer_key_2=client_persistent_keys["outer_key_2"],
|
# outer_key_2=client_persistent_keys["outer_key_2"],
|
||||||
# inner_key_2=client_persistent_keys["inner_key_2"],
|
# inner_key_4=client_persistent_keys["inner_key_4"],
|
||||||
# alpha_key=client_persistent_keys["alpha_key"]
|
# alpha_key=client_persistent_keys["alpha_key"]
|
||||||
# )
|
# )
|
||||||
# ),
|
# ),
|
||||||
@@ -363,12 +349,12 @@ if __name__ == "__main__":
|
|||||||
# outer_key_1=client_ephemeral_keys["outer_key_1"],
|
# outer_key_1=client_ephemeral_keys["outer_key_1"],
|
||||||
# outer_key_2=client_ephemeral_keys["outer_key_2"],
|
# outer_key_2=client_ephemeral_keys["outer_key_2"],
|
||||||
# alpha_key=client_ephemeral_keys["alpha_key"],
|
# alpha_key=client_ephemeral_keys["alpha_key"],
|
||||||
# inner_key_2=client_ephemeral_keys["inner_key_2"]
|
# inner_key_4=client_ephemeral_keys["inner_key_4"]
|
||||||
# ),
|
# ),
|
||||||
# medium_phase2=ClientEphemeralMediumKeys(
|
# medium_phase2=ClientEphemeralMediumKeys(
|
||||||
# outer_key_1=client_ephemeral_keys["outer_key_1"],
|
# outer_key_1=client_ephemeral_keys["outer_key_1"],
|
||||||
# outer_key_2=client_ephemeral_keys["outer_key_2"],
|
# outer_key_2=client_ephemeral_keys["outer_key_2"],
|
||||||
# inner_key_2=client_ephemeral_keys["inner_key_2"],
|
# inner_key_4=client_ephemeral_keys["inner_key_4"],
|
||||||
# alpha_key=client_ephemeral_keys["alpha_key"]
|
# alpha_key=client_ephemeral_keys["alpha_key"]
|
||||||
# )
|
# )
|
||||||
# )
|
# )
|
||||||
@@ -379,7 +365,7 @@ if __name__ == "__main__":
|
|||||||
# data=ServerPersistentDataKeys(
|
# data=ServerPersistentDataKeys(
|
||||||
# outer_key_1=server_persistent_keys["outer_key_1"],
|
# outer_key_1=server_persistent_keys["outer_key_1"],
|
||||||
# alpha_key=server_persistent_keys["alpha_key"],
|
# alpha_key=server_persistent_keys["alpha_key"],
|
||||||
# inner_key_2=server_persistent_keys["inner_key_2"]
|
# inner_key_4=server_persistent_keys["inner_key_4"]
|
||||||
# ),
|
# ),
|
||||||
# medium_phase2=ServerPersistentMediumKeys(
|
# medium_phase2=ServerPersistentMediumKeys(
|
||||||
# alpha_key=server_persistent_keys["alpha_key"],
|
# alpha_key=server_persistent_keys["alpha_key"],
|
||||||
@@ -389,7 +375,7 @@ if __name__ == "__main__":
|
|||||||
# data=ServerEphemeralDataKeys(
|
# data=ServerEphemeralDataKeys(
|
||||||
# outer_key_1=server_ephemeral_keys["outer_key_1"],
|
# outer_key_1=server_ephemeral_keys["outer_key_1"],
|
||||||
# alpha_key=server_ephemeral_keys["alpha_key"],
|
# alpha_key=server_ephemeral_keys["alpha_key"],
|
||||||
# inner_key_2=server_ephemeral_keys["inner_key_2"]
|
# inner_key_4=server_ephemeral_keys["inner_key_4"]
|
||||||
# ),
|
# ),
|
||||||
# medium_phase2=ServerEphemeralMediumKeys(
|
# medium_phase2=ServerEphemeralMediumKeys(
|
||||||
# alpha_key=server_ephemeral_keys["alpha_key"],
|
# alpha_key=server_ephemeral_keys["alpha_key"],
|
||||||
@@ -404,7 +390,7 @@ if __name__ == "__main__":
|
|||||||
# outer_key_2=server_persistent_keys["outer_key_2"],
|
# outer_key_2=server_persistent_keys["outer_key_2"],
|
||||||
# outer_key_6=server_persistent_keys["outer_key_6"],
|
# outer_key_6=server_persistent_keys["outer_key_6"],
|
||||||
# alpha_key=server_persistent_keys["alpha_key"],
|
# alpha_key=server_persistent_keys["alpha_key"],
|
||||||
# inner_key_2=server_persistent_keys["FunctionKey"],
|
# inner_key_4=server_persistent_keys["FunctionKey"],
|
||||||
# inner_key_1=server_persistent_keys["inner_key_1"],
|
# inner_key_1=server_persistent_keys["inner_key_1"],
|
||||||
# ),
|
# ),
|
||||||
# medium_phase2=MutualPersistentMediumKeys(
|
# medium_phase2=MutualPersistentMediumKeys(
|
||||||
@@ -412,7 +398,7 @@ if __name__ == "__main__":
|
|||||||
# outer_key_1=server_persistent_keys["outer_key_1"],
|
# outer_key_1=server_persistent_keys["outer_key_1"],
|
||||||
# outer_key_2=server_persistent_keys["outer_key_2"],
|
# outer_key_2=server_persistent_keys["outer_key_2"],
|
||||||
# outer_key_6=server_persistent_keys["outer_key_6"],
|
# outer_key_6=server_persistent_keys["outer_key_6"],
|
||||||
# inner_key_2=server_persistent_keys["inner_key_2"],
|
# inner_key_4=server_persistent_keys["inner_key_4"],
|
||||||
# inner_key_1=server_persistent_keys["inner_key_1"],
|
# inner_key_1=server_persistent_keys["inner_key_1"],
|
||||||
# outer_key_3=server_persistent_keys["outer_key_3"],
|
# outer_key_3=server_persistent_keys["outer_key_3"],
|
||||||
# outer_key_5=server_persistent_keys["outer_key_5"],
|
# outer_key_5=server_persistent_keys["outer_key_5"],
|
||||||
@@ -424,21 +410,21 @@ if __name__ == "__main__":
|
|||||||
# ephemeral=MutualEphemeralKeys(
|
# ephemeral=MutualEphemeralKeys(
|
||||||
# data=MutualEphemeralDataKeys(
|
# data=MutualEphemeralDataKeys(
|
||||||
# alpha_key=mutual_ephemeral_keys["MutualEphemeralKey"],
|
# alpha_key=mutual_ephemeral_keys["MutualEphemeralKey"],
|
||||||
# inner_key_2=mutual_ephemeral_keys["FunctionEphemeralKey"],
|
# inner_key_4=mutual_ephemeral_keys["FunctionEphemeralKey"],
|
||||||
# outer_key_1=mutual_ephemeral_keys["OuterFunctionEphemeralKey"],
|
# outer_key_1=mutual_ephemeral_keys["OuterFunctionEphemeralKey"],
|
||||||
# outer_key_2=mutual_ephemeral_keys["OuterFunctionFunctionEphemeralKey"],
|
# outer_key_2=mutual_ephemeral_keys["OuterFunctionFunctionEphemeralKey"],
|
||||||
# outer_key_6=mutual_ephemeral_keys["OuterServerShuffleFunctionEphemeralKey"]
|
# outer_key_6=mutual_ephemeral_keys["OuterServerShuffleFunctionEphemeralKey"]
|
||||||
# ),
|
# ),
|
||||||
# medium_phase2=MutualEphemeralMediumKeys(
|
# medium_phase2=MutualEphemeralMediumKeys(
|
||||||
# alpha_key=mutual_ephemeral_keys["MutualMediumEphemeralKey"],
|
# alpha_key=mutual_ephemeral_keys["MutualMediumEphemeralKey"],
|
||||||
# inner_key_2=mutual_ephemeral_keys["FunctionMediumEphemeralKey"],
|
# inner_key_4=mutual_ephemeral_keys["FunctionMediumEphemeralKey"],
|
||||||
# inner_key_3=mutual_ephemeral_keys["inner_key_3"],
|
# inner_key_3=mutual_ephemeral_keys["inner_key_3"],
|
||||||
# outer_key_1=mutual_ephemeral_keys["outer_key_1"],
|
# outer_key_1=mutual_ephemeral_keys["outer_key_1"],
|
||||||
# outer_key_2=mutual_ephemeral_keys["outer_key_2"],
|
# outer_key_2=mutual_ephemeral_keys["outer_key_2"],
|
||||||
# outer_key_6=mutual_ephemeral_keys["outer_key_6"],
|
# outer_key_6=mutual_ephemeral_keys["outer_key_6"],
|
||||||
# outer_key_3=mutual_ephemeral_keys["outer_key_3"],
|
# outer_key_3=mutual_ephemeral_keys["outer_key_3"],
|
||||||
# outer_key_5=mutual_ephemeral_keys["outer_key_5"],
|
# outer_key_5=mutual_ephemeral_keys["outer_key_5"],
|
||||||
# inner_key_2=mutual_ephemeral_keys["inner_key_2"],
|
# inner_key_4=mutual_ephemeral_keys["inner_key_4"],
|
||||||
# outer_key_4=mutual_ephemeral_keys["outer_key_4"]
|
# outer_key_4=mutual_ephemeral_keys["outer_key_4"]
|
||||||
|
|
||||||
# )
|
# )
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ class MutualEphemeralMediumKeys(BaseModel):
|
|||||||
outer_key_6: OuterKey
|
outer_key_6: OuterKey
|
||||||
|
|
||||||
inner_key_1: InnerKey
|
inner_key_1: InnerKey
|
||||||
inner_key_2: InnerKey
|
inner_key_4: InnerKey
|
||||||
inner_key_3: InnerKey
|
inner_key_3: InnerKey
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -317,7 +317,7 @@ class MutualEphemeralMediumKeys(BaseModel):
|
|||||||
outer_key_5=OuterKey.init_matrix(height),
|
outer_key_5=OuterKey.init_matrix(height),
|
||||||
outer_key_6=OuterKey.init_matrix(height),
|
outer_key_6=OuterKey.init_matrix(height),
|
||||||
inner_key_1=InnerKey.init_matrix(width, height),
|
inner_key_1=InnerKey.init_matrix(width, height),
|
||||||
inner_key_2=InnerKey.init_matrix(width, height),
|
inner_key_4=InnerKey.init_matrix(width, height),
|
||||||
inner_key_3=InnerKey.init_matrix(width, height),
|
inner_key_3=InnerKey.init_matrix(width, height),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ i0_i1_i2_v2 = (i0 << i1) << i2
|
|||||||
print(i0_i1_i2_v0 == i0_i1_i2_v1 == i0_i1_i2_v2)
|
print(i0_i1_i2_v0 == i0_i1_i2_v1 == i0_i1_i2_v2)
|
||||||
|
|
||||||
i0_i2_i1 = i0 << i2 << i1
|
i0_i2_i1 = i0 << i2 << i1
|
||||||
print(i0_i2_i1 == i0_i1_i2_v0)
|
#print(i0_i2_i1 == i0_i1_i2_v0)
|
||||||
|
|
||||||
print(i0 == i0_i2_i1 << ~(i2 << i1))
|
print(i0 == i0_i2_i1 << ~(i2 << i1))
|
||||||
print(i0 == i0_i2_i1 << ~i1 << ~i2)
|
print(i0 == i0_i2_i1 << ~i1 << ~i2)
|
||||||
0
src/server_darc.py
Normal file
0
src/server_darc.py
Normal file
Reference in New Issue
Block a user