@matter/protocol 0.16.0-alpha.0-20251203-aaf94bca8 → 0.16.0-alpha.0-20251207-37e501b18
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 +82 -34
- package/dist/cjs/action/client/ClientInteraction.js.map +2 -2
- package/dist/cjs/action/client/subscription/ClientSubscription.d.ts +10 -5
- package/dist/cjs/action/client/subscription/ClientSubscription.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscription.js +21 -1
- package/dist/cjs/action/client/subscription/ClientSubscription.js.map +2 -2
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js +2 -3
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscriptions.d.ts +4 -2
- package/dist/cjs/action/client/subscription/ClientSubscriptions.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscriptions.js +68 -8
- package/dist/cjs/action/client/subscription/ClientSubscriptions.js.map +1 -1
- package/dist/cjs/action/client/subscription/PeerSubscription.d.ts +0 -1
- package/dist/cjs/action/client/subscription/PeerSubscription.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/PeerSubscription.js +1 -2
- package/dist/cjs/action/client/subscription/PeerSubscription.js.map +1 -1
- package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts +0 -2
- package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/SustainedSubscription.js +2 -4
- package/dist/cjs/action/client/subscription/SustainedSubscription.js.map +1 -1
- package/dist/cjs/action/request/Invoke.js +2 -2
- package/dist/cjs/action/request/Invoke.js.map +1 -1
- package/dist/cjs/action/server/AttributeReadResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeReadResponse.js +78 -25
- 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 +70 -17
- 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 +83 -30
- package/dist/cjs/action/server/CommandInvokeResponse.js.map +1 -1
- package/dist/cjs/action/server/DataResponse.d.ts +1 -0
- package/dist/cjs/action/server/DataResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/DataResponse.js +3 -0
- package/dist/cjs/action/server/DataResponse.js.map +1 -1
- package/dist/cjs/action/server/ServerInteraction.d.ts.map +1 -1
- package/dist/cjs/action/server/ServerInteraction.js +4 -4
- package/dist/cjs/action/server/ServerInteraction.js.map +1 -1
- package/dist/cjs/advertisement/Advertisement.d.ts.map +1 -1
- package/dist/cjs/advertisement/Advertisement.js +66 -14
- package/dist/cjs/advertisement/Advertisement.js.map +1 -1
- package/dist/cjs/advertisement/Advertiser.d.ts +4 -1
- package/dist/cjs/advertisement/Advertiser.d.ts.map +1 -1
- package/dist/cjs/advertisement/Advertiser.js +63 -2
- package/dist/cjs/advertisement/Advertiser.js.map +1 -1
- package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts +6 -1
- package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts.map +1 -1
- package/dist/cjs/advertisement/ble/BleAdvertiser.js +1 -1
- package/dist/cjs/advertisement/ble/BleAdvertiser.js.map +1 -1
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts +5 -1
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -1
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js +1 -1
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js.map +1 -1
- package/dist/cjs/certificate/kinds/definitions/asn.js +1 -1
- package/dist/cjs/certificate/kinds/definitions/asn.js.map +1 -1
- package/dist/cjs/certificate/kinds/definitions/attestation.d.ts.map +1 -1
- package/dist/cjs/cluster/client/AttributeClient.d.ts.map +1 -1
- package/dist/cjs/cluster/client/AttributeClient.js +2 -2
- package/dist/cjs/cluster/client/AttributeClient.js.map +1 -1
- package/dist/cjs/codec/MessageCodec.d.ts +8 -1
- package/dist/cjs/codec/MessageCodec.d.ts.map +1 -1
- package/dist/cjs/codec/MessageCodec.js +38 -28
- package/dist/cjs/codec/MessageCodec.js.map +2 -2
- package/dist/cjs/common/FailsafeContext.d.ts +8 -9
- package/dist/cjs/common/FailsafeContext.d.ts.map +1 -1
- package/dist/cjs/common/FailsafeContext.js +27 -33
- package/dist/cjs/common/FailsafeContext.js.map +1 -1
- package/dist/cjs/common/FailsafeTimer.d.ts +4 -3
- package/dist/cjs/common/FailsafeTimer.d.ts.map +1 -1
- package/dist/cjs/common/FailsafeTimer.js +4 -4
- package/dist/cjs/common/FailsafeTimer.js.map +1 -1
- package/dist/cjs/common/Mark.d.ts +17 -0
- package/dist/cjs/common/Mark.d.ts.map +1 -0
- package/dist/cjs/{peer/OperationalPeer.js → common/Mark.js} +19 -3
- package/dist/cjs/common/Mark.js.map +6 -0
- package/dist/cjs/common/index.d.ts +1 -0
- package/dist/cjs/common/index.d.ts.map +1 -1
- package/dist/cjs/common/index.js +1 -0
- package/dist/cjs/common/index.js.map +1 -1
- package/dist/cjs/fabric/Fabric.d.ts +16 -8
- package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
- package/dist/cjs/fabric/Fabric.js +35 -18
- package/dist/cjs/fabric/Fabric.js.map +1 -1
- package/dist/cjs/fabric/FabricAuthority.d.ts +2 -2
- package/dist/cjs/fabric/FabricAuthority.d.ts.map +1 -1
- package/dist/cjs/fabric/FabricAuthority.js +3 -3
- package/dist/cjs/fabric/FabricAuthority.js.map +1 -1
- package/dist/cjs/fabric/FabricManager.d.ts +10 -14
- package/dist/cjs/fabric/FabricManager.d.ts.map +1 -1
- package/dist/cjs/fabric/FabricManager.js +44 -40
- package/dist/cjs/fabric/FabricManager.js.map +2 -2
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interaction/AttributeDataEncoder.d.ts +1 -1
- package/dist/cjs/interaction/InteractionClient.d.ts +2 -2
- package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionClient.js +39 -22
- package/dist/cjs/interaction/InteractionClient.js.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.d.ts +2 -2
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js +35 -27
- package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
- package/dist/cjs/interaction/Subscription.d.ts +16 -37
- package/dist/cjs/interaction/Subscription.d.ts.map +1 -1
- package/dist/cjs/interaction/Subscription.js +15 -68
- package/dist/cjs/interaction/Subscription.js.map +2 -2
- package/dist/cjs/interaction/SubscriptionClient.d.ts +2 -2
- package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/SubscriptionClient.js +2 -2
- package/dist/cjs/interaction/SubscriptionClient.js.map +1 -1
- package/dist/cjs/mdns/MdnsClient.d.ts +10 -10
- package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsClient.js +165 -80
- package/dist/cjs/mdns/MdnsClient.js.map +1 -1
- package/dist/cjs/mdns/MdnsServer.d.ts +2 -2
- package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsServer.js +173 -94
- package/dist/cjs/mdns/MdnsServer.js.map +2 -2
- package/dist/cjs/mdns/MdnsService.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsService.js +3 -2
- package/dist/cjs/mdns/MdnsService.js.map +1 -1
- package/dist/cjs/mdns/MdnsSocket.d.ts +3 -2
- package/dist/cjs/mdns/MdnsSocket.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsSocket.js +2 -1
- package/dist/cjs/mdns/MdnsSocket.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.d.ts +2 -2
- package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.js +26 -28
- package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
- package/dist/cjs/peer/ControllerDiscovery.d.ts +1 -1
- package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerDiscovery.js +3 -3
- package/dist/cjs/peer/ControllerDiscovery.js.map +1 -1
- package/dist/cjs/peer/Peer.d.ts +57 -0
- package/dist/cjs/peer/Peer.d.ts.map +1 -0
- package/dist/cjs/peer/Peer.js +182 -0
- package/dist/cjs/peer/Peer.js.map +6 -0
- package/dist/cjs/peer/PeerAddress.d.ts.map +1 -1
- package/dist/cjs/peer/PeerAddress.js +5 -2
- package/dist/cjs/peer/PeerAddress.js.map +1 -1
- package/dist/cjs/peer/PeerAddressStore.d.ts +3 -3
- package/dist/cjs/peer/PeerAddressStore.d.ts.map +1 -1
- package/{src/peer/OperationalPeer.ts → dist/cjs/peer/PeerDescriptor.d.ts} +14 -12
- package/dist/cjs/peer/PeerDescriptor.d.ts.map +1 -0
- package/dist/cjs/peer/PeerDescriptor.js +71 -0
- package/dist/cjs/peer/PeerDescriptor.js.map +6 -0
- package/dist/cjs/peer/PeerSet.d.ts +23 -26
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
- package/dist/cjs/peer/PeerSet.js +173 -173
- package/dist/cjs/peer/PeerSet.js.map +2 -2
- package/dist/cjs/peer/index.d.ts +1 -1
- package/dist/cjs/peer/index.d.ts.map +1 -1
- package/dist/cjs/peer/index.js +1 -1
- package/dist/cjs/peer/index.js.map +1 -1
- package/dist/cjs/protocol/DeviceAdvertiser.js +4 -4
- package/dist/cjs/protocol/DeviceAdvertiser.js.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.d.ts +6 -9
- package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +306 -246
- package/dist/cjs/protocol/ExchangeManager.js.map +2 -2
- package/dist/cjs/protocol/ExchangeProvider.d.ts +9 -11
- package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.js +79 -32
- package/dist/cjs/protocol/ExchangeProvider.js.map +2 -2
- package/dist/cjs/protocol/MessageChannel.d.ts +6 -7
- package/dist/cjs/protocol/MessageChannel.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageChannel.js +14 -16
- package/dist/cjs/protocol/MessageChannel.js.map +1 -1
- package/dist/cjs/protocol/MessageCounter.d.ts +4 -4
- package/dist/cjs/protocol/MessageCounter.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageCounter.js +7 -7
- package/dist/cjs/protocol/MessageCounter.js.map +1 -1
- package/dist/cjs/protocol/MessageExchange.d.ts +31 -20
- package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageExchange.js +316 -231
- package/dist/cjs/protocol/MessageExchange.js.map +2 -2
- package/dist/cjs/protocol/ProtocolMocks.d.ts +100 -0
- package/dist/cjs/protocol/ProtocolMocks.d.ts.map +1 -0
- package/dist/cjs/protocol/ProtocolMocks.js +237 -0
- package/dist/cjs/protocol/ProtocolMocks.js.map +6 -0
- package/dist/cjs/protocol/errors.d.ts +35 -0
- package/dist/cjs/protocol/errors.d.ts.map +1 -0
- package/dist/cjs/protocol/errors.js +50 -0
- package/dist/cjs/protocol/errors.js.map +6 -0
- package/dist/cjs/protocol/index.d.ts +2 -1
- package/dist/cjs/protocol/index.d.ts.map +1 -1
- package/dist/cjs/protocol/index.js +2 -1
- package/dist/cjs/protocol/index.js.map +1 -1
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts +1 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts.map +1 -1
- package/dist/cjs/securechannel/SecureChannelMessenger.js +3 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
- package/dist/cjs/securechannel/SecureChannelProtocol.js +2 -2
- package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/cjs/session/GroupSession.d.ts +21 -10
- package/dist/cjs/session/GroupSession.d.ts.map +1 -1
- package/dist/cjs/session/GroupSession.js +37 -12
- package/dist/cjs/session/GroupSession.js.map +1 -1
- package/dist/cjs/session/NodeSession.d.ts +56 -50
- package/dist/cjs/session/NodeSession.d.ts.map +1 -1
- package/dist/cjs/session/NodeSession.js +95 -103
- package/dist/cjs/session/NodeSession.js.map +1 -1
- package/dist/cjs/session/SecureSession.d.ts +4 -4
- package/dist/cjs/session/SecureSession.d.ts.map +1 -1
- package/dist/cjs/session/SecureSession.js +1 -1
- package/dist/cjs/session/SecureSession.js.map +1 -1
- package/dist/cjs/session/Session.d.ts +82 -66
- package/dist/cjs/session/Session.d.ts.map +1 -1
- package/dist/cjs/session/Session.js +218 -45
- package/dist/cjs/session/Session.js.map +1 -1
- package/dist/cjs/session/SessionManager.d.ts +33 -36
- package/dist/cjs/session/SessionManager.d.ts.map +1 -1
- package/dist/cjs/session/SessionManager.js +112 -150
- package/dist/cjs/session/SessionManager.js.map +1 -1
- package/dist/cjs/session/SessionParameters.d.ts +87 -0
- package/dist/cjs/session/SessionParameters.d.ts.map +1 -0
- package/dist/cjs/session/SessionParameters.js +81 -0
- package/dist/cjs/session/SessionParameters.js.map +6 -0
- package/dist/{esm/session/InsecureSession.d.ts → cjs/session/UnsecuredSession.d.ts} +18 -16
- package/dist/cjs/session/UnsecuredSession.d.ts.map +1 -0
- package/dist/cjs/session/{InsecureSession.js → UnsecuredSession.js} +21 -21
- package/dist/cjs/session/UnsecuredSession.js.map +6 -0
- package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
- package/dist/cjs/session/case/CaseClient.js +6 -4
- package/dist/cjs/session/case/CaseClient.js.map +1 -1
- package/dist/cjs/session/case/CaseServer.d.ts.map +1 -1
- package/dist/cjs/session/case/CaseServer.js +14 -10
- package/dist/cjs/session/case/CaseServer.js.map +1 -1
- package/dist/cjs/session/index.d.ts +2 -1
- package/dist/cjs/session/index.d.ts.map +1 -1
- package/dist/cjs/session/index.js +2 -1
- package/dist/cjs/session/index.js.map +1 -1
- package/dist/cjs/session/pase/PaseClient.d.ts +3 -3
- package/dist/cjs/session/pase/PaseClient.d.ts.map +1 -1
- package/dist/cjs/session/pase/PaseClient.js +5 -3
- 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 +13 -13
- 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 +82 -34
- package/dist/esm/action/client/ClientInteraction.js.map +2 -2
- package/dist/esm/action/client/subscription/ClientSubscription.d.ts +10 -5
- package/dist/esm/action/client/subscription/ClientSubscription.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscription.js +22 -2
- package/dist/esm/action/client/subscription/ClientSubscription.js.map +2 -2
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js +2 -3
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptions.d.ts +4 -2
- package/dist/esm/action/client/subscription/ClientSubscriptions.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptions.js +68 -8
- package/dist/esm/action/client/subscription/ClientSubscriptions.js.map +1 -1
- package/dist/esm/action/client/subscription/PeerSubscription.d.ts +0 -1
- package/dist/esm/action/client/subscription/PeerSubscription.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/PeerSubscription.js +1 -2
- package/dist/esm/action/client/subscription/PeerSubscription.js.map +1 -1
- package/dist/esm/action/client/subscription/SustainedSubscription.d.ts +0 -2
- package/dist/esm/action/client/subscription/SustainedSubscription.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/SustainedSubscription.js +2 -4
- package/dist/esm/action/client/subscription/SustainedSubscription.js.map +1 -1
- package/dist/esm/action/request/Invoke.js +2 -2
- package/dist/esm/action/request/Invoke.js.map +1 -1
- package/dist/esm/action/server/AttributeReadResponse.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeReadResponse.js +78 -25
- 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 +70 -17
- 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 +83 -30
- package/dist/esm/action/server/CommandInvokeResponse.js.map +1 -1
- package/dist/esm/action/server/DataResponse.d.ts +1 -0
- package/dist/esm/action/server/DataResponse.d.ts.map +1 -1
- package/dist/esm/action/server/DataResponse.js +3 -0
- package/dist/esm/action/server/DataResponse.js.map +1 -1
- package/dist/esm/action/server/ServerInteraction.d.ts.map +1 -1
- package/dist/esm/action/server/ServerInteraction.js +4 -4
- package/dist/esm/action/server/ServerInteraction.js.map +1 -1
- package/dist/esm/advertisement/Advertisement.d.ts.map +1 -1
- package/dist/esm/advertisement/Advertisement.js +66 -14
- package/dist/esm/advertisement/Advertisement.js.map +1 -1
- package/dist/esm/advertisement/Advertiser.d.ts +4 -1
- package/dist/esm/advertisement/Advertiser.d.ts.map +1 -1
- package/dist/esm/advertisement/Advertiser.js +63 -2
- package/dist/esm/advertisement/Advertiser.js.map +1 -1
- package/dist/esm/advertisement/ble/BleAdvertiser.d.ts +6 -1
- package/dist/esm/advertisement/ble/BleAdvertiser.d.ts.map +1 -1
- package/dist/esm/advertisement/ble/BleAdvertiser.js +1 -1
- package/dist/esm/advertisement/ble/BleAdvertiser.js.map +1 -1
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts +5 -1
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -1
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.js +1 -1
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.js.map +1 -1
- package/dist/esm/certificate/kinds/definitions/asn.js +2 -2
- package/dist/esm/certificate/kinds/definitions/asn.js.map +1 -1
- package/dist/esm/certificate/kinds/definitions/attestation.d.ts.map +1 -1
- package/dist/esm/cluster/client/AttributeClient.d.ts.map +1 -1
- package/dist/esm/cluster/client/AttributeClient.js +1 -1
- package/dist/esm/cluster/client/AttributeClient.js.map +1 -1
- package/dist/esm/codec/MessageCodec.d.ts +8 -1
- package/dist/esm/codec/MessageCodec.d.ts.map +1 -1
- package/dist/esm/codec/MessageCodec.js +39 -28
- package/dist/esm/codec/MessageCodec.js.map +2 -2
- package/dist/esm/common/FailsafeContext.d.ts +8 -9
- package/dist/esm/common/FailsafeContext.d.ts.map +1 -1
- package/dist/esm/common/FailsafeContext.js +27 -33
- package/dist/esm/common/FailsafeContext.js.map +1 -1
- package/dist/esm/common/FailsafeTimer.d.ts +4 -3
- package/dist/esm/common/FailsafeTimer.d.ts.map +1 -1
- package/dist/esm/common/FailsafeTimer.js +4 -4
- package/dist/esm/common/FailsafeTimer.js.map +1 -1
- package/dist/esm/common/Mark.d.ts +17 -0
- package/dist/esm/common/Mark.d.ts.map +1 -0
- package/dist/esm/common/Mark.js +18 -0
- package/dist/esm/common/Mark.js.map +6 -0
- package/dist/esm/common/index.d.ts +1 -0
- package/dist/esm/common/index.d.ts.map +1 -1
- package/dist/esm/common/index.js +1 -0
- package/dist/esm/common/index.js.map +1 -1
- package/dist/esm/fabric/Fabric.d.ts +16 -8
- package/dist/esm/fabric/Fabric.d.ts.map +1 -1
- package/dist/esm/fabric/Fabric.js +36 -18
- package/dist/esm/fabric/Fabric.js.map +1 -1
- package/dist/esm/fabric/FabricAuthority.d.ts +2 -2
- package/dist/esm/fabric/FabricAuthority.d.ts.map +1 -1
- package/dist/esm/fabric/FabricAuthority.js +5 -5
- package/dist/esm/fabric/FabricAuthority.js.map +1 -1
- package/dist/esm/fabric/FabricManager.d.ts +10 -14
- package/dist/esm/fabric/FabricManager.d.ts.map +1 -1
- package/dist/esm/fabric/FabricManager.js +45 -40
- package/dist/esm/fabric/FabricManager.js.map +2 -2
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interaction/AttributeDataEncoder.d.ts +1 -1
- package/dist/esm/interaction/InteractionClient.d.ts +2 -2
- package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionClient.js +39 -22
- package/dist/esm/interaction/InteractionClient.js.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.d.ts +2 -2
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.js +33 -28
- package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
- package/dist/esm/interaction/Subscription.d.ts +16 -37
- package/dist/esm/interaction/Subscription.d.ts.map +1 -1
- package/dist/esm/interaction/Subscription.js +16 -69
- package/dist/esm/interaction/Subscription.js.map +2 -2
- package/dist/esm/interaction/SubscriptionClient.d.ts +2 -2
- package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/esm/interaction/SubscriptionClient.js +2 -2
- package/dist/esm/interaction/SubscriptionClient.js.map +1 -1
- package/dist/esm/mdns/MdnsClient.d.ts +10 -10
- package/dist/esm/mdns/MdnsClient.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsClient.js +166 -80
- package/dist/esm/mdns/MdnsClient.js.map +1 -1
- package/dist/esm/mdns/MdnsServer.d.ts +2 -2
- package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsServer.js +176 -94
- package/dist/esm/mdns/MdnsServer.js.map +2 -2
- package/dist/esm/mdns/MdnsService.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsService.js +3 -2
- package/dist/esm/mdns/MdnsService.js.map +1 -1
- package/dist/esm/mdns/MdnsSocket.d.ts +3 -2
- package/dist/esm/mdns/MdnsSocket.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsSocket.js +2 -1
- package/dist/esm/mdns/MdnsSocket.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.d.ts +2 -2
- package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.js +26 -28
- package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
- package/dist/esm/peer/ControllerDiscovery.d.ts +1 -1
- package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
- package/dist/esm/peer/ControllerDiscovery.js +1 -1
- package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
- package/dist/esm/peer/Peer.d.ts +57 -0
- package/dist/esm/peer/Peer.d.ts.map +1 -0
- package/dist/esm/peer/Peer.js +162 -0
- package/dist/esm/peer/Peer.js.map +6 -0
- package/dist/esm/peer/PeerAddress.d.ts.map +1 -1
- package/dist/esm/peer/PeerAddress.js +5 -2
- package/dist/esm/peer/PeerAddress.js.map +1 -1
- package/dist/esm/peer/PeerAddressStore.d.ts +3 -3
- package/dist/esm/peer/PeerAddressStore.d.ts.map +1 -1
- package/dist/{cjs/peer/OperationalPeer.d.ts → esm/peer/PeerDescriptor.d.ts} +14 -7
- package/dist/esm/peer/PeerDescriptor.d.ts.map +1 -0
- package/dist/esm/peer/PeerDescriptor.js +51 -0
- package/dist/esm/peer/PeerDescriptor.js.map +6 -0
- package/dist/esm/peer/PeerSet.d.ts +23 -26
- package/dist/esm/peer/PeerSet.d.ts.map +1 -1
- package/dist/esm/peer/PeerSet.js +173 -175
- package/dist/esm/peer/PeerSet.js.map +2 -2
- package/dist/esm/peer/index.d.ts +1 -1
- package/dist/esm/peer/index.d.ts.map +1 -1
- package/dist/esm/peer/index.js +1 -1
- package/dist/esm/protocol/DeviceAdvertiser.js +4 -4
- package/dist/esm/protocol/DeviceAdvertiser.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.d.ts +6 -9
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +308 -251
- package/dist/esm/protocol/ExchangeManager.js.map +2 -2
- package/dist/esm/protocol/ExchangeProvider.d.ts +9 -11
- package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.js +81 -37
- package/dist/esm/protocol/ExchangeProvider.js.map +2 -2
- package/dist/esm/protocol/MessageChannel.d.ts +6 -7
- package/dist/esm/protocol/MessageChannel.d.ts.map +1 -1
- package/dist/esm/protocol/MessageChannel.js +22 -18
- package/dist/esm/protocol/MessageChannel.js.map +1 -1
- package/dist/esm/protocol/MessageCounter.d.ts +4 -4
- package/dist/esm/protocol/MessageCounter.d.ts.map +1 -1
- package/dist/esm/protocol/MessageCounter.js +7 -7
- package/dist/esm/protocol/MessageCounter.js.map +1 -1
- package/dist/esm/protocol/MessageExchange.d.ts +31 -20
- package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/esm/protocol/MessageExchange.js +318 -238
- package/dist/esm/protocol/MessageExchange.js.map +2 -2
- package/dist/esm/protocol/ProtocolMocks.d.ts +100 -0
- package/dist/esm/protocol/ProtocolMocks.d.ts.map +1 -0
- package/dist/esm/protocol/ProtocolMocks.js +230 -0
- package/dist/esm/protocol/ProtocolMocks.js.map +6 -0
- package/dist/esm/protocol/errors.d.ts +35 -0
- package/dist/esm/protocol/errors.d.ts.map +1 -0
- package/dist/esm/protocol/errors.js +30 -0
- package/dist/esm/protocol/errors.js.map +6 -0
- package/dist/esm/protocol/index.d.ts +2 -1
- package/dist/esm/protocol/index.d.ts.map +1 -1
- package/dist/esm/protocol/index.js +2 -1
- package/dist/esm/protocol/index.js.map +1 -1
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts +1 -0
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -1
- package/dist/esm/securechannel/SecureChannelMessenger.js +3 -0
- package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
- package/dist/esm/securechannel/SecureChannelProtocol.js +2 -2
- package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/esm/session/GroupSession.d.ts +21 -10
- package/dist/esm/session/GroupSession.d.ts.map +1 -1
- package/dist/esm/session/GroupSession.js +41 -12
- package/dist/esm/session/GroupSession.js.map +1 -1
- package/dist/esm/session/NodeSession.d.ts +56 -50
- package/dist/esm/session/NodeSession.d.ts.map +1 -1
- package/dist/esm/session/NodeSession.js +99 -105
- package/dist/esm/session/NodeSession.js.map +1 -1
- package/dist/esm/session/SecureSession.d.ts +4 -4
- package/dist/esm/session/SecureSession.d.ts.map +1 -1
- package/dist/esm/session/SecureSession.js +1 -1
- package/dist/esm/session/SecureSession.js.map +1 -1
- package/dist/esm/session/Session.d.ts +82 -66
- package/dist/esm/session/Session.d.ts.map +1 -1
- package/dist/esm/session/Session.js +223 -45
- package/dist/esm/session/Session.js.map +1 -1
- package/dist/esm/session/SessionManager.d.ts +33 -36
- package/dist/esm/session/SessionManager.d.ts.map +1 -1
- package/dist/esm/session/SessionManager.js +113 -157
- package/dist/esm/session/SessionManager.js.map +1 -1
- package/dist/esm/session/SessionParameters.d.ts +87 -0
- package/dist/esm/session/SessionParameters.d.ts.map +1 -0
- package/dist/esm/session/SessionParameters.js +61 -0
- package/dist/esm/session/SessionParameters.js.map +6 -0
- package/dist/{cjs/session/InsecureSession.d.ts → esm/session/UnsecuredSession.d.ts} +18 -16
- package/dist/esm/session/UnsecuredSession.d.ts.map +1 -0
- package/dist/esm/session/{InsecureSession.js → UnsecuredSession.js} +18 -18
- package/dist/esm/session/UnsecuredSession.js.map +6 -0
- package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
- package/dist/esm/session/case/CaseClient.js +5 -3
- package/dist/esm/session/case/CaseClient.js.map +1 -1
- package/dist/esm/session/case/CaseServer.d.ts.map +1 -1
- package/dist/esm/session/case/CaseServer.js +14 -10
- package/dist/esm/session/case/CaseServer.js.map +1 -1
- package/dist/esm/session/index.d.ts +2 -1
- package/dist/esm/session/index.d.ts.map +1 -1
- package/dist/esm/session/index.js +2 -1
- package/dist/esm/session/index.js.map +1 -1
- package/dist/esm/session/pase/PaseClient.d.ts +3 -3
- package/dist/esm/session/pase/PaseClient.d.ts.map +1 -1
- package/dist/esm/session/pase/PaseClient.js +5 -3
- 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 +13 -13
- package/dist/esm/session/pase/PaseServer.js.map +1 -1
- package/package.json +6 -6
- package/src/action/client/ClientInteraction.ts +47 -13
- package/src/action/client/subscription/ClientSubscription.ts +30 -5
- package/src/action/client/subscription/ClientSubscriptionHandler.ts +2 -4
- package/src/action/client/subscription/ClientSubscriptions.ts +14 -3
- package/src/action/client/subscription/PeerSubscription.ts +2 -2
- package/src/action/client/subscription/SustainedSubscription.ts +2 -6
- package/src/action/request/Invoke.ts +2 -2
- package/src/action/server/AttributeReadResponse.ts +2 -0
- package/src/action/server/AttributeWriteResponse.ts +2 -0
- package/src/action/server/CommandInvokeResponse.ts +1 -0
- package/src/action/server/DataResponse.ts +4 -0
- package/src/action/server/ServerInteraction.ts +4 -4
- package/src/advertisement/Advertisement.ts +6 -7
- package/src/advertisement/Advertiser.ts +12 -1
- package/src/advertisement/ble/BleAdvertiser.ts +7 -2
- package/src/advertisement/mdns/MdnsAdvertiser.ts +7 -1
- package/src/certificate/kinds/definitions/asn.ts +2 -2
- package/src/certificate/kinds/definitions/attestation.ts +1 -0
- package/src/cluster/client/AttributeClient.ts +1 -1
- package/src/codec/MessageCodec.ts +39 -32
- package/src/common/FailsafeContext.ts +36 -39
- package/src/common/FailsafeTimer.ts +7 -6
- package/src/common/Mark.ts +17 -0
- package/src/common/index.ts +1 -0
- package/src/fabric/Fabric.ts +51 -23
- package/src/fabric/FabricAuthority.ts +4 -4
- package/src/fabric/FabricManager.ts +53 -40
- package/src/index.ts +3 -1
- package/src/interaction/InteractionClient.ts +40 -23
- package/src/interaction/InteractionMessenger.ts +38 -32
- package/src/interaction/Subscription.ts +20 -92
- package/src/interaction/SubscriptionClient.ts +3 -3
- package/src/mdns/MdnsClient.ts +20 -3
- package/src/mdns/MdnsServer.ts +13 -1
- package/src/mdns/MdnsService.ts +3 -2
- package/src/mdns/MdnsSocket.ts +9 -3
- package/src/peer/ControllerCommissioner.ts +35 -37
- package/src/peer/ControllerDiscovery.ts +1 -1
- package/src/peer/Peer.ts +161 -0
- package/src/peer/PeerAddress.ts +6 -2
- package/src/peer/PeerAddressStore.ts +3 -3
- package/src/peer/PeerDescriptor.ts +89 -0
- package/src/peer/PeerSet.ts +145 -213
- package/src/peer/index.ts +1 -1
- package/src/protocol/DeviceAdvertiser.ts +4 -4
- package/src/protocol/ExchangeManager.ts +161 -181
- package/src/protocol/ExchangeProvider.ts +31 -40
- package/src/protocol/MessageChannel.ts +29 -18
- package/src/protocol/MessageCounter.ts +8 -8
- package/src/protocol/MessageExchange.ts +181 -144
- package/src/protocol/ProtocolMocks.ts +302 -0
- package/src/protocol/errors.ts +44 -0
- package/src/protocol/index.ts +2 -1
- package/src/securechannel/SecureChannelMessenger.ts +4 -0
- package/src/securechannel/SecureChannelProtocol.ts +2 -2
- package/src/session/GroupSession.ts +67 -23
- package/src/session/NodeSession.ts +140 -136
- package/src/session/SecureSession.ts +6 -5
- package/src/session/Session.ts +234 -101
- package/src/session/SessionManager.ts +148 -187
- package/src/session/SessionParameters.ts +108 -0
- package/src/session/{InsecureSession.ts → UnsecuredSession.ts} +28 -26
- package/src/session/case/CaseClient.ts +6 -3
- package/src/session/case/CaseServer.ts +15 -11
- package/src/session/index.ts +2 -1
- package/src/session/pase/PaseClient.ts +12 -5
- package/src/session/pase/PaseServer.ts +14 -13
- package/dist/cjs/peer/OperationalPeer.d.ts.map +0 -1
- package/dist/cjs/peer/OperationalPeer.js.map +0 -6
- package/dist/cjs/protocol/ChannelManager.d.ts +0 -29
- package/dist/cjs/protocol/ChannelManager.d.ts.map +0 -1
- package/dist/cjs/protocol/ChannelManager.js +0 -178
- package/dist/cjs/protocol/ChannelManager.js.map +0 -6
- package/dist/cjs/session/InsecureSession.d.ts.map +0 -1
- package/dist/cjs/session/InsecureSession.js.map +0 -6
- package/dist/esm/peer/OperationalPeer.d.ts +0 -38
- package/dist/esm/peer/OperationalPeer.d.ts.map +0 -1
- package/dist/esm/peer/OperationalPeer.js +0 -6
- package/dist/esm/peer/OperationalPeer.js.map +0 -6
- package/dist/esm/protocol/ChannelManager.d.ts +0 -29
- package/dist/esm/protocol/ChannelManager.d.ts.map +0 -1
- package/dist/esm/protocol/ChannelManager.js +0 -158
- package/dist/esm/protocol/ChannelManager.js.map +0 -6
- package/dist/esm/session/InsecureSession.d.ts.map +0 -1
- package/dist/esm/session/InsecureSession.js.map +0 -6
- package/src/protocol/ChannelManager.ts +0 -180
|
@@ -4,37 +4,29 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { Mark } from "#common/Mark.js";
|
|
8
|
+
import { Bytes, Crypto, Diagnostic, MatterFlowError } from "#general";
|
|
9
|
+
import { NoAssociatedFabricError } from "#protocol/errors.js";
|
|
8
10
|
import { NodeId } from "#types";
|
|
9
11
|
import { DecodedMessage, DecodedPacket, Message, MessageCodec, Packet, SessionType } from "../codec/MessageCodec.js";
|
|
10
|
-
import { Fabric } from "../fabric/Fabric.js";
|
|
12
|
+
import type { Fabric } from "../fabric/Fabric.js";
|
|
11
13
|
import { MessageCounter } from "../protocol/MessageCounter.js";
|
|
12
14
|
import { MessageReceptionStateUnencryptedWithRollover } from "../protocol/MessageReceptionState.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import type { SessionManager } from "./SessionManager.js";
|
|
16
|
-
|
|
17
|
-
const logger = Logger.get("InsecureSession");
|
|
15
|
+
import { Session } from "./Session.js";
|
|
16
|
+
import { SessionParameters } from "./SessionParameters.js";
|
|
18
17
|
|
|
19
18
|
export const UNICAST_UNSECURE_SESSION_ID = 0x0000;
|
|
20
19
|
|
|
21
|
-
export class
|
|
20
|
+
export class UnsecuredSession extends Session {
|
|
22
21
|
readonly #initiatorNodeId: NodeId;
|
|
23
22
|
readonly closingAfterExchangeFinished = false;
|
|
24
23
|
readonly supportsMRP = true;
|
|
25
24
|
readonly type = SessionType.Unicast;
|
|
26
25
|
|
|
27
|
-
constructor(
|
|
28
|
-
crypto
|
|
29
|
-
manager?: SessionManager;
|
|
30
|
-
messageCounter: MessageCounter;
|
|
31
|
-
initiatorNodeId?: NodeId;
|
|
32
|
-
sessionParameters?: SessionParameterOptions;
|
|
33
|
-
isInitiator?: boolean;
|
|
34
|
-
}) {
|
|
35
|
-
const { crypto, initiatorNodeId, isInitiator } = args;
|
|
26
|
+
constructor(config: UnsecuredSession.Config) {
|
|
27
|
+
const { crypto, initiatorNodeId, isInitiator } = config;
|
|
36
28
|
super({
|
|
37
|
-
...
|
|
29
|
+
...config,
|
|
38
30
|
setActiveTimestamp: !isInitiator, // When we are the initiator we assume the node is in idle mode
|
|
39
31
|
messageReceptionState: new MessageReceptionStateUnencryptedWithRollover(),
|
|
40
32
|
});
|
|
@@ -65,8 +57,8 @@ export class InsecureSession extends Session {
|
|
|
65
57
|
throw new MatterFlowError("Not supported on an unsecure session");
|
|
66
58
|
}
|
|
67
59
|
|
|
68
|
-
get
|
|
69
|
-
return
|
|
60
|
+
get via() {
|
|
61
|
+
return Diagnostic.via(`${Mark.SESSION}unsecured#${this.#initiatorNodeId.toString(16)}`);
|
|
70
62
|
}
|
|
71
63
|
|
|
72
64
|
get id(): number {
|
|
@@ -89,13 +81,23 @@ export class InsecureSession extends Session {
|
|
|
89
81
|
throw new NoAssociatedFabricError("Session needs to be a secure session");
|
|
90
82
|
}
|
|
91
83
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
84
|
+
override detachChannel() {
|
|
85
|
+
this.manager?.unsecuredSessions.delete(this.nodeId);
|
|
86
|
+
return super.detachChannel();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
override async close() {
|
|
90
|
+
this.manager?.unsecuredSessions.delete(this.nodeId);
|
|
91
|
+
await super.close();
|
|
95
92
|
}
|
|
93
|
+
}
|
|
96
94
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
export namespace UnsecuredSession {
|
|
96
|
+
export interface Config extends Session.CommonConfig {
|
|
97
|
+
crypto: Crypto;
|
|
98
|
+
messageCounter: MessageCounter;
|
|
99
|
+
initiatorNodeId?: NodeId;
|
|
100
|
+
sessionParameters?: SessionParameters.Config;
|
|
101
|
+
isInitiator?: boolean;
|
|
100
102
|
}
|
|
101
103
|
}
|
|
@@ -8,7 +8,8 @@ import { Icac } from "#certificate/kinds/Icac.js";
|
|
|
8
8
|
import { Noc } from "#certificate/kinds/Noc.js";
|
|
9
9
|
import { Fabric } from "#fabric/Fabric.js";
|
|
10
10
|
import { Bytes, Duration, EcdsaSignature, Logger, PublicKey, UnexpectedDataError } from "#general";
|
|
11
|
-
import { MessageExchange
|
|
11
|
+
import { MessageExchange } from "#protocol/MessageExchange.js";
|
|
12
|
+
import { RetransmissionLimitReachedError } from "#protocol/errors.js";
|
|
12
13
|
import { ChannelStatusResponseError } from "#securechannel/SecureChannelMessenger.js";
|
|
13
14
|
import { NodeSession } from "#session/NodeSession.js";
|
|
14
15
|
import { SessionManager } from "#session/SessionManager.js";
|
|
@@ -122,7 +123,8 @@ export class CaseClient {
|
|
|
122
123
|
|
|
123
124
|
const secureSessionSalt = Bytes.concat(initiatorRandom, resumptionRecord.resumptionId);
|
|
124
125
|
secureSession = await this.#sessions.createSecureSession({
|
|
125
|
-
|
|
126
|
+
channel: exchange.channel.channel,
|
|
127
|
+
id: initiatorSessionId,
|
|
126
128
|
fabric,
|
|
127
129
|
peerNodeId,
|
|
128
130
|
peerSessionId,
|
|
@@ -234,7 +236,8 @@ export class CaseClient {
|
|
|
234
236
|
await crypto.computeHash([sigma1Bytes, sigma2Bytes, sigma3Bytes]),
|
|
235
237
|
);
|
|
236
238
|
secureSession = await this.#sessions.createSecureSession({
|
|
237
|
-
|
|
239
|
+
channel: exchange.channel.channel,
|
|
240
|
+
id: initiatorSessionId,
|
|
238
241
|
fabric,
|
|
239
242
|
peerNodeId,
|
|
240
243
|
peerSessionId,
|
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { Noc } from "#certificate/kinds/Noc.js";
|
|
8
|
+
import { Mark } from "#common/Mark.js";
|
|
8
9
|
import {
|
|
9
10
|
Bytes,
|
|
11
|
+
Channel,
|
|
10
12
|
Crypto,
|
|
11
13
|
CryptoDecryptError,
|
|
12
14
|
Diagnostic,
|
|
@@ -58,23 +60,23 @@ export class CaseServer implements ProtocolHandler {
|
|
|
58
60
|
try {
|
|
59
61
|
await this.#handleSigma1(messenger);
|
|
60
62
|
} catch (error) {
|
|
61
|
-
logger.error("Error establishing CASE session", error);
|
|
62
|
-
|
|
63
63
|
if (error instanceof FabricNotFoundError) {
|
|
64
|
+
logger.error("Error establishing CASE session:", Diagnostic.errorMessage(error));
|
|
64
65
|
await messenger.sendError(SecureChannelStatusCode.NoSharedTrustRoots);
|
|
65
66
|
}
|
|
66
67
|
// If we received a ChannelStatusResponseError we do not need to send one back, so just cancel pairing
|
|
67
68
|
else if (!(error instanceof ChannelStatusResponseError)) {
|
|
69
|
+
logger.error("Error establishing CASE session", error);
|
|
68
70
|
await messenger.sendError(SecureChannelStatusCode.InvalidParam);
|
|
69
71
|
}
|
|
70
72
|
} finally {
|
|
71
73
|
// Destroy the unsecure session used to establish the secure Case session
|
|
72
|
-
await exchange.session.
|
|
74
|
+
await exchange.session.initiateClose();
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
async #handleSigma1(messenger: CaseServerMessenger) {
|
|
77
|
-
logger.info("Received pairing request
|
|
79
|
+
logger.info("Received pairing request", Mark.INBOUND, Diagnostic.via(messenger.channelName));
|
|
78
80
|
|
|
79
81
|
// Initialize context with information from peer
|
|
80
82
|
const { sigma1Bytes, sigma1 } = await messenger.readSigma1();
|
|
@@ -86,12 +88,12 @@ export class CaseServer implements ProtocolHandler {
|
|
|
86
88
|
const context = new Sigma1Context(this.#fabrics.crypto, messenger, sigma1Bytes, sigma1, resumptionRecord);
|
|
87
89
|
|
|
88
90
|
// Attempt resumption
|
|
89
|
-
if (await this.#resume(context)) {
|
|
91
|
+
if (await this.#resume(context, messenger.channel.channel)) {
|
|
90
92
|
return;
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
// Attempt sigma2 negotiation
|
|
94
|
-
if (await this.#generateSigma2(context)) {
|
|
96
|
+
if (await this.#generateSigma2(context, messenger.channel.channel)) {
|
|
95
97
|
return;
|
|
96
98
|
}
|
|
97
99
|
|
|
@@ -107,7 +109,7 @@ export class CaseServer implements ProtocolHandler {
|
|
|
107
109
|
throw new UnexpectedDataError("Invalid resumption ID or resume MIC.");
|
|
108
110
|
}
|
|
109
111
|
|
|
110
|
-
async #resume(cx: Sigma1Context) {
|
|
112
|
+
async #resume(cx: Sigma1Context, channel: Channel<Bytes>) {
|
|
111
113
|
if (cx.peerResumptionId === undefined || cx.peerResumeMic === undefined || cx.resumptionRecord === undefined) {
|
|
112
114
|
return false;
|
|
113
115
|
}
|
|
@@ -135,7 +137,8 @@ export class CaseServer implements ProtocolHandler {
|
|
|
135
137
|
const responderSessionId = await this.#sessions.getNextAvailableSessionId();
|
|
136
138
|
const secureSessionSalt = Bytes.concat(cx.peerRandom, cx.peerResumptionId);
|
|
137
139
|
const secureSession = await this.#sessions.createSecureSession({
|
|
138
|
-
|
|
140
|
+
channel,
|
|
141
|
+
id: responderSessionId,
|
|
139
142
|
fabric,
|
|
140
143
|
peerNodeId,
|
|
141
144
|
peerSessionId: cx.peerSessionId,
|
|
@@ -161,7 +164,7 @@ export class CaseServer implements ProtocolHandler {
|
|
|
161
164
|
});
|
|
162
165
|
} catch (error) {
|
|
163
166
|
// If we fail to send the resume message, we destroy the session
|
|
164
|
-
await secureSession.
|
|
167
|
+
await secureSession.initiateClose();
|
|
165
168
|
throw error;
|
|
166
169
|
}
|
|
167
170
|
|
|
@@ -178,7 +181,7 @@ export class CaseServer implements ProtocolHandler {
|
|
|
178
181
|
return true;
|
|
179
182
|
}
|
|
180
183
|
|
|
181
|
-
async #generateSigma2(cx: Sigma1Context) {
|
|
184
|
+
async #generateSigma2(cx: Sigma1Context, channel: Channel<Bytes>) {
|
|
182
185
|
if (
|
|
183
186
|
// No resumption attempted is OK
|
|
184
187
|
!(cx.peerResumptionId === undefined && cx.peerResumeMic === undefined) &&
|
|
@@ -271,7 +274,8 @@ export class CaseServer implements ProtocolHandler {
|
|
|
271
274
|
await crypto.computeHash([cx.bytes, sigma2Bytes, sigma3Bytes]),
|
|
272
275
|
);
|
|
273
276
|
const secureSession = await this.#sessions.createSecureSession({
|
|
274
|
-
|
|
277
|
+
channel,
|
|
278
|
+
id: responderSessionId,
|
|
275
279
|
fabric,
|
|
276
280
|
peerNodeId,
|
|
277
281
|
peerSessionId: cx.peerSessionId,
|
package/src/session/index.ts
CHANGED
|
@@ -9,7 +9,6 @@ export * from "./case/CaseMessages.js";
|
|
|
9
9
|
export * from "./case/CaseMessenger.js";
|
|
10
10
|
export * from "./case/CaseServer.js";
|
|
11
11
|
export * from "./GroupSession.js";
|
|
12
|
-
export * from "./InsecureSession.js";
|
|
13
12
|
export * from "./NodeSession.js";
|
|
14
13
|
export * from "./pase/PaseClient.js";
|
|
15
14
|
export * from "./pase/PaseMessages.js";
|
|
@@ -19,3 +18,5 @@ export * from "./SecureSession.js";
|
|
|
19
18
|
export * from "./Session.js";
|
|
20
19
|
export * from "./SessionIntervals.js";
|
|
21
20
|
export * from "./SessionManager.js";
|
|
21
|
+
export * from "./SessionParameters.js";
|
|
22
|
+
export * from "./UnsecuredSession.js";
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { Mark } from "#common/Mark.js";
|
|
8
|
+
import { Bytes, Channel, Crypto, ec, Logger, PbkdfParameters, Spake2p, UnexpectedDataError } from "#general";
|
|
8
9
|
import { SessionManager } from "#session/SessionManager.js";
|
|
10
|
+
import { SessionParameters } from "#session/SessionParameters.js";
|
|
9
11
|
import { CommissioningOptions, NodeId, SecureChannelStatusCode } from "#types";
|
|
10
12
|
import { MessageExchange } from "../../protocol/MessageExchange.js";
|
|
11
|
-
import { SessionParameters } from "../Session.js";
|
|
12
13
|
import { DEFAULT_PASSCODE_ID, PaseClientMessenger, SPAKE_CONTEXT } from "./PaseMessenger.js";
|
|
13
14
|
|
|
14
15
|
const { numberToBytesBE } = ec;
|
|
@@ -40,7 +41,12 @@ export class PaseClient {
|
|
|
40
41
|
return crypto.randomUint16 % 4096;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
|
-
async pair(
|
|
44
|
+
async pair(
|
|
45
|
+
initiatorSessionParams: SessionParameters,
|
|
46
|
+
exchange: MessageExchange,
|
|
47
|
+
channel: Channel<Bytes>,
|
|
48
|
+
setupPin: number,
|
|
49
|
+
) {
|
|
44
50
|
const messenger = new PaseClientMessenger(exchange);
|
|
45
51
|
const { crypto } = this.#sessions;
|
|
46
52
|
const initiatorRandom = crypto.randomBytes(32);
|
|
@@ -95,7 +101,8 @@ export class PaseClient {
|
|
|
95
101
|
// All good! Creating the secure session
|
|
96
102
|
await messenger.waitForSuccess("PasePake3-Success");
|
|
97
103
|
const secureSession = await this.#sessions.createSecureSession({
|
|
98
|
-
|
|
104
|
+
channel,
|
|
105
|
+
id: initiatorSessionId,
|
|
99
106
|
fabric: undefined,
|
|
100
107
|
peerNodeId: NodeId.UNSPECIFIED_NODE_ID,
|
|
101
108
|
peerSessionId: responderSessionId,
|
|
@@ -106,7 +113,7 @@ export class PaseClient {
|
|
|
106
113
|
peerSessionParameters,
|
|
107
114
|
});
|
|
108
115
|
await messenger.close();
|
|
109
|
-
logger.info("Paired successfully
|
|
116
|
+
logger.info("Paired successfully", Mark.OUTBOUND, messenger.channelName);
|
|
110
117
|
|
|
111
118
|
return secureSession;
|
|
112
119
|
}
|
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { Mark } from "#common/Mark.js";
|
|
7
8
|
import {
|
|
8
9
|
Bytes,
|
|
10
|
+
Channel,
|
|
9
11
|
Crypto,
|
|
10
12
|
Diagnostic,
|
|
11
13
|
ec,
|
|
@@ -68,7 +70,7 @@ export class PaseServer implements ProtocolHandler {
|
|
|
68
70
|
|
|
69
71
|
async onNewExchange(exchange: MessageExchange) {
|
|
70
72
|
if (this.#closed) {
|
|
71
|
-
logger.warn("
|
|
73
|
+
logger.warn("Received new exchange but server is closed, ignoring exchange");
|
|
72
74
|
return;
|
|
73
75
|
}
|
|
74
76
|
|
|
@@ -78,11 +80,9 @@ export class PaseServer implements ProtocolHandler {
|
|
|
78
80
|
// the commissioning channel.
|
|
79
81
|
const paseSession = this.sessions.getPaseSession();
|
|
80
82
|
if (paseSession !== undefined && !paseSession.isClosing) {
|
|
81
|
-
logger.info("
|
|
83
|
+
logger.info("Pairing already in progress (PASE session exists), ignoring new exchange");
|
|
82
84
|
} else if (this.#pairingTimer?.isRunning) {
|
|
83
|
-
logger.info(
|
|
84
|
-
"Pase server: Pairing already in progress (PASE establishment Timer running), ignoring new exchange.",
|
|
85
|
-
);
|
|
85
|
+
logger.info("Pairing already in progress (PASE establishment timer running), ignoring new exchange");
|
|
86
86
|
} else if (this.#pairingMessenger !== undefined) {
|
|
87
87
|
logger.info("Already handling a pairing request, ignoring new exchange.");
|
|
88
88
|
} else {
|
|
@@ -91,7 +91,7 @@ export class PaseServer implements ProtocolHandler {
|
|
|
91
91
|
try {
|
|
92
92
|
this.#pairingMessenger = messenger;
|
|
93
93
|
// Ok new pairing try, handle it
|
|
94
|
-
await this.handlePairingRequest(this.sessions.crypto);
|
|
94
|
+
await this.handlePairingRequest(this.sessions.crypto, messenger.channel.channel);
|
|
95
95
|
} catch (error) {
|
|
96
96
|
this.#pairingErrors++;
|
|
97
97
|
logger.error(
|
|
@@ -105,21 +105,21 @@ export class PaseServer implements ProtocolHandler {
|
|
|
105
105
|
|
|
106
106
|
if (this.#pairingErrors >= PASE_COMMISSIONING_MAX_ERRORS) {
|
|
107
107
|
throw new MaximumPasePairingErrorsReachedError(
|
|
108
|
-
`
|
|
108
|
+
`Too many errors during PASE commissioning, aborting commissioning window`,
|
|
109
109
|
);
|
|
110
110
|
}
|
|
111
111
|
} finally {
|
|
112
112
|
this.#pairingMessenger = undefined;
|
|
113
113
|
// Destroy the unsecure session used to establish the Pase session
|
|
114
|
-
await exchange.session.
|
|
114
|
+
await exchange.session.initiateClose();
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
private async handlePairingRequest(crypto: Crypto) {
|
|
119
|
+
private async handlePairingRequest(crypto: Crypto, channel: Channel<Bytes>) {
|
|
120
120
|
const messenger = this.#pairingMessenger!;
|
|
121
121
|
|
|
122
|
-
logger.info("Received pairing request
|
|
122
|
+
logger.info("Received pairing request", Mark.INBOUND, Diagnostic.via(messenger.channelName));
|
|
123
123
|
|
|
124
124
|
this.#pairingTimer = Time.getTimer("PASE pairing timeout", PASE_PAIRING_TIMEOUT_MS, () =>
|
|
125
125
|
this.cancelPairing(messenger),
|
|
@@ -171,8 +171,9 @@ export class PaseServer implements ProtocolHandler {
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
// All good! Creating the secure PASE session
|
|
174
|
-
await this.sessions.createSecureSession({
|
|
175
|
-
|
|
174
|
+
const session = await this.sessions.createSecureSession({
|
|
175
|
+
channel,
|
|
176
|
+
id: responderSessionId,
|
|
176
177
|
fabric: undefined,
|
|
177
178
|
peerNodeId: NodeId.UNSPECIFIED_NODE_ID,
|
|
178
179
|
peerSessionId,
|
|
@@ -182,7 +183,7 @@ export class PaseServer implements ProtocolHandler {
|
|
|
182
183
|
isResumption: false,
|
|
183
184
|
peerSessionParameters: initiatorSessionParams,
|
|
184
185
|
});
|
|
185
|
-
logger.info(
|
|
186
|
+
logger.info(session.via, "New session with", Diagnostic.strong(messenger.channelName));
|
|
186
187
|
|
|
187
188
|
await messenger.sendSuccess();
|
|
188
189
|
await messenger.close();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OperationalPeer.d.ts","sourceRoot":"","sources":["../../../src/peer/OperationalPeer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,OAAO,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;IAEtC;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAEtC;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,EAAE,aAAa,CAAC;CAC7B"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { AsyncObservable, Bytes, Channel, Environment, Environmental } from "#general";
|
|
7
|
-
import { PeerAddress } from "#peer/PeerAddress.js";
|
|
8
|
-
import { MessageChannel } from "#protocol/MessageChannel.js";
|
|
9
|
-
import { Session } from "#session/Session.js";
|
|
10
|
-
export declare class ChannelManager {
|
|
11
|
-
#private;
|
|
12
|
-
constructor(caseSessionsPerFabricAndNode?: number);
|
|
13
|
-
static [Environmental.create](env: Environment): ChannelManager;
|
|
14
|
-
get added(): AsyncObservable<[address: PeerAddress, channel: MessageChannel], void>;
|
|
15
|
-
set caseSessionsPerFabricAndNode(count: number);
|
|
16
|
-
setChannel(address: PeerAddress, channel: MessageChannel): Promise<void>;
|
|
17
|
-
hasChannel(address: PeerAddress): boolean;
|
|
18
|
-
getChannel(address: PeerAddress, session?: Session): MessageChannel;
|
|
19
|
-
/**
|
|
20
|
-
* Returns the last established session for a Fabric and Node
|
|
21
|
-
*/
|
|
22
|
-
getChannelForSession(session: Session): MessageChannel | undefined;
|
|
23
|
-
removeAllNodeChannels(address: PeerAddress): Promise<void>;
|
|
24
|
-
removeChannel(address: PeerAddress, session: Session): Promise<void>;
|
|
25
|
-
private getOrCreateAsPaseChannel;
|
|
26
|
-
getOrCreateChannel(byteArrayChannel: Channel<Bytes>, session: Session): Promise<MessageChannel>;
|
|
27
|
-
close(): Promise<void>;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=ChannelManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelManager.d.ts","sourceRoot":"","sources":["../../../src/protocol/ChannelManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAU,MAAM,UAAU,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C,qBAAa,cAAc;;gBAOX,4BAA4B,SAAI;IAI5C,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C,IAAI,KAAK,2EAER;IAED,IAAI,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAE7C;IAYK,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc;IAmB9D,UAAU,CAAC,OAAO,EAAE,WAAW;IAM/B,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO;IAalD;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO;IAY/B,qBAAqB,CAAC,OAAO,EAAE,WAAW;IAO1C,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO;IAiB1D,OAAO,CAAC,wBAAwB;IAc1B,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO;IA2BrE,KAAK;CAYd"}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var ChannelManager_exports = {};
|
|
20
|
-
__export(ChannelManager_exports, {
|
|
21
|
-
ChannelManager: () => ChannelManager
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(ChannelManager_exports);
|
|
24
|
-
var import_general = require("#general");
|
|
25
|
-
var import_PeerAddress = require("#peer/PeerAddress.js");
|
|
26
|
-
var import_MessageChannel = require("#protocol/MessageChannel.js");
|
|
27
|
-
var import_NodeSession = require("#session/NodeSession.js");
|
|
28
|
-
/**
|
|
29
|
-
* @license
|
|
30
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
31
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
32
|
-
*/
|
|
33
|
-
const logger = import_general.Logger.get("ChannelManager");
|
|
34
|
-
class ChannelManager {
|
|
35
|
-
#channels = new import_PeerAddress.PeerAddressMap();
|
|
36
|
-
#paseChannels = /* @__PURE__ */ new Map();
|
|
37
|
-
#caseSessionsPerFabricAndNode;
|
|
38
|
-
#added = (0, import_general.AsyncObservable)();
|
|
39
|
-
// TODO evaluate with controller the effects of limiting the entries just for FabricIndex and not also NodeId
|
|
40
|
-
constructor(caseSessionsPerFabricAndNode = 3) {
|
|
41
|
-
this.#caseSessionsPerFabricAndNode = caseSessionsPerFabricAndNode;
|
|
42
|
-
}
|
|
43
|
-
static [import_general.Environmental.create](env) {
|
|
44
|
-
const instance = new ChannelManager();
|
|
45
|
-
env.set(ChannelManager, instance);
|
|
46
|
-
return instance;
|
|
47
|
-
}
|
|
48
|
-
get added() {
|
|
49
|
-
return this.#added;
|
|
50
|
-
}
|
|
51
|
-
set caseSessionsPerFabricAndNode(count) {
|
|
52
|
-
this.#caseSessionsPerFabricAndNode = count;
|
|
53
|
-
}
|
|
54
|
-
#findLeastActiveChannel(channels) {
|
|
55
|
-
let oldest = channels[0];
|
|
56
|
-
for (const channel of channels) {
|
|
57
|
-
if (channel.session.timestamp < oldest.session.timestamp) {
|
|
58
|
-
oldest = channel;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return oldest;
|
|
62
|
-
}
|
|
63
|
-
async setChannel(address, channel) {
|
|
64
|
-
channel.closeCallback = async () => this.removeChannel(address, channel.session);
|
|
65
|
-
const currentChannels = this.#channels.get(address) ?? [];
|
|
66
|
-
currentChannels.push(channel);
|
|
67
|
-
this.#channels.set(address, currentChannels);
|
|
68
|
-
await this.#added.emit(address, channel);
|
|
69
|
-
if (currentChannels.length > this.#caseSessionsPerFabricAndNode) {
|
|
70
|
-
const oldestChannel = this.#findLeastActiveChannel(currentChannels);
|
|
71
|
-
const { session: oldSession } = oldestChannel;
|
|
72
|
-
if (channel.session.id !== oldSession.id) {
|
|
73
|
-
await oldSession.destroy(false, false);
|
|
74
|
-
}
|
|
75
|
-
logger.info(`Close oldest channel for fabric ${(0, import_PeerAddress.PeerAddress)(address)} (from session ${oldSession.id})`);
|
|
76
|
-
await oldestChannel.close();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
hasChannel(address) {
|
|
80
|
-
return !!this.#channels.get(address)?.filter((channel) => !channel.closed && !channel.session.closingAfterExchangeFinished).length;
|
|
81
|
-
}
|
|
82
|
-
getChannel(address, session) {
|
|
83
|
-
let results = this.#channels.get(address) ?? [];
|
|
84
|
-
if (session !== void 0) {
|
|
85
|
-
results = results.filter((channel) => channel.session.id === session.id);
|
|
86
|
-
}
|
|
87
|
-
results = results.filter((channel) => !channel.closed && !channel.session.closingAfterExchangeFinished);
|
|
88
|
-
if (results.length === 0)
|
|
89
|
-
throw new import_NodeSession.NoChannelError(
|
|
90
|
-
`Can't find a channel to ${(0, import_PeerAddress.PeerAddress)(address)}${session !== void 0 ? ` session ${session.id}` : ""}`
|
|
91
|
-
);
|
|
92
|
-
return results[results.length - 1];
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Returns the last established session for a Fabric and Node
|
|
96
|
-
*/
|
|
97
|
-
getChannelForSession(session) {
|
|
98
|
-
if (import_NodeSession.NodeSession.is(session) && !session.isPase) {
|
|
99
|
-
const fabric = session.fabric;
|
|
100
|
-
const nodeId = session.peerNodeId;
|
|
101
|
-
if (fabric === void 0) {
|
|
102
|
-
return this.#paseChannels.get(session);
|
|
103
|
-
}
|
|
104
|
-
return this.getChannel(fabric.addressOf(nodeId), session);
|
|
105
|
-
}
|
|
106
|
-
return this.#paseChannels.get(session);
|
|
107
|
-
}
|
|
108
|
-
async removeAllNodeChannels(address) {
|
|
109
|
-
const channelsToRemove = this.#channels.get(address) ?? [];
|
|
110
|
-
for (const channel of channelsToRemove) {
|
|
111
|
-
await channel.close();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
async removeChannel(address, session) {
|
|
115
|
-
const fabricChannels = this.#channels.get(address) ?? [];
|
|
116
|
-
const channelEntryIndex = fabricChannels.findIndex(
|
|
117
|
-
({ session: entrySession }) => entrySession.id === session.id
|
|
118
|
-
);
|
|
119
|
-
if (channelEntryIndex === -1) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
const channelEntry = fabricChannels.splice(channelEntryIndex, 1)[0];
|
|
123
|
-
if (channelEntry === void 0) {
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
await channelEntry.close();
|
|
127
|
-
this.#channels.set(address, fabricChannels);
|
|
128
|
-
}
|
|
129
|
-
getOrCreateAsPaseChannel(byteArrayChannel, session) {
|
|
130
|
-
const msgChannel = new import_MessageChannel.MessageChannel(
|
|
131
|
-
byteArrayChannel,
|
|
132
|
-
session,
|
|
133
|
-
async () => void this.#paseChannels.delete(session)
|
|
134
|
-
);
|
|
135
|
-
this.#paseChannels.set(session, msgChannel);
|
|
136
|
-
if (session.isSecure) {
|
|
137
|
-
session.destroyed.on(() => msgChannel.close());
|
|
138
|
-
}
|
|
139
|
-
return msgChannel;
|
|
140
|
-
}
|
|
141
|
-
async getOrCreateChannel(byteArrayChannel, session) {
|
|
142
|
-
if (!import_NodeSession.NodeSession.is(session)) {
|
|
143
|
-
return this.getOrCreateAsPaseChannel(byteArrayChannel, session);
|
|
144
|
-
}
|
|
145
|
-
const fabric = session.fabric;
|
|
146
|
-
const nodeId = session.peerNodeId;
|
|
147
|
-
if (fabric === void 0) {
|
|
148
|
-
return this.getOrCreateAsPaseChannel(byteArrayChannel, session);
|
|
149
|
-
}
|
|
150
|
-
const address = fabric.addressOf(nodeId);
|
|
151
|
-
try {
|
|
152
|
-
return this.getChannel(address, session);
|
|
153
|
-
} catch (e) {
|
|
154
|
-
import_NodeSession.NoChannelError.accept(e);
|
|
155
|
-
}
|
|
156
|
-
const msgChannel = new import_MessageChannel.MessageChannel(
|
|
157
|
-
byteArrayChannel,
|
|
158
|
-
session,
|
|
159
|
-
async () => this.removeChannel(address, session)
|
|
160
|
-
);
|
|
161
|
-
await this.setChannel(address, msgChannel);
|
|
162
|
-
session.destroyed.on(() => msgChannel.close());
|
|
163
|
-
return msgChannel;
|
|
164
|
-
}
|
|
165
|
-
async close() {
|
|
166
|
-
for (const channel of this.#paseChannels.values()) {
|
|
167
|
-
await channel.close();
|
|
168
|
-
}
|
|
169
|
-
this.#paseChannels.clear();
|
|
170
|
-
for (const channels of this.#channels.values()) {
|
|
171
|
-
for (const channel of channels) {
|
|
172
|
-
await channel.close();
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
this.#channels.clear();
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
//# sourceMappingURL=ChannelManager.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/protocol/ChannelManager.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InsecureSession.d.ts","sourceRoot":"","sources":["../../../src/session/InsecureSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAA2B,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAgB,MAAM,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,eAAO,MAAM,2BAA2B,IAAS,CAAC;AAElD,qBAAa,eAAgB,SAAQ,OAAO;;IAExC,QAAQ,CAAC,4BAA4B,SAAS;IAC9C,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,IAAI,uBAAuB;gBAExB,IAAI,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,cAAc,EAAE,cAAc,CAAC;QAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;QAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB;IAUD,IAAI,QAAQ,YAEX;IAED,IAAI,MAAM,YAET;IAED,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc;IAI7C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAIhC,IAAI,uBAAuB,IAAI,KAAK,CAEnC;IAED,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIhC,IAAI,IAAI,WAEP;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,MAAM,WAET;IAED,IAAI,UAAU,cAEb;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAEK,OAAO;IAKP,GAAG;CAIZ"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/session/InsecureSession.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAuD;AACvD,mBAAuB;AACvB,0BAA0F;AAG1F,mCAA6D;AAC7D,yBAAwC;AACxC,qBAAiD;AAbjD;AAAA;AAAA;AAAA;AAAA;AAgBA,MAAM,SAAS,sBAAO,IAAI,iBAAiB;AAEpC,MAAM,8BAA8B;AAEpC,MAAM,wBAAwB,uBAAQ;AAAA,EAChC;AAAA,EACA,+BAA+B;AAAA,EAC/B,cAAc;AAAA,EACd,OAAO,gCAAY;AAAA,EAE5B,YAAY,MAOT;AACC,UAAM,EAAE,QAAQ,iBAAiB,YAAY,IAAI;AACjD,UAAM;AAAA,MACF,GAAG;AAAA,MACH,oBAAoB,CAAC;AAAA;AAAA,MACrB,uBAAuB,IAAI,0EAA6C;AAAA,IAC5E,CAAC;AACD,SAAK,mBAAmB,mBAAmB,oBAAO,wBAAwB,MAAM;AAAA,EACpF;AAAA,EAEA,IAAI,WAAW;AACX,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,SAAS;AACT,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,QAAuC;AAC1C,WAAO,iCAAa,cAAc,MAAM;AAAA,EAC5C;AAAA,EAEA,OAAO,SAA0B;AAC7B,WAAO,iCAAa,cAAc,OAAO;AAAA,EAC7C;AAAA,EAEA,IAAI,0BAAiC;AACjC,UAAM,IAAI,+BAAgB,sCAAsC;AAAA,EACpE;AAAA,EAEA,UAAU,SAAuB;AAC7B,UAAM,IAAI,+BAAgB,sCAAsC;AAAA,EACpE;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,YAAY,KAAK,gBAAgB;AAAA,EAC5C;AAAA,EAEA,IAAI,KAAa;AACb,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,gBAAwB;AACxB,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,aAAa;AACb,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,mBAA2B;AAC3B,UAAM,IAAI,2CAAwB,sCAAsC;AAAA,EAC5E;AAAA,EAEA,MAAM,UAAU;AACZ,UAAM,KAAK,IAAI;AACf,UAAM,KAAK,UAAU,KAAK;AAAA,EAC9B;AAAA,EAEA,MAAM,MAAM;AACR,WAAO,KAAK,wBAAwB,KAAK,IAAI,EAAE;AAC/C,SAAK,SAAS,iBAAiB,OAAO,KAAK,MAAM;AAAA,EACrD;AACJ;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { DiscoveryData } from "#common/Scanner.js";
|
|
7
|
-
import { ServerAddressUdp } from "#general";
|
|
8
|
-
import type { PeerDataStore } from "#peer/PeerAddressStore.js";
|
|
9
|
-
import { SessionParameters } from "#session/Session.js";
|
|
10
|
-
import { PeerAddress } from "./PeerAddress.js";
|
|
11
|
-
/**
|
|
12
|
-
* Operational information for a single peer.
|
|
13
|
-
*
|
|
14
|
-
* For our purposes a "peer" is another node commissioned to a fabric to which we have access.
|
|
15
|
-
*/
|
|
16
|
-
export interface OperationalPeer {
|
|
17
|
-
/**
|
|
18
|
-
* The logical address of the peer.
|
|
19
|
-
*/
|
|
20
|
-
address: PeerAddress;
|
|
21
|
-
/**
|
|
22
|
-
* A physical address the peer may be accessed at, if known.
|
|
23
|
-
*/
|
|
24
|
-
operationalAddress?: ServerAddressUdp;
|
|
25
|
-
/**
|
|
26
|
-
* The peer's session parameters reported during discovery.
|
|
27
|
-
*/
|
|
28
|
-
sessionParameters?: SessionParameters;
|
|
29
|
-
/**
|
|
30
|
-
* Additional information collected while locating the peer.
|
|
31
|
-
*/
|
|
32
|
-
discoveryData?: DiscoveryData;
|
|
33
|
-
/**
|
|
34
|
-
* The data store for the peer.
|
|
35
|
-
*/
|
|
36
|
-
dataStore?: PeerDataStore;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=OperationalPeer.d.ts.map
|