@matter/protocol 0.17.2 → 0.17.3-alpha.0-20260617-ea3690abc
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/ClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.js +16 -2
- package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
- package/dist/cjs/action/client/ClientRequest.d.ts +8 -1
- package/dist/cjs/action/client/ClientRequest.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeReadResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeReadResponse.js +26 -12
- package/dist/cjs/action/server/AttributeReadResponse.js.map +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.js +27 -10
- package/dist/cjs/action/server/AttributeWriteResponse.js.map +1 -1
- package/dist/cjs/action/server/CommandInvokeResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/CommandInvokeResponse.js +27 -10
- package/dist/cjs/action/server/CommandInvokeResponse.js.map +1 -1
- package/dist/cjs/action/server/EventReadResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/EventReadResponse.js +27 -10
- package/dist/cjs/action/server/EventReadResponse.js.map +1 -1
- package/dist/cjs/certificate/DeviceAttestationValidator.d.ts.map +1 -1
- package/dist/cjs/certificate/DeviceAttestationValidator.js +15 -12
- package/dist/cjs/certificate/DeviceAttestationValidator.js.map +1 -1
- package/dist/cjs/certificate/kinds/Certificate.d.ts +7 -0
- package/dist/cjs/certificate/kinds/Certificate.d.ts.map +1 -1
- package/dist/cjs/certificate/kinds/Certificate.js +30 -1
- package/dist/cjs/certificate/kinds/Certificate.js.map +1 -1
- package/dist/cjs/codec/MessagePrivacy.d.ts +1 -1
- package/dist/cjs/codec/MessagePrivacy.d.ts.map +1 -1
- package/dist/cjs/codec/MessagePrivacy.js +3 -2
- package/dist/cjs/codec/MessagePrivacy.js.map +1 -1
- package/dist/cjs/events/OccurrenceManager.d.ts +2 -2
- package/dist/cjs/events/OccurrenceManager.d.ts.map +1 -1
- package/dist/cjs/interaction/AttributeDataEncoder.d.ts.map +1 -1
- package/dist/cjs/interaction/AttributeDataEncoder.js.map +1 -1
- package/dist/cjs/peer/Peer.d.ts +5 -0
- package/dist/cjs/peer/Peer.d.ts.map +1 -1
- package/dist/cjs/peer/Peer.js +1 -0
- package/dist/cjs/peer/Peer.js.map +1 -1
- package/dist/cjs/peer/PeerConnection.d.ts +6 -1
- package/dist/cjs/peer/PeerConnection.d.ts.map +1 -1
- package/dist/cjs/peer/PeerConnection.js +23 -5
- package/dist/cjs/peer/PeerConnection.js.map +1 -1
- package/dist/cjs/peer/PeerExchangeProvider.d.ts.map +1 -1
- package/dist/cjs/peer/PeerExchangeProvider.js +3 -0
- package/dist/cjs/peer/PeerExchangeProvider.js.map +1 -1
- package/dist/cjs/peer/PeerTimingParameters.d.ts +9 -0
- package/dist/cjs/peer/PeerTimingParameters.d.ts.map +1 -1
- package/dist/cjs/peer/PeerTimingParameters.js +3 -1
- package/dist/cjs/peer/PeerTimingParameters.js.map +1 -1
- package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
- package/dist/cjs/protocol/DeviceCommissioner.js +1 -1
- package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.d.ts +6 -1
- package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.js +4 -2
- package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
- package/dist/cjs/protocol/MRP.d.ts +1 -1
- package/dist/cjs/protocol/MRP.d.ts.map +1 -1
- package/dist/cjs/protocol/MRP.js +1 -2
- package/dist/cjs/protocol/MRP.js.map +1 -1
- package/dist/cjs/protocol/MessageExchange.d.ts +14 -1
- package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageExchange.js +31 -5
- package/dist/cjs/protocol/MessageExchange.js.map +1 -1
- package/dist/cjs/session/pase/PaseClient.d.ts.map +1 -1
- package/dist/cjs/session/pase/PaseClient.js +1 -1
- package/dist/cjs/session/pase/PaseClient.js.map +1 -1
- package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/cjs/session/pase/PaseServer.js +11 -2
- package/dist/cjs/session/pase/PaseServer.js.map +1 -1
- package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.js +16 -2
- package/dist/esm/action/client/ClientInteraction.js.map +1 -1
- package/dist/esm/action/client/ClientRequest.d.ts +8 -1
- package/dist/esm/action/client/ClientRequest.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeReadResponse.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeReadResponse.js +27 -13
- package/dist/esm/action/server/AttributeReadResponse.js.map +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.js +28 -11
- package/dist/esm/action/server/AttributeWriteResponse.js.map +1 -1
- package/dist/esm/action/server/CommandInvokeResponse.d.ts.map +1 -1
- package/dist/esm/action/server/CommandInvokeResponse.js +28 -11
- package/dist/esm/action/server/CommandInvokeResponse.js.map +1 -1
- package/dist/esm/action/server/EventReadResponse.d.ts.map +1 -1
- package/dist/esm/action/server/EventReadResponse.js +28 -11
- package/dist/esm/action/server/EventReadResponse.js.map +1 -1
- package/dist/esm/certificate/DeviceAttestationValidator.d.ts.map +1 -1
- package/dist/esm/certificate/DeviceAttestationValidator.js +16 -13
- package/dist/esm/certificate/DeviceAttestationValidator.js.map +1 -1
- package/dist/esm/certificate/kinds/Certificate.d.ts +7 -0
- package/dist/esm/certificate/kinds/Certificate.d.ts.map +1 -1
- package/dist/esm/certificate/kinds/Certificate.js +30 -1
- package/dist/esm/certificate/kinds/Certificate.js.map +1 -1
- package/dist/esm/codec/MessagePrivacy.d.ts +1 -1
- package/dist/esm/codec/MessagePrivacy.d.ts.map +1 -1
- package/dist/esm/codec/MessagePrivacy.js +4 -2
- package/dist/esm/codec/MessagePrivacy.js.map +1 -1
- package/dist/esm/events/OccurrenceManager.d.ts +2 -2
- package/dist/esm/events/OccurrenceManager.d.ts.map +1 -1
- package/dist/esm/events/OccurrenceManager.js.map +1 -1
- package/dist/esm/interaction/AttributeDataEncoder.d.ts.map +1 -1
- package/dist/esm/interaction/AttributeDataEncoder.js.map +1 -1
- package/dist/esm/peer/Peer.d.ts +5 -0
- package/dist/esm/peer/Peer.d.ts.map +1 -1
- package/dist/esm/peer/Peer.js +1 -0
- package/dist/esm/peer/Peer.js.map +1 -1
- package/dist/esm/peer/PeerConnection.d.ts +6 -1
- package/dist/esm/peer/PeerConnection.d.ts.map +1 -1
- package/dist/esm/peer/PeerConnection.js +23 -5
- package/dist/esm/peer/PeerConnection.js.map +1 -1
- package/dist/esm/peer/PeerExchangeProvider.d.ts.map +1 -1
- package/dist/esm/peer/PeerExchangeProvider.js +3 -0
- package/dist/esm/peer/PeerExchangeProvider.js.map +1 -1
- package/dist/esm/peer/PeerTimingParameters.d.ts +9 -0
- package/dist/esm/peer/PeerTimingParameters.d.ts.map +1 -1
- package/dist/esm/peer/PeerTimingParameters.js +4 -2
- package/dist/esm/peer/PeerTimingParameters.js.map +1 -1
- package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
- package/dist/esm/protocol/DeviceCommissioner.js +2 -1
- package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.d.ts +6 -1
- package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.js +4 -2
- package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
- package/dist/esm/protocol/MRP.d.ts +1 -1
- package/dist/esm/protocol/MRP.d.ts.map +1 -1
- package/dist/esm/protocol/MRP.js +1 -2
- package/dist/esm/protocol/MRP.js.map +1 -1
- package/dist/esm/protocol/MessageExchange.d.ts +14 -1
- package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/esm/protocol/MessageExchange.js +31 -5
- package/dist/esm/protocol/MessageExchange.js.map +1 -1
- package/dist/esm/session/pase/PaseClient.d.ts.map +1 -1
- package/dist/esm/session/pase/PaseClient.js +2 -2
- package/dist/esm/session/pase/PaseClient.js.map +1 -1
- package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/esm/session/pase/PaseServer.js +12 -2
- package/dist/esm/session/pase/PaseServer.js.map +1 -1
- package/package.json +5 -5
- package/src/action/client/ClientInteraction.ts +19 -1
- package/src/action/client/ClientRequest.ts +9 -1
- package/src/action/server/AttributeReadResponse.ts +39 -18
- package/src/action/server/AttributeWriteResponse.ts +35 -19
- package/src/action/server/CommandInvokeResponse.ts +36 -15
- package/src/action/server/EventReadResponse.ts +42 -16
- package/src/certificate/DeviceAttestationValidator.ts +17 -13
- package/src/certificate/kinds/Certificate.ts +43 -0
- package/src/codec/MessagePrivacy.ts +6 -4
- package/src/events/OccurrenceManager.ts +2 -2
- package/src/interaction/AttributeDataEncoder.ts +3 -3
- package/src/peer/Peer.ts +7 -0
- package/src/peer/PeerConnection.ts +33 -6
- package/src/peer/PeerExchangeProvider.ts +4 -0
- package/src/peer/PeerTimingParameters.ts +15 -2
- package/src/protocol/DeviceCommissioner.ts +2 -1
- package/src/protocol/ExchangeProvider.ts +12 -2
- package/src/protocol/MRP.ts +5 -6
- package/src/protocol/MessageExchange.ts +44 -6
- package/src/session/pase/PaseClient.ts +2 -6
- package/src/session/pase/PaseServer.ts +12 -2
|
@@ -127,7 +127,7 @@ class MessageExchange {
|
|
|
127
127
|
#onSend;
|
|
128
128
|
#onReceive;
|
|
129
129
|
#addressOverride;
|
|
130
|
-
#
|
|
130
|
+
#peerAdditionalMrpDelay;
|
|
131
131
|
#receivedMessageToAck;
|
|
132
132
|
#receivedMessageAckTimer = Time.getTimer("ack receipt timeout", MRP.STANDALONE_ACK_TIMEOUT, () => {
|
|
133
133
|
if (this.#receivedMessageToAck !== void 0) {
|
|
@@ -175,6 +175,7 @@ class MessageExchange {
|
|
|
175
175
|
onSend,
|
|
176
176
|
onReceive,
|
|
177
177
|
network,
|
|
178
|
+
peerAdditionalMrpDelay,
|
|
178
179
|
addressOverride
|
|
179
180
|
} = config;
|
|
180
181
|
this.#context = context;
|
|
@@ -187,7 +188,7 @@ class MessageExchange {
|
|
|
187
188
|
this.#onSend = onSend;
|
|
188
189
|
this.#onReceive = onReceive;
|
|
189
190
|
this.#addressOverride = addressOverride;
|
|
190
|
-
this.#
|
|
191
|
+
this.#peerAdditionalMrpDelay = peerAdditionalMrpDelay;
|
|
191
192
|
const { activeThreshold, activeInterval, idleInterval } = this.session.parameters;
|
|
192
193
|
this.#used = !isInitiator;
|
|
193
194
|
const { session } = context;
|
|
@@ -823,12 +824,21 @@ class MessageExchange {
|
|
|
823
824
|
return `${this.#messageReceivedCounter}${Mark.TRANSFERRED}${this.#messageSendCounter}${this.#totalRetransmissionCounter > 0 ? `+${this.#totalRetransmissionCounter}` : ""}`;
|
|
824
825
|
}
|
|
825
826
|
get #mrpResubmissionBackOffTime() {
|
|
827
|
+
return this.#backOffFor(this.#retransmissionCounter);
|
|
828
|
+
}
|
|
829
|
+
/**
|
|
830
|
+
* Scheduled MRP backoff for a given (re)transmission number, after the send-option overrides.
|
|
831
|
+
*
|
|
832
|
+
* The cap never drops below the peer's idle interval: a peer whose idle base backoff already exceeds
|
|
833
|
+
* maxRetransmissionTime must not be retried faster than its own idle cadence.
|
|
834
|
+
*/
|
|
835
|
+
#backOffFor(retransmissionCount) {
|
|
826
836
|
const additionalDelay = Duration.max(
|
|
827
837
|
this.#context.localAdditionalMrpDelay,
|
|
828
|
-
this.#
|
|
838
|
+
this.#peerAdditionalMrpDelay ?? Millis(0)
|
|
829
839
|
);
|
|
830
840
|
let backOff = this.channel.getMrpResubmissionBackOffTime(
|
|
831
|
-
|
|
841
|
+
retransmissionCount,
|
|
832
842
|
void 0,
|
|
833
843
|
false,
|
|
834
844
|
additionalDelay
|
|
@@ -836,7 +846,23 @@ class MessageExchange {
|
|
|
836
846
|
if (this.#sendOptions.initialRetransmissionTime !== void 0) {
|
|
837
847
|
backOff = Millis(backOff + this.#sendOptions.initialRetransmissionTime);
|
|
838
848
|
}
|
|
839
|
-
|
|
849
|
+
const cap = Duration.max(
|
|
850
|
+
this.#sendOptions.maxRetransmissionTime ?? Forever,
|
|
851
|
+
this.session.parameters.idleInterval ?? Instant
|
|
852
|
+
);
|
|
853
|
+
return Duration.min(backOff, cap);
|
|
854
|
+
}
|
|
855
|
+
/**
|
|
856
|
+
* How much restarting the exchange (resetting the retransmission counter to 0) would shorten the wait until
|
|
857
|
+
* the next (re)transmission. Roughly zero near the base interval — e.g. an idle peer, whose fresh interval is
|
|
858
|
+
* just as slow.
|
|
859
|
+
*/
|
|
860
|
+
get retransmissionRestartSaving() {
|
|
861
|
+
const currentWait = this.#retransmissionTimer?.interval;
|
|
862
|
+
if (currentWait === void 0) {
|
|
863
|
+
return Instant;
|
|
864
|
+
}
|
|
865
|
+
return Duration.max(Instant, Millis(currentWait - this.#backOffFor(0)));
|
|
840
866
|
}
|
|
841
867
|
}
|
|
842
868
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/protocol/MessageExchange.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["_stack", "protocolId", "messageType", "_", "_error", "_hasError", "error"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaseClient.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAEH,KAAK,EAEL,OAAO,EACP,MAAM,EAKN,eAAe,EAGlB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAQpE,qBAAa,UAAU;;IAGnB,YAAY,QAAQ,EAAE,cAAc,EAEnC;IAED,OAAa,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,oCAG/G;IAED,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"PaseClient.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAEH,KAAK,EAEL,OAAO,EACP,MAAM,EAKN,eAAe,EAGlB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAQpE,qBAAa,UAAU;;IAGnB,YAAY,QAAQ,EAAE,cAAc,EAEnC;IAED,OAAa,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,oCAG/G;IAED,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,UAY3C;IAED,MAAM,CAAC,2BAA2B,CAAC,MAAM,EAAE,MAAM,UAEhD;IAEK,IAAI,CACN,sBAAsB,EAAE,iBAAiB,EACzC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,UAAU,CAAC,WAAW,oDA+BnC;CAyFJ;AAED,yBAAiB,UAAU,CAAC,CAAC;IACzB,UAAiB,WAAW;QACxB,KAAK,CAAC,EAAE,WAAW,CAAC;KACvB;CACJ"}
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
Spake2p,
|
|
16
16
|
UnexpectedDataError
|
|
17
17
|
} from "@matter/general";
|
|
18
|
-
import {
|
|
18
|
+
import { isValidPasscode, NodeId, SecureChannelStatusCode } from "@matter/types";
|
|
19
19
|
import { TransientPeerCommunicationError } from "../../peer/PeerCommunicationError.js";
|
|
20
20
|
import { RetransmissionLimitReachedError } from "../../protocol/errors.js";
|
|
21
21
|
import { DEFAULT_PASSCODE_ID, PaseClientMessenger, SPAKE_CONTEXT } from "./PaseMessenger.js";
|
|
@@ -33,7 +33,7 @@ class PaseClient {
|
|
|
33
33
|
static generateRandomPasscode(crypto) {
|
|
34
34
|
for (let i = 0; i < MAX_PASSCODE_GENERATION_ATTEMPTS; i++) {
|
|
35
35
|
const passcode = crypto.randomUint32 & 134217727;
|
|
36
|
-
if (
|
|
36
|
+
if (isValidPasscode(passcode)) {
|
|
37
37
|
return passcode;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/session/pase/PaseClient.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY;AAGrB;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OACG;AACP,SAAS,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaseServer.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"PaseServer.d.ts","sourceRoot":"","sources":["../../../../src/session/pase/PaseServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAEH,KAAK,EAML,eAAe,EACf,eAAe,EAMlB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAuB,mBAAmB,EAAiB,MAAM,oBAAoB,CAAC;AAO7F,qBAAa,oCAAqC,SAAQ,eAAe;CAAG;AAE5E,qBAAa,UAAW,YAAW,eAAe;;IA0B1C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IA5BrC,QAAQ,CAAC,EAAE,KAA8B;IACzC,QAAQ,CAAC,qBAAqB,SAAS;IAOvC,OAAa,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,uBAGpG;IAED,MAAM,CAAC,qBAAqB,CACxB,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,KAAK,EACxB,eAAe,CAAC,EAAE,eAAe,cAMpC;IAED,YACY,QAAQ,EAAE,cAAc,EACf,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,KAAK,EACR,eAAe,CAAC,EAAE,eAAe,YAAA,EAClD;IAEE,aAAa,CAAC,QAAQ,EAAE,eAAe,iBAkD5C;YAEa,oBAAoB;IAqF5B,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,SAAS,UAAO,iBAYnE;IAEK,KAAK,kBAGV;CACJ"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Mark } from "#common/Mark.js";
|
|
7
7
|
import {
|
|
8
|
+
asError,
|
|
8
9
|
Bytes,
|
|
9
10
|
causedBy,
|
|
10
11
|
Diagnostic,
|
|
@@ -96,7 +97,9 @@ class PaseServer {
|
|
|
96
97
|
this.#pairingTimer = Time.getTimer(
|
|
97
98
|
"PASE pairing timeout",
|
|
98
99
|
PASE_PAIRING_TIMEOUT,
|
|
99
|
-
() => this.cancelPairing(messenger)
|
|
100
|
+
() => this.cancelPairing(messenger).catch(
|
|
101
|
+
(error) => logger.warn("Error cancelling PASE pairing after timeout:", Diagnostic.errorMessage(asError(error)))
|
|
102
|
+
)
|
|
100
103
|
).start();
|
|
101
104
|
const {
|
|
102
105
|
requestPayload,
|
|
@@ -160,7 +163,14 @@ class PaseServer {
|
|
|
160
163
|
}
|
|
161
164
|
async cancelPairing(messenger, sendError = true) {
|
|
162
165
|
if (sendError) {
|
|
163
|
-
|
|
166
|
+
try {
|
|
167
|
+
await messenger.sendError(SecureChannelStatusCode.InvalidParam);
|
|
168
|
+
} catch (error) {
|
|
169
|
+
logger.info(
|
|
170
|
+
"Could not send pairing-cancellation status report to peer:",
|
|
171
|
+
Diagnostic.errorMessage(asError(error))
|
|
172
|
+
);
|
|
173
|
+
}
|
|
164
174
|
}
|
|
165
175
|
await messenger.close();
|
|
166
176
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/session/pase/PaseServer.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY;AAErB;AAAA,EACI;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AACP,SAAS,QAAQ,4BAA4B,+BAA+B;AAG5E,SAAS,kCAAkC;AAC3C,SAAS,qBAAqB,qBAAqB,qBAAqB;AAExE,MAAM,SAAS,OAAO,IAAI,YAAY;AAEtC,MAAM,uBAAuB,QAAQ,EAAE;AACvC,MAAM,gCAAgC;AAE/B,MAAM,6CAA6C,gBAAgB;AAAC;AAEpE,MAAM,WAAsC;AAAA,EAyB/C,YACY,UACS,IACA,GACA,iBACnB;AAJU;AACS;AACA;AACA;AAAA,EAClB;AAAA,EAJS;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EA5BZ,KAAK;AAAA,EACL,wBAAwB;AAAA,EAEjC;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,UAAU;AAAA,EAEV,aAAa,QAAQ,UAA0B,cAAsB,iBAAkC;AACnG,UAAM,EAAE,IAAI,EAAE,IAAI,MAAM,QAAQ,WAAW,SAAS,QAAQ,iBAAiB,YAAY;AACzF,WAAO,IAAI,WAAW,UAAU,IAAI,GAAG,eAAe;AAAA,EAC1D;AAAA,EAEA,OAAO,sBACH,UACA,mBACA,iBACF;AACE,UAAM,mBAAmB,MAAM,GAAG,iBAAiB;AACnD,UAAM,KAAK,MAAM,SAAS,iBAAiB,MAAM,GAAG,EAAE,CAAC;AACvD,UAAM,IAAI,iBAAiB,MAAM,IAAI,KAAK,EAAE;AAC5C,WAAO,IAAI,WAAW,UAAU,IAAI,GAAG,eAAe;AAAA,EAC1D;AAAA,EASA,MAAM,cAAc,UAA2B;AAC3C,QAAI,KAAK,SAAS;AACd,aAAO,KAAK,+DAA+D;AAC3E;AAAA,IACJ;AAMA,UAAM,cAAc,KAAK,SAAS,eAAe;AACjD,QAAI,gBAAgB,UAAa,CAAC,YAAY,WAAW;AACrD,aAAO,KAAK,0EAA0E;AAAA,IAC1F,WAAW,KAAK,eAAe,WAAW;AACtC,aAAO,KAAK,uFAAuF;AAAA,IACvG,WAAW,KAAK,sBAAsB,QAAW;AAC7C,aAAO,KAAK,4DAA4D;AAAA,IAC5E,OAAO;AACH,YAAM,YAAY,IAAI,oBAAoB,QAAQ;AAElD,UAAI;AACA,aAAK,oBAAoB;AAEzB,cAAM,KAAK,qBAAqB,KAAK,SAAS,QAAQ,UAAU,QAAQ,gBAAgB;AAAA,MAC5F,SAAS,OAAO;AACZ,aAAK;AACL,eAAO;AAAA,UACH,gDAAgD,KAAK,cAAc,IAAI,6BAA6B;AAAA,UACpG,KAAK,mBAAmB,SAAS;AAAA,UACjC;AAAA,QACJ;AAGA,cAAM,YAAY,CAAC,SAAS,OAAO,0BAA0B;AAC7D,cAAM,KAAK,cAAc,WAAW,SAAS;AAE7C,YAAI,KAAK,kBAAkB,+BAA+B;AACtD,gBAAM,IAAI;AAAA,YACN;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ,UAAE;AACE,aAAK,eAAe,KAAK;AACzB,aAAK,gBAAgB;AACrB,aAAK,oBAAoB;AAEzB,iBAAS,QAAQ,cAAc;AAC/B,cAAM,SAAS,QAAQ,cAAc;AAAA,MACzC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAc,qBAAqB,QAAgB,SAAyB;AACxE,UAAM,YAAY,KAAK;AAEvB,WAAO,KAAK,4BAA4B,KAAK,SAAS,WAAW,IAAI,UAAU,WAAW,CAAC;AAE3F,SAAK,gBAAgB,KAAK;AAAA,MAAS;AAAA,MAAwB;AAAA,MAAsB,MAC7E,KAAK,cAAc,SAAS;AAAA,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY;AAErB;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AACP,SAAS,QAAQ,4BAA4B,+BAA+B;AAG5E,SAAS,kCAAkC;AAC3C,SAAS,qBAAqB,qBAAqB,qBAAqB;AAExE,MAAM,SAAS,OAAO,IAAI,YAAY;AAEtC,MAAM,uBAAuB,QAAQ,EAAE;AACvC,MAAM,gCAAgC;AAE/B,MAAM,6CAA6C,gBAAgB;AAAC;AAEpE,MAAM,WAAsC;AAAA,EAyB/C,YACY,UACS,IACA,GACA,iBACnB;AAJU;AACS;AACA;AACA;AAAA,EAClB;AAAA,EAJS;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EA5BZ,KAAK;AAAA,EACL,wBAAwB;AAAA,EAEjC;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB,UAAU;AAAA,EAEV,aAAa,QAAQ,UAA0B,cAAsB,iBAAkC;AACnG,UAAM,EAAE,IAAI,EAAE,IAAI,MAAM,QAAQ,WAAW,SAAS,QAAQ,iBAAiB,YAAY;AACzF,WAAO,IAAI,WAAW,UAAU,IAAI,GAAG,eAAe;AAAA,EAC1D;AAAA,EAEA,OAAO,sBACH,UACA,mBACA,iBACF;AACE,UAAM,mBAAmB,MAAM,GAAG,iBAAiB;AACnD,UAAM,KAAK,MAAM,SAAS,iBAAiB,MAAM,GAAG,EAAE,CAAC;AACvD,UAAM,IAAI,iBAAiB,MAAM,IAAI,KAAK,EAAE;AAC5C,WAAO,IAAI,WAAW,UAAU,IAAI,GAAG,eAAe;AAAA,EAC1D;AAAA,EASA,MAAM,cAAc,UAA2B;AAC3C,QAAI,KAAK,SAAS;AACd,aAAO,KAAK,+DAA+D;AAC3E;AAAA,IACJ;AAMA,UAAM,cAAc,KAAK,SAAS,eAAe;AACjD,QAAI,gBAAgB,UAAa,CAAC,YAAY,WAAW;AACrD,aAAO,KAAK,0EAA0E;AAAA,IAC1F,WAAW,KAAK,eAAe,WAAW;AACtC,aAAO,KAAK,uFAAuF;AAAA,IACvG,WAAW,KAAK,sBAAsB,QAAW;AAC7C,aAAO,KAAK,4DAA4D;AAAA,IAC5E,OAAO;AACH,YAAM,YAAY,IAAI,oBAAoB,QAAQ;AAElD,UAAI;AACA,aAAK,oBAAoB;AAEzB,cAAM,KAAK,qBAAqB,KAAK,SAAS,QAAQ,UAAU,QAAQ,gBAAgB;AAAA,MAC5F,SAAS,OAAO;AACZ,aAAK;AACL,eAAO;AAAA,UACH,gDAAgD,KAAK,cAAc,IAAI,6BAA6B;AAAA,UACpG,KAAK,mBAAmB,SAAS;AAAA,UACjC;AAAA,QACJ;AAGA,cAAM,YAAY,CAAC,SAAS,OAAO,0BAA0B;AAC7D,cAAM,KAAK,cAAc,WAAW,SAAS;AAE7C,YAAI,KAAK,kBAAkB,+BAA+B;AACtD,gBAAM,IAAI;AAAA,YACN;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ,UAAE;AACE,aAAK,eAAe,KAAK;AACzB,aAAK,gBAAgB;AACrB,aAAK,oBAAoB;AAEzB,iBAAS,QAAQ,cAAc;AAC/B,cAAM,SAAS,QAAQ,cAAc;AAAA,MACzC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAc,qBAAqB,QAAgB,SAAyB;AACxE,UAAM,YAAY,KAAK;AAEvB,WAAO,KAAK,4BAA4B,KAAK,SAAS,WAAW,IAAI,UAAU,WAAW,CAAC;AAE3F,SAAK,gBAAgB,KAAK;AAAA,MAAS;AAAA,MAAwB;AAAA,MAAsB,MAC7E,KAAK,cAAc,SAAS,EAAE;AAAA,QAAM,WAChC,OAAO,KAAK,gDAAgD,WAAW,aAAa,QAAQ,KAAK,CAAC,CAAC;AAAA,MACvG;AAAA,IACJ,EAAE,MAAM;AAGR,UAAM;AAAA,MACF;AAAA,MACA,SAAS;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,oBAAoB;AAAA,MACxB;AAAA,IACJ,IAAI,MAAM,UAAU,sBAAsB;AAC1C,QAAI,eAAe,qBAAqB;AACpC,YAAM,IAAI,oBAAoB,2BAA2B,UAAU,GAAG;AAAA,IAC1E;AAEA,UAAM,qBAAqB,MAAM,KAAK,SAAS,0BAA0B;AACzE,UAAM,kBAAkB,OAAO,YAAY,EAAE;AAE7C,UAAM,yBAAyB,KAAK,SAAS;AAG7C,QAAI,2BAA2B,QAAW;AACtC,gBAAU,QAAQ,QAAQ,mBAAmB;AAAA,IACjD;AAEA,UAAM,kBAAkB,MAAM,UAAU,uBAAuB;AAAA,MAC3D;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,qBAAqB,SAAY,KAAK;AAAA,MACvD;AAAA,IACJ,CAAC;AAGD,UAAM,UAAU,QAAQ;AAAA,MACpB;AAAA,MACA,MAAM,OAAO,YAAY,CAAC,eAAe,gBAAgB,eAAe,CAAC;AAAA,MACzE,KAAK;AAAA,IACT;AACA,UAAM,EAAE,GAAG,EAAE,IAAI,MAAM,UAAU,cAAc;AAC/C,UAAM,IAAI,QAAQ,SAAS;AAC3B,UAAM,EAAE,IAAI,KAAK,IAAI,IAAI,MAAM,QAAQ,+BAA+B,KAAK,GAAG,GAAG,CAAC;AAClF,UAAM,UAAU,cAAc,EAAE,GAAG,GAAG,UAAU,IAAI,CAAC;AAGrD,UAAM,EAAE,SAAS,IAAI,MAAM,UAAU,cAAc;AACnD,QAAI,CAAC,MAAM,SAAS,UAAU,GAAG,GAAG;AAChC,YAAM,IAAI,oBAAoB,yDAAyD;AAAA,IAC3F;AAGA,UAAM,UAAU,MAAM,KAAK,SAAS,oBAAoB;AAAA,MACpD;AAAA,MACA,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,YAAY,OAAO;AAAA,MACnB;AAAA,MACA,cAAc;AAAA,MACd,MAAM,IAAI,WAAW,CAAC;AAAA,MACtB,aAAa;AAAA,MACb,cAAc;AAAA,MACd,uBAAuB;AAAA,IAC3B,CAAC;AACD,WAAO;AAAA,MACH,QAAQ;AAAA,MACR;AAAA,MACA,WAAW,OAAO,UAAU,WAAW;AAAA,MACvC,UAAU,SAAS;AAAA,IACvB;AAEA,UAAM,UAAU,YAAY;AAC5B,UAAM,UAAU,MAAM;AAAA,EAC1B;AAAA,EAEA,MAAM,cAAc,WAAgC,YAAY,MAAM;AAClE,QAAI,WAAW;AACX,UAAI;AACA,cAAM,UAAU,UAAU,wBAAwB,YAAY;AAAA,MAClE,SAAS,OAAO;AACZ,eAAO;AAAA,UACH;AAAA,UACA,WAAW,aAAa,QAAQ,KAAK,CAAC;AAAA,QAC1C;AAAA,MACJ;AAAA,IACJ;AACA,UAAM,UAAU,MAAM;AAAA,EAC1B;AAAA,EAEA,MAAM,QAAQ;AACV,SAAK,UAAU;AACf,UAAM,KAAK,mBAAmB,MAAM;AAAA,EACxC;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.
|
|
3
|
+
"version": "0.17.3-alpha.0-20260617-ea3690abc",
|
|
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.
|
|
39
|
-
"@matter/model": "0.17.
|
|
40
|
-
"@matter/types": "0.17.
|
|
38
|
+
"@matter/general": "0.17.3-alpha.0-20260617-ea3690abc",
|
|
39
|
+
"@matter/model": "0.17.3-alpha.0-20260617-ea3690abc",
|
|
40
|
+
"@matter/types": "0.17.3-alpha.0-20260617-ea3690abc"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@matter/testing": "0.17.
|
|
43
|
+
"@matter/testing": "0.17.3-alpha.0-20260617-ea3690abc"
|
|
44
44
|
},
|
|
45
45
|
"files": [
|
|
46
46
|
"dist/**/*",
|
|
@@ -97,6 +97,7 @@ interface PendingCommand {
|
|
|
97
97
|
request: Invoke.ConcreteCommandRequest<any>;
|
|
98
98
|
pathKey: string;
|
|
99
99
|
network?: string;
|
|
100
|
+
additionalMrpDelay?: Duration;
|
|
100
101
|
resolve: (entry: InvokeResult.DecodedData | undefined) => void;
|
|
101
102
|
reject: (error: Error) => void;
|
|
102
103
|
aborted?: boolean;
|
|
@@ -185,6 +186,17 @@ export class ClientInteraction<
|
|
|
185
186
|
|
|
186
187
|
using _closing = this.#lifetime.closing();
|
|
187
188
|
|
|
189
|
+
// Close subscriptions established through this interaction so they do not outlive the interactable; a
|
|
190
|
+
// sustained subscription would otherwise retry forever against a closed interactable.
|
|
191
|
+
const peer = this.#exchangeProvider.peerAddress;
|
|
192
|
+
if (this.#subscriptions !== undefined && peer !== undefined) {
|
|
193
|
+
for (const subscription of [...this.#subscriptions]) {
|
|
194
|
+
if (PeerAddress.is(peer, subscription.peer)) {
|
|
195
|
+
subscription.close();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
188
200
|
// Close batching
|
|
189
201
|
this.#batchTimer?.stop();
|
|
190
202
|
for (const [, pending] of this.#pendingCommands) {
|
|
@@ -612,6 +624,7 @@ export class ClientInteraction<
|
|
|
612
624
|
request: { ...cmd, commandRef } as Invoke.ConcreteCommandRequest<any>,
|
|
613
625
|
pathKey,
|
|
614
626
|
network: request.network,
|
|
627
|
+
additionalMrpDelay: request.additionalMrpDelay,
|
|
615
628
|
resolve: resolver,
|
|
616
629
|
reject: rejecter,
|
|
617
630
|
};
|
|
@@ -764,6 +777,9 @@ export class ClientInteraction<
|
|
|
764
777
|
// Preserve the network profile from the queued commands (all commands in a batch share the same
|
|
765
778
|
// ClientInteraction so they will normally have the same network; pick the first defined value)
|
|
766
779
|
const batchNetwork = commandList.find(c => c.network !== undefined)?.network;
|
|
780
|
+
const batchAdditionalMrpDelay = commandList.find(
|
|
781
|
+
c => c.additionalMrpDelay !== undefined,
|
|
782
|
+
)?.additionalMrpDelay;
|
|
767
783
|
|
|
768
784
|
// Use #invokeSingle directly to avoid re-entering the batching path in invoke()
|
|
769
785
|
// Skip validation: already validated on submit. timed=false: only non-timed commands
|
|
@@ -771,6 +787,7 @@ export class ClientInteraction<
|
|
|
771
787
|
const batchRequest = {
|
|
772
788
|
...Invoke({ commands: invokeRequests, skipValidation: true, timed: false }),
|
|
773
789
|
network: batchNetwork,
|
|
790
|
+
additionalMrpDelay: batchAdditionalMrpDelay,
|
|
774
791
|
} as ClientInvoke;
|
|
775
792
|
const maxPathsPerInvoke = this.#exchangeProvider.maxPathsPerInvoke ?? 1;
|
|
776
793
|
const chunks =
|
|
@@ -1028,7 +1045,7 @@ export class ClientInteraction<
|
|
|
1028
1045
|
try {
|
|
1029
1046
|
if (this.#abort.aborted) {
|
|
1030
1047
|
throw new ImplementationError(
|
|
1031
|
-
`Cannot ${what} ${this.#address ?? "uncommissioned node"} because interactable is closed`,
|
|
1048
|
+
`Cannot start ${what} ${this.#address ?? this.#exchangeProvider.peerAddress ?? "uncommissioned node"} because interactable is closed`,
|
|
1032
1049
|
);
|
|
1033
1050
|
}
|
|
1034
1051
|
|
|
@@ -1037,6 +1054,7 @@ export class ClientInteraction<
|
|
|
1037
1054
|
try {
|
|
1038
1055
|
messenger = await InteractionClientMessenger.create(this.#exchangeProvider, {
|
|
1039
1056
|
network: request.network ?? this.#network,
|
|
1057
|
+
additionalMrpDelay: request.additionalMrpDelay,
|
|
1040
1058
|
abort,
|
|
1041
1059
|
connectionTimeout: session?.connectionTimeout,
|
|
1042
1060
|
addressOverride: request.addressOverride,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import type { NetworkProfile } from "#peer/NetworkProfile.js";
|
|
8
|
-
import type { ServerAddressUdp } from "@matter/general";
|
|
8
|
+
import type { Duration, ServerAddressUdp } from "@matter/general";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Represents a client request with customizable transmission behavior.
|
|
@@ -23,6 +23,14 @@ export interface ClientRequest {
|
|
|
23
23
|
*/
|
|
24
24
|
network?: string;
|
|
25
25
|
|
|
26
|
+
/**
|
|
27
|
+
* Override the peer-medium MRP retransmission margin for this interaction.
|
|
28
|
+
*
|
|
29
|
+
* By default the margin derives from the peer's network medium (e.g. thread's longer margin), independent of
|
|
30
|
+
* the {@link network} throttle profile. Set this to override that default for a single interaction.
|
|
31
|
+
*/
|
|
32
|
+
additionalMrpDelay?: Duration;
|
|
33
|
+
|
|
26
34
|
/**
|
|
27
35
|
* Override the destination address for this interaction's exchange.
|
|
28
36
|
*
|
|
@@ -12,7 +12,7 @@ import { AccessControl, hasLocalActor, hasRemoteActor } from "#action/server/Acc
|
|
|
12
12
|
import { DataResponse, FallbackLimits, WildcardPathFlagsCodec } from "#action/server/DataResponse.js";
|
|
13
13
|
import { Val } from "#action/Val.js";
|
|
14
14
|
import { InternalError, Logger, serialize } from "@matter/general";
|
|
15
|
-
import { AttributeModel, DataModelPath, ElementTag } from "@matter/model";
|
|
15
|
+
import { AccessLevel, AttributeModel, DataModelPath, ElementTag } from "@matter/model";
|
|
16
16
|
import {
|
|
17
17
|
AttributePath,
|
|
18
18
|
ClusterId,
|
|
@@ -204,8 +204,10 @@ export class AttributeReadResponse<
|
|
|
204
204
|
limits = attribute.limits;
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
+
// Order prescribed by core spec 8.4.3.2: a View-privilege pass gates element-existence disclosure,
|
|
208
|
+
// existence checks follow, then the actual-privilege pass gates the data.
|
|
209
|
+
let access: { session: AccessControl.RemoteActorSession; location: AccessControl.Location } | undefined;
|
|
207
210
|
if (hasRemoteActor(this.session)) {
|
|
208
|
-
// Validate access. Order here prescribed by 1.4 core spec 8.4.3.2
|
|
209
211
|
// We need some fallback location if cluster is not defined
|
|
210
212
|
const location: AccessControl.Location = {
|
|
211
213
|
...(cluster?.location ?? {
|
|
@@ -215,23 +217,10 @@ export class AttributeReadResponse<
|
|
|
215
217
|
}),
|
|
216
218
|
owningFabric: this.session.fabric,
|
|
217
219
|
};
|
|
220
|
+
access = { session: this.session, location };
|
|
218
221
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
switch (permission) {
|
|
222
|
-
case AccessControl.Authority.Granted:
|
|
223
|
-
break;
|
|
224
|
-
|
|
225
|
-
case AccessControl.Authority.Unauthorized:
|
|
226
|
-
this.addStatus(path, Status.UnsupportedAccess);
|
|
227
|
-
return;
|
|
228
|
-
|
|
229
|
-
case AccessControl.Authority.Restricted:
|
|
230
|
-
this.addStatus(path, Status.AccessRestricted);
|
|
231
|
-
return;
|
|
232
|
-
|
|
233
|
-
default:
|
|
234
|
-
throw new InternalError(`Unsupported authorization state ${permission}`);
|
|
222
|
+
if (!this.#authorize(access.session, path, AccessLevel.View, location)) {
|
|
223
|
+
return;
|
|
235
224
|
}
|
|
236
225
|
}
|
|
237
226
|
|
|
@@ -252,6 +241,10 @@ export class AttributeReadResponse<
|
|
|
252
241
|
return;
|
|
253
242
|
}
|
|
254
243
|
|
|
244
|
+
if (access !== undefined && !this.#authorize(access.session, path, limits.readLevel, access.location)) {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
|
|
255
248
|
// Skip if version is unchanged
|
|
256
249
|
const skipVersion = this.#versions?.[path.endpointId]?.[path.clusterId];
|
|
257
250
|
if (skipVersion !== undefined && skipVersion === cluster.version) {
|
|
@@ -434,6 +427,34 @@ export class AttributeReadResponse<
|
|
|
434
427
|
}
|
|
435
428
|
}
|
|
436
429
|
|
|
430
|
+
/**
|
|
431
|
+
* Validate access at {@link level}. Returns true if granted; otherwise records the appropriate status and
|
|
432
|
+
* returns false.
|
|
433
|
+
*/
|
|
434
|
+
#authorize(
|
|
435
|
+
session: AccessControl.RemoteActorSession,
|
|
436
|
+
path: ReadResult.ConcreteAttributePath,
|
|
437
|
+
level: AccessLevel,
|
|
438
|
+
location: AccessControl.Location,
|
|
439
|
+
) {
|
|
440
|
+
const permission = session.authorityAt(level, location);
|
|
441
|
+
switch (permission) {
|
|
442
|
+
case AccessControl.Authority.Granted:
|
|
443
|
+
return true;
|
|
444
|
+
|
|
445
|
+
case AccessControl.Authority.Unauthorized:
|
|
446
|
+
this.addStatus(path, Status.UnsupportedAccess);
|
|
447
|
+
return false;
|
|
448
|
+
|
|
449
|
+
case AccessControl.Authority.Restricted:
|
|
450
|
+
this.addStatus(path, Status.AccessRestricted);
|
|
451
|
+
return false;
|
|
452
|
+
|
|
453
|
+
default:
|
|
454
|
+
throw new InternalError(`Unsupported authorization state ${permission}`);
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
|
|
437
458
|
/**
|
|
438
459
|
* Add a status value.
|
|
439
460
|
*/
|
|
@@ -11,7 +11,7 @@ import { WriteResult } from "#action/response/WriteResult.js";
|
|
|
11
11
|
import { AccessControl, hasRemoteActor } from "#action/server/AccessControl.js";
|
|
12
12
|
import { DataResponse, FallbackLimits } from "#action/server/DataResponse.js";
|
|
13
13
|
import { Diagnostic, InternalError, Logger, serialize, toHex } from "@matter/general";
|
|
14
|
-
import { AttributeModel, DataModelPath, ElementTag, FabricIndex as FabricIndexField } from "@matter/model";
|
|
14
|
+
import { AccessLevel, AttributeModel, DataModelPath, ElementTag, FabricIndex as FabricIndexField } from "@matter/model";
|
|
15
15
|
import {
|
|
16
16
|
ArraySchema,
|
|
17
17
|
AttributePath,
|
|
@@ -195,10 +195,12 @@ export class AttributeWriteResponse<
|
|
|
195
195
|
limits = attribute.limits;
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
+
// Order prescribed by core spec 8.7.3.2: a View-privilege pass gates element-existence disclosure,
|
|
199
|
+
// existence checks follow, then the actual-privilege pass gates the write.
|
|
200
|
+
let access: { session: AccessControl.RemoteActorSession; location: AccessControl.Location } | undefined;
|
|
198
201
|
if (hasRemoteActor(this.session)) {
|
|
199
|
-
// Validate access. Order here prescribed by 1.4 core spec 8.4.3.2
|
|
200
202
|
// We need some fallback location if cluster is not defined
|
|
201
|
-
const location = {
|
|
203
|
+
const location: AccessControl.Location = {
|
|
202
204
|
...(cluster?.location ?? {
|
|
203
205
|
path: DataModelPath.none,
|
|
204
206
|
endpoint: endpointId,
|
|
@@ -206,20 +208,11 @@ export class AttributeWriteResponse<
|
|
|
206
208
|
}),
|
|
207
209
|
owningFabric: this.session.fabric,
|
|
208
210
|
};
|
|
211
|
+
access = { session: this.session, location };
|
|
209
212
|
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
break;
|
|
214
|
-
|
|
215
|
-
case AccessControl.Authority.Unauthorized:
|
|
216
|
-
return this.#asStatus(path, Status.UnsupportedAccess);
|
|
217
|
-
|
|
218
|
-
case AccessControl.Authority.Restricted:
|
|
219
|
-
return this.#asStatus(path, Status.AccessRestricted);
|
|
220
|
-
|
|
221
|
-
default:
|
|
222
|
-
throw new InternalError(`Unsupported authorization state ${permission}`);
|
|
213
|
+
const denial = this.#authorize(access.session, AccessLevel.View, location);
|
|
214
|
+
if (denial !== undefined) {
|
|
215
|
+
return this.#asStatus(path, denial);
|
|
223
216
|
}
|
|
224
217
|
}
|
|
225
218
|
|
|
@@ -238,9 +231,12 @@ export class AttributeWriteResponse<
|
|
|
238
231
|
return this.#asStatus(path, Status.UnsupportedWrite);
|
|
239
232
|
}
|
|
240
233
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
234
|
+
if (access !== undefined) {
|
|
235
|
+
const denial = this.#authorize(access.session, limits.writeLevel, access.location);
|
|
236
|
+
if (denial !== undefined) {
|
|
237
|
+
return this.#asStatus(path, denial);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
244
240
|
|
|
245
241
|
if (hasRemoteActor(this.session)) {
|
|
246
242
|
if (limits.timed && !this.session.timed) {
|
|
@@ -359,6 +355,26 @@ export class AttributeWriteResponse<
|
|
|
359
355
|
);
|
|
360
356
|
}
|
|
361
357
|
|
|
358
|
+
/**
|
|
359
|
+
* Validate access at {@link level}. Returns undefined if granted; otherwise the status to report.
|
|
360
|
+
*/
|
|
361
|
+
#authorize(session: AccessControl.RemoteActorSession, level: AccessLevel, location: AccessControl.Location) {
|
|
362
|
+
const permission = session.authorityAt(level, location);
|
|
363
|
+
switch (permission) {
|
|
364
|
+
case AccessControl.Authority.Granted:
|
|
365
|
+
return undefined;
|
|
366
|
+
|
|
367
|
+
case AccessControl.Authority.Unauthorized:
|
|
368
|
+
return Status.UnsupportedAccess;
|
|
369
|
+
|
|
370
|
+
case AccessControl.Authority.Restricted:
|
|
371
|
+
return Status.AccessRestricted;
|
|
372
|
+
|
|
373
|
+
default:
|
|
374
|
+
throw new InternalError(`Unsupported authorization state ${permission}`);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
362
378
|
/**
|
|
363
379
|
* Add a status value.
|
|
364
380
|
*/
|