@matterbridge/core 3.5.3
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.
- package/LICENSE +202 -0
- package/README.md +22 -0
- package/dist/cli.d.ts +29 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +268 -0
- package/dist/cli.js.map +1 -0
- package/dist/cliEmitter.d.ts +50 -0
- package/dist/cliEmitter.d.ts.map +1 -0
- package/dist/cliEmitter.js +49 -0
- package/dist/cliEmitter.js.map +1 -0
- package/dist/cliHistory.d.ts +48 -0
- package/dist/cliHistory.d.ts.map +1 -0
- package/dist/cliHistory.js +826 -0
- package/dist/cliHistory.js.map +1 -0
- package/dist/clusters/export.d.ts +2 -0
- package/dist/clusters/export.d.ts.map +1 -0
- package/dist/clusters/export.js +3 -0
- package/dist/clusters/export.js.map +1 -0
- package/dist/crypto/attestationDecoder.d.ts +180 -0
- package/dist/crypto/attestationDecoder.d.ts.map +1 -0
- package/dist/crypto/attestationDecoder.js +176 -0
- package/dist/crypto/attestationDecoder.js.map +1 -0
- package/dist/crypto/declarationDecoder.d.ts +72 -0
- package/dist/crypto/declarationDecoder.d.ts.map +1 -0
- package/dist/crypto/declarationDecoder.js +241 -0
- package/dist/crypto/declarationDecoder.js.map +1 -0
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts +9 -0
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts.map +1 -0
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js +120 -0
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js.map +1 -0
- package/dist/crypto/read-extensions.d.ts +2 -0
- package/dist/crypto/read-extensions.d.ts.map +1 -0
- package/dist/crypto/read-extensions.js +81 -0
- package/dist/crypto/read-extensions.js.map +1 -0
- package/dist/crypto/testData.d.ts +31 -0
- package/dist/crypto/testData.d.ts.map +1 -0
- package/dist/crypto/testData.js +131 -0
- package/dist/crypto/testData.js.map +1 -0
- package/dist/crypto/walk-der.d.ts +2 -0
- package/dist/crypto/walk-der.d.ts.map +1 -0
- package/dist/crypto/walk-der.js +165 -0
- package/dist/crypto/walk-der.js.map +1 -0
- package/dist/deviceManager.d.ts +135 -0
- package/dist/deviceManager.d.ts.map +1 -0
- package/dist/deviceManager.js +270 -0
- package/dist/deviceManager.js.map +1 -0
- package/dist/devices/airConditioner.d.ts +98 -0
- package/dist/devices/airConditioner.d.ts.map +1 -0
- package/dist/devices/airConditioner.js +74 -0
- package/dist/devices/airConditioner.js.map +1 -0
- package/dist/devices/basicVideoPlayer.d.ts +88 -0
- package/dist/devices/basicVideoPlayer.d.ts.map +1 -0
- package/dist/devices/basicVideoPlayer.js +155 -0
- package/dist/devices/basicVideoPlayer.js.map +1 -0
- package/dist/devices/batteryStorage.d.ts +48 -0
- package/dist/devices/batteryStorage.d.ts.map +1 -0
- package/dist/devices/batteryStorage.js +75 -0
- package/dist/devices/batteryStorage.js.map +1 -0
- package/dist/devices/castingVideoPlayer.d.ts +79 -0
- package/dist/devices/castingVideoPlayer.d.ts.map +1 -0
- package/dist/devices/castingVideoPlayer.js +101 -0
- package/dist/devices/castingVideoPlayer.js.map +1 -0
- package/dist/devices/cooktop.d.ts +61 -0
- package/dist/devices/cooktop.d.ts.map +1 -0
- package/dist/devices/cooktop.js +77 -0
- package/dist/devices/cooktop.js.map +1 -0
- package/dist/devices/dishwasher.d.ts +71 -0
- package/dist/devices/dishwasher.d.ts.map +1 -0
- package/dist/devices/dishwasher.js +130 -0
- package/dist/devices/dishwasher.js.map +1 -0
- package/dist/devices/evse.d.ts +76 -0
- package/dist/devices/evse.d.ts.map +1 -0
- package/dist/devices/evse.js +156 -0
- package/dist/devices/evse.js.map +1 -0
- package/dist/devices/export.d.ts +19 -0
- package/dist/devices/export.d.ts.map +1 -0
- package/dist/devices/export.js +23 -0
- package/dist/devices/export.js.map +1 -0
- package/dist/devices/extractorHood.d.ts +46 -0
- package/dist/devices/extractorHood.d.ts.map +1 -0
- package/dist/devices/extractorHood.js +78 -0
- package/dist/devices/extractorHood.js.map +1 -0
- package/dist/devices/heatPump.d.ts +47 -0
- package/dist/devices/heatPump.d.ts.map +1 -0
- package/dist/devices/heatPump.js +84 -0
- package/dist/devices/heatPump.js.map +1 -0
- package/dist/devices/laundryDryer.d.ts +67 -0
- package/dist/devices/laundryDryer.d.ts.map +1 -0
- package/dist/devices/laundryDryer.js +106 -0
- package/dist/devices/laundryDryer.js.map +1 -0
- package/dist/devices/laundryWasher.d.ts +81 -0
- package/dist/devices/laundryWasher.d.ts.map +1 -0
- package/dist/devices/laundryWasher.js +147 -0
- package/dist/devices/laundryWasher.js.map +1 -0
- package/dist/devices/microwaveOven.d.ts +168 -0
- package/dist/devices/microwaveOven.d.ts.map +1 -0
- package/dist/devices/microwaveOven.js +179 -0
- package/dist/devices/microwaveOven.js.map +1 -0
- package/dist/devices/oven.d.ts +105 -0
- package/dist/devices/oven.d.ts.map +1 -0
- package/dist/devices/oven.js +190 -0
- package/dist/devices/oven.js.map +1 -0
- package/dist/devices/refrigerator.d.ts +118 -0
- package/dist/devices/refrigerator.d.ts.map +1 -0
- package/dist/devices/refrigerator.js +186 -0
- package/dist/devices/refrigerator.js.map +1 -0
- package/dist/devices/roboticVacuumCleaner.d.ts +112 -0
- package/dist/devices/roboticVacuumCleaner.d.ts.map +1 -0
- package/dist/devices/roboticVacuumCleaner.js +268 -0
- package/dist/devices/roboticVacuumCleaner.js.map +1 -0
- package/dist/devices/solarPower.d.ts +40 -0
- package/dist/devices/solarPower.d.ts.map +1 -0
- package/dist/devices/solarPower.js +59 -0
- package/dist/devices/solarPower.js.map +1 -0
- package/dist/devices/speaker.d.ts +87 -0
- package/dist/devices/speaker.d.ts.map +1 -0
- package/dist/devices/speaker.js +120 -0
- package/dist/devices/speaker.js.map +1 -0
- package/dist/devices/temperatureControl.d.ts +166 -0
- package/dist/devices/temperatureControl.d.ts.map +1 -0
- package/dist/devices/temperatureControl.js +78 -0
- package/dist/devices/temperatureControl.js.map +1 -0
- package/dist/devices/waterHeater.d.ts +111 -0
- package/dist/devices/waterHeater.d.ts.map +1 -0
- package/dist/devices/waterHeater.js +166 -0
- package/dist/devices/waterHeater.js.map +1 -0
- package/dist/dgram/export.d.ts +2 -0
- package/dist/dgram/export.d.ts.map +1 -0
- package/dist/dgram/export.js +2 -0
- package/dist/dgram/export.js.map +1 -0
- package/dist/export.d.ts +32 -0
- package/dist/export.d.ts.map +1 -0
- package/dist/export.js +39 -0
- package/dist/export.js.map +1 -0
- package/dist/frontend.d.ts +248 -0
- package/dist/frontend.d.ts.map +1 -0
- package/dist/frontend.js +2605 -0
- package/dist/frontend.js.map +1 -0
- package/dist/helpers.d.ts +48 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +161 -0
- package/dist/helpers.js.map +1 -0
- package/dist/jestutils/export.d.ts +2 -0
- package/dist/jestutils/export.d.ts.map +1 -0
- package/dist/jestutils/export.js +2 -0
- package/dist/jestutils/export.js.map +1 -0
- package/dist/jestutils/jestHelpers.d.ts +349 -0
- package/dist/jestutils/jestHelpers.d.ts.map +1 -0
- package/dist/jestutils/jestHelpers.js +980 -0
- package/dist/jestutils/jestHelpers.js.map +1 -0
- package/dist/matter/behaviors.d.ts +2 -0
- package/dist/matter/behaviors.d.ts.map +1 -0
- package/dist/matter/behaviors.js +3 -0
- package/dist/matter/behaviors.js.map +1 -0
- package/dist/matter/clusters.d.ts +2 -0
- package/dist/matter/clusters.d.ts.map +1 -0
- package/dist/matter/clusters.js +3 -0
- package/dist/matter/clusters.js.map +1 -0
- package/dist/matter/devices.d.ts +2 -0
- package/dist/matter/devices.d.ts.map +1 -0
- package/dist/matter/devices.js +3 -0
- package/dist/matter/devices.js.map +1 -0
- package/dist/matter/endpoints.d.ts +2 -0
- package/dist/matter/endpoints.d.ts.map +1 -0
- package/dist/matter/endpoints.js +3 -0
- package/dist/matter/endpoints.js.map +1 -0
- package/dist/matter/export.d.ts +4 -0
- package/dist/matter/export.d.ts.map +1 -0
- package/dist/matter/export.js +5 -0
- package/dist/matter/export.js.map +1 -0
- package/dist/matter/types.d.ts +2 -0
- package/dist/matter/types.d.ts.map +1 -0
- package/dist/matter/types.js +3 -0
- package/dist/matter/types.js.map +1 -0
- package/dist/matterNode.d.ts +341 -0
- package/dist/matterNode.d.ts.map +1 -0
- package/dist/matterNode.js +1329 -0
- package/dist/matterNode.js.map +1 -0
- package/dist/matterbridge.d.ts +544 -0
- package/dist/matterbridge.d.ts.map +1 -0
- package/dist/matterbridge.js +2880 -0
- package/dist/matterbridge.js.map +1 -0
- package/dist/matterbridgeAccessoryPlatform.d.ts +49 -0
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
- package/dist/matterbridgeAccessoryPlatform.js +80 -0
- package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
- package/dist/matterbridgeBehaviors.d.ts +2428 -0
- package/dist/matterbridgeBehaviors.d.ts.map +1 -0
- package/dist/matterbridgeBehaviors.js +620 -0
- package/dist/matterbridgeBehaviors.js.map +1 -0
- package/dist/matterbridgeDeviceTypes.d.ts +744 -0
- package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
- package/dist/matterbridgeDeviceTypes.js +1312 -0
- package/dist/matterbridgeDeviceTypes.js.map +1 -0
- package/dist/matterbridgeDynamicPlatform.d.ts +49 -0
- package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
- package/dist/matterbridgeDynamicPlatform.js +80 -0
- package/dist/matterbridgeDynamicPlatform.js.map +1 -0
- package/dist/matterbridgeEndpoint.d.ts +1548 -0
- package/dist/matterbridgeEndpoint.d.ts.map +1 -0
- package/dist/matterbridgeEndpoint.js +2883 -0
- package/dist/matterbridgeEndpoint.js.map +1 -0
- package/dist/matterbridgeEndpointHelpers.d.ts +1855 -0
- package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
- package/dist/matterbridgeEndpointHelpers.js +1270 -0
- package/dist/matterbridgeEndpointHelpers.js.map +1 -0
- package/dist/matterbridgeEndpointTypes.d.ts +172 -0
- package/dist/matterbridgeEndpointTypes.d.ts.map +1 -0
- package/dist/matterbridgeEndpointTypes.js +28 -0
- package/dist/matterbridgeEndpointTypes.js.map +1 -0
- package/dist/matterbridgePlatform.d.ts +520 -0
- package/dist/matterbridgePlatform.d.ts.map +1 -0
- package/dist/matterbridgePlatform.js +921 -0
- package/dist/matterbridgePlatform.js.map +1 -0
- package/dist/mb_coap.d.ts +24 -0
- package/dist/mb_coap.d.ts.map +1 -0
- package/dist/mb_coap.js +89 -0
- package/dist/mb_coap.js.map +1 -0
- package/dist/mb_health.d.ts +77 -0
- package/dist/mb_health.d.ts.map +1 -0
- package/dist/mb_health.js +147 -0
- package/dist/mb_health.js.map +1 -0
- package/dist/mb_mdns.d.ts +24 -0
- package/dist/mb_mdns.d.ts.map +1 -0
- package/dist/mb_mdns.js +285 -0
- package/dist/mb_mdns.js.map +1 -0
- package/dist/pluginManager.d.ts +388 -0
- package/dist/pluginManager.d.ts.map +1 -0
- package/dist/pluginManager.js +1574 -0
- package/dist/pluginManager.js.map +1 -0
- package/dist/spawn.d.ts +33 -0
- package/dist/spawn.d.ts.map +1 -0
- package/dist/spawn.js +165 -0
- package/dist/spawn.js.map +1 -0
- package/dist/utils/export.d.ts +2 -0
- package/dist/utils/export.d.ts.map +1 -0
- package/dist/utils/export.js +2 -0
- package/dist/utils/export.js.map +1 -0
- package/dist/workers/brand.d.ts +25 -0
- package/dist/workers/brand.d.ts.map +1 -0
- package/dist/workers/brand.extend.d.ts +10 -0
- package/dist/workers/brand.extend.d.ts.map +1 -0
- package/dist/workers/brand.extend.js +15 -0
- package/dist/workers/brand.extend.js.map +1 -0
- package/dist/workers/brand.invalid.d.ts +9 -0
- package/dist/workers/brand.invalid.d.ts.map +1 -0
- package/dist/workers/brand.invalid.js +19 -0
- package/dist/workers/brand.invalid.js.map +1 -0
- package/dist/workers/brand.js +67 -0
- package/dist/workers/brand.js.map +1 -0
- package/dist/workers/clusterTypes.d.ts +47 -0
- package/dist/workers/clusterTypes.d.ts.map +1 -0
- package/dist/workers/clusterTypes.js +57 -0
- package/dist/workers/clusterTypes.js.map +1 -0
- package/dist/workers/frontendWorker.d.ts +2 -0
- package/dist/workers/frontendWorker.d.ts.map +1 -0
- package/dist/workers/frontendWorker.js +90 -0
- package/dist/workers/frontendWorker.js.map +1 -0
- package/dist/workers/helloWorld.d.ts +2 -0
- package/dist/workers/helloWorld.d.ts.map +1 -0
- package/dist/workers/helloWorld.js +135 -0
- package/dist/workers/helloWorld.js.map +1 -0
- package/dist/workers/matterWorker.d.ts +2 -0
- package/dist/workers/matterWorker.d.ts.map +1 -0
- package/dist/workers/matterWorker.js +104 -0
- package/dist/workers/matterWorker.js.map +1 -0
- package/dist/workers/matterbridgeWorker.d.ts +2 -0
- package/dist/workers/matterbridgeWorker.d.ts.map +1 -0
- package/dist/workers/matterbridgeWorker.js +75 -0
- package/dist/workers/matterbridgeWorker.js.map +1 -0
- package/dist/workers/messageLab.d.ts +134 -0
- package/dist/workers/messageLab.d.ts.map +1 -0
- package/dist/workers/messageLab.js +129 -0
- package/dist/workers/messageLab.js.map +1 -0
- package/dist/workers/testWorker.d.ts +2 -0
- package/dist/workers/testWorker.d.ts.map +1 -0
- package/dist/workers/testWorker.js +45 -0
- package/dist/workers/testWorker.js.map +1 -0
- package/dist/workers/usage.d.ts +19 -0
- package/dist/workers/usage.d.ts.map +1 -0
- package/dist/workers/usage.js +140 -0
- package/dist/workers/usage.js.map +1 -0
- package/dist/workers/workerManager.d.ts +115 -0
- package/dist/workers/workerManager.d.ts.map +1 -0
- package/dist/workers/workerManager.js +464 -0
- package/dist/workers/workerManager.js.map +1 -0
- package/dist/workers/workerServer.d.ts +126 -0
- package/dist/workers/workerServer.d.ts.map +1 -0
- package/dist/workers/workerServer.js +340 -0
- package/dist/workers/workerServer.js.map +1 -0
- package/dist/workers/workerTypes.d.ts +23 -0
- package/dist/workers/workerTypes.d.ts.map +1 -0
- package/dist/workers/workerTypes.js +3 -0
- package/dist/workers/workerTypes.js.map +1 -0
- package/package.json +120 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// From chapter 6.1.4 of the Matter 1.4 specification
|
|
2
|
+
export const certDAC = `-----BEGIN CERTIFICATE-----
|
|
3
|
+
MIIB6TCCAY+gAwIBAgIIDgY7dCvPvl0wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP
|
|
4
|
+
TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB
|
|
5
|
+
gqJ8AgIMBDgwMDAwIBcNMjEwNjI4MTQyMzQzWhgPOTk5OTEyMzEyMzU5NTlaMEsx
|
|
6
|
+
HTAbBgNVBAMMFE1hdHRlciBUZXN0IERBQyAwMDAxMRQwEgYKKwYBBAGConwCAQwE
|
|
7
|
+
RkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAwWTATBgcqhkjOPQIBBggqhkjOPQMB
|
|
8
|
+
BwNCAATCJYMix9xyc3wzvu1wczeqJIW8Rnk+TVrJp1rXQ1JmyQoCjuyvJlD+cAnv
|
|
9
|
+
/K7L6tHyw9EkNd7C6tPZkpW/ztbDo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB
|
|
10
|
+
/wQEAwIHgDAdBgNVHQ4EFgQUlsLZJJTql4XA0WcI44jxwJHqD9UwHwYDVR0jBBgw
|
|
11
|
+
FoAUr0K3CU3r1RXsbs8zuBEVIl8yUogwCgYIKoZIzj0EAwIDSAAwRQIgX8sppA08
|
|
12
|
+
NabozmBlxtCdphc9xbJF7DIEkePTSTK3PhcCIQC0VpkPUgUQBFo4j3VOdxVAoESX
|
|
13
|
+
kjGWRV5EDWgl2WEDZA==
|
|
14
|
+
-----END CERTIFICATE-----`;
|
|
15
|
+
export const keyDAC = `-----BEGIN EC PRIVATE KEY-----
|
|
16
|
+
MHcCAQEEIHtcWp+0aVVH+DAQ38iXpphqmT7LfMnMD4V/kIqszwfuoAoGCCqGSM49
|
|
17
|
+
AwEHoUQDQgAEwiWDIsfccnN8M77tcHM3qiSFvEZ5Pk1ayada10NSZskKAo7sryZQ
|
|
18
|
+
/nAJ7/yuy+rR8sPRJDXewurT2ZKVv87Www==
|
|
19
|
+
-----END EC PRIVATE KEY-----`;
|
|
20
|
+
export const certPAI = `-----BEGIN CERTIFICATE-----
|
|
21
|
+
MIIB1DCCAXqgAwIBAgIIPmzmUJrYQM0wCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP
|
|
22
|
+
TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMTA2Mjgx
|
|
23
|
+
NDIzNDNaGA85OTk5MTIzMTIzNTk1OVowRjEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg
|
|
24
|
+
UEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAw
|
|
25
|
+
WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASA3fEbIo8+MfY7z1eY2hRiOuu96C7z
|
|
26
|
+
eO6tv7GP4avOMdCO1LIGBLbMxtm1+rZOfeEMt0vgF8nsFRYFbXDyzQsio2YwZDAS
|
|
27
|
+
BgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUr0K3
|
|
28
|
+
CU3r1RXsbs8zuBEVIl8yUogwHwYDVR0jBBgwFoAUav0idx9RH+y/FkGXZxDc3DGh
|
|
29
|
+
cX4wCgYIKoZIzj0EAwIDSAAwRQIhAJbJyM8uAYhgBdj1vHLAe3X9mldpWsSRETET
|
|
30
|
+
i+oDPOUDAiAlVJQ75X1T1sR199I+v8/CA2zSm6Y5PsfvrYcUq3GCGQ==
|
|
31
|
+
-----END CERTIFICATE-----`;
|
|
32
|
+
export const keyPAI = `-----BEGIN EC PRIVATE KEY-----
|
|
33
|
+
MHcCAQEEIEZ7LYpps1z+a9sPw2qBp9jj5F0GLffNuCJY88hAHcMYoAoGCCqGSM49
|
|
34
|
+
AwEHoUQDQgAEgN3xGyKPPjH2O89XmNoUYjrrvegu83jurb+xj+GrzjHQjtSyBgS2
|
|
35
|
+
zMbZtfq2Tn3hDLdL4BfJ7BUWBW1w8s0LIg==
|
|
36
|
+
-----END EC PRIVATE KEY-----`;
|
|
37
|
+
export const certPAA = `-----BEGIN CERTIFICATE-----
|
|
38
|
+
MIIBvTCCAWSgAwIBAgIITqjoMYLUHBwwCgYIKoZIzj0EAwIwMDEYMBYGA1UEAwwP
|
|
39
|
+
TWF0dGVyIFRlc3QgUEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTAgFw0yMTA2Mjgx
|
|
40
|
+
NDIzNDNaGA85OTk5MTIzMTIzNTk1OVowMDEYMBYGA1UEAwwPTWF0dGVyIFRlc3Qg
|
|
41
|
+
UEFBMRQwEgYKKwYBBAGConwCAQwERkZGMTBZMBMGByqGSM49AgEGCCqGSM49AwEH
|
|
42
|
+
A0IABLbLY3KIfyko9brIGqnZOuJDHK2p154kL2UXfvnO2TKijs0Duq9qj8oYShpQ
|
|
43
|
+
NUKWDUU/MD8fGUIddR6Pjxqam3WjZjBkMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD
|
|
44
|
+
VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAfBgNV
|
|
45
|
+
HSMEGDAWgBRq/SJ3H1Ef7L8WQZdnENzcMaFxfjAKBggqhkjOPQQDAgNHADBEAiBQ
|
|
46
|
+
qoAC9NkyqaAFOPZTaK0P/8jvu8m+t9pWmDXPmqdRDgIgI7rI/g8j51RFtlM5CBpH
|
|
47
|
+
mUkpxyqvChVI1A0DTVFLJd4=
|
|
48
|
+
-----END CERTIFICATE-----`;
|
|
49
|
+
export const keyPAA = `-----BEGIN EC PRIVATE KEY-----
|
|
50
|
+
MHcCAQEEIGUSyuyuz8VD1gYjFhWXFi8BRoTFZaEpti/SjCerHMxQoAoGCCqGSM49
|
|
51
|
+
AwEHoUQDQgAEtstjcoh/KSj1usgaqdk64kMcranXniQvZRd++c7ZMqKOzQO6r2qP
|
|
52
|
+
yhhKGlA1QpYNRT8wPx8ZQh11Ho+PGpqbdQ==
|
|
53
|
+
-----END EC PRIVATE KEY-----`;
|
|
54
|
+
// Saved from matter.js @matter\protocol\src\certificate\DeviceCertification.ts
|
|
55
|
+
export const matterbridgePairing = {
|
|
56
|
+
passcode: '20252026',
|
|
57
|
+
discriminator: '2355',
|
|
58
|
+
privateKey: {
|
|
59
|
+
kty: 'EC',
|
|
60
|
+
d: 'znQ6aq5Q-D3fUqLVdWjcGf6YPmuigbct1mytFeGsNh8',
|
|
61
|
+
crv: 'P-256',
|
|
62
|
+
x: 'bhftd0KVnT4kpJaziiwJPClmW9gBEZxg-KAaiozJEGc',
|
|
63
|
+
y: 'xPqBvkm0cqY78P0iyv9fF-5ouipQ_CiB_tpZuRLvmq8',
|
|
64
|
+
},
|
|
65
|
+
certificate: '308201e93082018fa003020102020102300a06082a8648ce3d0403023042312a302806035504030c216e6f64652d6d6174746572204465762050414920307846464631206e6f2050494431143012060a2b0601040182a27c02010c0446464631301e170d3234303530363132333934305a170d3335303530343132333934305a3058312a302806035504030c216e6f64652d6d61747465722044657620444143203078464646312f30783830303031143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d030107034200046e17ed7742959d3e24a496b38a2c093c29665bd801119c60f8a01a8a8cc91067c4fa81be49b472a63bf0fd22caff5f17ee68ba2a50fc2881feda59b912ef9aafa360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e04160414de5c28c47c38a9b9efc70a0b70ccde8946678d02301f0603551d23041830168014f191dc9656b736cae90ae10b573c1e5330a01a62300a06082a8648ce3d040302034800304502207dfbefe9c84c5f6a02c41514357fabe61f26597a6ab77607f50b7bdb95b5feac022100cffd0d2aec388561e0a6d80806daf33212cfd1302bcb610cc5a5a890a2c5c55b',
|
|
66
|
+
intermediateCertificate: '308201b130820157a003020102020101300a06082a8648ce3d040302301a3118301606035504030c0f4d6174746572205465737420504141301e170d3234303530363132333934305a170d3335303530343132333934305a3042312a302806035504030c216e6f64652d6d6174746572204465762050414920307846464631206e6f2050494431143012060a2b0601040182a27c02010c04464646313059301306072a8648ce3d020106082a8648ce3d030107034200043cfbb9f367e96b0b7f9b7f51afc033e65a7625c63b8041c06a1705d29b9fb40772803290389e1dd38b33b81c0d1195cd1d82678f1b5af88aa52bdabba0a367c6a366306430120603551d130101ff040830060101ff020100300e0603551d0f0101ff040403020106301d0603551d0e04160414f191dc9656b736cae90ae10b573c1e5330a01a62301f0603551d23041830168014785ce705b86b8f4e6fc793aa60cb43ea696882d5300a06082a8648ce3d0403020348003045022100fe8443f3c2e4958fd094b974c39e05f9af52b2530cf6a157ca7f8b849fab19e50220274912d8632e9c6263959f2ed4951f89fd4447c2b751d038ab534a230acb1386',
|
|
67
|
+
declaration: '3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304306092a864886f70d010701a0360434152400012501f1ff3602050080182403162c0413435341303030303053574330303030302d303024050024060024070124080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206e6c5c9f03b76326e41ec6f74ac4b5d725e58513124fb2dad83543fb65a3f82c022100b6346b20b94652fce1d8560cd06e06b102692324ff850b3ebc0af00b7f3c955f',
|
|
68
|
+
};
|
|
69
|
+
export const Shelly1Gen4 = {
|
|
70
|
+
DeviceAttestation: '30820207308201aca003020102021468d153dba48d9d7f112d5ff5bc38adcdede0fe7f300a06082a8648ce3d0403023035311d301b06035504030c145368656c6c79204d61747465722050414920303131143012060a2b0601040182a27c02010c04313439303020170d3235303130383031353633315a180f39393939313233313233353935395a306d313f303d06035504030c365368656c6c7920426174636820533453572d30303158313645552d323530322d42726f616477656c6c20534e2032355730322d35634131143012060a2b0601040182a27c02010c043134393031143012060a2b0601040182a27c02020c04313032383059301306072a8648ce3d020106082a8648ce3d03010703420004f63ede3b55222b815d8c9f798d67fe5854251dcf619c7f2fb709511ac9017ce282f3c963772afddc8628a2cfcd13d6cbc626a12714031fa3ce016f2259f3903aa360305e300c0603551d130101ff04023000301f0603551d230418301680144e88ec0bc13a920ec5739a6965930e7816c56620301d0603551d0e041604146b2f341923d0a51b1c0ea20d1f7a44727853607b300e0603551d0f0101ff040403020780300a06082a8648ce3d0403020349003046022100b5adc5437541aacc8d5cb1101f0ad04d7e8046c1204e8ac658b4a82c1355bdf4022100c1f7f0bd4471deda094808186b958f6fc8d06203c56a221afac3ef7f549eee2b',
|
|
71
|
+
ProductAttestation: '308201d63082017ba00302010202141dabe8634b0572dec1b8a621c41506097bd71bd6300a06082a8648ce3d04030230363120301e06035504030c175374726f6e674b6579204d61747465722047312050414131123010060355040a0c095374726f6e674b65793020170d3234303732303032343733335a180f39393939313233313233353935395a3035311d301b06035504030c145368656c6c79204d61747465722050414920303131143012060a2b0601040182a27c02010c04313439303059301306072a8648ce3d020106082a8648ce3d03010703420004078dfab94ef3aafc764f5c814c515bb98c19c3d6c5aed060b662a8187801a644667a4d5faa5ed157c7ce1b49ddab0e5aa82f4110e453be4809f1c66f017481f9a366306430120603551d130101ff040830060101ff020100301f0603551d23041830168014374e295ac551730baf65d529839b4ee09d39588a301d0603551d0e041604144e88ec0bc13a920ec5739a6965930e7816c56620300e0603551d0f0101ff040403020106300a06082a8648ce3d04030203490030460221009e2cda4a904f8a096472cf37c5bbe4f580fcb5a9da40cd4826bd97b8d6ca60d3022100e5a2c3f06b7cabb9bc09f5b1640ea8bba083ae5e0da83c796aba98061de95bc9',
|
|
72
|
+
AttestationElements: '153001eb3081e806092a864886f70d010702a081da3081d7020103310d300b0609608648016503040201304406092a864886f70d010701a0370435152400012501901436020528101825030a012c041343534132353044354d415434353039352d323424050024060024070124080218317d307b0201038014471035e7c04eaaa8be7c4d4c13e3e4c20995a84b300b0609608648016503040201300a06082a8648ce3d04030204473045022014c8a867db27f65a14490c58c992326c309f122ee6fed8138a959e655aa336650221008485c0de73f29d38771d149f4b6f7fae2cf1200b8cc265ee393f258cd9cf5d0b3002207c527482e4927f71f6acbf70a0063fc753c157a4844ab87f2760643f1e7c531724030018',
|
|
73
|
+
AttestationSignature: 'b230528e37e85299dae32c9825bdf84af5ebb6f4dab42db6b81867d7d35d4a0a3c9700e2437e8bbc91b46017ce0094cdbb9ba0d290c8a2b69ef2c566a8667d5b',
|
|
74
|
+
};
|
|
75
|
+
/*
|
|
76
|
+
// F.2. Device Attestation Response test vector
|
|
77
|
+
|
|
78
|
+
-> AttestationElements field of AttestationResponse (len 383 bytes):
|
|
79
|
+
00000000 15 31 01 11 01 30 82 01 0d 06 09 2a 86 48 86 f7 |.1...0.....*.H..|
|
|
80
|
+
00000010 0d 01 07 02 a0 81 ff 30 81 fc 02 01 03 31 0d 30 |.......0.....1.0|
|
|
81
|
+
00000020 0b 06 09 60 86 48 01 65 03 04 02 01 30 69 06 09 |...`.H.e....0i..|
|
|
82
|
+
00000030 2a 86 48 86 f7 0d 01 07 01 a0 5c 04 5a 15 24 00 |*.H.......\.Z.$.|
|
|
83
|
+
00000040 01 25 01 f2 ff 36 02 05 01 80 05 02 80 18 25 03 |.%...6........%.|
|
|
84
|
+
00000050 34 12 2c 04 13 5a 49 47 32 30 31 34 32 5a 42 33 |4.,..ZIG20142ZB3|
|
|
85
|
+
00000060 33 30 30 30 32 2d 32 34 24 05 00 24 06 00 25 07 |30002-24$..$..%.|
|
|
86
|
+
00000070 94 26 24 08 00 25 09 f1 ff 25 0a 00 80 36 0b 10 |.&$..%...%...6..|
|
|
87
|
+
00000080 14 78 5c e7 05 b8 6b 8f 4e 6f c7 93 aa 60 cb 43 |.x\...k.No...`.C|
|
|
88
|
+
00000090 ea 69 68 82 d5 18 18 31 7d 30 7b 02 01 03 80 14 |.ih....1}0{.....|
|
|
89
|
+
000000a0 62 fa 82 33 59 ac fa a9 96 3e 1c fa 14 0a dd f5 |b..3Y....>......|
|
|
90
|
+
000000b0 04 f3 71 60 30 0b 06 09 60 86 48 01 65 03 04 02 |..q`0...`.H.e...|
|
|
91
|
+
000000c0 01 30 0a 06 08 2a 86 48 ce 3d 04 03 02 04 47 30 |.0...*.H.=....G0|
|
|
92
|
+
000000d0 45 02 20 4a e9 c9 b7 f8 aa 68 61 0a dd 84 e4 12 |E. J.....ha.....|
|
|
93
|
+
000000e0 91 fc 8f 4d c5 33 fc a2 9d c1 ff f2 25 3c 09 cd |...M.3......%<..|
|
|
94
|
+
000000f0 32 f7 75 02 21 00 9c 0a 5f de f9 e0 08 d1 cc 8b |2.u.!..._.......|
|
|
95
|
+
00000100 b7 c3 95 9c db 65 c4 61 25 cb 72 95 08 1e 47 b5 |.....e.a%.r...G.|
|
|
96
|
+
00000110 c1 31 e4 d1 f4 8c 30 02 20 e0 42 1b 91 c6 fd cd |.1....0. .B.....|
|
|
97
|
+
00000120 b4 0e 2a 4d 2c f3 1d b2 b4 e1 8b 41 1b 1d 3a d4 |..*M,......A..:.|
|
|
98
|
+
00000130 d1 2a 9d 90 aa 8e 52 fa e2 26 03 fd c6 5b 28 d0 |.*....R..&...[(.|
|
|
99
|
+
00000140 f1 ff 3e 00 01 00 17 73 61 6d 70 6c 65 5f 76 65 |..>....sample_ve|
|
|
100
|
+
00000150 6e 64 6f 72 5f 72 65 73 65 72 76 65 64 31 d0 f1 |ndor_reserved1..|
|
|
101
|
+
00000160 ff 3e 00 03 00 18 76 65 6e 64 6f 72 5f 72 65 73 |.>....vendor_res|
|
|
102
|
+
00000170 65 72 76 65 64 33 5f 65 78 61 6d 70 6c 65 18 |erved3_example.|
|
|
103
|
+
|
|
104
|
+
-> AttestationSignature field of AttestationResponse (len 64 bytes):
|
|
105
|
+
00000000 79 82 53 5d 24 cf e1 4a 71 ab 04 24 cf 0b ac f1 |y.S]$..Jq..$....|
|
|
106
|
+
00000010 e3 45 48 7e d5 0f 1a c0 bc 25 9e cc fb 39 08 1e |.EH~.....%...9..|
|
|
107
|
+
00000020 d7 a7 52 18 8d 9f 76 f9 06 37 03 eb 24 0f 9c d1 |..R...v..7..$...|
|
|
108
|
+
00000030 4b 0a 43 e7 41 fe 60 ef 2a 81 63 5a ea 5b 48 4d |K.C.A.`.*.cZ.[HM|
|
|
109
|
+
*/
|
|
110
|
+
export const AttestationElements = '15310111013082010d06092a864886f70d010702a081ff3081fc020103310d300b0609608648016503040201306906092a864886f70d010701a05c045a152400012501f2ff360205018005028018250334122c04135a494732303134325a423333303030322d323424050024060024070124080094262408002509f1ff250a0080360b1014785ce705b86b8f4e6fc793aa60cb43ea696882d51818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502204ae9c9b7f8aa68610add84e41291fc8f4dc533fca29dc1fff2253c09cd32f7750221009c0a5fdef9e008d1cc8bb7c3959cdb65c46125cb7295081e47b5c131e4d1f48c300220e0421b91c6fdcdb40e2a4d2cf31db2b4e18b411b1d3ad4d12a9d90aa8e52fae22603fdc65b28d0f1ff3e0001001773616d706c655f76656e646f725f726573657276656431d0f1ff3e0003001876656e646f725f7265736572766564335f6578616d706c6518';
|
|
111
|
+
export const AttestationSignature = '7982535d24cfe14a71ab0424cf0bacf1e345487ed50f1ac0bc259eccfb39081ed7a752188d9f76f9063703eb240f9cd14b0a43e741fe60ef2a81635aea5b484d';
|
|
112
|
+
export const elinDAC = `-----BEGIN CERTIFICATE-----
|
|
113
|
+
MIICBjCCAaugAwIBAgIUNIqpoKLNHVCal90ZaRpbcAYRHzIwCgYIKoZIzj0EAwIw
|
|
114
|
+
NTEdMBsGA1UEAwwUU2hlbGx5IE1hdHRlciBQQUkgMDIxFDASBgorBgEEAYKifAIB
|
|
115
|
+
DAQxNDkwMCAXDTI1MDEyOTE1MTAzNVoYDzk5OTkxMjMxMjM1OTU5WjBsMT4wPAYD
|
|
116
|
+
VQQDDDVTaGVsbHkgQmF0Y2ggUzNQTC0wMDExMkVVLW1hdHRlci10ZXN0LTAwMSBT
|
|
117
|
+
TiBxd2VydHktNTEUMBIGCisGAQQBgqJ8AgEMBDE0OTAxFDASBgorBgEEAYKifAIC
|
|
118
|
+
DAQwMDAxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWXf60B73lZwzhjwqrKXK
|
|
119
|
+
ozWrPHA8sJPMXQk2lcA4DHgSkffeYpJVISVrg2D1fQ1PD/AJiezh9iUkNAAiS0NA
|
|
120
|
+
7KNgMF4wDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBQc5vd7ydQDijHxrY+Jafpn
|
|
121
|
+
GufYfzAdBgNVHQ4EFgQUvQ9tRG73T2UdDr079k6mGjNxbG4wDgYDVR0PAQH/BAQD
|
|
122
|
+
AgeAMAoGCCqGSM49BAMCA0kAMEYCIQCuRM+HrkgSPkLVDCGzglQMn1SDfGPKGFAb
|
|
123
|
+
caek7vzNSQIhAJ17pDLEJ6sFKlWXL+hjBAJsvYgd2JFXGNpYfBje8Zwn
|
|
124
|
+
-----END CERTIFICATE-----`;
|
|
125
|
+
export const elinDAK = `-----BEGIN PRIVATE KEY-----
|
|
126
|
+
MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgqAZKSqiyqsIOpIgM
|
|
127
|
+
jqr4mAYOuNuS662zigoF47Lwr3mgCgYIKoZIzj0DAQehRANCAARZd/rQHveVnDOG
|
|
128
|
+
PCqspcqjNas8cDywk8xdCTaVwDgMeBKR995iklUhJWuDYPV9DU8P8AmJ7OH2JSQ0
|
|
129
|
+
ACJLQ0Ds
|
|
130
|
+
-----END PRIVATE KEY-----`;
|
|
131
|
+
//# sourceMappingURL=testData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testData.js","sourceRoot":"","sources":["../../src/crypto/testData.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;0BAYG,CAAC;AAE3B,MAAM,CAAC,MAAM,MAAM,GAAG;;;;6BAIO,CAAC;AAE9B,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;0BAWG,CAAC;AAE3B,MAAM,CAAC,MAAM,MAAM,GAAG;;;;6BAIO,CAAC;AAE9B,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;0BAWG,CAAC;AAE3B,MAAM,CAAC,MAAM,MAAM,GAAG;;;;6BAIO,CAAC;AAE9B,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,MAAM;IACrB,UAAU,EAAE;QACV,GAAG,EAAE,IAAI;QACT,CAAC,EAAE,6CAA6C;QAChD,GAAG,EAAE,OAAO;QACZ,CAAC,EAAE,6CAA6C;QAChD,CAAC,EAAE,6CAA6C;KACjD;IACD,WAAW,EACT,49BAA49B;IAC99B,uBAAuB,EACrB,42BAA42B;IAC92B,WAAW,EACT,sdAAsd;CACzd,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,iBAAiB,EACf,whCAAwhC;IAC1hC,kBAAkB,EAChB,s7BAAs7B;IACx7B,mBAAmB,EACjB,8iBAA8iB;IAChjB,oBAAoB,EAAE,kIAAkI;CACzJ,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCE;AACF,MAAM,CAAC,MAAM,mBAAmB,GAC9B,wwBAAwwB,CAAC;AAE3wB,MAAM,CAAC,MAAM,oBAAoB,GAAG,kIAAkI,CAAC;AAEvK,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;;;;;;;;0BAYG,CAAC;AAE3B,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;0BAKG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walk-der.d.ts","sourceRoot":"","sources":["../../src/crypto/walk-der.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
/* eslint-disable no-console */
|
|
3
|
+
import { Shelly1Gen4 } from './testData.js';
|
|
4
|
+
const names = {
|
|
5
|
+
'551d13': 'BasicConstraints',
|
|
6
|
+
'551d0f': 'KeyUsage',
|
|
7
|
+
'551d0e': 'SubjectKeyIdentifier',
|
|
8
|
+
'551d23': 'AuthorityKeyIdentifier',
|
|
9
|
+
};
|
|
10
|
+
const extensions = [];
|
|
11
|
+
/**
|
|
12
|
+
* Convert a hex-encoded OID to its dot-separated form.
|
|
13
|
+
*
|
|
14
|
+
* @param {string} hexOid - The hex-encoded OID string.
|
|
15
|
+
* @returns {string} The dot-separated OID string.
|
|
16
|
+
*/
|
|
17
|
+
function oidToDot(hexOid) {
|
|
18
|
+
// Convert the hex string to an array of bytes
|
|
19
|
+
const bytes = hexOid.match(/.{1,2}/g)?.map((byte) => parseInt(byte, 16)) || [];
|
|
20
|
+
if (bytes.length < 2) {
|
|
21
|
+
throw new Error('Invalid OID encoding');
|
|
22
|
+
}
|
|
23
|
+
// Decode the first byte for the first two arcs
|
|
24
|
+
const firstArc = Math.floor(bytes[0] / 40);
|
|
25
|
+
const secondArc = bytes[0] % 40;
|
|
26
|
+
const arcs = [firstArc, secondArc];
|
|
27
|
+
// Decode the remaining bytes
|
|
28
|
+
let value = 0;
|
|
29
|
+
for (let i = 1; i < bytes.length; i++) {
|
|
30
|
+
const byte = bytes[i];
|
|
31
|
+
if (byte >= 0x80) {
|
|
32
|
+
// Multibyte value
|
|
33
|
+
value = (value << 7) | (byte & 0x7f);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Final byte in a multi-byte value, or single byte value
|
|
37
|
+
value = (value << 7) | byte;
|
|
38
|
+
arcs.push(value);
|
|
39
|
+
value = 0; // Reset for next arc
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return arcs.join('.');
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Read a TLV (Tag-Length-Value) structure from a buffer.
|
|
46
|
+
*
|
|
47
|
+
* @param {Buffer} buffer - The buffer containing the TLV data.
|
|
48
|
+
* @param {number} offset - The offset to start reading from.
|
|
49
|
+
* @returns {{ tag: number, length: number, value: Buffer, nextOffset: number }} The parsed TLV structure.
|
|
50
|
+
*/
|
|
51
|
+
function readTLV(buffer, offset) {
|
|
52
|
+
const tag = buffer.readUInt8(offset++);
|
|
53
|
+
// Read length
|
|
54
|
+
let length = buffer.readUInt8(offset++);
|
|
55
|
+
if (length & 0x80) {
|
|
56
|
+
// LENGTH > 127
|
|
57
|
+
const numLengthBytes = length & 0x7f;
|
|
58
|
+
length = 0;
|
|
59
|
+
for (let i = 0; i < numLengthBytes; i++) {
|
|
60
|
+
length = (length << 8) | buffer.readUInt8(offset++);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Read value
|
|
64
|
+
const value = buffer.slice(offset, offset + length);
|
|
65
|
+
offset += length;
|
|
66
|
+
return { tag, length, value, nextOffset: offset };
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Find a specific tag in a buffer.
|
|
70
|
+
*
|
|
71
|
+
* @param {Buffer} buffer - The buffer to search in.
|
|
72
|
+
* @param {number} tag - The tag to find.
|
|
73
|
+
* @param {number} offset - The offset to start searching from. Defaults to 0.
|
|
74
|
+
* @returns {Buffer | null} The value associated with the tag, or null if not found.
|
|
75
|
+
*/
|
|
76
|
+
function findTag(buffer, tag, offset = 0) {
|
|
77
|
+
let value = null;
|
|
78
|
+
while (offset < buffer.length) {
|
|
79
|
+
const currentTag = buffer.readUInt8(offset++);
|
|
80
|
+
const currentLength = buffer.readUInt8(offset++);
|
|
81
|
+
const currentValue = buffer.subarray(offset, offset + currentLength);
|
|
82
|
+
// console.log(`findTag: Buffer: ${buffer.toString('hex')} Tag: ${currentTag.toString(16).padStart(2, '0')}, Length: ${currentLength}, Value: ${currentValue.toString('hex')}`);
|
|
83
|
+
offset += currentLength;
|
|
84
|
+
if (currentTag === tag) {
|
|
85
|
+
value = currentValue;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return value;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Walk through a DER-encoded buffer and print its structure.
|
|
93
|
+
*
|
|
94
|
+
* @param {Buffer} derBuffer - The DER-encoded buffer to walk through.
|
|
95
|
+
* @param {number} level - The current level of recursion (for indentation).
|
|
96
|
+
*/
|
|
97
|
+
function walkThroughDER(derBuffer, level = 0) {
|
|
98
|
+
let offset = 0;
|
|
99
|
+
const indentation = ' '.repeat(level * 2);
|
|
100
|
+
while (offset < derBuffer.length) {
|
|
101
|
+
const { tag, length, value, nextOffset } = readTLV(derBuffer, offset);
|
|
102
|
+
const hexValue = value.toString('hex');
|
|
103
|
+
console.log(`${indentation}Tag: ${tag.toString(16).padStart(2, '0')}, Level: ${level} Length: ${length}, Value: ${hexValue.substring(0, 60)}${value.length > 30 ? '...' : ''}`);
|
|
104
|
+
// Check for the specific extensions we need
|
|
105
|
+
if (tag === 0x30) {
|
|
106
|
+
if (['551d13', '551d0f', '551d0e', '551d23'].some((prefix) => hexValue.startsWith(`0603${prefix}`))) {
|
|
107
|
+
const oid = value.subarray(2, 5).toString('hex');
|
|
108
|
+
const isCritical = findTag(value, 1, 5)?.toString('hex') === 'ff';
|
|
109
|
+
const extnValue = findTag(value, 4, 5);
|
|
110
|
+
if (extnValue && extnValue.length > 0) {
|
|
111
|
+
console.log(`${indentation}Extension OID: ${oid}, OidDot: ${oidToDot(oid)} Name: ${names[oid]}, Critical: ${isCritical}, Value: ${extnValue.toString('hex')}`);
|
|
112
|
+
extensions.push({
|
|
113
|
+
oid,
|
|
114
|
+
oidDot: oidToDot(oid),
|
|
115
|
+
name: names[oid],
|
|
116
|
+
critical: isCritical,
|
|
117
|
+
value: extnValue,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// If the tag is a constructed type (SEQUENCE or SET), recurse into value
|
|
123
|
+
if ((tag & 0x20) !== 0) {
|
|
124
|
+
walkThroughDER(value, level + 1);
|
|
125
|
+
}
|
|
126
|
+
offset = nextOffset;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Example usage:
|
|
130
|
+
const exampleDER = Buffer.from('308201e93082018fa00302010202080e063b742bcfbe5d300a06082a8648ce3d04030230463118301606035504030c0f4d617474657220546573742050414931143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303020170d3231303632383134323334335a180f39393939313233313233353935395a304b311d301b06035504030c144d6174746572205465737420444143203030303131143012060a2b0601040182a27c02010c044646463131143012060a2b0601040182a27c02020c04383030303059301306072a8648ce3d020106082a8648ce3d03010703420004c2258322c7dc72737c33beed707337aa2485bc46793e4d5ac9a75ad7435266c90a028eecaf2650fe7009effcaecbead1f2c3d12435dec2ead3d99295bfced6c3a360305e300c0603551d130101ff04023000300e0603551d0f0101ff040403020780301d0603551d0e0416041496c2d92494ea9785c0d16708e388f1c091ea0fd5301f0603551d23041830168014af42b7094debd515ec6ecf33b81115225f325288300a06082a8648ce3d040302034800304502205fcb29a40d3c35a6e8ce6065c6d09da6173dc5b245ec320491e3d34932b73e17022100b456990f520510045a388f754e771540a04497923196455e440d6825d9610364', 'hex');
|
|
131
|
+
walkThroughDER(exampleDER);
|
|
132
|
+
console.log('Extensions:', extensions);
|
|
133
|
+
const exampleDeclarationTlv = Buffer.from(`15310111013082010d06092a864886f70d010702a081ff3081fc020103310d300b0609608648016503040201306906092a864886f70d010701a05c045a152400012501f2ff360205018005028018250334122c04135a494732303134325a423333303030322d3234240500240600250794262408002509f1ff250a0080360b1014785ce705b86b8f4e6fc793aa60cb43ea696882d51818317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502204ae9c9b7f8aa68610add84e41291fc8f4dc533fca29dc1fff2253c09cd32f7750221009c0a5fdef9e008d1cc8bb7c3959cdb65c46125cb7295081e47b5c131e4d1f48c300220e0421b91c6fdcdb40e2a4d2cf31db2b4e18b411b1d3ad4d12a9d90aa8e52fae22603fdc65b28d0f1ff3e0001001773616d706c655f76656e646f725f726573657276656431d0f1ff3e0003001876656e646f725f7265736572766564335f6578616d706c6518`, 'hex');
|
|
134
|
+
const exampleDeclarationTlvBlock = Buffer.from(`152400012501f2ff360205018005028018250334122c04135a494732303134325a423333303030322d3234240500240600250794262408002509f1ff250a0080360b1014785ce705b86b8f4e6fc793aa60cb43ea696882d51818`, 'hex');
|
|
135
|
+
const matterbridgeDeclaration = Buffer.from('3081e706092a864886f70d010702a081d93081d6020103310d300b0609608648016503040201304306092a864886f70d010701a0360434152400012501f1ff3602050080182403162c0413435341303030303053574330303030302d303024050024060024070124080018317d307b020103801462fa823359acfaa9963e1cfa140addf504f37160300b0609608648016503040201300a06082a8648ce3d0403020447304502206e6c5c9f03b76326e41ec6f74ac4b5d725e58513124fb2dad83543fb65a3f82c022100b6346b20b94652fce1d8560cd06e06b102692324ff850b3ebc0af00b7f3c955f', 'hex');
|
|
136
|
+
walkThroughDER(matterbridgeDeclaration);
|
|
137
|
+
const certDAC = `-----BEGIN CERTIFICATE-----
|
|
138
|
+
MIIB6TCCAY+gAwIBAgIIDgY7dCvPvl0wCgYIKoZIzj0EAwIwRjEYMBYGA1UEAwwP
|
|
139
|
+
TWF0dGVyIFRlc3QgUEFJMRQwEgYKKwYBBAGConwCAQwERkZGMTEUMBIGCisGAQQB
|
|
140
|
+
gqJ8AgIMBDgwMDAwIBcNMjEwNjI4MTQyMzQzWhgPOTk5OTEyMzEyMzU5NTlaMEsx
|
|
141
|
+
HTAbBgNVBAMMFE1hdHRlciBUZXN0IERBQyAwMDAxMRQwEgYKKwYBBAGConwCAQwE
|
|
142
|
+
RkZGMTEUMBIGCisGAQQBgqJ8AgIMBDgwMDAwWTATBgcqhkjOPQIBBggqhkjOPQMB
|
|
143
|
+
BwNCAATCJYMix9xyc3wzvu1wczeqJIW8Rnk+TVrJp1rXQ1JmyQoCjuyvJlD+cAnv
|
|
144
|
+
/K7L6tHyw9EkNd7C6tPZkpW/ztbDo2AwXjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB
|
|
145
|
+
/wQEAwIHgDAdBgNVHQ4EFgQUlsLZJJTql4XA0WcI44jxwJHqD9UwHwYDVR0jBBgw
|
|
146
|
+
FoAUr0K3CU3r1RXsbs8zuBEVIl8yUogwCgYIKoZIzj0EAwIDSAAwRQIgX8sppA08
|
|
147
|
+
NabozmBlxtCdphc9xbJF7DIEkePTSTK3PhcCIQC0VpkPUgUQBFo4j3VOdxVAoESX
|
|
148
|
+
kjGWRV5EDWgl2WEDZA==
|
|
149
|
+
-----END CERTIFICATE-----`;
|
|
150
|
+
// Extract the first CERTIFICATE block we find
|
|
151
|
+
const block = /-----BEGIN CERTIFICATE-----[^-]+-----END CERTIFICATE-----/s.exec(certDAC);
|
|
152
|
+
if (!block)
|
|
153
|
+
throw new Error('No CERTIFICATE block found in the supplied PEM data');
|
|
154
|
+
walkThroughDER(Buffer.from(block[0]));
|
|
155
|
+
console.log('Shelly1Gen4.DeviceAttestation:');
|
|
156
|
+
walkThroughDER(Buffer.from(Shelly1Gen4.DeviceAttestation, 'hex'), 0);
|
|
157
|
+
console.log('Shelly1Gen4.ProductAttestation:');
|
|
158
|
+
walkThroughDER(Buffer.from(Shelly1Gen4.ProductAttestation, 'hex'), 0);
|
|
159
|
+
/*
|
|
160
|
+
console.log('Shelly1Gen4.AttestationElements:');
|
|
161
|
+
walkThroughDER(Buffer.from(Shelly1Gen4.AttestationElements, 'hex'), 0);
|
|
162
|
+
console.log('Shelly1Gen4.AttestationSignature:');
|
|
163
|
+
walkThroughDER(Buffer.from(Shelly1Gen4.AttestationSignature, 'hex'), 0);
|
|
164
|
+
*/
|
|
165
|
+
//# sourceMappingURL=walk-der.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walk-der.js","sourceRoot":"","sources":["../../src/crypto/walk-der.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file contains the DeviceManager class.
|
|
3
|
+
*
|
|
4
|
+
* @file devices.ts
|
|
5
|
+
* @author Luca Liguori
|
|
6
|
+
* @created 2024-07-26
|
|
7
|
+
* @version 1.1.2
|
|
8
|
+
* @license Apache-2.0
|
|
9
|
+
*
|
|
10
|
+
* Copyright 2024, 2025, 2026 Luca Liguori.
|
|
11
|
+
*
|
|
12
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
* you may not use this file except in compliance with the License.
|
|
14
|
+
* You may obtain a copy of the License at
|
|
15
|
+
*
|
|
16
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
*
|
|
18
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
* See the License for the specific language governing permissions and
|
|
22
|
+
* limitations under the License.
|
|
23
|
+
*/
|
|
24
|
+
import { LogLevel } from 'node-ansi-logger';
|
|
25
|
+
import type { BaseDevice } from '@matterbridge/types';
|
|
26
|
+
import type { MatterbridgeEndpoint } from './matterbridgeEndpoint.js';
|
|
27
|
+
/**
|
|
28
|
+
* Converts a MatterbridgeEndpoint to a BaseDevice.
|
|
29
|
+
*
|
|
30
|
+
* @param {MatterbridgeEndpoint} device The MatterbridgeEndpoint to convert.
|
|
31
|
+
* @returns {BaseDevice} The converted BaseDevice.
|
|
32
|
+
*/
|
|
33
|
+
export declare function toBaseDevice(device: MatterbridgeEndpoint | BaseDevice): BaseDevice;
|
|
34
|
+
/**
|
|
35
|
+
* Manages Matterbridge devices.
|
|
36
|
+
*/
|
|
37
|
+
export declare class DeviceManager {
|
|
38
|
+
private readonly _devices;
|
|
39
|
+
private readonly log;
|
|
40
|
+
private readonly server;
|
|
41
|
+
private readonly debug;
|
|
42
|
+
private readonly verbose;
|
|
43
|
+
/**
|
|
44
|
+
* Creates an instance of DeviceManager.
|
|
45
|
+
*/
|
|
46
|
+
constructor();
|
|
47
|
+
destroy(): void;
|
|
48
|
+
private msgHandler;
|
|
49
|
+
/**
|
|
50
|
+
* Gets the number of devices.
|
|
51
|
+
*
|
|
52
|
+
* @returns {number} The number of devices.
|
|
53
|
+
*/
|
|
54
|
+
get length(): number;
|
|
55
|
+
/**
|
|
56
|
+
* Gets the number of devices.
|
|
57
|
+
*
|
|
58
|
+
* @returns {number} The number of devices.
|
|
59
|
+
*/
|
|
60
|
+
get size(): number;
|
|
61
|
+
/**
|
|
62
|
+
* Checks if a device with the specified unique ID exists.
|
|
63
|
+
*
|
|
64
|
+
* @param {string} uniqueId - The unique ID of the device.
|
|
65
|
+
* @returns {boolean} True if the device exists, false otherwise.
|
|
66
|
+
*/
|
|
67
|
+
has(uniqueId: string): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Gets a device by its unique ID.
|
|
70
|
+
*
|
|
71
|
+
* @param {string} uniqueId - The unique ID of the device.
|
|
72
|
+
* @returns {MatterbridgeEndpoint | undefined} The device, or undefined if not found.
|
|
73
|
+
*/
|
|
74
|
+
get(uniqueId: string): MatterbridgeEndpoint | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Adds a device to the manager.
|
|
77
|
+
*
|
|
78
|
+
* @param {MatterbridgeEndpoint} device - The device to add.
|
|
79
|
+
* @returns {MatterbridgeEndpoint} The added device.
|
|
80
|
+
* @throws {Error} If the device does not have a unique ID.
|
|
81
|
+
*/
|
|
82
|
+
set(device: MatterbridgeEndpoint): MatterbridgeEndpoint;
|
|
83
|
+
/**
|
|
84
|
+
* Removes a device from the manager.
|
|
85
|
+
*
|
|
86
|
+
* @param {MatterbridgeEndpoint} device - The device to remove.
|
|
87
|
+
* @returns {boolean} True if the device was removed, false otherwise.
|
|
88
|
+
* @throws {Error} If the device does not have a unique ID.
|
|
89
|
+
*/
|
|
90
|
+
remove(device: MatterbridgeEndpoint): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Clears all devices from the manager.
|
|
93
|
+
*/
|
|
94
|
+
clear(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Converts a MatterbridgeEndpoint to a BaseDevice.
|
|
97
|
+
*
|
|
98
|
+
* @param {MatterbridgeEndpoint} device The MatterbridgeEndpoint to convert.
|
|
99
|
+
* @returns {BaseDevice} The converted BaseDevice.
|
|
100
|
+
*/
|
|
101
|
+
private toBaseDevice;
|
|
102
|
+
/**
|
|
103
|
+
* Gets an array of all devices.
|
|
104
|
+
*
|
|
105
|
+
* @returns {MatterbridgeEndpoint[]} An array of all devices.
|
|
106
|
+
*/
|
|
107
|
+
array(): MatterbridgeEndpoint[];
|
|
108
|
+
/**
|
|
109
|
+
* Gets a base array of all devices suitable for serialization.
|
|
110
|
+
*
|
|
111
|
+
* @param {string} [pluginName] - Optional plugin name to filter devices.
|
|
112
|
+
* @returns {ApiDevices[]} A base array of all devices.
|
|
113
|
+
*/
|
|
114
|
+
baseArray(pluginName?: string): BaseDevice[];
|
|
115
|
+
/**
|
|
116
|
+
* Iterates over all devices.
|
|
117
|
+
*
|
|
118
|
+
* @returns {IterableIterator<MatterbridgeEndpoint>} An iterator for the devices.
|
|
119
|
+
*/
|
|
120
|
+
[Symbol.iterator](): MapIterator<MatterbridgeEndpoint>;
|
|
121
|
+
/**
|
|
122
|
+
* Asynchronously iterates over each device and calls the provided callback function.
|
|
123
|
+
*
|
|
124
|
+
* @param {(device: MatterbridgeEndpoint) => Promise<void>} callback - The callback function to call with each device.
|
|
125
|
+
* @returns {Promise<void>} A promise that resolves when all callbacks have been called.
|
|
126
|
+
*/
|
|
127
|
+
forEach(callback: (device: MatterbridgeEndpoint) => Promise<void>): Promise<void>;
|
|
128
|
+
/**
|
|
129
|
+
* Sets the log level.
|
|
130
|
+
*
|
|
131
|
+
* @param {LogLevel} logLevel - The log level to set.
|
|
132
|
+
*/
|
|
133
|
+
set logLevel(logLevel: LogLevel);
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=deviceManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deviceManager.d.ts","sourceRoot":"","sources":["../src/deviceManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAkD,QAAQ,EAAmB,MAAM,kBAAkB,CAAC;AAI7G,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,qBAAqB,CAAC;AAIrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,UAAU,GAAG,UAAU,CA0BlF;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoD;IAC1E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD;;OAEG;;IASH,OAAO,IAAI,IAAI;YAKD,UAAU;IA6CxB;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;OAIG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B;;;;;OAKG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAIvD;;;;;;OAMG;IACH,GAAG,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB;IAUvD;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO;IAS7C;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;OAIG;IACH,KAAK,IAAI,oBAAoB,EAAE;IAI/B;;;;;OAKG;IACH,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE;IAU5C;;;;OAIG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB;;;;;OAKG;IACG,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvF;;;;OAIG;IACH,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAE9B;CACF"}
|