Commit Graph

59 Commits

Author SHA1 Message Date
Szymon Lesisz
3dd5d01ce5 chore(transport): remove obsolete THP code 2026-02-03 16:00:58 +01:00
Szymon Lesisz
729f7ae250 refactor(transport): THP call/send/receive flow
> Co-authored-by: Marek Polak <marek.polak@satoshilabs.com>
2026-02-03 16:00:58 +01:00
Szymon Lesisz
8aae408c06 chore(protocol): add host_static_key to ThpCredentials 2025-12-30 15:15:20 +01:00
Szymon Lesisz
fae6a1a62f chore(protocol): use v2 messageType in protocol-thp decode 2025-12-10 12:10:47 +01:00
Szymon Lesisz
4c3f7116d0 chore(protocol): return protocol-v2 messageType as number 2025-12-10 12:10:47 +01:00
Szymon Lesisz
27668ed095 refactor(protocol): use protocol-v2 constants in protocol-thp 2025-12-09 16:17:05 +01:00
Szymon Lesisz
c149719480 chore(protocol): validate control byte (magic) in protocol v2 decode 2025-12-09 16:17:05 +01:00
Szymon Lesisz
8246ad65a6 refactor(protocol): return unmasked magic from readThpHeader 2025-12-09 10:27:58 +01:00
Marek Polak
d382cbfbe0 fix(protocol): don't throw on malformed push notification 2025-12-04 10:25:44 +01:00
Szymon Lesisz
e61610e32b chore(protocol): export ThpPairingMethod as enum 2025-12-01 12:28:56 +01:00
Szymon Lesisz
780e5327f4 chore(protocol): distinguish DeviceThpState and ThpChannelState 2025-12-01 10:05:45 +01:00
Szymon Lesisz
a43bdb2945 refactor(protocol): encode ThpAck **only** from ThpState 2025-11-24 18:12:18 +01:00
Szymon Lesisz
10c54bd35d refactor(protocol): THP getControlBit returns both ack and sequence bits 2025-11-24 18:12:18 +01:00
Szymon Lesisz
3d948f28ff feat(protocol): add ThpState sendAckBit and receiveAckBit 2025-11-24 18:12:18 +01:00
Szymon Lesisz
161406226b fix(protobuf): add patch for ThpDeviceProperties.pairing_methods 2025-11-20 16:40:54 +01:00
karliatto
6855b5e74f feat(protocol): power status change notification 2025-11-20 10:48:51 +01:00
Szymon Lesisz
37cd1c6ba1 Revert "fix(transport): allow skipping ThpAck from device"
This reverts commit 118327a6ba.
2025-11-13 17:08:02 +01:00
Marek Polak
118327a6ba fix(transport): allow skipping ThpAck from device 2025-11-11 15:04:47 +01:00
Szymon Lesisz
612f40e74d feat(connect): handle channel replacement in THP pairing 2025-10-08 16:24:20 +02:00
Marek Polak
ca048710ce fix(connect): use randomly generated staticKey in first pairing 2025-10-08 15:47:36 +02:00
Marek Polak
26ebf67f63 fix(connect): throw away credentials unaccepted by device 2025-10-08 11:40:08 +02:00
M1nd3r
64eeb31575 chore: add try_to_unlock to handshake hash 2025-10-06 11:20:32 +02:00
Marek Polak
a8aff3e3f8 feat(connect): add tryToUnlock to ThpHandshakeInitRequest 2025-10-06 11:20:32 +02:00
Marek Polak
bdd7b7bb61 refactor(connect): random thp code polish 2025-10-06 11:20:32 +02:00
M1nd3r
b3233240b4 chore(protocol): remove unused ThpInvalidData error type 2025-09-30 10:51:58 +02:00
Jiri Zbytovsky
295afab848 chore(protobuf): update protobuf 2025-09-29 18:01:43 +02:00
karliatto
c2dca4f0bd feat(protocol): exports for trezor push notification 2025-09-27 12:17:39 +02:00
karliatto
70f0b76f2e feat(protocol): trezor-push-notification decode 2025-09-26 12:38:54 +02:00
Tomas Martykan
37a4375b33 fix(protocol-thp): add error to getExpectedHeaders 2025-09-25 10:30:54 +02:00
Szymon Lesisz
d84fe7ae25 fix(protocol): do not reset ThpState.properties 2025-08-28 11:20:29 +02:00
Szymon Lesisz
30e20f7096 fix(protocol): ignore unexpected chunks in ThpAck after send 2025-08-21 17:29:12 +02:00
Szymon Lesisz
dd0312cf0b feat(connect): implement THP passphrase flow 2025-08-18 16:01:21 +02:00
Szymon Lesisz
de01a0302e feat(connect): cancel THP workflow 2025-08-18 16:01:21 +02:00
Szymon Lesisz
1a7e054e21 feat(connect): implement THP pairing 2025-08-18 16:01:21 +02:00
Szymon Lesisz
2d26b5c928 feat(protocol): add THP pairing messages and state 2025-08-18 16:01:21 +02:00
Szymon Lesisz
f16730bebb feat(protocol): add THP pairing cryptography
Functions used by THP pairing workflow
2025-08-18 16:01:21 +02:00
Szymon Lesisz
0c16c5f1fc chore(protobuf): update ThpPairingRequest message 2025-08-13 21:16:10 +02:00
Szymon Lesisz
94267f36aa chore(protobuf): update THP protobuf messages
- rename *_static_pubkey > *_static_public_key
- added `ButtonAck` to thp.proto
2025-07-22 09:58:21 +02:00
Szymon Lesisz
3270d50505 chore(protobuf): update THP MessageType enum 2025-07-17 06:47:16 +02:00
Szymon Lesisz
990ba54344 feat(protocol): add ThpState.sync and getExpectedHeaders functions 2025-06-24 14:06:19 +02:00
Szymon Lesisz
dddcb76000 fix(protocol): throw decode error if bytes.length < header size
PROTOCOL_MALFORMED instead of  "Attempt to access memory outside buffer bounds"
2025-06-24 14:05:09 +02:00
Szymon Lesisz
b5cb747767 feat(protocol): add THP protobuf definitions and types 2025-06-04 20:04:46 +02:00
Szymon Lesisz
b893516894 chore(protocol): rename getChunkHeader to getHeaders and return [header, chunkHeader] 2025-06-04 13:42:30 +02:00
Szymon Lesisz
b3056f54d2 feat(protocol): add THP cryptography
Co-authored-by: Ondřej Vejpustek <ondrej.vejpustek@satoshilabs.com>

following: https://github.com/trezor/trezor-firmware/pull/3435
2025-05-26 09:49:51 +02:00
Szymon Lesisz
b33b491b40 feat(protocol): add THP encoding/decoding logic
- only one message exchange is supported ThpCreateChannelRequest > ThpCreateChannelResponse
- without cryptography module. will be added in the next commit
2025-05-23 14:52:42 +02:00
Szymon Lesisz
c883e604c1 feat(protocol): add credentials to ThpState 2025-05-23 14:52:42 +02:00
Szymon Lesisz
5838888e83 feat(protocol): add THP protobuf types and state 2025-04-24 11:17:27 +02:00
Szymon Lesisz
7ff4f19571 feat(protocol): add protocol-v2 2025-03-10 12:12:57 +01:00
Szymon Lesisz
5bf4c0138e feat(protocol): add name to TransportProtocol 2024-09-06 10:20:19 +02:00
Szymon Lesisz
858837bb2a chore(protocol): accept Buffer in decode function 2024-07-30 12:30:29 +02:00