Files

112 lines
2.3 KiB
Python

"""Pure-protocol building blocks recovered from the app's Dart AOT snapshot.
Everything here is hardware-independent and covered by unit tests. See
``docs/RE_DART_FINDINGS.md`` for the reverse-engineering evidence.
"""
from .commands import (
CommunicationCmd,
CommunicationMode,
CommunicationOperate,
SOCKET_CMD_TYPE,
socket_cmd_type,
)
from .crc import (
CRC16_INIT,
CRC16_POLY,
crc16_hex_string,
crc16_modbus,
crc32,
int16_to_le_bytes,
le_bytes_to_int16,
)
from .crypto import (
DEFAULT_KEY_RADIX,
MARKER,
decrypt_data,
decrypt_object,
decrypt_request,
decrypt_wire,
encrypt_object,
generate_secret_key,
header_len_for,
split_envelope,
split_wire,
)
from .envelope import (
KEY_ORDER,
SNNO_MAX,
SNNO_MIN,
PLACEHOLDER,
CommunicationObject,
SequenceNumber,
direct_connect_request,
)
from .framing import (
BLE_HEADER_LEN,
MAGIC_ACK,
MAGIC_DATA,
MAGIC_MTU,
ble_frame_sn,
ble_frame_total_len,
build_ble_ack_frame,
build_ble_data_frame,
chunk_for_mtu,
content_in_data,
create_ble_frame,
frame_socket_payload,
magicEquals,
magic_in_data,
sn_in_data,
verify_frame_crc,
)
from .framing import SocketFrameDecoder
from .messages import EnvelopeCodec
__all__ = [
"CommunicationCmd",
"CommunicationMode",
"CommunicationOperate",
"SOCKET_CMD_TYPE",
"socket_cmd_type",
"CRC16_INIT",
"CRC16_POLY",
"crc16_modbus",
"crc16_hex_string",
"crc32",
"int16_to_le_bytes",
"le_bytes_to_int16",
"DEFAULT_KEY_RADIX",
"MARKER",
"generate_secret_key",
"split_envelope",
"encrypt_object",
"decrypt_object",
"decrypt_request",
"decrypt_data",
"decrypt_wire",
"split_wire",
"header_len_for",
"KEY_ORDER",
"SNNO_MIN",
"SNNO_MAX",
"PLACEHOLDER",
"CommunicationObject",
"SequenceNumber",
"direct_connect_request",
"MAGIC_ACK",
"MAGIC_DATA",
"create_ble_frame",
"build_ble_data_frame",
"build_ble_ack_frame",
"magic_in_data",
"magicEquals",
"sn_in_data",
"content_in_data",
"verify_frame_crc",
"chunk_for_mtu",
"frame_socket_payload",
"SocketFrameDecoder",
"EnvelopeCodec",
]