@matter/protocol 0.16.0-alpha.0-20251104-8c3166ea3 → 0.16.0-alpha.0-20251107-6bcb5baf4

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 (158) hide show
  1. package/dist/cjs/action/client/ClientInteraction.d.ts +1 -0
  2. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  3. package/dist/cjs/action/client/ClientInteraction.js +3 -0
  4. package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
  5. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js +2 -4
  6. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
  7. package/dist/cjs/advertisement/PairingHintBitmap.d.ts +2 -2
  8. package/dist/cjs/advertisement/PairingHintBitmap.js +1 -1
  9. package/dist/cjs/advertisement/PairingHintBitmap.js.map +1 -1
  10. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -1
  11. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js +22 -4
  12. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +1 -1
  13. package/dist/cjs/certificate/index.d.ts +1 -0
  14. package/dist/cjs/certificate/index.d.ts.map +1 -1
  15. package/dist/cjs/certificate/index.js +1 -0
  16. package/dist/cjs/certificate/index.js.map +1 -1
  17. package/dist/cjs/certificate/kinds/Icac.d.ts +2 -0
  18. package/dist/cjs/certificate/kinds/Icac.d.ts.map +1 -1
  19. package/dist/cjs/certificate/kinds/Icac.js +9 -0
  20. package/dist/cjs/certificate/kinds/Icac.js.map +1 -1
  21. package/dist/cjs/certificate/kinds/Noc.d.ts +2 -0
  22. package/dist/cjs/certificate/kinds/Noc.d.ts.map +1 -1
  23. package/dist/cjs/certificate/kinds/Noc.js +9 -0
  24. package/dist/cjs/certificate/kinds/Noc.js.map +1 -1
  25. package/dist/cjs/certificate/kinds/OperationalBase.d.ts +6 -1
  26. package/dist/cjs/certificate/kinds/OperationalBase.d.ts.map +1 -1
  27. package/dist/cjs/certificate/kinds/OperationalBase.js +14 -0
  28. package/dist/cjs/certificate/kinds/OperationalBase.js.map +1 -1
  29. package/dist/cjs/certificate/kinds/Rcac.d.ts +2 -0
  30. package/dist/cjs/certificate/kinds/Rcac.d.ts.map +1 -1
  31. package/dist/cjs/certificate/kinds/Rcac.js +9 -0
  32. package/dist/cjs/certificate/kinds/Rcac.js.map +1 -1
  33. package/dist/cjs/certificate/kinds/Vvsc.d.ts +29 -0
  34. package/dist/cjs/certificate/kinds/Vvsc.d.ts.map +1 -0
  35. package/dist/cjs/certificate/kinds/Vvsc.js +79 -0
  36. package/dist/cjs/certificate/kinds/Vvsc.js.map +6 -0
  37. package/dist/cjs/certificate/kinds/X509Base.d.ts +10 -3
  38. package/dist/cjs/certificate/kinds/X509Base.d.ts.map +1 -1
  39. package/dist/cjs/certificate/kinds/X509Base.js +304 -13
  40. package/dist/cjs/certificate/kinds/X509Base.js.map +2 -2
  41. package/dist/cjs/certificate/kinds/definitions/asn.d.ts +15 -0
  42. package/dist/cjs/certificate/kinds/definitions/asn.d.ts.map +1 -1
  43. package/dist/cjs/certificate/kinds/definitions/asn.js +33 -21
  44. package/dist/cjs/certificate/kinds/definitions/asn.js.map +2 -2
  45. package/dist/cjs/certificate/kinds/definitions/operational.d.ts +121 -12
  46. package/dist/cjs/certificate/kinds/definitions/operational.d.ts.map +1 -1
  47. package/dist/cjs/certificate/kinds/definitions/operational.js +8 -2
  48. package/dist/cjs/certificate/kinds/definitions/operational.js.map +1 -1
  49. package/dist/cjs/certificate/kinds/index.d.ts +1 -0
  50. package/dist/cjs/certificate/kinds/index.d.ts.map +1 -1
  51. package/dist/cjs/certificate/kinds/index.js +1 -0
  52. package/dist/cjs/certificate/kinds/index.js.map +1 -1
  53. package/dist/cjs/fabric/Fabric.d.ts +6 -1
  54. package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
  55. package/dist/cjs/fabric/Fabric.js +53 -2
  56. package/dist/cjs/fabric/Fabric.js.map +1 -1
  57. package/dist/cjs/fabric/FabricManager.d.ts.map +1 -1
  58. package/dist/cjs/fabric/FabricManager.js +24 -9
  59. package/dist/cjs/fabric/FabricManager.js.map +1 -1
  60. package/dist/cjs/mdns/MdnsConsts.d.ts +1 -1
  61. package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -1
  62. package/dist/cjs/mdns/MdnsConsts.js +1 -1
  63. package/dist/cjs/peer/PhysicalDeviceProperties.d.ts +11 -7
  64. package/dist/cjs/peer/PhysicalDeviceProperties.d.ts.map +1 -1
  65. package/dist/cjs/peer/PhysicalDeviceProperties.js +34 -25
  66. package/dist/cjs/peer/PhysicalDeviceProperties.js.map +1 -1
  67. package/dist/cjs/protocol/DeviceAdvertiser.d.ts.map +1 -1
  68. package/dist/cjs/protocol/DeviceAdvertiser.js +17 -0
  69. package/dist/cjs/protocol/DeviceAdvertiser.js.map +1 -1
  70. package/dist/esm/action/client/ClientInteraction.d.ts +1 -0
  71. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  72. package/dist/esm/action/client/ClientInteraction.js +3 -0
  73. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  74. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js +2 -4
  75. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
  76. package/dist/esm/advertisement/PairingHintBitmap.d.ts +2 -2
  77. package/dist/esm/advertisement/PairingHintBitmap.js +1 -1
  78. package/dist/esm/advertisement/PairingHintBitmap.js.map +1 -1
  79. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -1
  80. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js +22 -4
  81. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +1 -1
  82. package/dist/esm/certificate/index.d.ts +1 -0
  83. package/dist/esm/certificate/index.d.ts.map +1 -1
  84. package/dist/esm/certificate/index.js +1 -0
  85. package/dist/esm/certificate/index.js.map +1 -1
  86. package/dist/esm/certificate/kinds/Icac.d.ts +2 -0
  87. package/dist/esm/certificate/kinds/Icac.d.ts.map +1 -1
  88. package/dist/esm/certificate/kinds/Icac.js +9 -0
  89. package/dist/esm/certificate/kinds/Icac.js.map +1 -1
  90. package/dist/esm/certificate/kinds/Noc.d.ts +2 -0
  91. package/dist/esm/certificate/kinds/Noc.d.ts.map +1 -1
  92. package/dist/esm/certificate/kinds/Noc.js +9 -0
  93. package/dist/esm/certificate/kinds/Noc.js.map +1 -1
  94. package/dist/esm/certificate/kinds/OperationalBase.d.ts +6 -1
  95. package/dist/esm/certificate/kinds/OperationalBase.d.ts.map +1 -1
  96. package/dist/esm/certificate/kinds/OperationalBase.js +16 -2
  97. package/dist/esm/certificate/kinds/OperationalBase.js.map +1 -1
  98. package/dist/esm/certificate/kinds/Rcac.d.ts +2 -0
  99. package/dist/esm/certificate/kinds/Rcac.d.ts.map +1 -1
  100. package/dist/esm/certificate/kinds/Rcac.js +9 -0
  101. package/dist/esm/certificate/kinds/Rcac.js.map +1 -1
  102. package/dist/esm/certificate/kinds/Vvsc.d.ts +29 -0
  103. package/dist/esm/certificate/kinds/Vvsc.d.ts.map +1 -0
  104. package/dist/esm/certificate/kinds/Vvsc.js +59 -0
  105. package/dist/esm/certificate/kinds/Vvsc.js.map +6 -0
  106. package/dist/esm/certificate/kinds/X509Base.d.ts +10 -3
  107. package/dist/esm/certificate/kinds/X509Base.d.ts.map +1 -1
  108. package/dist/esm/certificate/kinds/X509Base.js +308 -14
  109. package/dist/esm/certificate/kinds/X509Base.js.map +2 -2
  110. package/dist/esm/certificate/kinds/definitions/asn.d.ts +15 -0
  111. package/dist/esm/certificate/kinds/definitions/asn.d.ts.map +1 -1
  112. package/dist/esm/certificate/kinds/definitions/asn.js +33 -21
  113. package/dist/esm/certificate/kinds/definitions/asn.js.map +1 -1
  114. package/dist/esm/certificate/kinds/definitions/operational.d.ts +121 -12
  115. package/dist/esm/certificate/kinds/definitions/operational.d.ts.map +1 -1
  116. package/dist/esm/certificate/kinds/definitions/operational.js +8 -2
  117. package/dist/esm/certificate/kinds/definitions/operational.js.map +1 -1
  118. package/dist/esm/certificate/kinds/index.d.ts +1 -0
  119. package/dist/esm/certificate/kinds/index.d.ts.map +1 -1
  120. package/dist/esm/certificate/kinds/index.js +1 -0
  121. package/dist/esm/certificate/kinds/index.js.map +1 -1
  122. package/dist/esm/fabric/Fabric.d.ts +6 -1
  123. package/dist/esm/fabric/Fabric.d.ts.map +1 -1
  124. package/dist/esm/fabric/Fabric.js +54 -3
  125. package/dist/esm/fabric/Fabric.js.map +1 -1
  126. package/dist/esm/fabric/FabricManager.d.ts.map +1 -1
  127. package/dist/esm/fabric/FabricManager.js +25 -9
  128. package/dist/esm/fabric/FabricManager.js.map +1 -1
  129. package/dist/esm/mdns/MdnsConsts.d.ts +1 -1
  130. package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -1
  131. package/dist/esm/mdns/MdnsConsts.js +1 -1
  132. package/dist/esm/peer/PhysicalDeviceProperties.d.ts +11 -7
  133. package/dist/esm/peer/PhysicalDeviceProperties.d.ts.map +1 -1
  134. package/dist/esm/peer/PhysicalDeviceProperties.js +35 -26
  135. package/dist/esm/peer/PhysicalDeviceProperties.js.map +1 -1
  136. package/dist/esm/protocol/DeviceAdvertiser.d.ts.map +1 -1
  137. package/dist/esm/protocol/DeviceAdvertiser.js +17 -0
  138. package/dist/esm/protocol/DeviceAdvertiser.js.map +1 -1
  139. package/package.json +6 -6
  140. package/src/action/client/ClientInteraction.ts +5 -1
  141. package/src/action/client/subscription/ClientSubscriptionHandler.ts +2 -4
  142. package/src/advertisement/PairingHintBitmap.ts +1 -1
  143. package/src/advertisement/mdns/CommissionableMdnsAdvertisement.ts +23 -6
  144. package/src/certificate/index.ts +1 -0
  145. package/src/certificate/kinds/Icac.ts +12 -0
  146. package/src/certificate/kinds/Noc.ts +12 -0
  147. package/src/certificate/kinds/OperationalBase.ts +18 -3
  148. package/src/certificate/kinds/Rcac.ts +12 -0
  149. package/src/certificate/kinds/Vvsc.ts +72 -0
  150. package/src/certificate/kinds/X509Base.ts +426 -7
  151. package/src/certificate/kinds/definitions/asn.ts +50 -24
  152. package/src/certificate/kinds/definitions/operational.ts +10 -2
  153. package/src/certificate/kinds/index.ts +1 -0
  154. package/src/fabric/Fabric.ts +66 -3
  155. package/src/fabric/FabricManager.ts +32 -9
  156. package/src/mdns/MdnsConsts.ts +1 -1
  157. package/src/peer/PhysicalDeviceProperties.ts +52 -35
  158. package/src/protocol/DeviceAdvertiser.ts +30 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/fabric/FabricManager.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["FabricAction"]
