refactor key structure
This commit is contained in:
304
src/models.py
304
src/models.py
@@ -145,29 +145,53 @@ class AlphabetKey(DarcKey):
|
||||
)
|
||||
|
||||
|
||||
class ServerPersistentKeys(BaseModel):
|
||||
OuterServerShuffleKey: OuterShuffleKey
|
||||
ServerKey: AlphabetKey
|
||||
ServerShuffleKey: InnerShuffleKey
|
||||
|
||||
ServerMediumKey: AlphabetKey
|
||||
class ClientEphemeralDataKeys(BaseModel):
|
||||
OuterClientShuffleEphemeralKey: OuterShuffleKey
|
||||
OuterClientShuffleFunctionEphemeralKey: OuterShuffleKey
|
||||
ClientEphemeralKey: AlphabetKey
|
||||
ClientShuffleEphemeralKeyA: InnerShuffleKey
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ServerPersistentKeys(
|
||||
OuterServerShuffleKey=OuterShuffleKey.init_matrix(height),
|
||||
ServerKey=AlphabetKey.init_matrix(width, height, 255),
|
||||
ServerShuffleKey=InnerShuffleKey.init_matrix(width, height),
|
||||
ServerMediumKey=AlphabetKey.init_matrix(width, height, 255)
|
||||
return ClientEphemeralDataKeys(
|
||||
OuterClientShuffleEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterClientShuffleFunctionEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
ClientEphemeralKey=AlphabetKey.init_matrix(width, height, 255),
|
||||
ClientShuffleEphemeralKeyA=InnerShuffleKey.init_matrix(width, height),
|
||||
)
|
||||
|
||||
|
||||
class ClientPersistentKeys(BaseModel):
|
||||
class ClientEphemeralMediumKeys(BaseModel):
|
||||
OuterClientShuffleMediumEphemeralKey: OuterShuffleKey
|
||||
OuterClientShuffleFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
ClientShuffleMediumEphemeralKeyA: InnerShuffleKey
|
||||
ClientMediumEphemeralKey: AlphabetKey
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ClientEphemeralMediumKeys(
|
||||
OuterClientShuffleMediumEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterClientShuffleFunctionMediumEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
ClientShuffleMediumEphemeralKeyA=InnerShuffleKey.init_matrix(width, height),
|
||||
ClientMediumEphemeralKey=AlphabetKey.init_matrix(width, height, 255)
|
||||
)
|
||||
|
||||
class ClientPersistentDataKeys(BaseModel):
|
||||
ClientKey: AlphabetKey
|
||||
ClientShuffleKeyA: InnerShuffleKey
|
||||
OuterClientShuffleKey: OuterShuffleKey
|
||||
OuterClientShuffleFunctionKey: OuterShuffleKey
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ClientPersistentDataKeys(
|
||||
ClientKey=AlphabetKey.init_matrix(width, height, 255),
|
||||
ClientShuffleKeyA=InnerShuffleKey.init_matrix(width, height),
|
||||
OuterClientShuffleKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterClientShuffleFunctionKey=OuterShuffleKey.init_matrix(height),
|
||||
)
|
||||
|
||||
class ClientPersistentMediumKeys(BaseModel):
|
||||
OuterClientShuffleMediumKey: OuterShuffleKey
|
||||
OuterClientShuffleFunctionMediumKey: OuterShuffleKey
|
||||
ClientShuffleMediumKeyA: InnerShuffleKey
|
||||
@@ -175,19 +199,102 @@ class ClientPersistentKeys(BaseModel):
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ClientPersistentKeys(
|
||||
ClientKey=AlphabetKey.init_matrix(width, height, 255),
|
||||
ClientShuffleKeyA=InnerShuffleKey.init_matrix(width, height),
|
||||
OuterClientShuffleKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterClientShuffleFunctionKey=OuterShuffleKey.init_matrix(height),
|
||||
return ClientPersistentMediumKeys(
|
||||
OuterClientShuffleMediumKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterClientShuffleFunctionMediumKey=OuterShuffleKey.init_matrix(height),
|
||||
ClientShuffleMediumKeyA=InnerShuffleKey.init_matrix(width, height),
|
||||
ClientMediumKey=AlphabetKey.init_matrix(width, height, 255)
|
||||
)
|
||||
|
||||
class ServerEphemeralDataKeys(BaseModel):
|
||||
OuterServerShuffleEphemeralKey: OuterShuffleKey
|
||||
ServerEphemeralKey: AlphabetKey
|
||||
ServerShuffleEphemeralKey: InnerShuffleKey
|
||||
|
||||
class MutualPersistentKeys(BaseModel):
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ServerEphemeralDataKeys(
|
||||
OuterServerShuffleEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
ServerEphemeralKey=AlphabetKey.init_matrix(width, height, 255),
|
||||
ServerShuffleEphemeralKey=InnerShuffleKey.init_matrix(width, height),
|
||||
)
|
||||
|
||||
class ServerEphemeralMediumKeys(BaseModel):
|
||||
ServerMediumEphemeralKey: AlphabetKey
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ServerEphemeralMediumKeys(
|
||||
ServerMediumEphemeralKey=AlphabetKey.init_matrix(width, height, 255)
|
||||
)
|
||||
|
||||
class ServerPersistentDataKeys(BaseModel):
|
||||
OuterServerShuffleKey: OuterShuffleKey
|
||||
ServerKey: AlphabetKey
|
||||
ServerShuffleKey: InnerShuffleKey
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ServerPersistentDataKeys(
|
||||
OuterServerShuffleKey=OuterShuffleKey.init_matrix(height),
|
||||
ServerKey=AlphabetKey.init_matrix(width, height, 255),
|
||||
ServerShuffleKey=InnerShuffleKey.init_matrix(width, height),
|
||||
)
|
||||
|
||||
class ServerPersistentMediumKeys(BaseModel):
|
||||
ServerMediumKey: AlphabetKey
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ServerPersistentMediumKeys(
|
||||
ServerMediumKey=AlphabetKey.init_matrix(width, height, 255)
|
||||
)
|
||||
|
||||
class MutualEphemeralDataKeys(BaseModel):
|
||||
MutualKey: AlphabetKey
|
||||
Inner1: InnerShuffleKey
|
||||
OuterFunctionKey: OuterShuffleKey
|
||||
OuterFunctionFunctionKey: OuterShuffleKey
|
||||
OuterServerShuffleFunctionKey: OuterShuffleKey
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return MutualEphemeralDataKeys(
|
||||
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),
|
||||
)
|
||||
|
||||
class MutualEphemeralMediumKeys(BaseModel):
|
||||
MutualMediumKey: AlphabetKey
|
||||
FunctionMediumKey: InnerShuffleKey
|
||||
PositionFunctionMediumEphemeralKey: InnerShuffleKey
|
||||
OuterFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
OuterFunctionFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
OuterPositionFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
OuterServerShuffleFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
OuterPositionShuffleFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
PositionShuffleMediumEphemeralKey: InnerShuffleKey
|
||||
OuterPositionShuffleMediumEphemeralKey: OuterShuffleKey
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return MutualEphemeralMediumKeys(
|
||||
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),
|
||||
OuterPositionFunctionMediumEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterServerShuffleFunctionMediumEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterPositionShuffleFunctionMediumEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
PositionShuffleMediumEphemeralKey=InnerShuffleKey.init_matrix(width, height),
|
||||
OuterPositionShuffleMediumEphemeralKey=OuterShuffleKey.init_matrix(height)
|
||||
)
|
||||
|
||||
class MutualPersistentDataKeys(BaseModel):
|
||||
OuterFunctionKey: OuterShuffleKey
|
||||
OuterFunctionFunctionKey: OuterShuffleKey
|
||||
OuterServerShuffleFunctionKey: OuterShuffleKey
|
||||
@@ -195,6 +302,19 @@ class MutualPersistentKeys(BaseModel):
|
||||
Inner1: InnerShuffleKey
|
||||
ClientShuffleKeyX: InnerShuffleKey
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return MutualPersistentDataKeys(
|
||||
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),
|
||||
)
|
||||
|
||||
|
||||
class MutualPersistentMediumKeys(BaseModel):
|
||||
MutualMediumKey: AlphabetKey
|
||||
OuterFunctionMediumKey: OuterShuffleKey
|
||||
OuterFunctionFunctionMediumKey: OuterShuffleKey
|
||||
@@ -209,13 +329,7 @@ class MutualPersistentKeys(BaseModel):
|
||||
|
||||
@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),
|
||||
return MutualPersistentMediumKeys(
|
||||
MutualMediumKey=AlphabetKey.init_matrix(width, height, 255),
|
||||
OuterFunctionMediumKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterFunctionFunctionMediumKey=OuterShuffleKey.init_matrix(height),
|
||||
@@ -229,83 +343,109 @@ class MutualPersistentKeys(BaseModel):
|
||||
PositionShuffleMediumKey=InnerShuffleKey.init_matrix(width, height),
|
||||
)
|
||||
|
||||
class ServerPersistentKeys(BaseModel):
|
||||
Data: ServerPersistentDataKeys
|
||||
Medium: ServerPersistentMediumKeys
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ServerPersistentKeys(
|
||||
Data=ServerPersistentDataKeys.random_init(height, width),
|
||||
Medium=ServerPersistentMediumKeys.random_init(height, width)
|
||||
)
|
||||
|
||||
|
||||
class ClientPersistentKeys(BaseModel):
|
||||
Data: ClientPersistentDataKeys
|
||||
Medium: ClientPersistentMediumKeys
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ClientPersistentKeys(
|
||||
Data=ClientPersistentDataKeys.random_init(height, width),
|
||||
Medium=ClientPersistentMediumKeys.random_init(height, width)
|
||||
)
|
||||
|
||||
|
||||
class MutualPersistentKeys(BaseModel):
|
||||
Data: MutualPersistentDataKeys
|
||||
Medium: MutualPersistentMediumKeys
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return MutualPersistentKeys(
|
||||
Data=MutualPersistentDataKeys.random_init(height, width),
|
||||
Medium=MutualPersistentMediumKeys.random_init(height, width)
|
||||
)
|
||||
|
||||
|
||||
class ServerEphemeralKeys(BaseModel):
|
||||
OuterServerShuffleEphemeralKey: OuterShuffleKey
|
||||
ServerEphemeralKey: AlphabetKey
|
||||
ServerShuffleEphemeralKey: InnerShuffleKey
|
||||
|
||||
ServerMediumEphemeralKey: AlphabetKey
|
||||
Data: ServerEphemeralDataKeys
|
||||
Medium: ServerEphemeralMediumKeys
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ServerEphemeralKeys(
|
||||
OuterServerShuffleEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
ServerEphemeralKey=AlphabetKey.init_matrix(width, height, 255),
|
||||
ServerShuffleEphemeralKey=InnerShuffleKey.init_matrix(width, height),
|
||||
ServerMediumEphemeralKey=AlphabetKey.init_matrix(width, height, 255),
|
||||
Data=ServerEphemeralDataKeys.random_init(height, width),
|
||||
Medium=ServerEphemeralMediumKeys.random_init(height, width)
|
||||
)
|
||||
|
||||
|
||||
class MutualEphemeralKeys(BaseModel):
|
||||
MutualKey: AlphabetKey
|
||||
Inner1: InnerShuffleKey
|
||||
OuterFunctionKey: OuterShuffleKey
|
||||
OuterFunctionFunctionKey: OuterShuffleKey
|
||||
OuterServerShuffleFunctionKey: OuterShuffleKey
|
||||
|
||||
MutualMediumKey: AlphabetKey
|
||||
FunctionMediumKey: InnerShuffleKey
|
||||
PositionFunctionMediumEphemeralKey: InnerShuffleKey
|
||||
OuterFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
OuterFunctionFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
OuterPositionFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
OuterServerShuffleFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
OuterPositionShuffleFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
PositionShuffleMediumEphemeralKey: InnerShuffleKey
|
||||
OuterPositionShuffleMediumEphemeralKey: OuterShuffleKey
|
||||
Data: MutualEphemeralDataKeys
|
||||
Medium: MutualEphemeralMediumKeys
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return MutualEphemeralKeys(
|
||||
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),
|
||||
OuterPositionFunctionMediumEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterServerShuffleFunctionMediumEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterPositionShuffleFunctionMediumEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
PositionShuffleMediumEphemeralKey=InnerShuffleKey.init_matrix(width, height),
|
||||
OuterPositionShuffleMediumEphemeralKey=OuterShuffleKey.init_matrix(height)
|
||||
Data=MutualEphemeralDataKeys.random_init(height, width),
|
||||
Medium=MutualEphemeralMediumKeys.random_init(height, width)
|
||||
)
|
||||
|
||||
|
||||
class ClientEphemeralKeys(BaseModel):
|
||||
OuterClientShuffleEphemeralKey: OuterShuffleKey
|
||||
OuterClientShuffleFunctionEphemeralKey: OuterShuffleKey
|
||||
ClientEphemeralKey: AlphabetKey
|
||||
ClientShuffleEphemeralKeyA: InnerShuffleKey
|
||||
|
||||
OuterClientShuffleMediumEphemeralKey: OuterShuffleKey
|
||||
OuterClientShuffleFunctionMediumEphemeralKey: OuterShuffleKey
|
||||
ClientShuffleMediumEphemeralKeyA: InnerShuffleKey
|
||||
ClientMediumEphemeralKey: AlphabetKey
|
||||
Data: ClientEphemeralDataKeys
|
||||
Medium: ClientEphemeralMediumKeys
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ClientEphemeralKeys(
|
||||
OuterClientShuffleEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterClientShuffleFunctionEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
ClientEphemeralKey=AlphabetKey.init_matrix(width, height, 255),
|
||||
ClientShuffleEphemeralKeyA=InnerShuffleKey.init_matrix(width, height),
|
||||
OuterClientShuffleMediumEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
OuterClientShuffleFunctionMediumEphemeralKey=OuterShuffleKey.init_matrix(height),
|
||||
ClientShuffleMediumEphemeralKeyA=InnerShuffleKey.init_matrix(width, height),
|
||||
ClientMediumEphemeralKey=AlphabetKey.init_matrix(width, height, 255)
|
||||
Data=ClientEphemeralDataKeys.random_init(height, width),
|
||||
Medium=ClientEphemeralMediumKeys.random_init(height, width)
|
||||
)
|
||||
|
||||
|
||||
class ServerKeys(BaseModel):
|
||||
Persistent: ServerPersistentKeys
|
||||
Ephemeral: ServerEphemeralKeys
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ServerKeys(
|
||||
Persistent=ServerPersistentKeys.random_init(height, width),
|
||||
Ephemeral=ServerEphemeralKeys.random_init(height, width)
|
||||
)
|
||||
|
||||
|
||||
class MutualKeys(BaseModel):
|
||||
Persistent: MutualPersistentKeys
|
||||
Ephemeral: MutualEphemeralKeys
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return MutualKeys(
|
||||
Persistent=MutualPersistentKeys.random_init(height, width),
|
||||
Ephemeral=MutualEphemeralKeys.random_init(height, width)
|
||||
)
|
||||
|
||||
|
||||
class ClientKeys(BaseModel):
|
||||
Persistent: ClientPersistentKeys
|
||||
Ephemeral: ClientEphemeralKeys
|
||||
|
||||
@classmethod
|
||||
def random_init(cls, height: int, width: int):
|
||||
return ClientKeys(
|
||||
Persistent=ClientPersistentKeys.random_init(height, width),
|
||||
Ephemeral=ClientEphemeralKeys.random_init(height, width)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user