@matter/protocol 0.17.6-alpha.0-20260715-3585d95fe → 0.17.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"RebootResubscribeArmer.d.ts","sourceRoot":"","sources":["../../../src/peer/RebootResubscribeArmer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAoB5D;;;;;;;GAOG;AACH,qBAAa,sBAAsB;;IAM/B,YAAY,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAIvE;IAED,GAAG,CAAC,WAAW,EAAE,WAAW,QAmB3B;IAED,MAAM,CAAC,WAAW,EAAE,WAAW,QAS9B;IAmFD,CAAC,MAAM,CAAC,OAAO,CAAC,SAOf;CACJ"}
1
+ {"version":3,"file":"RebootResubscribeArmer.d.ts","sourceRoot":"","sources":["../../../src/peer/RebootResubscribeArmer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAsB5D;;;;;;;GAOG;AACH,qBAAa,sBAAsB;;IAM/B,YAAY,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAIvE;IAED,GAAG,CAAC,WAAW,EAAE,WAAW,QAmB3B;IAED,MAAM,CAAC,WAAW,EAAE,WAAW,QAS9B;IAmFD,CAAC,MAAM,CAAC,OAAO,CAAC,SAOf;CACJ"}
@@ -31,7 +31,7 @@ var import_general = require("@matter/general");
31
31
  */
32
32
  const logger = import_general.Logger.get("RebootResubscribeArmer");
33
33
  const DEFAULT_REBOOT_RESUBSCRIBE_GRACE = (0, import_general.Seconds)(30);
34
- const EXPECTED_RETURN_TIMEOUT = (0, import_general.Minutes)(5);
34
+ const EXPECTED_RETURN_TIMEOUT = (0, import_general.Minutes)(3);
35
35
  class RebootResubscribeArmer {
36
36
  #sessions;
37
37
  #subscriptions;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/peer/RebootResubscribeArmer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -20,6 +20,11 @@ export declare class MessageReceptionStateEncryptedWithoutRollover extends Messa
20
20
  protected maximumMessageCounter: number | undefined;
21
21
  private messageCounterBitmap;
22
22
  constructor(messageCounter?: number);
23
+ /**
24
+ * Bitmap seeded when the window is first anchored to a counter. All-1s for encrypted messages marks every
25
+ * sub-max counter as already-received (replay protection).
26
+ */
27
+ protected get initialBitmap(): number;
23
28
  /** Initialize the message counter state. */
24
29
  private initialize;
25
30
  /**
@@ -60,6 +65,12 @@ export declare class MessageReceptionStateEncryptedWithRollover extends MessageR
60
65
  * back the window to the current location.
61
66
  */
62
67
  export declare class MessageReceptionStateUnencryptedWithRollover extends MessageReceptionStateEncryptedWithoutRollover {
68
+ /**
69
+ * Empty window: no sub-max counters have been received yet, so legitimately reordered messages below the first
70
+ * observed counter stay acceptable. Unencrypted duplicate detection is not a security control, so this loses
71
+ * nothing; matches the CHIP reference implementation, which has never seeded a full window.
72
+ */
73
+ protected get initialBitmap(): number;
63
74
  protected calculateDiff(messageCounter: number): number;
64
75
  }
65
76
  //# sourceMappingURL=MessageReceptionState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageReceptionState.d.ts","sourceRoot":"","sources":["../../../src/protocol/MessageReceptionState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAS7D,qBAAa,qBAAsB,SAAQ,WAAW;CAAG;AAEzD,8BAAsB,qBAAqB;IACvC,QAAQ,CAAC,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/D;AAED;;;;;;GAMG;AACH,qBAAa,6CAA8C,SAAQ,qBAAqB;IACpF,SAAS,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,OAAO,CAAC,oBAAoB,CAAc;IAE1C,YAAY,cAAc,CAAC,EAAE,MAAM,EAKlC;IAED,4CAA4C;IAC5C,OAAO,CAAC,UAAU;IAKlB;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,UAK7C;IAED,iDAAiD;IACjD,OAAO,CAAC,6BAA6B;IAqBrC,6CAA6C;IAC7C,OAAO,CAAC,6BAA6B;IAarC,2DAA2D;IAC3D,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,QA0B1C;CACJ;AAED;;;;;GAKG;AACH,qBAAa,0CAA2C,SAAQ,6CAA6C;IACzG,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAsBtD;CACJ;AAED;;;;;;;GAOG;AACH,qBAAa,4CAA6C,SAAQ,6CAA6C;IAC3G,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAyBtD;CACJ"}
1
+ {"version":3,"file":"MessageReceptionState.d.ts","sourceRoot":"","sources":["../../../src/protocol/MessageReceptionState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAS7D,qBAAa,qBAAsB,SAAQ,WAAW;CAAG;AAEzD,8BAAsB,qBAAqB;IACvC,QAAQ,CAAC,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/D;AAED;;;;;;GAMG;AACH,qBAAa,6CAA8C,SAAQ,qBAAqB;IACpF,SAAS,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,OAAO,CAAC,oBAAoB,CAAsB;IAElD,YAAY,cAAc,CAAC,EAAE,MAAM,EAKlC;IAED;;;OAGG;IACH,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;IAED,4CAA4C;IAC5C,OAAO,CAAC,UAAU;IAKlB;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,UAK7C;IAED,iDAAiD;IACjD,OAAO,CAAC,6BAA6B;IAqBrC,6CAA6C;IAC7C,OAAO,CAAC,6BAA6B;IAarC,2DAA2D;IAC3D,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,QA0B1C;CACJ;AAED;;;;;GAKG;AACH,qBAAa,0CAA2C,SAAQ,6CAA6C;IACzG,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAsBtD;CACJ;AAED;;;;;;;GAOG;AACH,qBAAa,4CAA6C,SAAQ,6CAA6C;IAC3G;;;;OAIG;IACH,cAAuB,aAAa,IAAI,MAAM,CAE7C;IAED,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAyBtD;CACJ"}
@@ -40,18 +40,24 @@ class MessageReceptionState {
40
40
  }
41
41
  class MessageReceptionStateEncryptedWithoutRollover extends MessageReceptionState {
42
42
  maximumMessageCounter;
43
- messageCounterBitmap = 4294967295;
44
- // All bits set to 1
43
+ messageCounterBitmap = this.initialBitmap;
45
44
  constructor(messageCounter) {
46
45
  super();
47
46
  if (messageCounter !== void 0) {
48
47
  this.initialize(messageCounter);
49
48
  }
50
49
  }
50
+ /**
51
+ * Bitmap seeded when the window is first anchored to a counter. All-1s for encrypted messages marks every
52
+ * sub-max counter as already-received (replay protection).
53
+ */
54
+ get initialBitmap() {
55
+ return 4294967295;
56
+ }
51
57
  /** Initialize the message counter state. */
52
58
  initialize(messageCounter) {
53
59
  this.maximumMessageCounter = messageCounter;
54
- this.messageCounterBitmap = 4294967295;
60
+ this.messageCounterBitmap = this.initialBitmap;
55
61
  }
56
62
  /**
57
63
  * Calculate plain diff without rollover.
@@ -145,6 +151,14 @@ class MessageReceptionStateEncryptedWithRollover extends MessageReceptionStateEn
145
151
  }
146
152
  }
147
153
  class MessageReceptionStateUnencryptedWithRollover extends MessageReceptionStateEncryptedWithoutRollover {
154
+ /**
155
+ * Empty window: no sub-max counters have been received yet, so legitimately reordered messages below the first
156
+ * observed counter stay acceptable. Unencrypted duplicate detection is not a security control, so this loses
157
+ * nothing; matches the CHIP reference implementation, which has never seeded a full window.
158
+ */
159
+ get initialBitmap() {
160
+ return 0;
161
+ }
148
162
  calculateDiff(messageCounter) {
149
163
  if (this.maximumMessageCounter === void 0) {
150
164
  return 0;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/MessageReceptionState.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RebootResubscribeArmer.d.ts","sourceRoot":"","sources":["../../../src/peer/RebootResubscribeArmer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAoB5D;;;;;;;GAOG;AACH,qBAAa,sBAAsB;;IAM/B,YAAY,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAIvE;IAED,GAAG,CAAC,WAAW,EAAE,WAAW,QAmB3B;IAED,MAAM,CAAC,WAAW,EAAE,WAAW,QAS9B;IAmFD,CAAC,MAAM,CAAC,OAAO,CAAC,SAOf;CACJ"}
1
+ {"version":3,"file":"RebootResubscribeArmer.d.ts","sourceRoot":"","sources":["../../../src/peer/RebootResubscribeArmer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAsB5D;;;;;;;GAOG;AACH,qBAAa,sBAAsB;;IAM/B,YAAY,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAIvE;IAED,GAAG,CAAC,WAAW,EAAE,WAAW,QAmB3B;IAED,MAAM,CAAC,WAAW,EAAE,WAAW,QAS9B;IAmFD,CAAC,MAAM,CAAC,OAAO,CAAC,SAOf;CACJ"}
@@ -8,7 +8,7 @@ import { PeerUnresponsiveError } from "#peer/PeerCommunicationError.js";
8
8
  import { Logger, Minutes, ObserverGroup, Seconds, Time } from "@matter/general";
9
9
  const logger = Logger.get("RebootResubscribeArmer");
10
10
  const DEFAULT_REBOOT_RESUBSCRIBE_GRACE = Seconds(30);
11
- const EXPECTED_RETURN_TIMEOUT = Minutes(5);
11
+ const EXPECTED_RETURN_TIMEOUT = Minutes(3);
12
12
  class RebootResubscribeArmer {
13
13
  #sessions;
14
14
  #subscriptions;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/peer/RebootResubscribeArmer.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,aAAa,sBAAsB;AAC5C,SAAS,6BAA6B;AAGtC,SAAS,QAAQ,SAAS,eAAe,SAAS,YAA8B;AAEhF,MAAM,SAAS,OAAO,IAAI,wBAAwB;AAGlD,MAAM,mCAAmC,QAAQ,EAAE;AAQnD,MAAM,0BAA0B,QAAQ,CAAC;AAgBlC,MAAM,uBAAuB;AAAA,EACvB;AAAA,EACA;AAAA,EACA,SAAS,IAAI,eAAyB;AAAA,EACtC,aAAa,IAAI,cAAc;AAAA,EAExC,YAAY,UAA0B,eAAoC;AACtE,SAAK,YAAY;AACjB,SAAK,iBAAiB;AACtB,SAAK,WAAW,GAAG,SAAS,SAAS,OAAO,aAAW,KAAK,gBAAgB,OAAO,CAAC;AAAA,EACxF;AAAA,EAEA,IAAI,aAA0B;AAC1B,kBAAc,YAAY,WAAW;AAErC,QAAI,QAAQ,KAAK,OAAO,IAAI,WAAW;AACvC,QAAI,UAAU,QAAW;AACrB,cAAQ,CAAC;AACT,WAAK,OAAO,IAAI,aAAa,KAAK;AAAA,IACtC,OAAO;AAEH,YAAM,YAAY,KAAK;AACvB,YAAM,aAAa;AACnB,YAAM,eAAe;AACrB,YAAM,aAAa,KAAK;AAAA,IAC5B;AAEA,UAAM,cAAc,KAAK;AAAA,MAAS;AAAA,MAA0B;AAAA,MAAyB,MACjF,KAAK,iBAAiB,WAAW;AAAA,IACrC;AACA,UAAM,YAAY,MAAM;AAAA,EAC5B;AAAA,EAEA,OAAO,aAA0B;AAC7B,kBAAc,YAAY,WAAW;AACrC,UAAM,QAAQ,KAAK,OAAO,IAAI,WAAW;AACzC,QAAI,UAAU,QAAW;AACrB;AAAA,IACJ;AACA,UAAM,YAAY,KAAK;AACvB,UAAM,aAAa,KAAK;AACxB,SAAK,OAAO,OAAO,WAAW;AAAA,EAClC;AAAA,EAEA,gBAAgB,SAAsB;AAClC,QAAI,QAAQ,aAAa;AAGrB;AAAA,IACJ;AAEA,UAAM,cAAc,YAAY,QAAQ,WAAW;AACnD,UAAM,QAAQ,KAAK,OAAO,IAAI,WAAW;AACzC,QAAI,UAAU,QAAW;AACrB;AAAA,IACJ;AAGA,UAAM,aAAa,KAAK;AACxB,UAAM,cAAc;AAGpB,SAAK,UACA,mBAAmB,aAAa,QAAQ,SAAS,EACjD,MAAM,WAAS,OAAO,KAAK,aAAa,kCAAkC,KAAK,CAAC;AAErF,UAAM,eAAe,QAAQ;AAC7B,UAAM,YAAY,KAAK;AACvB,UAAM,aAAa,KAAK;AAAA,MAAS;AAAA,MAA4B;AAAA,MAAkC,MAC3F,KAAK,gBAAgB,WAAW;AAAA,IACpC;AACA,UAAM,WAAW,MAAM;AAAA,EAC3B;AAAA,EAEA,gBAAgB,aAA0B;AACtC,UAAM,QAAQ,KAAK,OAAO,IAAI,WAAW;AACzC,QAAI,UAAU,QAAW;AACrB;AAAA,IACJ;AAEA,UAAM,sBAAsB,KAAK,eAAe,uBAAuB,WAAW;AAClF,UAAM,iBACF,wBAAwB,UACxB,MAAM,iBAAiB,UACvB,uBAAuB,MAAM;AAEjC,QAAI,CAAC,gBAAgB;AACjB,WAAK,eAAe,aAAa,WAAW;AAAA,IAChD;AAEA,SAAK,OAAO,WAAW;AAAA,EAC3B;AAAA,EAEA,iBAAiB,aAA0B;AACvC,UAAM,QAAQ,KAAK,OAAO,IAAI,WAAW;AACzC,QAAI,UAAU,QAAW;AACrB;AAAA,IACJ;AAEA,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAEA,SAAK,OAAO,WAAW;AACvB,SAAK,mBAAmB,WAAW,EAAE;AAAA,MAAM,WACvC,OAAO,KAAK,aAAa,8CAA8C,KAAK;AAAA,IAChF;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,mBAAmB,aAA0B;AAC/C,QAAI;AACA,YAAM,KAAK,UAAU,eAAe,aAAa,IAAI,sBAAsB,CAAC;AAAA,IAChF,SAAS,OAAO;AACZ,aAAO,KAAK,aAAa,0DAA0D,KAAK;AAAA,IAC5F;AACA,SAAK,eAAe,aAAa,WAAW;AAAA,EAChD;AAAA,EAEA,CAAC,OAAO,OAAO,IAAI;AACf,eAAW,SAAS,KAAK,OAAO,OAAO,GAAG;AACtC,YAAM,YAAY,KAAK;AACvB,YAAM,aAAa,KAAK;AAAA,IAC5B;AACA,SAAK,OAAO,MAAM;AAClB,SAAK,WAAW,MAAM;AAAA,EAC1B;AACJ;",
5
5
  "names": []
6
6
  }
@@ -20,6 +20,11 @@ export declare class MessageReceptionStateEncryptedWithoutRollover extends Messa
20
20
  protected maximumMessageCounter: number | undefined;
21
21
  private messageCounterBitmap;
22
22
  constructor(messageCounter?: number);
23
+ /**
24
+ * Bitmap seeded when the window is first anchored to a counter. All-1s for encrypted messages marks every
25
+ * sub-max counter as already-received (replay protection).
26
+ */
27
+ protected get initialBitmap(): number;
23
28
  /** Initialize the message counter state. */
24
29
  private initialize;
25
30
  /**
@@ -60,6 +65,12 @@ export declare class MessageReceptionStateEncryptedWithRollover extends MessageR
60
65
  * back the window to the current location.
61
66
  */
62
67
  export declare class MessageReceptionStateUnencryptedWithRollover extends MessageReceptionStateEncryptedWithoutRollover {
68
+ /**
69
+ * Empty window: no sub-max counters have been received yet, so legitimately reordered messages below the first
70
+ * observed counter stay acceptable. Unencrypted duplicate detection is not a security control, so this loses
71
+ * nothing; matches the CHIP reference implementation, which has never seeded a full window.
72
+ */
73
+ protected get initialBitmap(): number;
63
74
  protected calculateDiff(messageCounter: number): number;
64
75
  }
65
76
  //# sourceMappingURL=MessageReceptionState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageReceptionState.d.ts","sourceRoot":"","sources":["../../../src/protocol/MessageReceptionState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAS7D,qBAAa,qBAAsB,SAAQ,WAAW;CAAG;AAEzD,8BAAsB,qBAAqB;IACvC,QAAQ,CAAC,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/D;AAED;;;;;;GAMG;AACH,qBAAa,6CAA8C,SAAQ,qBAAqB;IACpF,SAAS,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,OAAO,CAAC,oBAAoB,CAAc;IAE1C,YAAY,cAAc,CAAC,EAAE,MAAM,EAKlC;IAED,4CAA4C;IAC5C,OAAO,CAAC,UAAU;IAKlB;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,UAK7C;IAED,iDAAiD;IACjD,OAAO,CAAC,6BAA6B;IAqBrC,6CAA6C;IAC7C,OAAO,CAAC,6BAA6B;IAarC,2DAA2D;IAC3D,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,QA0B1C;CACJ;AAED;;;;;GAKG;AACH,qBAAa,0CAA2C,SAAQ,6CAA6C;IACzG,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAsBtD;CACJ;AAED;;;;;;;GAOG;AACH,qBAAa,4CAA6C,SAAQ,6CAA6C;IAC3G,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAyBtD;CACJ"}
1
+ {"version":3,"file":"MessageReceptionState.d.ts","sourceRoot":"","sources":["../../../src/protocol/MessageReceptionState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAS7D,qBAAa,qBAAsB,SAAQ,WAAW;CAAG;AAEzD,8BAAsB,qBAAqB;IACvC,QAAQ,CAAC,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/D;AAED;;;;;;GAMG;AACH,qBAAa,6CAA8C,SAAQ,qBAAqB;IACpF,SAAS,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,OAAO,CAAC,oBAAoB,CAAsB;IAElD,YAAY,cAAc,CAAC,EAAE,MAAM,EAKlC;IAED;;;OAGG;IACH,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;IAED,4CAA4C;IAC5C,OAAO,CAAC,UAAU;IAKlB;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,UAK7C;IAED,iDAAiD;IACjD,OAAO,CAAC,6BAA6B;IAqBrC,6CAA6C;IAC7C,OAAO,CAAC,6BAA6B;IAarC,2DAA2D;IAC3D,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,QA0B1C;CACJ;AAED;;;;;GAKG;AACH,qBAAa,0CAA2C,SAAQ,6CAA6C;IACzG,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAsBtD;CACJ;AAED;;;;;;;GAOG;AACH,qBAAa,4CAA6C,SAAQ,6CAA6C;IAC3G;;;;OAIG;IACH,cAAuB,aAAa,IAAI,MAAM,CAE7C;IAED,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAyBtD;CACJ"}
@@ -13,18 +13,24 @@ class MessageReceptionState {
13
13
  }
14
14
  class MessageReceptionStateEncryptedWithoutRollover extends MessageReceptionState {
15
15
  maximumMessageCounter;
16
- messageCounterBitmap = 4294967295;
17
- // All bits set to 1
16
+ messageCounterBitmap = this.initialBitmap;
18
17
  constructor(messageCounter) {
19
18
  super();
20
19
  if (messageCounter !== void 0) {
21
20
  this.initialize(messageCounter);
22
21
  }
23
22
  }
23
+ /**
24
+ * Bitmap seeded when the window is first anchored to a counter. All-1s for encrypted messages marks every
25
+ * sub-max counter as already-received (replay protection).
26
+ */
27
+ get initialBitmap() {
28
+ return 4294967295;
29
+ }
24
30
  /** Initialize the message counter state. */
25
31
  initialize(messageCounter) {
26
32
  this.maximumMessageCounter = messageCounter;
27
- this.messageCounterBitmap = 4294967295;
33
+ this.messageCounterBitmap = this.initialBitmap;
28
34
  }
29
35
  /**
30
36
  * Calculate plain diff without rollover.
@@ -118,6 +124,14 @@ class MessageReceptionStateEncryptedWithRollover extends MessageReceptionStateEn
118
124
  }
119
125
  }
120
126
  class MessageReceptionStateUnencryptedWithRollover extends MessageReceptionStateEncryptedWithoutRollover {
127
+ /**
128
+ * Empty window: no sub-max counters have been received yet, so legitimately reordered messages below the first
129
+ * observed counter stay acceptable. Unencrypted duplicate detection is not a security control, so this loses
130
+ * nothing; matches the CHIP reference implementation, which has never seeded a full window.
131
+ */
132
+ get initialBitmap() {
133
+ return 0;
134
+ }
121
135
  calculateDiff(messageCounter) {
122
136
  if (this.maximumMessageCounter === void 0) {
123
137
  return 0;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/MessageReceptionState.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.17.6-alpha.0-20260715-3585d95fe",
3
+ "version": "0.17.6",
4
4
  "description": "Low-level APIs for Matter interaction",
5
5
  "keywords": [
6
6
  "iot",
@@ -35,12 +35,12 @@
35
35
  "#*": "./src/*"
36
36
  },
37
37
  "dependencies": {
38
- "@matter/general": "0.17.6-alpha.0-20260715-3585d95fe",
39
- "@matter/model": "0.17.6-alpha.0-20260715-3585d95fe",
40
- "@matter/types": "0.17.6-alpha.0-20260715-3585d95fe"
38
+ "@matter/general": "0.17.6",
39
+ "@matter/model": "0.17.6",
40
+ "@matter/types": "0.17.6"
41
41
  },
42
42
  "devDependencies": {
43
- "@matter/testing": "0.17.6-alpha.0-20260715-3585d95fe"
43
+ "@matter/testing": "0.17.6"
44
44
  },
45
45
  "files": [
46
46
  "dist/**/*",
@@ -17,10 +17,12 @@ const logger = Logger.get("RebootResubscribeArmer");
17
17
  const DEFAULT_REBOOT_RESUBSCRIBE_GRACE = Seconds(30);
18
18
 
19
19
  /**
20
- * How long we wait for an armed device to re-establish a session before assuming it restarted silently. Matches the
21
- * BDX idle timeout, giving generous headroom over apply+reboot so a slow-applying device isn't torn down prematurely.
20
+ * How long we wait for an armed device to re-establish a session before assuming it restarted silently and forcing
21
+ * recovery. A device applying an update has normally rebooted and returned within this window, so it is a backstop
22
+ * rather than the common path; kept short so a silently-restarted device recovers well before the full subscription
23
+ * liveness timeout.
22
24
  */
23
- const EXPECTED_RETURN_TIMEOUT = Minutes(5);
25
+ const EXPECTED_RETURN_TIMEOUT = Minutes(3);
24
26
 
25
27
  interface ArmState {
26
28
  newSessionAt?: Timestamp;
@@ -28,7 +28,7 @@ export abstract class MessageReceptionState {
28
28
  */
29
29
  export class MessageReceptionStateEncryptedWithoutRollover extends MessageReceptionState {
30
30
  protected maximumMessageCounter: number | undefined;
31
- private messageCounterBitmap = 0xffffffff; // All bits set to 1
31
+ private messageCounterBitmap = this.initialBitmap;
32
32
 
33
33
  constructor(messageCounter?: number) {
34
34
  super();
@@ -37,10 +37,18 @@ export class MessageReceptionStateEncryptedWithoutRollover extends MessageRecept
37
37
  }
38
38
  }
39
39
 
40
+ /**
41
+ * Bitmap seeded when the window is first anchored to a counter. All-1s for encrypted messages marks every
42
+ * sub-max counter as already-received (replay protection).
43
+ */
44
+ protected get initialBitmap(): number {
45
+ return 0xffffffff;
46
+ }
47
+
40
48
  /** Initialize the message counter state. */
41
49
  private initialize(messageCounter: number) {
42
50
  this.maximumMessageCounter = messageCounter;
43
- this.messageCounterBitmap = 0xffffffff; // All bits set to 1
51
+ this.messageCounterBitmap = this.initialBitmap;
44
52
  }
45
53
 
46
54
  /**
@@ -173,6 +181,15 @@ export class MessageReceptionStateEncryptedWithRollover extends MessageReception
173
181
  * back the window to the current location.
174
182
  */
175
183
  export class MessageReceptionStateUnencryptedWithRollover extends MessageReceptionStateEncryptedWithoutRollover {
184
+ /**
185
+ * Empty window: no sub-max counters have been received yet, so legitimately reordered messages below the first
186
+ * observed counter stay acceptable. Unencrypted duplicate detection is not a security control, so this loses
187
+ * nothing; matches the CHIP reference implementation, which has never seeded a full window.
188
+ */
189
+ protected override get initialBitmap(): number {
190
+ return 0;
191
+ }
192
+
176
193
  protected override calculateDiff(messageCounter: number) {
177
194
  if (this.maximumMessageCounter === undefined) {
178
195
  return 0;