6
6
  }
@@ -15,7 +15,7 @@ export declare const DEFAULT_PAIRING_HINT: {
15
15
  powerCycle: boolean;
16
16
  deviceManual: boolean;
17
17
  };
18
- export declare const PAIRING_HINTS_REQUIRING_INSTRUCTION: ("powerCycle" | "deviceManufacturerUrl" | "administrator" | "settingsMenuOnNode" | "customInstruction" | "deviceManual" | "pressResetButton" | "pressResetButtonWithApplicationOfPower" | "pressRestButtonForNumberOfSeconds" | "pressResetButtonUntilLightBlinks" | "pressResetButtonForNumberOfSecondsWithApplicationOfPower" | "pressResetButtonUntilLightBlinksWithApplicationOfPower" | "pressResetButtonNumberOfTimes" | "pressSetupButton" | "pressSetupButtonWithApplicationOfPower" | "pressSetupButtonForNumberOfSeconds" | "pressSetupButtonUntilLightBlinks" | "pressSetupButtonForNumberOfSecondsWithApplicationOfPower" | "pressSetupButtonUntilLightBlinksWithApplicationOfPower" | "pressSetupButtonNumberOfTimes")[];
18
+ export declare const PAIRING_HINTS_REQUIRING_INSTRUCTION: ("powerCycle" | "deviceManufacturerUrl" | "administrator" | "settingsMenuOnNode" | "customInstruction" | "deviceManual" | "pressResetButton" | "pressResetButtonWithApplicationOfPower" | "pressResetButtonForNumberOfSeconds" | "pressResetButtonUntilLightBlinks" | "pressResetButtonForNumberOfSecondsWithApplicationOfPower" | "pressResetButtonUntilLightBlinksWithApplicationOfPower" | "pressResetButtonNumberOfTimes" | "pressSetupButton" | "pressSetupButtonWithApplicationOfPower" | "pressSetupButtonForNumberOfSeconds" | "pressSetupButtonUntilLightBlinks" | "pressSetupButtonForNumberOfSecondsWithApplicationOfPower" | "pressSetupButtonUntilLightBlinksWithApplicationOfPower" | "pressSetupButtonNumberOfTimes")[];
19
19
  export declare const getFabricQname: (operationalIdString: string) => string;
