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: Annotated[bytes, PlainValidator(func=_json_bytes_decoder, json_schema_input_type=Any), PlainSerializer(func=_json_bytes_encoder, return_type=PydanticUndefined, when_used=always)]
other_ratchet_pub: Annotated[bytes, PlainValidator(func=_json_bytes_decoder, json_schema_input_type=Any), PlainSerializer(func=_json_bytes_encoder, return_type=PydanticUndefined, when_used=always)]
root_chain: KDFChainModel
symmetric_key_ratchet: SymmetricKeyRatchetModel
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 doubleratchet.models.KDFChainModel(**data)[source]

Bases: BaseModel

The model representing the internal state of a KDFChain.

Parameters:
  • version (str)

  • length (int)

  • key (Annotated[bytes, PlainValidator(func=~doubleratchet.models._json_bytes_decoder, json_schema_input_type=~typing.Any), PlainSerializer(func=~doubleratchet.models._json_bytes_encoder, return_type=PydanticUndefined, when_used=always)])

version: str
length: int
key: Annotated[bytes, PlainValidator(func=_json_bytes_decoder, json_schema_input_type=Any), PlainSerializer(func=_json_bytes_encoder, return_type=PydanticUndefined, when_used=always)]
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 (Annotated[bytes, PlainValidator(func=~doubleratchet.models._json_bytes_decoder, json_schema_input_type=~typing.Any), PlainSerializer(func=~doubleratchet.models._json_bytes_encoder, return_type=PydanticUndefined, when_used=always)])

  • index (int)

  • message_key (Annotated[bytes, PlainValidator(func=~doubleratchet.models._json_bytes_decoder, json_schema_input_type=~typing.Any), PlainSerializer(func=~doubleratchet.models._json_bytes_encoder, return_type=PydanticUndefined, when_used=always)])

ratchet_pub: Annotated[bytes, PlainValidator(func=_json_bytes_decoder, json_schema_input_type=Any), PlainSerializer(func=_json_bytes_encoder, return_type=PydanticUndefined, when_used=always)]
index: int
message_key: Annotated[bytes, PlainValidator(func=_json_bytes_decoder, json_schema_input_type=Any), PlainSerializer(func=_json_bytes_encoder, return_type=PydanticUndefined, when_used=always)]
class doubleratchet.models.SymmetricKeyRatchetModel(**data)[source]

Bases: BaseModel

The model representing the internal state of a SymmetricKeyRatchet.

Parameters:
version: str
receiving_chain: KDFChainModel | None
sending_chain: KDFChainModel | None
previous_sending_chain_length: int | None