split mutual persistent into own class

This commit is contained in:
2024-05-21 08:46:06 -05:00
parent 65a0c8d509
commit 67d51c43ae
2 changed files with 174 additions and 220 deletions

View File

@@ -146,79 +146,28 @@ class AlphabetKey(DarcKey):
class ServerPersistentKeys(BaseModel):
OuterFunctionKey: OuterShuffleKey
OuterFunctionFunctionKey: OuterShuffleKey
OuterServerShuffleFunctionKey: OuterShuffleKey
MutualKey: AlphabetKey
FunctionKey: InnerShuffleKey
ClientShuffleKeyX: InnerShuffleKey
OuterServerShuffleKey: OuterShuffleKey
ServerKey: AlphabetKey
ServerShuffleKey: InnerShuffleKey
MutualMediumKey: AlphabetKey
OuterFunctionMediumKey: OuterShuffleKey
OuterFunctionFunctionMediumKey: OuterShuffleKey
OuterServerShuffleFunctionMediumKey: OuterShuffleKey
FunctionMediumKey: InnerShuffleKey
ClientShuffleMediumKeyX: InnerShuffleKey
OuterPositionShuffleMediumKey: OuterShuffleKey
OuterPositionShuffleFunctionMediumKey: OuterShuffleKey
OuterPositionFunctionMediumKey: OuterShuffleKey
PositionFunctionMediumKey: InnerShuffleKey
PositionShuffleMediumKey: InnerShuffleKey
ServerMediumKey: AlphabetKey
@classmethod
def random_init(cls, height: int, width: int):
return ServerPersistentKeys(
OuterFunctionKey=OuterShuffleKey.init_matrix(height),
OuterFunctionFunctionKey=OuterShuffleKey.init_matrix(height),
OuterServerShuffleFunctionKey=OuterShuffleKey.init_matrix(height),
MutualKey=AlphabetKey.init_matrix(width, height, 255),
FunctionKey=InnerShuffleKey.init_matrix(width, height),
ClientShuffleKeyX=InnerShuffleKey.init_matrix(width, height),
OuterServerShuffleKey=OuterShuffleKey.init_matrix(height),
ServerKey=AlphabetKey.init_matrix(width, height, 255),
ServerShuffleKey=InnerShuffleKey.init_matrix(width, height),
MutualMediumKey=AlphabetKey.init_matrix(width, height, 255),
OuterFunctionMediumKey=OuterShuffleKey.init_matrix(height),
OuterFunctionFunctionMediumKey=OuterShuffleKey.init_matrix(height),
OuterServerShuffleFunctionMediumKey=OuterShuffleKey.init_matrix(height),
FunctionMediumKey=InnerShuffleKey.init_matrix(width, height),
ClientShuffleMediumKeyX=InnerShuffleKey.init_matrix(width, height),
OuterPositionShuffleMediumKey=OuterShuffleKey.init_matrix(height),
OuterPositionShuffleFunctionMediumKey=OuterShuffleKey.init_matrix(height),
OuterPositionFunctionMediumKey=OuterShuffleKey.init_matrix(height),
PositionFunctionMediumKey=InnerShuffleKey.init_matrix(width, height),
PositionShuffleMediumKey=InnerShuffleKey.init_matrix(width, height),
ServerMediumKey=AlphabetKey.init_matrix(width, height, 255)
)
class ClientPersistentKeys(BaseModel):
OuterFunctionKey: OuterShuffleKey
OuterFunctionFunctionKey: OuterShuffleKey
OuterServerShuffleFunctionKey: OuterShuffleKey
MutualKey: AlphabetKey
FunctionKey: InnerShuffleKey
ClientShuffleKeyX: InnerShuffleKey
ClientKey: AlphabetKey
ClientShuffleKeyA: InnerShuffleKey
OuterClientShuffleKey: OuterShuffleKey
OuterClientShuffleFunctionKey: OuterShuffleKey
MutualMediumKey: AlphabetKey
OuterFunctionMediumKey: OuterShuffleKey
OuterFunctionFunctionMediumKey: OuterShuffleKey
OuterServerShuffleFunctionMediumKey: OuterShuffleKey
FunctionMediumKey: InnerShuffleKey
ClientShuffleMediumKeyX: InnerShuffleKey
OuterPositionShuffleMediumKey: OuterShuffleKey
OuterPositionShuffleFunctionMediumKey: OuterShuffleKey
OuterPositionFunctionMediumKey: OuterShuffleKey
PositionFunctionMediumKey: InnerShuffleKey
PositionShuffleMediumKey: InnerShuffleKey
OuterClientShuffleMediumKey: OuterShuffleKey
OuterClientShuffleFunctionMediumKey: OuterShuffleKey
ClientShuffleMediumKeyA: InnerShuffleKey
@@ -227,16 +176,46 @@ class ClientPersistentKeys(BaseModel):
@classmethod
def random_init(cls, height: int, width: int):
return ClientPersistentKeys(
OuterFunctionKey=OuterShuffleKey.init_matrix(height),
OuterFunctionFunctionKey=OuterShuffleKey.init_matrix(height),
OuterServerShuffleFunctionKey=OuterShuffleKey.init_matrix(height),
MutualKey=AlphabetKey.init_matrix(width, height, 255),
FunctionKey=InnerShuffleKey.init_matrix(width, height),
ClientShuffleKeyX=InnerShuffleKey.init_matrix(width, height),
ClientKey=AlphabetKey.init_matrix(width, height, 255),
ClientShuffleKeyA=InnerShuffleKey.init_matrix(width, height),
OuterClientShuffleKey=OuterShuffleKey.init_matrix(height),
OuterClientShuffleFunctionKey=OuterShuffleKey.init_matrix(height),
OuterClientShuffleMediumKey=OuterShuffleKey.init_matrix(height),
OuterClientShuffleFunctionMediumKey=OuterShuffleKey.init_matrix(height),
ClientShuffleMediumKeyA=InnerShuffleKey.init_matrix(width, height),
ClientMediumKey=AlphabetKey.init_matrix(width, height, 255)
)
class MutualPersistentKeys(BaseModel):
OuterFunctionKey: OuterShuffleKey
OuterFunctionFunctionKey: OuterShuffleKey
OuterServerShuffleFunctionKey: OuterShuffleKey
MutualKey: AlphabetKey
Inner1: InnerShuffleKey
ClientShuffleKeyX: InnerShuffleKey
MutualMediumKey: AlphabetKey
OuterFunctionMediumKey: OuterShuffleKey
OuterFunctionFunctionMediumKey: OuterShuffleKey
OuterServerShuffleFunctionMediumKey: OuterShuffleKey
FunctionMediumKey: InnerShuffleKey
ClientShuffleMediumKeyX: InnerShuffleKey
OuterPositionShuffleMediumKey: OuterShuffleKey
OuterPositionShuffleFunctionMediumKey: OuterShuffleKey
OuterPositionFunctionMediumKey: OuterShuffleKey
PositionFunctionMediumKey: InnerShuffleKey
PositionShuffleMediumKey: InnerShuffleKey
@classmethod
def random_init(cls, height: int, width: int):
return MutualPersistentKeys(
OuterFunctionKey=OuterShuffleKey.init_matrix(height),
OuterFunctionFunctionKey=OuterShuffleKey.init_matrix(height),
OuterServerShuffleFunctionKey=OuterShuffleKey.init_matrix(height),
MutualKey=AlphabetKey.init_matrix(width, height, 255),
Inner1=InnerShuffleKey.init_matrix(width, height),
ClientShuffleKeyX=InnerShuffleKey.init_matrix(width, height),
MutualMediumKey=AlphabetKey.init_matrix(width, height, 255),
OuterFunctionMediumKey=OuterShuffleKey.init_matrix(height),
OuterFunctionFunctionMediumKey=OuterShuffleKey.init_matrix(height),
@@ -248,19 +227,15 @@ class ClientPersistentKeys(BaseModel):
OuterPositionFunctionMediumKey=OuterShuffleKey.init_matrix(height),
PositionFunctionMediumKey=InnerShuffleKey.init_matrix(width, height),
PositionShuffleMediumKey=InnerShuffleKey.init_matrix(width, height),
OuterClientShuffleMediumKey=OuterShuffleKey.init_matrix(height),
OuterClientShuffleFunctionMediumKey=OuterShuffleKey.init_matrix(height),
ClientShuffleMediumKeyA=InnerShuffleKey.init_matrix(width, height),
ClientMediumKey=AlphabetKey.init_matrix(width, height, 255)
)
class ServerEphemeralKeys(BaseModel):
OuterServerShuffleEphemeralKey: OuterShuffleKey
ServerEphemeralKey: AlphabetKey
ServerShuffleEphemeralKey: InnerShuffleKey
ServerMediumEphemeralKey: AlphabetKey
Alphabet: AlphabetKey
@classmethod
def random_init(cls, height: int, width: int):
@@ -269,19 +244,18 @@ class ServerEphemeralKeys(BaseModel):
ServerEphemeralKey=AlphabetKey.init_matrix(width, height, 255),
ServerShuffleEphemeralKey=InnerShuffleKey.init_matrix(width, height),
ServerMediumEphemeralKey=AlphabetKey.init_matrix(width, height, 255),
Alphabet=AlphabetKey.init_matrix(width, height, 255)
)
class MutualEphemeralKeys(BaseModel):
MutualEphemeralKey: AlphabetKey
FunctionEphemeralKey: InnerShuffleKey
OuterFunctionEphemeralKey: OuterShuffleKey
OuterFunctionFunctionEphemeralKey: OuterShuffleKey
OuterServerShuffleFunctionEphemeralKey: OuterShuffleKey
MutualKey: AlphabetKey
Inner1: InnerShuffleKey
OuterFunctionKey: OuterShuffleKey
OuterFunctionFunctionKey: OuterShuffleKey
OuterServerShuffleFunctionKey: OuterShuffleKey
MutualMediumEphemeralKey: AlphabetKey
FunctionMediumEphemeralKey: InnerShuffleKey
MutualMediumKey: AlphabetKey
FunctionMediumKey: InnerShuffleKey
PositionFunctionMediumEphemeralKey: InnerShuffleKey
OuterFunctionMediumEphemeralKey: OuterShuffleKey
OuterFunctionFunctionMediumEphemeralKey: OuterShuffleKey
@@ -294,13 +268,13 @@ class MutualEphemeralKeys(BaseModel):
@classmethod
def random_init(cls, height: int, width: int):
return MutualEphemeralKeys(
MutualEphemeralKey=AlphabetKey.init_matrix(width, height, 255),
FunctionEphemeralKey=InnerShuffleKey.init_matrix(width, height),
OuterFunctionEphemeralKey=OuterShuffleKey.init_matrix(height),
OuterFunctionFunctionEphemeralKey=OuterShuffleKey.init_matrix(height),
OuterServerShuffleFunctionEphemeralKey=OuterShuffleKey.init_matrix(height),
MutualMediumEphemeralKey=AlphabetKey.init_matrix(width, height, 255),
FunctionMediumEphemeralKey=InnerShuffleKey.init_matrix(width, height),
MutualKey=AlphabetKey.init_matrix(width, height, 255),
Inner1=InnerShuffleKey.init_matrix(width, height),
OuterFunctionKey=OuterShuffleKey.init_matrix(height),
OuterFunctionFunctionKey=OuterShuffleKey.init_matrix(height),
OuterServerShuffleFunctionKey=OuterShuffleKey.init_matrix(height),
MutualMediumKey=AlphabetKey.init_matrix(width, height, 255),
FunctionMediumKey=InnerShuffleKey.init_matrix(width, height),
PositionFunctionMediumEphemeralKey=InnerShuffleKey.init_matrix(width, height),
OuterFunctionMediumEphemeralKey=OuterShuffleKey.init_matrix(height),
OuterFunctionFunctionMediumEphemeralKey=OuterShuffleKey.init_matrix(height),