2019-06-17 18:27:55 +00:00
|
|
|
# Trezor Protocol
|
2017-08-15 15:47:05 +00:00
|
|
|
|
|
|
|
## version 1
|
|
|
|
|
|
|
|
Messages are sent in packets of 64 bytes.
|
|
|
|
|
|
|
|
First packet has the following structure:
|
|
|
|
|
|
|
|
| offset | length | type | contents |
|
|
|
|
|--------|--------|-------------|---------------------------------------------------------------------------------------|
|
|
|
|
| 0 | 3 | char[3] | '?##' magic constant |
|
2021-09-27 22:42:28 +00:00
|
|
|
| 3 | 2 | BE uint16_t | numerical [message type](messages.proto#L76) |
|
2017-08-15 15:47:05 +00:00
|
|
|
| 5 | 4 | BE uint32_t | message size |
|
|
|
|
| 9 | 55 | uint8_t[55] | first 55 bytes of message encoded in Protocol Buffers (padded with zeroes if shorter) |
|
|
|
|
|
|
|
|
Following packets has the following structure:
|
|
|
|
|
|
|
|
| offset | length | type | contents |
|
|
|
|
|--------|--------|-------------|----------------------------------------------------------------------------------------|
|
|
|
|
| 0 | 1 | char[1] | '?' magic constant |
|
|
|
|
| 1 | 63 | uint8_t[63] | following bytes of message encoded in Protocol Buffers (padded with zeroes if shorter) |
|