@onekeyfe/hd-transport 1.2.0-alpha.13 → 1.2.0-alpha.131

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/__tests__/messages.test.js +144 -4
  2. package/__tests__/protocol-v2-ble-frame-writer.test.js +119 -0
  3. package/__tests__/protocol-v2-link-manager.test.js +176 -9
  4. package/__tests__/protocol-v2-usb-transport-base.test.js +36 -2
  5. package/__tests__/protocol-v2.test.js +540 -108
  6. package/__tests__/transport-log.test.js +79 -0
  7. package/dist/constants.d.ts +3 -1
  8. package/dist/constants.d.ts.map +1 -1
  9. package/dist/index.d.ts +645 -217
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +679 -153
  12. package/dist/protocols/index.d.ts +17 -1
  13. package/dist/protocols/index.d.ts.map +1 -1
  14. package/dist/protocols/v2/ble-frame-writer.d.ts +15 -0
  15. package/dist/protocols/v2/ble-frame-writer.d.ts.map +1 -0
  16. package/dist/protocols/v2/decode.d.ts +11 -0
  17. package/dist/protocols/v2/decode.d.ts.map +1 -1
  18. package/dist/protocols/v2/errors.d.ts +16 -0
  19. package/dist/protocols/v2/errors.d.ts.map +1 -0
  20. package/dist/protocols/v2/frame-assembler.d.ts.map +1 -1
  21. package/dist/protocols/v2/index.d.ts +2 -0
  22. package/dist/protocols/v2/index.d.ts.map +1 -1
  23. package/dist/protocols/v2/link-manager.d.ts +5 -0
  24. package/dist/protocols/v2/link-manager.d.ts.map +1 -1
  25. package/dist/protocols/v2/session.d.ts +14 -4
  26. package/dist/protocols/v2/session.d.ts.map +1 -1
  27. package/dist/protocols/v2/usb-transport-base.d.ts +2 -0
  28. package/dist/protocols/v2/usb-transport-base.d.ts.map +1 -1
  29. package/dist/serialization/protobuf/decode.d.ts.map +1 -1
  30. package/dist/serialization/protobuf/encode.d.ts.map +1 -1
  31. package/dist/types/messages.d.ts +301 -156
  32. package/dist/types/messages.d.ts.map +1 -1
  33. package/dist/types/transport.d.ts +21 -3
  34. package/dist/types/transport.d.ts.map +1 -1
  35. package/dist/utils/transportLog.d.ts +9 -0
  36. package/dist/utils/transportLog.d.ts.map +1 -0
  37. package/messages-protocol-v2.json +523 -449
  38. package/package.json +2 -2
  39. package/scripts/protobuf-build.sh +112 -32
  40. package/scripts/protobuf-patches/index.js +1 -0
  41. package/scripts/protobuf-types.js +10 -1
  42. package/src/constants.ts +30 -16
  43. package/src/index.ts +5 -1
  44. package/src/protocols/index.ts +114 -3
  45. package/src/protocols/v2/ble-frame-writer.ts +77 -0
  46. package/src/protocols/v2/crc8.ts +1 -1
  47. package/src/protocols/v2/decode.ts +49 -12
  48. package/src/protocols/v2/encode.ts +1 -1
  49. package/src/protocols/v2/errors.ts +54 -0
  50. package/src/protocols/v2/frame-assembler.ts +6 -4
  51. package/src/protocols/v2/index.ts +2 -0
  52. package/src/protocols/v2/link-manager.ts +65 -5
  53. package/src/protocols/v2/session.ts +224 -80
  54. package/src/protocols/v2/usb-transport-base.ts +42 -10
  55. package/src/serialization/protobuf/decode.ts +4 -1
  56. package/src/serialization/protobuf/encode.ts +5 -1
  57. package/src/types/messages.ts +375 -198
  58. package/src/types/transport.ts +30 -3
  59. package/src/utils/transportLog.ts +102 -0