20
20
  export declare const getOperationalDeviceQname: (operationalIdString: string, nodeIdString: string) => string;
21
21
  export declare const getVendorQname: (vendorId: VendorId) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"MdnsConsts.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsConsts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AACtE,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AACrE,eAAO,MAAM,iCAAiC,wBAAwB,CAAC;AACvE,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AAEzD,eAAO,MAAM,oBAAoB;;;CAGhC,CAAC;AAEF,eAAO,MAAM,mCAAmC,usBAY/C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,qBAAqB,MAAM,WAA4D,CAAC;AACvH,eAAO,MAAM,yBAAyB,GAAI,qBAAqB,MAAM,EAAE,cAAc,MAAM,WACvB,CAAC;AACrE,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,WAA4D,CAAC;AAC9G,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,WAA8D,CAAC;AACpH,eAAO,MAAM,0BAA0B,GAAI,oBAAoB,MAAM,WACA,CAAC;AACtE,eAAO,MAAM,yBAAyB,GAAI,mBAAmB,MAAM,WACC,CAAC;AACrE,eAAO,MAAM,yBAAyB,cAAsD,CAAC;AAC7F,eAAO,MAAM,4BAA4B,GAAI,YAAY,MAAM,WAAuD,CAAC;AACvH,eAAO,MAAM,0BAA0B,GAAI,YAAY,MAAM,WAAyD,CAAC"}
1
+ {"version":3,"file":"MdnsConsts.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsConsts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AACtE,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AACrE,eAAO,MAAM,iCAAiC,wBAAwB,CAAC;AACvE,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AAEzD,eAAO,MAAM,oBAAoB;;;CAGhC,CAAC;AAEF,eAAO,MAAM,mCAAmC,wsBAY/C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,qBAAqB,MAAM,WAA4D,CAAC;AACvH,eAAO,MAAM,yBAAyB,GAAI,qBAAqB,MAAM,EAAE,cAAc,MAAM,WACvB,CAAC;AACrE,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,WAA4D,CAAC;AAC9G,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,WAA8D,CAAC;AACpH,eAAO,MAAM,0BAA0B,GAAI,oBAAoB,MAAM,WACA,CAAC;AACtE,eAAO,MAAM,yBAAyB,GAAI,mBAAmB,MAAM,WACC,CAAC;AACrE,eAAO,MAAM,yBAAyB,cAAsD,CAAC;AAC7F,eAAO,MAAM,4BAA4B,GAAI,YAAY,MAAM,WAAuD,CAAC;AACvH,eAAO,MAAM,0BAA0B,GAAI,YAAY,MAAM,WAAyD,CAAC"}
@@ -16,7 +16,7 @@ const DEFAULT_PAIRING_HINT = {
16
16
  };
17
17
  const PAIRING_HINTS_REQUIRING_INSTRUCTION = Array(
18
18
  "customInstruction",
19
- "pressRestButtonForNumberOfSeconds",
19
+ "pressResetButtonForNumberOfSeconds",
20
20
  "pressResetButtonUntilLightBlinks",
21
21
  "pressResetButtonForNumberOfSecondsWithApplicationOfPower",
22
22
  "pressResetButtonUntilLightBlinksWithApplicationOfPower",
@@ -3,24 +3,28 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Duration } from "#general";
6
7
  export interface PhysicalDeviceProperties {
7
8
  threadConnected: boolean;
8
9
  wifiConnected: boolean;
9
10
  ethernetConnected: boolean;
10
11
  rootEndpointServerList: number[];
12
+ isMainsPowered: boolean;
11
13
  isBatteryPowered: boolean;
12
14
  isIntermittentlyConnected: boolean;
13
15
  isThreadSleepyEndDevice: boolean;
14
16
  }
15
17
  export declare namespace PhysicalDeviceProperties {
16
- function determineSubscriptionParameters(options?: {
18
+ function subscriptionIntervalBoundsFor(options?: {
17
19
  properties?: PhysicalDeviceProperties;
18
20
  description?: string;
19
- subscribeMinIntervalFloorSeconds?: number;
20
- subscribeMaxIntervalCeilingSeconds?: number;
21
- }): {
22
- minIntervalFloorSeconds: number;
23
- maxIntervalCeilingSeconds: number;
24
- };
21
+ request?: Partial<PhysicalDeviceProperties.IntervalBounds>;
22
+ }): PhysicalDeviceProperties.IntervalBounds;
23
+ }
24
+ export declare namespace PhysicalDeviceProperties {
25
+ interface IntervalBounds {
26
+ minIntervalFloor: Duration;
27
+ maxIntervalCeiling: Duration;
28
+ }
25
29
  }
