From f1b1787945c1246441e10f0819106c29a3e05a5e Mon Sep 17 00:00:00 2001 From: tomasklim Date: Wed, 17 Apr 2024 18:41:17 +0200 Subject: [PATCH] feat(connect): add T3T1 pubkeys --- .../tests/device/authenticateDevice.test.ts | 8 +++++ .../__tests__/verifyAuthenticityProof.test.ts | 8 +++++ .../src/data/deviceAuthenticityConfig.ts | 34 ++++++++++++++++--- 3 files changed, 45 insertions(+), 5 deletions(-) diff --git a/packages/connect/e2e/tests/device/authenticateDevice.test.ts b/packages/connect/e2e/tests/device/authenticateDevice.test.ts index 0768140f4d1c..9873310d0a14 100644 --- a/packages/connect/e2e/tests/device/authenticateDevice.test.ts +++ b/packages/connect/e2e/tests/device/authenticateDevice.test.ts @@ -29,6 +29,14 @@ describe('TrezorConnect.authenticateDevice', () => { '04ba6084cb9fba7c86d5d5a86108a91d55a27056da4eabbedde88a95e1cae8bce3620889167aaf7f2db166998f950984aa195e868f96e22803c3cd991be31d39e7', ], }, + T3T1: { + rootPubKeys: [ + '047f77368dea2d4d61e989f474a56723c3212dacf8a808d8795595ef38441427c4389bc454f02089d7f08b873005e4c28d432468997871c0bf286fd3861e21e96a', + ], + caPubKeys: [ + '04ba6084cb9fba7c86d5d5a86108a91d55a27056da4eabbedde88a95e1cae8bce3620889167aaf7f2db166998f950984aa195e868f96e22803c3cd991be31d39e7', + ], + }, }; it('validation successful', async () => { diff --git a/packages/connect/src/api/firmware/__tests__/verifyAuthenticityProof.test.ts b/packages/connect/src/api/firmware/__tests__/verifyAuthenticityProof.test.ts index 25043c702045..4ba7e72726b5 100644 --- a/packages/connect/src/api/firmware/__tests__/verifyAuthenticityProof.test.ts +++ b/packages/connect/src/api/firmware/__tests__/verifyAuthenticityProof.test.ts @@ -19,6 +19,14 @@ const CONFIG = { '041b36cc98d5e3d1a20677aaf26254ef3756f27c9d63080c93ad3e7d39d3ad23bf00497b924789bc8e3f87834994e16780ad4eae7e75db1f03835ca64363e980b4', ], }, + T3T1: { + rootPubKeys: [ + '04626d58aca84f0fcb52ea63f0eb08de1067b8d406574a715d5e7928f4b67f113a00fb5c5918e74d2327311946c446b242c20fe7347482999bdc1e229b94e27d96', + ], + caPubKeys: [ + '041b36cc98d5e3d1a20677aaf26254ef3756f27c9d63080c93ad3e7d39d3ad23bf00497b924789bc8e3f87834994e16780ad4eae7e75db1f03835ca64363e980b4', + ], + }, }; describe('firmware/verifyAuthenticityProof', () => { diff --git a/packages/connect/src/data/deviceAuthenticityConfig.ts b/packages/connect/src/data/deviceAuthenticityConfig.ts index ca150177c6d7..984679523457 100644 --- a/packages/connect/src/data/deviceAuthenticityConfig.ts +++ b/packages/connect/src/data/deviceAuthenticityConfig.ts @@ -11,7 +11,10 @@ const CertPubKeys = Type.Object({ type ModelPubKeys = Static; const ModelPubKeys = Type.Intersect([ Type.Record( - Type.Literal(PROTO.DeviceModelInternal.T2B1), + Type.Exclude( + Type.KeyOfEnum(PROTO.DeviceModelInternal), + Type.Union([Type.Literal('T1B1'), Type.Literal('T2T1')]), + ), Type.Intersect([ CertPubKeys, Type.Object({ @@ -21,7 +24,10 @@ const ModelPubKeys = Type.Intersect([ ), Type.Partial( Type.Record( - Type.Exclude(Type.KeyOfEnum(PROTO.DeviceModelInternal), Type.Literal('T2B1')), + Type.Exclude( + Type.KeyOfEnum(PROTO.DeviceModelInternal), + Type.Union([Type.Literal('T2B1'), Type.Literal('T3T1')]), + ), Type.Undefined(), ), ), @@ -42,7 +48,7 @@ export const DeviceAuthenticityConfig = Type.Intersect([ */ export const deviceAuthenticityConfig: DeviceAuthenticityConfig = { version: 1, - timestamp: '2023-03-18T12:00:00+00:00', + timestamp: '2023-04-17T12:00:00+00:00', T2B1: { rootPubKeys: [ '04ca97480ac0d7b1e6efafe518cd433cec2bf8ab9822d76eafd34363b55d63e60380bff20acc75cde03cffcb50ab6f8ce70c878e37ebc58ff7cca0a83b16b15fa5', @@ -65,8 +71,6 @@ export const deviceAuthenticityConfig: DeviceAuthenticityConfig = { '04ac1815177cc1f07700e5f18c05522427413f404bacc987eb1cf9d86f96b9e0cc53ef5941eafd483102eea321205d7dd9271ac2d0fca75a9a43deb824b51f1596', ], debug: { - // debug keys are used **only** to validate emulator or dev. firmware - // use `allowDebugKeys: true` parameter in `authenticateDevice` method rootPubKeys: [ '047f77368dea2d4d61e989f474a56723c3212dacf8a808d8795595ef38441427c4389bc454f02089d7f08b873005e4c28d432468997871c0bf286fd3861e21e96a', ], @@ -75,4 +79,24 @@ export const deviceAuthenticityConfig: DeviceAuthenticityConfig = { ], }, }, + T3T1: { + rootPubKeys: [ + '041854b27fb1d9f65abb66828e78c9dc0ca301e66081ab0c6a4d104f9df1cd0ad5a7c75f77a8c092f55cf825d2abaf734f934c9394d5e75f75a5a06a5ee9be93ae', + ], + caPubKeys: [ + '045b785b703810363deeadc0faa5a7388d8385f5e4f9170a3c27d3d2506bf9090d5b09044fbad6b906446d8cdb754b65869e8992b26a344e01ecff75844fe5a3d6', + '046442ece98b1cd13389b6eda3235e2848becc655db564897b2dc0862580f69b29be59dc30f92820f41a7a493b90623e66e1ee8529dbfd60d50aed97b46c4b8f64', + '0416960078e1d2b44df717ff5445ec76f4247333375982c5ae59b3bc223371f3cf81e7c182fd1ca36c95977070e2ff46f998bff3f00ab0de266edfdd430aea56b8', + ], + debug: { + rootPubKeys: [ + '047f77368dea2d4d61e989f474a56723c3212dacf8a808d8795595ef38441427c4389bc454f02089d7f08b873005e4c28d432468997871c0bf286fd3861e21e96a', + ], + caPubKeys: [ + '04829e8965018feb542e9236c9b2ce08f864a55ed9183d0259564f0e05345b04676a0bef36c59d21d3c24868b5601f0b1193a6bfcf6d814e1cfb79c2256a05e953', + '046f64eff0dfa3ceeae9708a3881fc09a3dae62198559d022d120e96edc168f3991a9e9b016635a0d43997ee55d8c2b37d969e8abc84e75c791ec911108b52f3c7', + '041260c3c1fd4ddfc97ba19732d5dcbe6efab61d58af83281b95d6cdb30606bf08f0b817eb6db2825b5ce32d0cc2c275b7eadcedaa1805f00b3f5a11668b6c5cb5', + ], + }, + }, };