Correct wire format to disassembly: raw S1||crypt(S2), radix 32, int snno/seconds, decryptData response parser, --probe

- envelope: 7 fixed keys + conditional dataArea, no data key; int
  type/snno, seconds timestamp, data setter auto len/crc (CRC32 upper);
  SequenceNumber 1..9999 (increaseSN)
- crypto: encrypt is plaintext-header-first a||transform(b), key radix 32
  at both tryParse sites; decrypt_data ports decryptData (dual-0x58
  markers, s+'}' equipNo probe, s+','+T return); decrypt_request kept
  for the device-side known-header split
- socket: raw send (no length prefix), accumulate-and-try receive
- battery: queryAPowerData shape (data={'update':2}), radix default 32,
  --probe prints exact TX/RX bytes per variant; device_local.send_probe
- docs: RE_DART_FINDINGS ss3/5/8 + open items, BATTERY_POC host recipe
- tests: 19 new protocol tests, suite 44/44 green
This commit is contained in:
kfj001 committed 2026-10-15 23:01:58 +00:00
1 parent 2438a04ed5
commit 9e69f07636
10 files changed
+744 -182

No files matched your search

+18 -3
View File
@@ -15,15 +15,25 @@ from .crc import (
le_bytes_to_int16,
)
from .crypto import (
ALT_KEY_RADIX,
DEFAULT_KEY_RADIX,
MARKER,
decrypt_data,
decrypt_object,
decrypt_request,
encrypt_object,
generate_secret_key,
header_len_for,
split_envelope,
)
from .envelope import KEY_ORDER, PLACEHOLDER, CommunicationObject, direct_connect_request
from .envelope import (
KEY_ORDER,
SNNO_MAX,
SNNO_MIN,
PLACEHOLDER,
CommunicationObject,
SequenceNumber,
direct_connect_request,
)
from .framing import (
MAGIC_ACK,
MAGIC_DATA,
@@ -52,15 +62,20 @@ __all__ = [
"int16_to_le_bytes",
"le_bytes_to_int16",
"DEFAULT_KEY_RADIX",
"ALT_KEY_RADIX",
"MARKER",
"generate_secret_key",
"split_envelope",
"encrypt_object",
"decrypt_object",
"decrypt_request",
"decrypt_data",
"header_len_for",
"KEY_ORDER",
"SNNO_MIN",
"SNNO_MAX",
"PLACEHOLDER",
"CommunicationObject",
"SequenceNumber",
"direct_connect_request",
"MAGIC_ACK",
"MAGIC_DATA",