26
30
  //# sourceMappingURL=PhysicalDeviceProperties.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PhysicalDeviceProperties.d.ts","sourceRoot":"","sources":["../../../src/peer/PhysicalDeviceProperties.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,MAAM,WAAW,wBAAwB;IACrC,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,OAAO,CAAC;CACpC;AAED,yBAAiB,wBAAwB,CAAC;IACtC,SAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;QACtD,UAAU,CAAC,EAAE,wBAAwB,CAAC;QACtC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gCAAgC,CAAC,EAAE,MAAM,CAAC;QAC1C,kCAAkC,CAAC,EAAE,MAAM,CAAC;KAC/C;;;MA6CA;CACJ"}
1
+ {"version":3,"file":"PhysicalDeviceProperties.d.ts","sourceRoot":"","sources":["../../../src/peer/PhysicalDeviceProperties.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAqC,MAAM,UAAU,CAAC;AAWvE,MAAM,WAAW,wBAAwB;IACrC,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,OAAO,CAAC;CACpC;AAED,yBAAiB,wBAAwB,CAAC;IACtC,SAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE;QACpD,UAAU,CAAC,EAAE,wBAAwB,CAAC;QACtC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;KAC9D,GAAG,wBAAwB,CAAC,cAAc,CAuD1C;CACJ;AAED,yBAAiB,wBAAwB,CAAC;IACtC,UAAiB,cAAc;QAC3B,gBAAgB,EAAE,QAAQ,CAAC;QAC3B,kBAAkB,EAAE,QAAQ,CAAC;KAChC;CACJ"}
@@ -3,50 +3,59 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Logger } from "#general";
6
+ import { Duration, Instant, Logger, Minutes, Seconds } from "#general";
7
7
  const logger = Logger.get("PhysicalDeviceProperties");
8
- const DEFAULT_SUBSCRIPTION_FLOOR_DEFAULT_S = 1;
9
- const DEFAULT_SUBSCRIPTION_FLOOR_ICD_S = 0;
10
- const DEFAULT_SUBSCRIPTION_CEILING_WIFI_S = 60;
11
- const DEFAULT_SUBSCRIPTION_CEILING_THREAD_S = 60;
12
- const DEFAULT_SUBSCRIPTION_CEILING_THREAD_SLEEPY_S = 180;
13
- const DEFAULT_SUBSCRIPTION_CEILING_BATTERY_POWERED_S = 600;
8
+ const DEFAULT_SUBSCRIPTION_FLOOR_DEFAULT = Seconds(1);
9
+ const DEFAULT_SUBSCRIPTION_FLOOR_ICD = Instant;
10
+ const DEFAULT_SUBSCRIPTION_CEILING_WIFI = Minutes(1);
11
+ const DEFAULT_SUBSCRIPTION_CEILING_THREAD = Minutes(1);
12
+ const DEFAULT_SUBSCRIPTION_CEILING_THREAD_SLEEPY = Minutes(3);
13
+ const DEFAULT_SUBSCRIPTION_CEILING_BATTERY_POWERED = Minutes(10);
14
14
  var PhysicalDeviceProperties;
