@matter/protocol 0.17.7-alpha.0-20260723-6f672ac9d → 0.17.7
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/dist/cjs/action/client/subscription/ClientSubscriptions.js +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscriptions.js.map +1 -1
- package/dist/cjs/groups/FabricGroups.d.ts.map +1 -1
- package/dist/cjs/groups/FabricGroups.js +34 -1
- package/dist/cjs/groups/FabricGroups.js.map +1 -1
- package/dist/cjs/groups/MessagingState.d.ts +6 -0
- package/dist/cjs/groups/MessagingState.d.ts.map +1 -1
- package/dist/cjs/groups/MessagingState.js +8 -0
- package/dist/cjs/groups/MessagingState.js.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptions.js +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptions.js.map +1 -1
- package/dist/esm/groups/FabricGroups.d.ts.map +1 -1
- package/dist/esm/groups/FabricGroups.js +34 -1
- package/dist/esm/groups/FabricGroups.js.map +1 -1
- package/dist/esm/groups/MessagingState.d.ts +6 -0
- package/dist/esm/groups/MessagingState.d.ts.map +1 -1
- package/dist/esm/groups/MessagingState.js +8 -0
- package/dist/esm/groups/MessagingState.js.map +1 -1
- package/package.json +5 -5
- package/src/action/client/subscription/ClientSubscriptions.ts +1 -1
- package/src/groups/FabricGroups.ts +37 -1
- package/src/groups/MessagingState.ts +9 -0
|
@@ -263,7 +263,7 @@ class ClientSubscriptions {
|
|
|
263
263
|
let { timeoutAt } = subscription;
|
|
264
264
|
if (timeoutAt === void 0) {
|
|
265
265
|
timeoutAt = subscription.timeoutAt = (0, import_general.Timestamp)(now + subscription.timeout);
|
|
266
|
-
} else if (timeoutAt
|
|
266
|
+
} else if (timeoutAt <= now) {
|
|
267
267
|
subscription.timedOut();
|
|
268
268
|
continue;
|
|
269
269
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/action/client/subscription/ClientSubscriptions.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricGroups.d.ts","sourceRoot":"","sources":["../../../src/groups/FabricGroups.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAuC,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,OAAO,EAA0B,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAU,MAAM,aAAa,CAAC;AAE3D,eAAO,MAAM,mBAAmB,yBAAoC,CAAC;AAErE,eAAO,MAAM,4BAA4B,QAAyB,CAAC;AACnE;;GAEG;AACH,qBAAa,YAAY;;IAQrB,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EA2BnD;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,cAAc,EAElC;IAED,0DAA0D;IAC1D,IAAI,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAExC;IAED,IAAI,SAAS,IAAI,cAAc,CAE9B;IAED,kFAAkF;IAClF,IAAI,QAAQ;;;;SAEX;IAED,IAAI,aAAa,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAE7C;IAED,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAE1C;IAED,IAAI,SAAS,2DAEZ;IAED,kBAAkB,CAAC,OAAO,EAAE,OAAO;;;;;;MAElC;IAED,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,iCAEjD;IAED,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAE5C;IAED,8FAA8F;IAC9F,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,QAErE;IAED,iEAAiE;IACjE,0BAA0B,CAAC,OAAO,EAAE,OAAO,QAE1C;IAcD;;;OAGG;IACG,kBAAkB,CAAC,WAAW,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"FabricGroups.d.ts","sourceRoot":"","sources":["../../../src/groups/FabricGroups.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAuC,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,OAAO,EAA0B,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAU,MAAM,aAAa,CAAC;AAE3D,eAAO,MAAM,mBAAmB,yBAAoC,CAAC;AAErE,eAAO,MAAM,4BAA4B,QAAyB,CAAC;AACnE;;GAEG;AACH,qBAAa,YAAY;;IAQrB,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EA2BnD;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,cAAc,EAElC;IAED,0DAA0D;IAC1D,IAAI,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAExC;IAED,IAAI,SAAS,IAAI,cAAc,CAE9B;IAED,kFAAkF;IAClF,IAAI,QAAQ;;;;SAEX;IAED,IAAI,aAAa,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAE7C;IAED,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAE1C;IAED,IAAI,SAAS,2DAEZ;IAED,kBAAkB,CAAC,OAAO,EAAE,OAAO;;;;;;MAElC;IAED,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,iCAEjD;IAED,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAE5C;IAED,8FAA8F;IAC9F,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,QAErE;IAED,iEAAiE;IACjE,0BAA0B,CAAC,OAAO,EAAE,OAAO,QAE1C;IAcD;;;OAGG;IACG,kBAAkB,CAAC,WAAW,EAAE,WAAW,iBAqDhD;IAED,yCAAyC;IACzC,iBAAiB,CAAC,aAAa,EAAE,MAAM,WAUtC;CA0BJ"}
|
|
@@ -127,6 +127,7 @@ class FabricGroups {
|
|
|
127
127
|
*/
|
|
128
128
|
async setFromGroupKeySet(groupKeySet) {
|
|
129
129
|
const { epochKey0, epochKey1, epochKey2 } = groupKeySet;
|
|
130
|
+
const previousEntry = this.#keySets.get("groupKeySetId", groupKeySet.groupKeySetId);
|
|
130
131
|
if (epochKey0 === null) {
|
|
131
132
|
throw new import_general.MatterFlowError("EpochKey0 must be set");
|
|
132
133
|
}
|
|
@@ -151,13 +152,45 @@ class FabricGroups {
|
|
|
151
152
|
operationalPrivacyKey2,
|
|
152
153
|
groupSessionId2: operationalEpochKey2 !== null ? await this.#keySets.sessionIdFromKey(this.#fabric.crypto, operationalEpochKey2) : null
|
|
153
154
|
});
|
|
155
|
+
if (previousEntry !== void 0) {
|
|
156
|
+
this.#forgetUnreferencedReceptionState(previousEntry);
|
|
157
|
+
}
|
|
154
158
|
}
|
|
155
159
|
/** Removes a group key set by its id. */
|
|
156
160
|
removeGroupKeySet(groupKeySetId) {
|
|
157
161
|
if (groupKeySetId === 0) {
|
|
158
162
|
throw new import_general.InternalError("Cannot remove the group key set 0.");
|
|
159
163
|
}
|
|
160
|
-
|
|
164
|
+
const removedEntry = this.#keySets.get("groupKeySetId", groupKeySetId);
|
|
165
|
+
const deleted = this.#keySets.delete("groupKeySetId", groupKeySetId);
|
|
166
|
+
if (removedEntry !== void 0) {
|
|
167
|
+
this.#forgetUnreferencedReceptionState(removedEntry);
|
|
168
|
+
}
|
|
169
|
+
return deleted;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Forget the group message replay-protection state for a departing key set's operational keys, unless a remaining
|
|
173
|
+
* key set still derives the same key — duplicate epoch keys share one reception window, so it must survive until the
|
|
174
|
+
* last referencing key set is gone.
|
|
175
|
+
*/
|
|
176
|
+
#forgetUnreferencedReceptionState(formerEntry) {
|
|
177
|
+
const stillReferenced = /* @__PURE__ */ new Set();
|
|
178
|
+
for (const keySet of this.#keySets) {
|
|
179
|
+
for (const key of [keySet.operationalEpochKey0, keySet.operationalEpochKey1, keySet.operationalEpochKey2]) {
|
|
180
|
+
if (key !== null) {
|
|
181
|
+
stillReferenced.add(import_general.Bytes.toHex(key));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
for (const key of [
|
|
186
|
+
formerEntry.operationalEpochKey0,
|
|
187
|
+
formerEntry.operationalEpochKey1,
|
|
188
|
+
formerEntry.operationalEpochKey2
|
|
189
|
+
]) {
|
|
190
|
+
if (key !== null && !stillReferenced.has(import_general.Bytes.toHex(key))) {
|
|
191
|
+
this.#messagingState.forgetReceptionState(key);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
161
194
|
}
|
|
162
195
|
}
|
|
163
196
|
//# sourceMappingURL=FabricGroups.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/groups/FabricGroups.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,4BAA+B;AAE/B,qBAAwD;AACxD,4BAA+B;AAC/B,qBAAqF;AACrF,mBAAgD;AAChD,oBAA6C;AAX7C;AAAA;AAAA;AAAA;AAAA;AAaO,MAAM,sBAAsB,qBAAM,WAAW,eAAe;AAE5D,MAAM,+BAA+B;AAIrC,MAAM,aAAa;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA,WAAW,IAAI,uBAAQ;AAAA,EAEvB,YAAY,QAAgB,SAA0B;AAClD,SAAK,UAAU;AACf,SAAK,UAAU,IAAI,qBAAO,QAAQ,KAAK,QAAQ;AAC/C,SAAK,kBAAkB,IAAI,qCAAe;AAI1C,SAAK,SAAS,IAAI;AAAA,MACd,eAAe;AAAA,MACf,WAAW,OAAO;AAAA,MAClB,sBAAsB,OAAO;AAAA,MAC7B,iBAAiB;AAAA;AAAA,MACjB,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,sBAAsB;AAAA,MACtB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,sBAAsB;AAAA,MACtB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,wBAAwB;AAAA;AAAA,MACxB,yBAAyB;AAAA;AAAA,IAC7B,CAAC;AACD,QAAI,YAAY,QAAW;AACvB,WAAK,UAAU;AAAA,IACnB;AAAA,EACJ;AAAA,EAEA,IAAI,QAAQ,SAAyB;AACjC,SAAK,gBAAgB,UAAU;AAAA,EACnC;AAAA;AAAA,EAGA,IAAI,UAAsC;AACtC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,YAA4B;AAC5B,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,IAAI,WAAW;AACX,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,IAAI,gBAA2C;AAC3C,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,IAAI,cAAc,KAA2B;AACzC,SAAK,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,mBAAmB,SAAkB;AACjC,WAAO,KAAK,QAAQ,gBAAgB,OAAO;AAAA,EAC/C;AAAA,EAEA,gBAAgB,IAAa,gBAAuB;AAChD,WAAO,KAAK,QAAQ,gBAAgB,IAAI,cAAc;AAAA,EAC1D;AAAA,EAEA,oBAAoB,SAA0B;AAC1C,WAAO,KAAK,QAAQ,iBAAiB,OAAO;AAAA,EAChD;AAAA;AAAA,EAGA,wBAAwB,SAAkB,QAA8B;AACpE,SAAK,QAAQ,wBAAwB,SAAS,MAAM;AAAA,EACxD;AAAA;AAAA,EAGA,2BAA2B,SAAkB;AACzC,SAAK,QAAQ,2BAA2B,OAAO;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,MAAM,mBAAmB,aAA0B;AAC/C,UAAM,EAAE,WAAW,WAAW,UAAU,IAAI;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -20,5 +20,11 @@ export declare class MessagingState {
|
|
|
20
20
|
* Returns the message reception state for a given source node id and operational key.
|
|
21
21
|
*/
|
|
22
22
|
receptionStateFor(sourceNodeId: NodeId, operationalKey: Bytes): MessageReceptionStateEncryptedWithRollover;
|
|
23
|
+
/**
|
|
24
|
+
* Discards the replay-protection reception state for an operational key. Called when the key's key set is removed
|
|
25
|
+
* so that a later key set reusing the same epoch key starts a fresh counter window and its first message
|
|
26
|
+
* re-synchronizes instead of being rejected as a replay against the removed key's high-water counter.
|
|
27
|
+
*/
|
|
28
|
+
forgetReceptionState(operationalKey: Bytes): void;
|
|
23
29
|
}
|
|
24
30
|
//# sourceMappingURL=MessagingState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessagingState.d.ts","sourceRoot":"","sources":["../../../src/groups/MessagingState.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,0CAA0C,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAE,KAAK,EAAyB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOvC,qBAAa,cAAc;;IAMvB,YAAY,OAAO,CAAC,EAAE,cAAc,EAInC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,cAAc,EAKlC;IAED;;;;OAIG;IACG,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmB7D;IAED;;;OAGG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CASlD;IAED;;OAEG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,8CAU5D;CACJ"}
|
|
1
|
+
{"version":3,"file":"MessagingState.d.ts","sourceRoot":"","sources":["../../../src/groups/MessagingState.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,0CAA0C,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAE,KAAK,EAAyB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOvC,qBAAa,cAAc;;IAMvB,YAAY,OAAO,CAAC,EAAE,cAAc,EAInC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,cAAc,EAKlC;IAED;;;;OAIG;IACG,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmB7D;IAED;;;OAGG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CASlD;IAED;;OAEG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,8CAU5D;IAED;;;;OAIG;IACH,oBAAoB,CAAC,cAAc,EAAE,KAAK,QAEzC;CACJ"}
|
|
@@ -99,5 +99,13 @@ class MessagingState {
|
|
|
99
99
|
}
|
|
100
100
|
return receptionState;
|
|
101
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Discards the replay-protection reception state for an operational key. Called when the key's key set is removed
|
|
104
|
+
* so that a later key set reusing the same epoch key starts a fresh counter window and its first message
|
|
105
|
+
* re-synchronizes instead of being rejected as a replay against the removed key's high-water counter.
|
|
106
|
+
*/
|
|
107
|
+
forgetReceptionState(operationalKey) {
|
|
108
|
+
this.#messageDataReceptionState.delete(import_general.Bytes.toHex(operationalKey));
|
|
109
|
+
}
|
|
102
110
|
}
|
|
103
111
|
//# sourceMappingURL=MessagingState.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/groups/MessagingState.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,4BAAwC;AACxC,mCAA2D;AAC3D,qBAA6D;AAP7D;AAAA;AAAA;AAAA;AAAA;AAUA,MAAM,SAAS,sBAAO,IAAI,gBAAgB;AAG1C,MAAM,gCAAgC;AAE/B,MAAM,eAAe;AAAA;AAAA,EAEf,6BAA6B,oBAAI,IAAqE;AAAA,EAE/G;AAAA,EAEA,YAAY,SAA0B;AAClC,QAAI,YAAY,QAAW;AACvB,WAAK,WAAW;AAAA,IACpB;AAAA,EACJ;AAAA,EAEA,IAAI,QAAQ,SAAyB;AACjC,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,6BAAc,uCAAuC;AAAA,IACnE;AACA,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,4BAAyD;AAC3D,QAAI,CAAC,KAAK,UAAU;AAChB,aAAO;AAAA,IACX;AACA,QAAI;AACJ,eAAW,cAAc,MAAM,KAAK,SAAS,KAAK,GAAG;AACjD,UAAI,CAAC,8BAA8B,KAAK,UAAU,GAAG;AACjD;AAAA,MACJ;AACA,YAAM,QAAQ,MAAM,KAAK,SAAS,IAAY,UAAU;AACxD,UAAI,OAAO,UAAU,YAAY,QAAQ,KAAK,QAAQ,+CAAyB;AAC3E,eAAO,KAAK,iDAAiD,UAAU,KAAK,KAAK,EAAE;AACnF;AAAA,MACJ;AACA,UAAI,QAAQ,UAAa,QAAQ,KAAK;AAClC,cAAM;AAAA,MACV;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,+BAA8C;AAChD,QAAI,CAAC,KAAK,UAAU;AAChB;AAAA,IACJ;AACA,eAAW,cAAc,MAAM,KAAK,SAAS,KAAK,GAAG;AACjD,UAAI,8BAA8B,KAAK,UAAU,GAAG;AAChD,cAAM,KAAK,SAAS,OAAO,UAAU;AAAA,MACzC;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,cAAsB,gBAAuB;AAC3D,UAAM,oBAAoB,qBAAM,MAAM,cAAc;AACpD,QAAI,iBAAiB,KAAK,2BAA2B,IAAI,iBAAiB,GAAG,IAAI,YAAY;AAC7F,QAAI,mBAAmB,QAAW;AAC9B,uBAAiB,IAAI,wEAA2C;AAChE,YAAM,SAAS,KAAK,2BAA2B,IAAI,iBAAiB,KAAK,oBAAI,IAAI;AACjF,aAAO,IAAI,cAAc,cAAc;AACvC,WAAK,2BAA2B,IAAI,mBAAmB,MAAM;AAAA,IACjE;AACA,WAAO;AAAA,EACX;AACJ;",
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,4BAAwC;AACxC,mCAA2D;AAC3D,qBAA6D;AAP7D;AAAA;AAAA;AAAA;AAAA;AAUA,MAAM,SAAS,sBAAO,IAAI,gBAAgB;AAG1C,MAAM,gCAAgC;AAE/B,MAAM,eAAe;AAAA;AAAA,EAEf,6BAA6B,oBAAI,IAAqE;AAAA,EAE/G;AAAA,EAEA,YAAY,SAA0B;AAClC,QAAI,YAAY,QAAW;AACvB,WAAK,WAAW;AAAA,IACpB;AAAA,EACJ;AAAA,EAEA,IAAI,QAAQ,SAAyB;AACjC,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,6BAAc,uCAAuC;AAAA,IACnE;AACA,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,4BAAyD;AAC3D,QAAI,CAAC,KAAK,UAAU;AAChB,aAAO;AAAA,IACX;AACA,QAAI;AACJ,eAAW,cAAc,MAAM,KAAK,SAAS,KAAK,GAAG;AACjD,UAAI,CAAC,8BAA8B,KAAK,UAAU,GAAG;AACjD;AAAA,MACJ;AACA,YAAM,QAAQ,MAAM,KAAK,SAAS,IAAY,UAAU;AACxD,UAAI,OAAO,UAAU,YAAY,QAAQ,KAAK,QAAQ,+CAAyB;AAC3E,eAAO,KAAK,iDAAiD,UAAU,KAAK,KAAK,EAAE;AACnF;AAAA,MACJ;AACA,UAAI,QAAQ,UAAa,QAAQ,KAAK;AAClC,cAAM;AAAA,MACV;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,+BAA8C;AAChD,QAAI,CAAC,KAAK,UAAU;AAChB;AAAA,IACJ;AACA,eAAW,cAAc,MAAM,KAAK,SAAS,KAAK,GAAG;AACjD,UAAI,8BAA8B,KAAK,UAAU,GAAG;AAChD,cAAM,KAAK,SAAS,OAAO,UAAU;AAAA,MACzC;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,cAAsB,gBAAuB;AAC3D,UAAM,oBAAoB,qBAAM,MAAM,cAAc;AACpD,QAAI,iBAAiB,KAAK,2BAA2B,IAAI,iBAAiB,GAAG,IAAI,YAAY;AAC7F,QAAI,mBAAmB,QAAW;AAC9B,uBAAiB,IAAI,wEAA2C;AAChE,YAAM,SAAS,KAAK,2BAA2B,IAAI,iBAAiB,KAAK,oBAAI,IAAI;AACjF,aAAO,IAAI,cAAc,cAAc;AACvC,WAAK,2BAA2B,IAAI,mBAAmB,MAAM;AAAA,IACjE;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,qBAAqB,gBAAuB;AACxC,SAAK,2BAA2B,OAAO,qBAAM,MAAM,cAAc,CAAC;AAAA,EACtE;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -248,7 +248,7 @@ class ClientSubscriptions {
|
|
|
248
248
|
let { timeoutAt } = subscription;
|
|
249
249
|
if (timeoutAt === void 0) {
|
|
250
250
|
timeoutAt = subscription.timeoutAt = Timestamp(now + subscription.timeout);
|
|
251
|
-
} else if (timeoutAt
|
|
251
|
+
} else if (timeoutAt <= now) {
|
|
252
252
|
subscription.timedOut();
|
|
253
253
|
continue;
|
|
254
254
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/action/client/subscription/ClientSubscriptions.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricGroups.d.ts","sourceRoot":"","sources":["../../../src/groups/FabricGroups.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAuC,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,OAAO,EAA0B,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAU,MAAM,aAAa,CAAC;AAE3D,eAAO,MAAM,mBAAmB,yBAAoC,CAAC;AAErE,eAAO,MAAM,4BAA4B,QAAyB,CAAC;AACnE;;GAEG;AACH,qBAAa,YAAY;;IAQrB,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EA2BnD;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,cAAc,EAElC;IAED,0DAA0D;IAC1D,IAAI,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAExC;IAED,IAAI,SAAS,IAAI,cAAc,CAE9B;IAED,kFAAkF;IAClF,IAAI,QAAQ;;;;SAEX;IAED,IAAI,aAAa,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAE7C;IAED,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAE1C;IAED,IAAI,SAAS,2DAEZ;IAED,kBAAkB,CAAC,OAAO,EAAE,OAAO;;;;;;MAElC;IAED,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,iCAEjD;IAED,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAE5C;IAED,8FAA8F;IAC9F,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,QAErE;IAED,iEAAiE;IACjE,0BAA0B,CAAC,OAAO,EAAE,OAAO,QAE1C;IAcD;;;OAGG;IACG,kBAAkB,CAAC,WAAW,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"FabricGroups.d.ts","sourceRoot":"","sources":["../../../src/groups/FabricGroups.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAuC,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,OAAO,EAA0B,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAU,MAAM,aAAa,CAAC;AAE3D,eAAO,MAAM,mBAAmB,yBAAoC,CAAC;AAErE,eAAO,MAAM,4BAA4B,QAAyB,CAAC;AACnE;;GAEG;AACH,qBAAa,YAAY;;IAQrB,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EA2BnD;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,cAAc,EAElC;IAED,0DAA0D;IAC1D,IAAI,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAExC;IAED,IAAI,SAAS,IAAI,cAAc,CAE9B;IAED,kFAAkF;IAClF,IAAI,QAAQ;;;;SAEX;IAED,IAAI,aAAa,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAE7C;IAED,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAE1C;IAED,IAAI,SAAS,2DAEZ;IAED,kBAAkB,CAAC,OAAO,EAAE,OAAO;;;;;;MAElC;IAED,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,iCAEjD;IAED,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAE5C;IAED,8FAA8F;IAC9F,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,QAErE;IAED,iEAAiE;IACjE,0BAA0B,CAAC,OAAO,EAAE,OAAO,QAE1C;IAcD;;;OAGG;IACG,kBAAkB,CAAC,WAAW,EAAE,WAAW,iBAqDhD;IAED,yCAAyC;IACzC,iBAAiB,CAAC,aAAa,EAAE,MAAM,WAUtC;CA0BJ"}
|
|
@@ -102,6 +102,7 @@ class FabricGroups {
|
|
|
102
102
|
*/
|
|
103
103
|
async setFromGroupKeySet(groupKeySet) {
|
|
104
104
|
const { epochKey0, epochKey1, epochKey2 } = groupKeySet;
|
|
105
|
+
const previousEntry = this.#keySets.get("groupKeySetId", groupKeySet.groupKeySetId);
|
|
105
106
|
if (epochKey0 === null) {
|
|
106
107
|
throw new MatterFlowError("EpochKey0 must be set");
|
|
107
108
|
}
|
|
@@ -126,13 +127,45 @@ class FabricGroups {
|
|
|
126
127
|
operationalPrivacyKey2,
|
|
127
128
|
groupSessionId2: operationalEpochKey2 !== null ? await this.#keySets.sessionIdFromKey(this.#fabric.crypto, operationalEpochKey2) : null
|
|
128
129
|
});
|
|
130
|
+
if (previousEntry !== void 0) {
|
|
131
|
+
this.#forgetUnreferencedReceptionState(previousEntry);
|
|
132
|
+
}
|
|
129
133
|
}
|
|
130
134
|
/** Removes a group key set by its id. */
|
|
131
135
|
removeGroupKeySet(groupKeySetId) {
|
|
132
136
|
if (groupKeySetId === 0) {
|
|
133
137
|
throw new InternalError("Cannot remove the group key set 0.");
|
|
134
138
|
}
|
|
135
|
-
|
|
139
|
+
const removedEntry = this.#keySets.get("groupKeySetId", groupKeySetId);
|
|
140
|
+
const deleted = this.#keySets.delete("groupKeySetId", groupKeySetId);
|
|
141
|
+
if (removedEntry !== void 0) {
|
|
142
|
+
this.#forgetUnreferencedReceptionState(removedEntry);
|
|
143
|
+
}
|
|
144
|
+
return deleted;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Forget the group message replay-protection state for a departing key set's operational keys, unless a remaining
|
|
148
|
+
* key set still derives the same key — duplicate epoch keys share one reception window, so it must survive until the
|
|
149
|
+
* last referencing key set is gone.
|
|
150
|
+
*/
|
|
151
|
+
#forgetUnreferencedReceptionState(formerEntry) {
|
|
152
|
+
const stillReferenced = /* @__PURE__ */ new Set();
|
|
153
|
+
for (const keySet of this.#keySets) {
|
|
154
|
+
for (const key of [keySet.operationalEpochKey0, keySet.operationalEpochKey1, keySet.operationalEpochKey2]) {
|
|
155
|
+
if (key !== null) {
|
|
156
|
+
stillReferenced.add(Bytes.toHex(key));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
for (const key of [
|
|
161
|
+
formerEntry.operationalEpochKey0,
|
|
162
|
+
formerEntry.operationalEpochKey1,
|
|
163
|
+
formerEntry.operationalEpochKey2
|
|
164
|
+
]) {
|
|
165
|
+
if (key !== null && !stillReferenced.has(Bytes.toHex(key))) {
|
|
166
|
+
this.#messagingState.forgetReceptionState(key);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
136
169
|
}
|
|
137
170
|
}
|
|
138
171
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/groups/FabricGroups.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,sBAAsB;AAE/B,SAAsB,eAAkC;AACxD,SAAS,sBAAsB;AAC/B,SAAmB,OAAO,KAAK,eAAe,uBAAuC;AACrF,SAAkB,8BAA8B;AAChD,SAA+B,cAAc;AAEtC,MAAM,sBAAsB,MAAM,WAAW,eAAe;AAE5D,MAAM,+BAA+B;AAIrC,MAAM,aAAa;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA,WAAW,IAAI,QAAQ;AAAA,EAEvB,YAAY,QAAgB,SAA0B;AAClD,SAAK,UAAU;AACf,SAAK,UAAU,IAAI,OAAO,QAAQ,KAAK,QAAQ;AAC/C,SAAK,kBAAkB,IAAI,eAAe;AAI1C,SAAK,SAAS,IAAI;AAAA,MACd,eAAe;AAAA,MACf,WAAW,OAAO;AAAA,MAClB,sBAAsB,OAAO;AAAA,MAC7B,iBAAiB;AAAA;AAAA,MACjB,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,sBAAsB;AAAA,MACtB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,WAAW;AAAA,MACX,sBAAsB;AAAA,MACtB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,wBAAwB;AAAA;AAAA,MACxB,yBAAyB;AAAA;AAAA,IAC7B,CAAC;AACD,QAAI,YAAY,QAAW;AACvB,WAAK,UAAU;AAAA,IACnB;AAAA,EACJ;AAAA,EAEA,IAAI,QAAQ,SAAyB;AACjC,SAAK,gBAAgB,UAAU;AAAA,EACnC;AAAA;AAAA,EAGA,IAAI,UAAsC;AACtC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,YAA4B;AAC5B,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,IAAI,WAAW;AACX,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,IAAI,gBAA2C;AAC3C,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,IAAI,cAAc,KAA2B;AACzC,SAAK,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,mBAAmB,SAAkB;AACjC,WAAO,KAAK,QAAQ,gBAAgB,OAAO;AAAA,EAC/C;AAAA,EAEA,gBAAgB,IAAa,gBAAuB;AAChD,WAAO,KAAK,QAAQ,gBAAgB,IAAI,cAAc;AAAA,EAC1D;AAAA,EAEA,oBAAoB,SAA0B;AAC1C,WAAO,KAAK,QAAQ,iBAAiB,OAAO;AAAA,EAChD;AAAA;AAAA,EAGA,wBAAwB,SAAkB,QAA8B;AACpE,SAAK,QAAQ,wBAAwB,SAAS,MAAM;AAAA,EACxD;AAAA;AAAA,EAGA,2BAA2B,SAAkB;AACzC,SAAK,QAAQ,2BAA2B,OAAO;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBA,MAAM,mBAAmB,aAA0B;AAC/C,UAAM,EAAE,WAAW,WAAW,UAAU,IAAI;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -20,5 +20,11 @@ export declare class MessagingState {
|
|
|
20
20
|
* Returns the message reception state for a given source node id and operational key.
|
|
21
21
|
*/
|
|
22
22
|
receptionStateFor(sourceNodeId: NodeId, operationalKey: Bytes): MessageReceptionStateEncryptedWithRollover;
|
|
23
|
+
/**
|
|
24
|
+
* Discards the replay-protection reception state for an operational key. Called when the key's key set is removed
|
|
25
|
+
* so that a later key set reusing the same epoch key starts a fresh counter window and its first message
|
|
26
|
+
* re-synchronizes instead of being rejected as a replay against the removed key's high-water counter.
|
|
27
|
+
*/
|
|
28
|
+
forgetReceptionState(operationalKey: Bytes): void;
|
|
23
29
|
}
|
|
24
30
|
//# sourceMappingURL=MessagingState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessagingState.d.ts","sourceRoot":"","sources":["../../../src/groups/MessagingState.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,0CAA0C,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAE,KAAK,EAAyB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOvC,qBAAa,cAAc;;IAMvB,YAAY,OAAO,CAAC,EAAE,cAAc,EAInC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,cAAc,EAKlC;IAED;;;;OAIG;IACG,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmB7D;IAED;;;OAGG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CASlD;IAED;;OAEG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,8CAU5D;CACJ"}
|
|
1
|
+
{"version":3,"file":"MessagingState.d.ts","sourceRoot":"","sources":["../../../src/groups/MessagingState.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,0CAA0C,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAE,KAAK,EAAyB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOvC,qBAAa,cAAc;;IAMvB,YAAY,OAAO,CAAC,EAAE,cAAc,EAInC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,cAAc,EAKlC;IAED;;;;OAIG;IACG,yBAAyB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAmB7D;IAED;;;OAGG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CASlD;IAED;;OAEG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,8CAU5D;IAED;;;;OAIG;IACH,oBAAoB,CAAC,cAAc,EAAE,KAAK,QAEzC;CACJ"}
|
|
@@ -76,6 +76,14 @@ class MessagingState {
|
|
|
76
76
|
}
|
|
77
77
|
return receptionState;
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Discards the replay-protection reception state for an operational key. Called when the key's key set is removed
|
|
81
|
+
* so that a later key set reusing the same epoch key starts a fresh counter window and its first message
|
|
82
|
+
* re-synchronizes instead of being rejected as a replay against the removed key's high-water counter.
|
|
83
|
+
*/
|
|
84
|
+
forgetReceptionState(operationalKey) {
|
|
85
|
+
this.#messageDataReceptionState.delete(Bytes.toHex(operationalKey));
|
|
86
|
+
}
|
|
79
87
|
}
|
|
80
88
|
export {
|
|
81
89
|
MessagingState
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/groups/MessagingState.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,+BAA+B;AACxC,SAAS,kDAAkD;AAC3D,SAAS,OAAO,eAAe,cAA8B;AAG7D,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAG1C,MAAM,gCAAgC;AAE/B,MAAM,eAAe;AAAA;AAAA,EAEf,6BAA6B,oBAAI,IAAqE;AAAA,EAE/G;AAAA,EAEA,YAAY,SAA0B;AAClC,QAAI,YAAY,QAAW;AACvB,WAAK,WAAW;AAAA,IACpB;AAAA,EACJ;AAAA,EAEA,IAAI,QAAQ,SAAyB;AACjC,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,cAAc,uCAAuC;AAAA,IACnE;AACA,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,4BAAyD;AAC3D,QAAI,CAAC,KAAK,UAAU;AAChB,aAAO;AAAA,IACX;AACA,QAAI;AACJ,eAAW,cAAc,MAAM,KAAK,SAAS,KAAK,GAAG;AACjD,UAAI,CAAC,8BAA8B,KAAK,UAAU,GAAG;AACjD;AAAA,MACJ;AACA,YAAM,QAAQ,MAAM,KAAK,SAAS,IAAY,UAAU;AACxD,UAAI,OAAO,UAAU,YAAY,QAAQ,KAAK,QAAQ,yBAAyB;AAC3E,eAAO,KAAK,iDAAiD,UAAU,KAAK,KAAK,EAAE;AACnF;AAAA,MACJ;AACA,UAAI,QAAQ,UAAa,QAAQ,KAAK;AAClC,cAAM;AAAA,MACV;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,+BAA8C;AAChD,QAAI,CAAC,KAAK,UAAU;AAChB;AAAA,IACJ;AACA,eAAW,cAAc,MAAM,KAAK,SAAS,KAAK,GAAG;AACjD,UAAI,8BAA8B,KAAK,UAAU,GAAG;AAChD,cAAM,KAAK,SAAS,OAAO,UAAU;AAAA,MACzC;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,cAAsB,gBAAuB;AAC3D,UAAM,oBAAoB,MAAM,MAAM,cAAc;AACpD,QAAI,iBAAiB,KAAK,2BAA2B,IAAI,iBAAiB,GAAG,IAAI,YAAY;AAC7F,QAAI,mBAAmB,QAAW;AAC9B,uBAAiB,IAAI,2CAA2C;AAChE,YAAM,SAAS,KAAK,2BAA2B,IAAI,iBAAiB,KAAK,oBAAI,IAAI;AACjF,aAAO,IAAI,cAAc,cAAc;AACvC,WAAK,2BAA2B,IAAI,mBAAmB,MAAM;AAAA,IACjE;AACA,WAAO;AAAA,EACX;AACJ;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,+BAA+B;AACxC,SAAS,kDAAkD;AAC3D,SAAS,OAAO,eAAe,cAA8B;AAG7D,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAG1C,MAAM,gCAAgC;AAE/B,MAAM,eAAe;AAAA;AAAA,EAEf,6BAA6B,oBAAI,IAAqE;AAAA,EAE/G;AAAA,EAEA,YAAY,SAA0B;AAClC,QAAI,YAAY,QAAW;AACvB,WAAK,WAAW;AAAA,IACpB;AAAA,EACJ;AAAA,EAEA,IAAI,QAAQ,SAAyB;AACjC,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,cAAc,uCAAuC;AAAA,IACnE;AACA,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,4BAAyD;AAC3D,QAAI,CAAC,KAAK,UAAU;AAChB,aAAO;AAAA,IACX;AACA,QAAI;AACJ,eAAW,cAAc,MAAM,KAAK,SAAS,KAAK,GAAG;AACjD,UAAI,CAAC,8BAA8B,KAAK,UAAU,GAAG;AACjD;AAAA,MACJ;AACA,YAAM,QAAQ,MAAM,KAAK,SAAS,IAAY,UAAU;AACxD,UAAI,OAAO,UAAU,YAAY,QAAQ,KAAK,QAAQ,yBAAyB;AAC3E,eAAO,KAAK,iDAAiD,UAAU,KAAK,KAAK,EAAE;AACnF;AAAA,MACJ;AACA,UAAI,QAAQ,UAAa,QAAQ,KAAK;AAClC,cAAM;AAAA,MACV;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,+BAA8C;AAChD,QAAI,CAAC,KAAK,UAAU;AAChB;AAAA,IACJ;AACA,eAAW,cAAc,MAAM,KAAK,SAAS,KAAK,GAAG;AACjD,UAAI,8BAA8B,KAAK,UAAU,GAAG;AAChD,cAAM,KAAK,SAAS,OAAO,UAAU;AAAA,MACzC;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,cAAsB,gBAAuB;AAC3D,UAAM,oBAAoB,MAAM,MAAM,cAAc;AACpD,QAAI,iBAAiB,KAAK,2BAA2B,IAAI,iBAAiB,GAAG,IAAI,YAAY;AAC7F,QAAI,mBAAmB,QAAW;AAC9B,uBAAiB,IAAI,2CAA2C;AAChE,YAAM,SAAS,KAAK,2BAA2B,IAAI,iBAAiB,KAAK,oBAAI,IAAI;AACjF,aAAO,IAAI,cAAc,cAAc;AACvC,WAAK,2BAA2B,IAAI,mBAAmB,MAAM;AAAA,IACjE;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,qBAAqB,gBAAuB;AACxC,SAAK,2BAA2B,OAAO,MAAM,MAAM,cAAc,CAAC;AAAA,EACtE;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/protocol",
|
|
3
|
-
"version": "0.17.7
|
|
3
|
+
"version": "0.17.7",
|
|
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.7
|
|
39
|
-
"@matter/model": "0.17.7
|
|
40
|
-
"@matter/types": "0.17.7
|
|
38
|
+
"@matter/general": "0.17.7",
|
|
39
|
+
"@matter/model": "0.17.7",
|
|
40
|
+
"@matter/types": "0.17.7"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@matter/testing": "0.17.7
|
|
43
|
+
"@matter/testing": "0.17.7"
|
|
44
44
|
},
|
|
45
45
|
"files": [
|
|
46
46
|
"dist/**/*",
|
|
@@ -245,7 +245,7 @@ export class ClientSubscriptions implements Lifetime.Owner {
|
|
|
245
245
|
if (timeoutAt === undefined) {
|
|
246
246
|
// Set timeout time
|
|
247
247
|
timeoutAt = subscription.timeoutAt = Timestamp(now + subscription.timeout);
|
|
248
|
-
} else if (timeoutAt
|
|
248
|
+
} else if (timeoutAt <= now) {
|
|
249
249
|
// Timeout
|
|
250
250
|
subscription.timedOut();
|
|
251
251
|
continue;
|
|
@@ -124,6 +124,7 @@ export class FabricGroups {
|
|
|
124
124
|
*/
|
|
125
125
|
async setFromGroupKeySet(groupKeySet: GroupKeySet) {
|
|
126
126
|
const { epochKey0, epochKey1, epochKey2 } = groupKeySet;
|
|
127
|
+
const previousEntry = this.#keySets.get("groupKeySetId", groupKeySet.groupKeySetId);
|
|
127
128
|
|
|
128
129
|
if (epochKey0 === null) {
|
|
129
130
|
throw new MatterFlowError("EpochKey0 must be set"); // checked before, but to make typing happy
|
|
@@ -169,6 +170,11 @@ export class FabricGroups {
|
|
|
169
170
|
? await this.#keySets.sessionIdFromKey(this.#fabric.crypto, operationalEpochKey2)
|
|
170
171
|
: null,
|
|
171
172
|
});
|
|
173
|
+
// An in-place rewrite that changes epoch keys drops the previous operational keys; forget their reception state
|
|
174
|
+
// (unless still referenced) so a later key set reusing a dropped epoch key re-synchronizes on its first message.
|
|
175
|
+
if (previousEntry !== undefined) {
|
|
176
|
+
this.#forgetUnreferencedReceptionState(previousEntry);
|
|
177
|
+
}
|
|
172
178
|
}
|
|
173
179
|
|
|
174
180
|
/** Removes a group key set by its id. */
|
|
@@ -176,6 +182,36 @@ export class FabricGroups {
|
|
|
176
182
|
if (groupKeySetId === 0) {
|
|
177
183
|
throw new InternalError("Cannot remove the group key set 0.");
|
|
178
184
|
}
|
|
179
|
-
|
|
185
|
+
const removedEntry = this.#keySets.get("groupKeySetId", groupKeySetId);
|
|
186
|
+
const deleted = this.#keySets.delete("groupKeySetId", groupKeySetId);
|
|
187
|
+
if (removedEntry !== undefined) {
|
|
188
|
+
this.#forgetUnreferencedReceptionState(removedEntry);
|
|
189
|
+
}
|
|
190
|
+
return deleted;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Forget the group message replay-protection state for a departing key set's operational keys, unless a remaining
|
|
195
|
+
* key set still derives the same key — duplicate epoch keys share one reception window, so it must survive until the
|
|
196
|
+
* last referencing key set is gone.
|
|
197
|
+
*/
|
|
198
|
+
#forgetUnreferencedReceptionState(formerEntry: OperationalKeySet) {
|
|
199
|
+
const stillReferenced = new Set<string>();
|
|
200
|
+
for (const keySet of this.#keySets) {
|
|
201
|
+
for (const key of [keySet.operationalEpochKey0, keySet.operationalEpochKey1, keySet.operationalEpochKey2]) {
|
|
202
|
+
if (key !== null) {
|
|
203
|
+
stillReferenced.add(Bytes.toHex(key));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
for (const key of [
|
|
208
|
+
formerEntry.operationalEpochKey0,
|
|
209
|
+
formerEntry.operationalEpochKey1,
|
|
210
|
+
formerEntry.operationalEpochKey2,
|
|
211
|
+
]) {
|
|
212
|
+
if (key !== null && !stillReferenced.has(Bytes.toHex(key))) {
|
|
213
|
+
this.#messagingState.forgetReceptionState(key);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
180
216
|
}
|
|
181
217
|
}
|
|
@@ -87,4 +87,13 @@ export class MessagingState {
|
|
|
87
87
|
}
|
|
88
88
|
return receptionState;
|
|
89
89
|
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Discards the replay-protection reception state for an operational key. Called when the key's key set is removed
|
|
93
|
+
* so that a later key set reusing the same epoch key starts a fresh counter window and its first message
|
|
94
|
+
* re-synchronizes instead of being rejected as a replay against the removed key's high-water counter.
|
|
95
|
+
*/
|
|
96
|
+
forgetReceptionState(operationalKey: Bytes) {
|
|
97
|
+
this.#messageDataReceptionState.delete(Bytes.toHex(operationalKey));
|
|
98
|
+
}
|
|
90
99
|
}
|