@@ -0,0 +1,79 @@
1
+ const { createTransportCallLog, getSafeTransportLogPayload } = require('../src/utils/transportLog');
2
+
3
+ describe('transport log sanitization', () => {
4
+ test('logs non-sensitive request fields and redacts passphrases recursively', () => {
5
+ expect(
6
+ createTransportCallLog('DeviceSessionAskPassphrase', 'V2', {
7
+ passphrase: 'hidden-wallet-secret',
8
+ on_device: false,
9
+ metadata: {
10
+ retry: 1,
11
+ session_id: 'wallet-session-secret',
12
+ },
13
+ })
14
+ ).toEqual({
15
+ name: 'DeviceSessionAskPassphrase',
16
+ protocol: 'V2',
17
+ request: {
18
+ passphrase: '[REDACTED]',
19
+ on_device: false,
20
+ metadata: {
21
+ retry: 1,
22
+ session_id: '[REDACTED]',
23
+ },
24
+ },
25
+ });
26
+ });
27
+
28
+ test('logs response fields while redacting device and wallet identifiers', () => {
29
+ expect(
30
+ getSafeTransportLogPayload({
31
+ message: 'Passphrase accepted',
32
+ device_id: 'device-secret',
33
+ nested: {
34
+ btc_test_address: 'wallet-address',
35
+ unlocked: true,
36
+ },
37
+ })
38
+ ).toEqual({
39
+ message: 'Passphrase accepted',
40
+ device_id: '[REDACTED]',
41
+ nested: {
42
+ btc_test_address: '[REDACTED]',
43
+ unlocked: true,
44
+ },
45
+ });
46
+ });
47
+
48
+ test('does not log raw signing request or response payloads', () => {
49
+ expect(
50
+ getSafeTransportLogPayload(
51
+ {
52
+ transaction: 'raw-transaction',
53
+ path: "m/44'/60'/0'/0/0",
54
+ },
55
+ 'EthereumSignTx'
56
+ )
57
+ ).toBe('[REDACTED]');
58
+ expect(
59
+ getSafeTransportLogPayload(
60
+ {
61
+ signature: 'raw-signature',
62
+ },
63
+ 'EthereumSignedTx'
64
+ )
65
+ ).toBe('[REDACTED]');
66
+ });
67
+
68
+ test('replaces binary content with its byte length', () => {
69
+ expect(
70
+ getSafeTransportLogPayload({
71
+ file_name: 'resource.bin',
72
+ data: new Uint8Array(128),
73
+ })
74
+ ).toEqual({
75
+ file_name: 'resource.bin',
76
+ data: '[BINARY:128]',
77
+ });
78
+ });
79
+ });
@@ -4,9 +4,10 @@ export declare const PROTOCOL_V1_CHUNK_PAYLOAD_SIZE = 63;
4
4
  export declare const PROTOCOL_V1_USB_PACKET_SIZE: number;
5
5
  export declare const PROTOCOL_V1_MESSAGE_HEADER_SIZE: number;
6
6
  export declare const PROTOCOL_V1_ENVELOPE_HEADER_SIZE: number;
7
- export declare const PROTOCOL_V2_FRAME_MAX_BYTES = 4608;
7
+ export declare const PROTOCOL_V2_FRAME_MAX_BYTES = 4200;
8
8
  export declare const PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE = 4000;
9
9
  export declare const PROTOCOL_V2_BLE_FILE_CHUNK_SIZE = 1800;
10
+ export declare const PROTOCOL_V2_BLE_FIRMWARE_FILE_CHUNK_SIZE = 1960;
10
11
  export declare const PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE = 900;
11
12
  export declare const PROTOCOL_V2_BLE_FRAME_MAX_BYTES = 2048;
12
13
  export declare const PROTOCOL_V2_FILE_CHUNK_SIZE = 4000;
@@ -14,4 +15,5 @@ export declare const PROTOCOL_V2_CHANNEL_USB = 0;
14
15
  export declare const PROTOCOL_V2_CHANNEL_BLE_UART = 1;
15
16
  export declare const PROTOCOL_V2_CHANNEL_SOCKET = 2;
16
17
  export declare const PROTOCOL_V2_PACKET_SRC_COMMAND = 0;
18
+ export declare const PROTOCOL_V2_DEFAULT_RESPONSE_TIMEOUT_MS: number;
17
19
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,KAAO,CAAC;AAG1C,eAAO,MAAM,uBAAuB,KAAO,CAAC;AAG5C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAGjD,eAAO,MAAM,2BAA2B,QAAqC,CAAC;AAG9E,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAGrD,eAAO,MAAM,gCAAgC,QAA0C,CAAC;AAKxF,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAGhD,eAAO,MAAM,kCAAkC,OAAO,CAAC;AAGvD,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAGpD,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAGxD,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAGpD,eAAO,MAAM,2BAA2B,OAAqC,CAAC;AAM9E,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAG5C,eAAO,MAAM,8BAA8B,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,KAAO,CAAC;AAG1C,eAAO,MAAM,uBAAuB,KAAO,CAAC;AAG5C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAGjD,eAAO,MAAM,2BAA2B,QAAqC,CAAC;AAG9E,eAAO,MAAM,+BAA+B,QAAQ,CAAC;AAGrD,eAAO,MAAM,gCAAgC,QAA0C,CAAC;AAKxF,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAGhD,eAAO,MAAM,kCAAkC,OAAO,CAAC;AAGvD,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAMpD,eAAO,MAAM,wCAAwC,OAAO,CAAC;AAG7D,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAGxD,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAGpD,eAAO,MAAM,2BAA2B,OAAqC,CAAC;AAM9E,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAG5C,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAQhD,eAAO,MAAM,uCAAuC,QAAgB,CAAC"}