15
15
  ((PhysicalDeviceProperties2) => {
16
- function determineSubscriptionParameters(options) {
17
- const { properties } = options ?? {};
18
- let {
19
- description,
20
- subscribeMinIntervalFloorSeconds: minIntervalFloorSeconds,
21
- subscribeMaxIntervalCeilingSeconds: maxIntervalCeilingSeconds
22
- } = options ?? {};
16
+ function subscriptionIntervalBoundsFor(options) {
17
+ const { properties, request } = options ?? {};
18
+ let { description } = options ?? {};
19
+ let minIntervalFloor, maxIntervalCeiling;
20
+ if (request) {
21
+ ({ minIntervalFloor, maxIntervalCeiling } = request);
22
+ }
23
23
  if (description === void 0) {
24
24
  description = "Node";
25
25
  }
26
- const { isBatteryPowered, isIntermittentlyConnected, threadConnected, isThreadSleepyEndDevice } = properties ?? {};
26
+ const {
27
+ isMainsPowered,
28
+ isBatteryPowered,
29
+ isIntermittentlyConnected,
30
+ threadConnected,
31
+ isThreadSleepyEndDevice
32
+ } = properties ?? {};
27
33
  if (isIntermittentlyConnected) {
28
- if (minIntervalFloorSeconds !== void 0 && minIntervalFloorSeconds !== DEFAULT_SUBSCRIPTION_FLOOR_ICD_S) {
34
+ if (minIntervalFloor !== void 0 && minIntervalFloor !== DEFAULT_SUBSCRIPTION_FLOOR_ICD) {
29
35
  logger.info(
30
- `${description}: Overwriting minIntervalFloorSeconds for intermittently connected device to ${DEFAULT_SUBSCRIPTION_FLOOR_ICD_S}`
36
+ `${description}: Overwriting minIntervalFloorSeconds for intermittently connected device to ${Duration.format(DEFAULT_SUBSCRIPTION_FLOOR_ICD)}`
31
37
  );
32
- minIntervalFloorSeconds = DEFAULT_SUBSCRIPTION_FLOOR_ICD_S;
38
+ minIntervalFloor = DEFAULT_SUBSCRIPTION_FLOOR_ICD;
33
39
  }
34
40
  }
35
- const defaultCeiling = isBatteryPowered ? DEFAULT_SUBSCRIPTION_CEILING_BATTERY_POWERED_S : isThreadSleepyEndDevice ? DEFAULT_SUBSCRIPTION_CEILING_THREAD_SLEEPY_S : threadConnected ? DEFAULT_SUBSCRIPTION_CEILING_THREAD_S : DEFAULT_SUBSCRIPTION_CEILING_WIFI_S;
36
- if (maxIntervalCeilingSeconds === void 0) {
37
- maxIntervalCeilingSeconds = defaultCeiling;
41
+ if (minIntervalFloor === void 0) {
42
+ minIntervalFloor = DEFAULT_SUBSCRIPTION_FLOOR_DEFAULT;
43
+ }
44
+ const defaultCeiling = isBatteryPowered && !isMainsPowered ? DEFAULT_SUBSCRIPTION_CEILING_BATTERY_POWERED : isThreadSleepyEndDevice ? DEFAULT_SUBSCRIPTION_CEILING_THREAD_SLEEPY : threadConnected ? DEFAULT_SUBSCRIPTION_CEILING_THREAD : DEFAULT_SUBSCRIPTION_CEILING_WIFI;
45
+ if (maxIntervalCeiling === void 0) {
46
+ maxIntervalCeiling = defaultCeiling;
38
47
  }
39
- if (maxIntervalCeilingSeconds < defaultCeiling) {
48
+ if (maxIntervalCeiling < defaultCeiling) {
40
49
  logger.debug(
41
- `${description}: maxIntervalCeilingSeconds ideally is ${defaultCeiling}s instead of ${maxIntervalCeilingSeconds}s due to device type`
50
+ `${description}: maxIntervalCeilingSeconds ideally is ${defaultCeiling}s instead of ${maxIntervalCeiling}s due to device type`
42
51
  );
43
52
  }
44
53
  return {
45
- minIntervalFloorSeconds: minIntervalFloorSeconds ?? DEFAULT_SUBSCRIPTION_FLOOR_DEFAULT_S,
46
- maxIntervalCeilingSeconds
54
+ minIntervalFloor,
55
+ maxIntervalCeiling
47
56
  };
48
57
  }
49
- PhysicalDeviceProperties2.determineSubscriptionParameters = determineSubscriptionParameters;
58
+ PhysicalDeviceProperties2.subscriptionIntervalBoundsFor = subscriptionIntervalBoundsFor;
50
59
  })(PhysicalDeviceProperties || (PhysicalDeviceProperties = {}));
51
60
  export {
52
61
  PhysicalDeviceProperties
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/peer/PhysicalDeviceProperties.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AAEvB,MAAM,SAAS,OAAO,IAAI,0BAA0B;AAEpD,MAAM,uCAAuC;AAC7C,MAAM,mCAAmC;AACzC,MAAM,sCAAsC;AAC5C,MAAM,wCAAwC;AAC9C,MAAM,+CAA+C;AACrD,MAAM,iDAAiD;AAYhD,IAAU;AAAA,CAAV,CAAUA,8BAAV;AACI,WAAS,gCAAgC,SAK7C;AACC,UAAM,EAAE,WAAW,IAAI,WAAW,CAAC;AAEnC,QAAI;AAAA,MACA;AAAA,MACA,kCAAkC;AAAA,MAClC,oCAAoC;AAAA,IACxC,IAAI,WAAW,CAAC;AAEhB,QAAI,gBAAgB,QAAW;AAC3B,oBAAc;AAAA,IAClB;AAEA,UAAM,EAAE,kBAAkB,2BAA2B,iBAAiB,wBAAwB,IAC1F,cAAc,CAAC;AAEnB,QAAI,2BAA2B;AAC3B,UAAI,4BAA4B,UAAa,4BAA4B,kCAAkC;AACvG,eAAO;AAAA,UACH,GAAG,WAAW,gFAAgF,gCAAgC;AAAA,QAClI;AACA,kCAA0B;AAAA,MAC9B;AAAA,IACJ;AAEA,UAAM,iBAAiB,mBACjB,iDACA,0BACE,+CACA,kBACE,wCACA;AACV,QAAI,8BAA8B,QAAW;AACzC,kCAA4B;AAAA,IAChC;AACA,QAAI,4BAA4B,gBAAgB;AAC5C,aAAO;AAAA,QACH,GAAG,WAAW,0CAA0C,cAAc,gBAAgB,yBAAyB;AAAA,MACnH;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,yBAAyB,2BAA2B;AAAA,MACpD;AAAA,IACJ;AAAA,EACJ;AAlDO,EAAAA,0BAAS;AAAA,GADH;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,UAAU,SAAS,QAAQ,SAAS,eAAe;AAE5D,MAAM,SAAS,OAAO,IAAI,0BAA0B;AAEpD,MAAM,qCAAqC,QAAQ,CAAC;AACpD,MAAM,iCAAiC;AACvC,MAAM,oCAAoC,QAAQ,CAAC;AACnD,MAAM,sCAAsC,QAAQ,CAAC;AACrD,MAAM,6CAA6C,QAAQ,CAAC;AAC5D,MAAM,+CAA+C,QAAQ,EAAE;AAaxD,IAAU;AAAA,CAAV,CAAUA,8BAAV;AACI,WAAS,8BAA8B,SAIF;AACxC,UAAM,EAAE,YAAY,QAAQ,IAAI,WAAW,CAAC;AAE5C,QAAI,EAAE,YAAY,IAAI,WAAW,CAAC;AAElC,QAAI,kBAAkB;AACtB,QAAI,SAAS;AACT,OAAC,EAAE,kBAAkB,mBAAmB,IAAI;AAAA,IAChD;AAEA,QAAI,gBAAgB,QAAW;AAC3B,oBAAc;AAAA,IAClB;AAEA,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI,cAAc,CAAC;AAEnB,QAAI,2BAA2B;AAC3B,UAAI,qBAAqB,UAAa,qBAAqB,gCAAgC;AACvF,eAAO;AAAA,UACH,GAAG,WAAW,gFAAgF,SAAS,OAAO,8BAA8B,CAAC;AAAA,QACjJ;AACA,2BAAmB;AAAA,MACvB;AAAA,IACJ;AACA,QAAI,qBAAqB,QAAW;AAChC,yBAAmB;AAAA,IACvB;AAEA,UAAM,iBACF,oBAAoB,CAAC,iBACf,+CACA,0BACE,6CACA,kBACE,sCACA;AACd,QAAI,uBAAuB,QAAW;AAClC,2BAAqB;AAAA,IACzB;AACA,QAAI,qBAAqB,gBAAgB;AACrC,aAAO;AAAA,QACH,GAAG,WAAW,0CAA0C,cAAc,gBAAgB,kBAAkB;AAAA,MAC5G;AAAA,IACJ;AAEA,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AA3DO,EAAAA,0BAAS;AAAA,GADH;",
5
5
  "names": ["PhysicalDeviceProperties"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceAdvertiser.d.ts","sourceRoot":"","sources":["../../../src/protocol/DeviceAdvertiser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,aAAa,EAA+C,MAAM,UAAU,CAAC;AAEnG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,cAAc,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,gBAAgB;;gBAQb,OAAO,EAAE,uBAAuB;IA8E5C,QAAQ;IAIR,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAS9C;;OAEG;IACH,sBAAsB,CAAC,WAAW,EAAE,kBAAkB,CAAC,cAAc;IAsBrE;;OAEG;IACH,qBAAqB;IASrB;;OAEG;IACH,oBAAoB;IA+BpB;;OAEG;IACH,mBAAmB;IAUnB;;;;OAIG;IACH,oBAAoB;IAKd,KAAK;IAMX,aAAa,CAAC,UAAU,EAAE,UAAU;IAIpC,aAAa,CAAC,UAAU,EAAE,UAAU;IAI9B,gBAAgB,CAAC,UAAU,EAAE,UAAU;IAKvC,gBAAgB;CA6BzB"}
1
+ {"version":3,"file":"DeviceAdvertiser.d.ts","sourceRoot":"","sources":["../../../src/protocol/DeviceAdvertiser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,aAAa,EAA+C,MAAM,UAAU,CAAC;AAEnG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,cAAc,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,gBAAgB;;gBAQb,OAAO,EAAE,uBAAuB;IA4G5C,QAAQ;IAIR,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAS9C;;OAEG;IACH,sBAAsB,CAAC,WAAW,EAAE,kBAAkB,CAAC,cAAc;IAsBrE;;OAEG;IACH,qBAAqB;IASrB;;OAEG;IACH,oBAAoB;IA+BpB;;OAEG;IACH,mBAAmB;IAUnB;;;;OAIG;IACH,oBAAoB;IAKd,KAAK;IAMX,aAAa,CAAC,UAAU,EAAE,UAAU;IAIpC,aAAa,CAAC,UAAU,EAAE,UAAU;IAI9B,gBAAgB,CAAC,UAAU,EAAE,UAAU;IAKvC,gBAAgB;CA6BzB"}
@@ -25,6 +25,23 @@ class DeviceAdvertiser {
25
25
  }
26
26
  this.#advertiseFabric(fabric, "startup");
27
27
  });
28
+ this.#observers.on(fabrics.events.updated, async (fabric) => {
29
+ if (!this.#isOperational) {
30
+ return;
31
+ }
32
+ const fabricIndexAdvertisements = this.#advertisements(
33
+ (ad) => ad.isOperational() && ad.description.fabric.fabricIndex === fabric.fabricIndex
34
+ );
35
+ if (fabricIndexAdvertisements.every(
36
+ (ad) => ad.isOperational() && ad.description.fabric.operationalId === fabric.operationalId && ad.description.fabric.nodeId === fabric.nodeId
37
+ )) {
38
+ return;
39
+ }
40
+ for (const ad of fabricIndexAdvertisements) {
41
+ await ad.close();
42
+ }
43
+ this.#advertiseFabric(fabric, "startup");
44
+ });
28
45
  this.#observers.on(fabrics.events.deleted, (fabric) => {
29
46
  Advertisement.cancelAll(this.#advertisements((ad) => ad.isOperational() && ad.description.fabric === fabric));
30
47
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/DeviceAdvertiser.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/protocol",
3
- "version": "0.16.0-alpha.0-20251104-8c3166ea3",
3
+ "version": "0.16.0-alpha.0-20251107-6bcb5baf4",
4
4
  "description": "Low-level APIs for Matter interaction",
5
5
  "keywords": [
6
6
  "iot",
@@ -40,13 +40,13 @@
40
40
  "#*": "./src/*"
41
41
  },
42
42
  "dependencies": {
43
- "@matter/general": "0.16.0-alpha.0-20251104-8c3166ea3",
44
- "@matter/model": "0.16.0-alpha.0-20251104-8c3166ea3",
45
- "@matter/types": "0.16.0-alpha.0-20251104-8c3166ea3"
43
+ "@matter/general": "0.16.0-alpha.0-20251107-6bcb5baf4",
44
+ "@matter/model": "0.16.0-alpha.0-20251107-6bcb5baf4",
45
+ "@matter/types": "0.16.0-alpha.0-20251107-6bcb5baf4"
46
46
  },
47
47
  "devDependencies": {
48
- "@matter/tools": "0.16.0-alpha.0-20251104-8c3166ea3",
49
- "@matter/testing": "0.16.0-alpha.0-20251104-8c3166ea3"
48
+ "@matter/tools": "0.16.0-alpha.0-20251107-6bcb5baf4",
49
+ "@matter/testing": "0.16.0-alpha.0-20251107-6bcb5baf4"
50
50
  },
51
51
  "files": [
52
52
  "dist/**/*",
@@ -59,7 +59,7 @@ export class ClientInteraction<SessionT extends InteractionSession = Interaction
59
59
  readonly #exchanges: ExchangeProvider;
60
60
  readonly #subscriptions: ClientSubscriptions;
61
61
  readonly #interactions = new BasicSet<Read | Write | Invoke | Subscribe>();
62
- readonly #abort;
62
+ readonly #abort: Abort;
63
63
  readonly #sustainRetries: RetrySchedule;
64
64
 
65
65
  constructor({ environment, abort, sustainRetries }: ClientInteractionContext) {
@@ -72,6 +72,10 @@ export class ClientInteraction<SessionT extends InteractionSession = Interaction
72
72
  );
73
73
  }
74
74
 
75
+ get session() {
76
+ return this.#exchanges.session;
77
+ }
78
+
75
79
  async close() {
76
80
  this.#abort();
77
81
 
@@ -119,11 +119,9 @@ async function* processReports(
119
119
  const decoded = DecodedDataReport(report);
120
120
 
121
121
  if (decoded.subscriptionId === undefined) {
122
- logger.debug(
123
- "Ignoring data report for incorrect subscription id",
124
- Diagnostic.strong(decoded.subscriptionId),
125
- );
122
+ logger.debug("Ignoring data report with missing subscription id");
126
123
  await sendInvalid(messenger, decoded.subscriptionId);
124
+ continue;
127
125
  }
128
126
 
129
127
  if (decoded.subscriptionId !== subscriptionId) {
@@ -59,7 +59,7 @@ export const PairingHintBitmap = {
59
59
  * The Device will enter Commissioning Mode when reset button is pressed for N seconds. The exact value of N SHALL
60
60
  * be made available via PI key.
61
61
  */
62
- pressRestButtonForNumberOfSeconds: BitFlag(8),
62
+ pressResetButtonForNumberOfSeconds: BitFlag(8),
63
63
 
64
64
  /**
65
65
  * The Device will enter Commissioning Mode when reset button is pressed until associated light blinks.
@@ -106,13 +106,30 @@ export class CommissionableMdnsAdvertisement extends MdnsAdvertisement<ServiceDe
106
106
  #validatePairingInstructions() {
107
107
  const { pairingHint, pairingInstructions } = this.description;
108
108
 
109
- const needsInstructions =
110
- pairingHint && PAIRING_HINTS_REQUIRING_INSTRUCTION.find(hint => pairingHint[hint] === true);
111
-
112
- if (needsInstructions && !pairingInstructions) {
113
- throw new ImplementationError(
114
- `Pairing instructions required for pairing hint of type "${needsInstructions}"`,
109
+ if (pairingHint) {
110
+ if (Object.values(pairingHint).every(v => !v)) {
111
+ throw new ImplementationError("At least one pairing hint must be set if pairing hint is provided");
112
+ }
113
+
114
+ const needsInstructionsCount = PAIRING_HINTS_REQUIRING_INSTRUCTION.reduce(
115
+ (count, hint) => (pairingHint[hint] === true ? count + 1 : count),
116
+ 0,
115
117
  );
118
+ if (needsInstructionsCount > 1) {
119
+ throw new ImplementationError(
120
+ `Only one pairing hint requiring instructions can be set, but got ${needsInstructionsCount}`,
121
+ );
122
+ } else if (needsInstructionsCount === 1 && !pairingInstructions) {
123
+ throw new ImplementationError(
124
+ `Pairing instructions are required when a pairing hint requiring instructions is set`,
125
+ );
126
+ } else if (needsInstructionsCount === 0 && pairingInstructions) {
127
+ throw new ImplementationError(
128
+ `Pairing instructions provided but no pairing hint requiring instructions set`,
129
+ );
130
+ }
131
+ } else if (pairingInstructions) {
132
+ throw new ImplementationError("Pairing instructions provided but no pairing hint set");
116
133
  }
117
134
  }
118
135
  }
@@ -14,4 +14,5 @@ export { CertificateError } from "./kinds/common.js";
14
14
  export * from "./kinds/Icac.js";
15
15
  export * from "./kinds/Noc.js";
16
16
  export * from "./kinds/Rcac.js";
17
+ export * from "./kinds/Vvsc.js";
17
18
  export * from "./kinds/X509Base.js";
@@ -11,6 +11,7 @@ import { ExtensionKeyUsageSchema } from "./definitions/base.js";
11
11
  import { OperationalCertificate } from "./definitions/operational.js";
12
12
  import { OperationalBase } from "./OperationalBase.js";
13
13
  import { Rcac } from "./Rcac.js";
14
+ import { X509Base } from "./X509Base.js";
14
15
 
15
16
  /**
16
17
  * Represents an Intermediate Certificate
@@ -21,6 +22,12 @@ export class Icac extends OperationalBase<OperationalCertificate.Icac> {
21
22
  return new Icac(OperationalCertificate.TlvIcac.decode(tlv));
22
23
  }
23
24
 
25
+ /** Construct the class from an ASN.1/DER encoded certificate */
26
+ static fromAsn1(asn1: Bytes): Icac {
27
+ const cert = X509Base.parseAsn1Certificate(asn1);
28
+ return new Icac(cert as OperationalCertificate.Icac);
29
+ }
30
+
24
31
  /** Validates all basic certificate fields on construction. */
25
32
  protected validateFields() {
26
33
  const {
@@ -88,6 +95,11 @@ export class Icac extends OperationalBase<OperationalCertificate.Icac> {
88
95
  throw new CertificateError(`Ica certificate must not contain a caseAuthenticatedTags.`);
89
96
  }
90
97
 
98
+ // The subject DN SHALL NOT encode any matter-vvs-id attribute.
99
+ if ("vvsId" in subject) {
100
+ throw new CertificateError(`Ica certificate must not contain a vvsId.`);
101
+ }
102
+
91
103
  // When any matter-fabric-id attributes are present in either the Matter Root CA Certificate or the Matter ICA
92
104
  // Certificate, the value SHALL match the one present in the Matter Node Operational Certificate (NOC) within
93
105
  // the same certificate chain.
@@ -11,6 +11,7 @@ import { OperationalCertificate } from "./definitions/operational.js";
11
11
  import { Icac } from "./Icac.js";
12
12
  import { OperationalBase } from "./OperationalBase.js";
13
13
  import { Rcac } from "./Rcac.js";
14
+ import { X509Base } from "./X509Base.js";
14
15
 
15
16
  export class Noc extends OperationalBase<OperationalCertificate.Noc> {
16
17
  /** Construct the class from a Tlv version of the certificate */
@@ -18,6 +19,12 @@ export class Noc extends OperationalBase<OperationalCertificate.Noc> {
18
19
  return new Noc(OperationalCertificate.TlvNoc.decode(tlv));
19
20
  }
20
21
 
22
+ /** Construct the class from an ASN.1/DER encoded certificate */
23
+ static fromAsn1(asn1: Bytes) {
24
+ const cert = X509Base.parseAsn1Certificate(asn1);
25
+ return new Noc(cert as OperationalCertificate.Noc);
26
+ }
27
+
21
28
  /** Validates all basic certificate fields on construction. */
22
29
  protected validateFields() {
23
30
  const {
@@ -89,6 +96,11 @@ export class Noc extends OperationalBase<OperationalCertificate.Noc> {
89
96
  throw new CertificateError(`Noc certificate must not contain an rcacId.`);
90
97
  }
91
98
 
99
+ // The subject DN SHALL NOT encode any matter-vvs-id attribute.
100
+ if ("vvsId" in subject) {
101
+ throw new CertificateError(`Noc certificate must not contain a vvsId.`);
102
+ }
103
+
92
104
  // The subject DN MAY encode at most three matter-noc-cat attributes.
93
105
  if (caseAuthenticatedTags !== undefined) {
94
106
  CaseAuthenticatedTag.validateNocTagList(caseAuthenticatedTags); // throws ValidationError
@@ -4,9 +4,9 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { Bytes, Logger, Time } from "#general";
7
+ import { Bytes, DerBitString, DerCodec, Logger, Time, X962 } from "#general";
8
8
  import { X509Base } from "./X509Base.js";
9
- import { CertificateError, Unsigned } from "./common.js";
9
+ import { assertCertificateDerSize, CertificateError, Unsigned } from "./common.js";
10
10
  import { X509Certificate } from "./definitions/base.js";
11
11
 
12
12
  const logger = Logger.get("OperationalBaseCertificate");
@@ -24,7 +24,22 @@ export abstract class OperationalBase<CT extends X509Certificate> extends X509Ba
24
24
  protected abstract validateFields(): void;
25
25
 
26
26
  /** Encodes the signed certificate into the Matter TLV format. */
27
- abstract asSignedTlv(signature: Bytes): Bytes;
27
+ abstract asSignedTlv(): Bytes;
28
+
29
+ /**
30
+ * Returns the signed certificate in ASN.1 DER format.
31
+ * If the certificate is not signed, it throws a CertificateError.
32
+ */
33
+ asSignedAsn1() {
34
+ const certificate = this.genericBuildAsn1Structure(this.cert);
35
+ const certBytes = DerCodec.encode({
36
+ certificate,
37
+ signAlgorithm: X962.EcdsaWithSHA256,
38
+ signature: DerBitString(this.signature),
39
+ });
40
+ assertCertificateDerSize(certBytes);
41
+ return certBytes;
42
+ }
28
43
 
29
44
  /**
30
45
  * Verifies general requirements a Matter certificate fields must fulfill.
@@ -10,6 +10,7 @@ import { CertificateError } from "./common.js";
10
10
  import { ExtensionKeyUsageSchema } from "./definitions/base.js";
11
11
  import { OperationalCertificate } from "./definitions/operational.js";
12
12
  import { OperationalBase } from "./OperationalBase.js";
13
+ import { X509Base } from "./X509Base.js";
13
14
 
14
15
  export class Rcac extends OperationalBase<OperationalCertificate.Rcac> {
15
16
  /** Construct the class from a Tlv version of the certificate */
@@ -17,6 +18,12 @@ export class Rcac extends OperationalBase<OperationalCertificate.Rcac> {
17
18
  return new Rcac(OperationalCertificate.TlvRcac.decode(tlv));
18
19
  }
19
20
 
21
+ /** Construct the class from an ASN.1/DER encoded certificate */
22
+ static fromAsn1(asn1: Bytes): Rcac {
23
+ const cert = X509Base.parseAsn1Certificate(asn1);
24
+ return new Rcac(cert as OperationalCertificate.Rcac);
25
+ }
26
+
20
27
  /** Validates all basic certificate fields on construction. */
21
28
  protected validateFields() {
22
29
  const {
@@ -79,6 +86,11 @@ export class Rcac extends OperationalBase<OperationalCertificate.Rcac> {
79
86
  throw new CertificateError(`Root certificate must not contain a caseAuthenticatedTags.`);
80
87
  }
81
88
 
89
+ // The subject DN SHALL NOT encode any matter-vsc-id attribute.
90
+ if ("vvsId" in subject) {
91
+ throw new CertificateError(`Root certificate must not contain a vvsId.`);
92
+ }
93
+
82
94
  // The basic constraints extension SHALL be encoded with is-ca set to true.
83
95
  if (basicConstraints.isCa !== true) {
84
96
  throw new CertificateError(`Root certificate must have isCa set to true.`);
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { Bytes, Crypto, Diagnostic } from "#general";
8
+ import { CertificateError } from "./common.js";
9
+ import { OperationalCertificate } from "./definitions/operational.js";
10
+ import { OperationalBase } from "./OperationalBase.js";
11
+
12
+ /**
13
+ * Represents an Vendor Verification Signer Certificate
14
+ */
15
+ export class Vvsc extends OperationalBase<OperationalCertificate.Vvsc> {
16
+ /** Construct the class from a Tlv version of the certificate */
17
+ static fromTlv(tlv: Bytes): Vvsc {
18
+ return new Vvsc(OperationalCertificate.TlvVvsc.decode(tlv));
19
+ }
20
+
21
+ /** Validates all basic certificate fields on construction. */
22
+ protected validateFields() {
23
+ const {
24
+ extensions: {
25
+ basicConstraints: { isCa },
26
+ },
27
+ } = this.cert;
28
+ if (!isCa) {
29
+ throw new CertificateError("Intermediate certificate must be a CA.");
30
+ }
31
+ }
32
+
33
+ /**
34
+ * Encodes the certificate with the signature as Matter Tlv.
35
+ * If the certificate is not signed, it throws a CertificateError.
36
+ */
37
+ asSignedTlv() {
38
+ return OperationalCertificate.TlvVvsc.encode({ ...this.cert, signature: this.signature });
39
+ }
40
+
41
+ /**
42
+ * Verify requirements a Matter Intermediate CA certificate must fulfill.
43
+ * Rules for this are listed in @see {@link MatterSpecification.v12.Core} §6.5.x
44
+ * // TODO ADD Verification once we know more about the chain
45
+ */
46
+ async verify(_crypto: Crypto) {
47
+ this.generalVerify();
48
+
49
+ const { subject } = this.cert;
50
+ const { vvsId } = subject;
51
+
52
+ // The subject DN SHALL encode exactly one matter-vvs-id attribute.
53
+ if (vvsId === undefined || Array.isArray(vvsId)) {
54
+ throw new CertificateError(`Invalid vvsId in Vsc certificate: ${Diagnostic.json(vvsId)}`);
55
+ }
56
+
57
+ // The subject DN SHALL NOT encode any matter-node-id attribute.
58
+ if ("nodeId" in subject) {
59
+ throw new CertificateError(`Vsc certificate must not contain a nodeId.`);
60
+ }
61
+
62
+ // The subject DN SHALL NOT encode any matter-fabric-id attribute.
63
+ if ("fabricId" in subject) {
64
+ throw new CertificateError(`Vsc certificate must not contain a fabricId.`);
65
+ }
66
+
67
+ // The subject DN SHALL NOT encode any matter-noc-cat attribute.
68
+ if ("caseAuthenticatedTags" in subject) {
69
+ throw new CertificateError(`Vvsc certificate must not contain a caseAuthenticatedTags.`);
70
+ }
71
+ }
72
+ }