Module: models

class doubleratchet.models.DiffieHellmanRatchetModel(**data)[source]

Bases: BaseModel

The model representing the internal state of a DiffieHellmanRatchet.

Parameters
version: str
own_ratchet_priv: bytes
other_ratchet_pub: bytes
root_chain: KDFChainModel
symmetric_key_ratchet: SymmetricKeyRatchetModel
class Config[source]

Bases: object

json_encoders = {<class 'bytes'>: <function _json_bytes_encoder>}
class doubleratchet.models.DoubleRatchetModel(**data)[source]

Bases: BaseModel

The model representing the internal state of a DoubleRatchet.

Parameters
version: str
diffie_hellman_ratchet: DiffieHellmanRatchetModel
skipped_message_keys: List[SkippedMessageKeyModel]
class Config[source]

Bases: object

json_encoders = {<class 'bytes'>: <function _json_bytes_encoder>}
class doubleratchet.models.KDFChainModel(**data)[source]

Bases: BaseModel

The model representing the internal state of a KDFChain.

Parameters
  • version (str) –

  • length (int) –

  • key (bytes) –

version: str
length: int
key: bytes
class Config[source]

Bases: object

json_encoders = {<class 'bytes'>: <function _json_bytes_encoder>}
class doubleratchet.models.SkippedMessageKeyModel(**data)[source]

Bases: BaseModel

The model used as part of the DoubleRatchetModel, representing a single skipped message key with meta data.

Parameters
  • ratchet_pub (bytes) –

  • index (int) –

  • message_key (bytes) –

ratchet_pub: bytes
index: int
message_key: bytes
class Config[source]

Bases: object

json_encoders = {<class 'bytes'>: <function _json_bytes_encoder>}
class doubleratchet.models.SymmetricKeyRatchetModel(**data)[source]

Bases: BaseModel

The model representing the internal state of a SymmetricKeyRatchet.

Parameters
  • version (str) –

  • receiving_chain (Optional[KDFChainModel]) –

  • sending_chain (Optional[KDFChainModel]) –

  • previous_sending_chain_length (Optional[int]) –

version: str
receiving_chain: Optional[KDFChainModel]
sending_chain: Optional[KDFChainModel]
previous_sending_chain_length: Optional[int]