@matter/protocol 0.11.0-alpha.0-20241005-e3e4e4a7a
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/LICENSE +201 -0
- package/dist/cjs/MatterDevice.d.ts +79 -0
- package/dist/cjs/MatterDevice.d.ts.map +1 -0
- package/dist/cjs/MatterDevice.js +253 -0
- package/dist/cjs/MatterDevice.js.map +6 -0
- package/dist/cjs/ble/Ble.d.ts +29 -0
- package/dist/cjs/ble/Ble.d.ts.map +1 -0
- package/dist/cjs/ble/Ble.js +50 -0
- package/dist/cjs/ble/Ble.js.map +6 -0
- package/dist/cjs/ble/BleConsts.d.ts +32 -0
- package/dist/cjs/ble/BleConsts.d.ts.map +1 -0
- package/dist/cjs/ble/BleConsts.js +53 -0
- package/dist/cjs/ble/BleConsts.js.map +6 -0
- package/dist/cjs/ble/BtpSessionHandler.d.ts +87 -0
- package/dist/cjs/ble/BtpSessionHandler.d.ts.map +1 -0
- package/dist/cjs/ble/BtpSessionHandler.js +432 -0
- package/dist/cjs/ble/BtpSessionHandler.js.map +6 -0
- package/dist/cjs/ble/index.d.ts +9 -0
- package/dist/cjs/ble/index.d.ts.map +1 -0
- package/dist/cjs/ble/index.js +26 -0
- package/dist/cjs/ble/index.js.map +6 -0
- package/dist/cjs/certificate/AttestationCertificateManager.d.ts +28 -0
- package/dist/cjs/certificate/AttestationCertificateManager.d.ts.map +1 -0
- package/dist/cjs/certificate/AttestationCertificateManager.js +171 -0
- package/dist/cjs/certificate/AttestationCertificateManager.js.map +6 -0
- package/dist/cjs/certificate/CertificateManager.d.ts +575 -0
- package/dist/cjs/certificate/CertificateManager.d.ts.map +1 -0
- package/dist/cjs/certificate/CertificateManager.js +810 -0
- package/dist/cjs/certificate/CertificateManager.js.map +6 -0
- package/dist/cjs/certificate/CertificationDeclarationManager.d.ts +5 -0
- package/dist/cjs/certificate/CertificationDeclarationManager.d.ts.map +1 -0
- package/dist/cjs/certificate/CertificationDeclarationManager.js +54 -0
- package/dist/cjs/certificate/CertificationDeclarationManager.js.map +6 -0
- package/dist/cjs/certificate/ChipPAAuthorities.d.ts +14 -0
- package/dist/cjs/certificate/ChipPAAuthorities.d.ts.map +1 -0
- package/dist/cjs/certificate/ChipPAAuthorities.js +57 -0
- package/dist/cjs/certificate/ChipPAAuthorities.js.map +6 -0
- package/dist/cjs/certificate/DeviceCertification.d.ts +30 -0
- package/dist/cjs/certificate/DeviceCertification.d.ts.map +1 -0
- package/dist/cjs/certificate/DeviceCertification.js +103 -0
- package/dist/cjs/certificate/DeviceCertification.js.map +6 -0
- package/dist/cjs/certificate/RootCertificateManager.d.ts +33 -0
- package/dist/cjs/certificate/RootCertificateManager.d.ts.map +1 -0
- package/dist/cjs/certificate/RootCertificateManager.js +142 -0
- package/dist/cjs/certificate/RootCertificateManager.js.map +6 -0
- package/dist/cjs/certificate/index.d.ts +12 -0
- package/dist/cjs/certificate/index.d.ts.map +1 -0
- package/dist/cjs/certificate/index.js +29 -0
- package/dist/cjs/certificate/index.js.map +6 -0
- package/dist/cjs/cluster/client/AttributeClient.d.ts +61 -0
- package/dist/cjs/cluster/client/AttributeClient.d.ts.map +1 -0
- package/dist/cjs/cluster/client/AttributeClient.js +177 -0
- package/dist/cjs/cluster/client/AttributeClient.js.map +6 -0
- package/dist/cjs/cluster/client/ClusterClient.d.ts +10 -0
- package/dist/cjs/cluster/client/ClusterClient.d.ts.map +1 -0
- package/dist/cjs/cluster/client/ClusterClient.js +281 -0
- package/dist/cjs/cluster/client/ClusterClient.js.map +6 -0
- package/dist/cjs/cluster/client/ClusterClientTypes.d.ts +171 -0
- package/dist/cjs/cluster/client/ClusterClientTypes.d.ts.map +1 -0
- package/dist/cjs/cluster/client/ClusterClientTypes.js +22 -0
- package/dist/cjs/cluster/client/ClusterClientTypes.js.map +6 -0
- package/dist/cjs/cluster/client/EventClient.d.ts +41 -0
- package/dist/cjs/cluster/client/EventClient.d.ts.map +1 -0
- package/dist/cjs/cluster/client/EventClient.js +94 -0
- package/dist/cjs/cluster/client/EventClient.js.map +6 -0
- package/dist/cjs/cluster/client/index.d.ts +10 -0
- package/dist/cjs/cluster/client/index.d.ts.map +1 -0
- package/dist/cjs/cluster/client/index.js +27 -0
- package/dist/cjs/cluster/client/index.js.map +6 -0
- package/dist/cjs/cluster/index.d.ts +8 -0
- package/dist/cjs/cluster/index.d.ts.map +1 -0
- package/dist/cjs/cluster/index.js +25 -0
- package/dist/cjs/cluster/index.js.map +6 -0
- package/dist/cjs/cluster/server/AttributeServer.d.ts +307 -0
- package/dist/cjs/cluster/server/AttributeServer.d.ts.map +1 -0
- package/dist/cjs/cluster/server/AttributeServer.js +734 -0
- package/dist/cjs/cluster/server/AttributeServer.js.map +6 -0
- package/dist/cjs/cluster/server/ClusterDatasource.d.ts +16 -0
- package/dist/cjs/cluster/server/ClusterDatasource.d.ts.map +1 -0
- package/dist/cjs/cluster/server/ClusterDatasource.js +22 -0
- package/dist/cjs/cluster/server/ClusterDatasource.js.map +6 -0
- package/dist/cjs/cluster/server/ClusterServer.d.ts +40 -0
- package/dist/cjs/cluster/server/ClusterServer.d.ts.map +1 -0
- package/dist/cjs/cluster/server/ClusterServer.js +22 -0
- package/dist/cjs/cluster/server/ClusterServer.js.map +6 -0
- package/dist/cjs/cluster/server/CommandServer.d.ts +34 -0
- package/dist/cjs/cluster/server/CommandServer.d.ts.map +1 -0
- package/dist/cjs/cluster/server/CommandServer.js +76 -0
- package/dist/cjs/cluster/server/CommandServer.js.map +6 -0
- package/dist/cjs/cluster/server/EventServer.d.ts +41 -0
- package/dist/cjs/cluster/server/EventServer.d.ts.map +1 -0
- package/dist/cjs/cluster/server/EventServer.js +149 -0
- package/dist/cjs/cluster/server/EventServer.js.map +6 -0
- package/dist/cjs/cluster/server/index.d.ts +11 -0
- package/dist/cjs/cluster/server/index.d.ts.map +1 -0
- package/dist/cjs/cluster/server/index.js +28 -0
- package/dist/cjs/cluster/server/index.js.map +6 -0
- package/dist/cjs/codec/BtpCodec.d.ts +78 -0
- package/dist/cjs/codec/BtpCodec.d.ts.map +1 -0
- package/dist/cjs/codec/BtpCodec.js +254 -0
- package/dist/cjs/codec/BtpCodec.js.map +6 -0
- package/dist/cjs/codec/MessageCodec.d.ts +63 -0
- package/dist/cjs/codec/MessageCodec.d.ts.map +1 -0
- package/dist/cjs/codec/MessageCodec.js +220 -0
- package/dist/cjs/codec/MessageCodec.js.map +6 -0
- package/dist/cjs/codec/index.d.ts +9 -0
- package/dist/cjs/codec/index.d.ts.map +1 -0
- package/dist/cjs/codec/index.js +36 -0
- package/dist/cjs/codec/index.js.map +6 -0
- package/dist/cjs/common/FailsafeContext.d.ts +79 -0
- package/dist/cjs/common/FailsafeContext.d.ts.map +1 -0
- package/dist/cjs/common/FailsafeContext.js +237 -0
- package/dist/cjs/common/FailsafeContext.js.map +6 -0
- package/dist/cjs/common/FailsafeTimer.d.ts +25 -0
- package/dist/cjs/common/FailsafeTimer.d.ts.map +1 -0
- package/dist/cjs/common/FailsafeTimer.js +91 -0
- package/dist/cjs/common/FailsafeTimer.js.map +6 -0
- package/dist/cjs/common/InstanceBroadcaster.d.ts +273 -0
- package/dist/cjs/common/InstanceBroadcaster.d.ts.map +1 -0
- package/dist/cjs/common/InstanceBroadcaster.js +139 -0
- package/dist/cjs/common/InstanceBroadcaster.js.map +6 -0
- package/dist/cjs/common/OperationalCredentialsTypes.d.ts +21 -0
- package/dist/cjs/common/OperationalCredentialsTypes.d.ts.map +1 -0
- package/dist/cjs/common/OperationalCredentialsTypes.js +45 -0
- package/dist/cjs/common/OperationalCredentialsTypes.js.map +6 -0
- package/dist/cjs/common/Scanner.d.ts +121 -0
- package/dist/cjs/common/Scanner.d.ts.map +1 -0
- package/dist/cjs/common/Scanner.js +51 -0
- package/dist/cjs/common/Scanner.js.map +6 -0
- package/dist/cjs/common/index.d.ts +12 -0
- package/dist/cjs/common/index.d.ts.map +1 -0
- package/dist/cjs/common/index.js +29 -0
- package/dist/cjs/common/index.js.map +6 -0
- package/dist/cjs/endpoint/EndpointInterface.d.ts +37 -0
- package/dist/cjs/endpoint/EndpointInterface.d.ts.map +1 -0
- package/dist/cjs/endpoint/EndpointInterface.js +22 -0
- package/dist/cjs/endpoint/EndpointInterface.js.map +6 -0
- package/dist/cjs/endpoint/EndpointStructureLogger.d.ts +31 -0
- package/dist/cjs/endpoint/EndpointStructureLogger.d.ts.map +1 -0
- package/dist/cjs/endpoint/EndpointStructureLogger.js +236 -0
- package/dist/cjs/endpoint/EndpointStructureLogger.js.map +6 -0
- package/dist/cjs/endpoint/index.d.ts +8 -0
- package/dist/cjs/endpoint/index.d.ts.map +1 -0
- package/dist/cjs/endpoint/index.js +25 -0
- package/dist/cjs/endpoint/index.js.map +6 -0
- package/dist/cjs/fabric/Fabric.d.ts +121 -0
- package/dist/cjs/fabric/Fabric.d.ts.map +1 -0
- package/dist/cjs/fabric/Fabric.js +427 -0
- package/dist/cjs/fabric/Fabric.js.map +6 -0
- package/dist/cjs/fabric/FabricManager.d.ts +44 -0
- package/dist/cjs/fabric/FabricManager.d.ts.map +1 -0
- package/dist/cjs/fabric/FabricManager.js +209 -0
- package/dist/cjs/fabric/FabricManager.js.map +6 -0
- package/dist/cjs/fabric/index.d.ts +8 -0
- package/dist/cjs/fabric/index.d.ts.map +1 -0
- package/dist/cjs/fabric/index.js +25 -0
- package/dist/cjs/fabric/index.js.map +6 -0
- package/dist/cjs/index.d.ts +20 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/interaction/AccessControlManager.d.ts +49 -0
- package/dist/cjs/interaction/AccessControlManager.d.ts.map +1 -0
- package/dist/cjs/interaction/AccessControlManager.js +248 -0
- package/dist/cjs/interaction/AccessControlManager.js.map +6 -0
- package/dist/cjs/interaction/AttributeDataDecoder.d.ts +52 -0
- package/dist/cjs/interaction/AttributeDataDecoder.d.ts.map +1 -0
- package/dist/cjs/interaction/AttributeDataDecoder.js +185 -0
- package/dist/cjs/interaction/AttributeDataDecoder.js.map +6 -0
- package/dist/cjs/interaction/AttributeDataEncoder.d.ts +71 -0
- package/dist/cjs/interaction/AttributeDataEncoder.d.ts.map +1 -0
- package/dist/cjs/interaction/AttributeDataEncoder.js +190 -0
- package/dist/cjs/interaction/AttributeDataEncoder.js.map +6 -0
- package/dist/cjs/interaction/EventDataDecoder.d.ts +30 -0
- package/dist/cjs/interaction/EventDataDecoder.d.ts.map +1 -0
- package/dist/cjs/interaction/EventDataDecoder.js +103 -0
- package/dist/cjs/interaction/EventDataDecoder.js.map +6 -0
- package/dist/cjs/interaction/EventHandler.d.ts +42 -0
- package/dist/cjs/interaction/EventHandler.d.ts.map +1 -0
- package/dist/cjs/interaction/EventHandler.js +112 -0
- package/dist/cjs/interaction/EventHandler.js.map +6 -0
- package/dist/cjs/interaction/InteractionClient.d.ts +294 -0
- package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -0
- package/dist/cjs/interaction/InteractionClient.js +829 -0
- package/dist/cjs/interaction/InteractionClient.js.map +6 -0
- package/dist/cjs/interaction/InteractionEndpointStructure.d.ts +59 -0
- package/dist/cjs/interaction/InteractionEndpointStructure.d.ts.map +1 -0
- package/dist/cjs/interaction/InteractionEndpointStructure.js +341 -0
- package/dist/cjs/interaction/InteractionEndpointStructure.js.map +6 -0
- package/dist/cjs/interaction/InteractionMessenger.d.ts +315 -0
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -0
- package/dist/cjs/interaction/InteractionMessenger.js +484 -0
- package/dist/cjs/interaction/InteractionMessenger.js.map +6 -0
- package/dist/cjs/interaction/InteractionServer.d.ts +97 -0
- package/dist/cjs/interaction/InteractionServer.d.ts.map +1 -0
- package/dist/cjs/interaction/InteractionServer.js +1026 -0
- package/dist/cjs/interaction/InteractionServer.js.map +6 -0
- package/dist/cjs/interaction/ServerSubscription.d.ts +121 -0
- package/dist/cjs/interaction/ServerSubscription.d.ts.map +1 -0
- package/dist/cjs/interaction/ServerSubscription.js +672 -0
- package/dist/cjs/interaction/ServerSubscription.js.map +6 -0
- package/dist/cjs/interaction/Subscription.d.ts +44 -0
- package/dist/cjs/interaction/Subscription.d.ts.map +1 -0
- package/dist/cjs/interaction/Subscription.js +85 -0
- package/dist/cjs/interaction/Subscription.js.map +6 -0
- package/dist/cjs/interaction/SubscriptionOptions.d.ts +43 -0
- package/dist/cjs/interaction/SubscriptionOptions.d.ts.map +1 -0
- package/dist/cjs/interaction/SubscriptionOptions.js +46 -0
- package/dist/cjs/interaction/SubscriptionOptions.js.map +6 -0
- package/dist/cjs/interaction/index.d.ts +17 -0
- package/dist/cjs/interaction/index.d.ts.map +1 -0
- package/dist/cjs/interaction/index.js +34 -0
- package/dist/cjs/interaction/index.js.map +6 -0
- package/dist/cjs/mdns/MdnsBroadcaster.d.ts +34 -0
- package/dist/cjs/mdns/MdnsBroadcaster.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsBroadcaster.js +338 -0
- package/dist/cjs/mdns/MdnsBroadcaster.js.map +6 -0
- package/dist/cjs/mdns/MdnsConsts.d.ts +19 -0
- package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsConsts.js +52 -0
- package/dist/cjs/mdns/MdnsConsts.js.map +6 -0
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts +28 -0
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.js +87 -0
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.js.map +6 -0
- package/dist/cjs/mdns/MdnsScanner.d.ts +79 -0
- package/dist/cjs/mdns/MdnsScanner.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsScanner.js +842 -0
- package/dist/cjs/mdns/MdnsScanner.js.map +6 -0
- package/dist/cjs/mdns/MdnsServer.d.ts +29 -0
- package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsServer.js +275 -0
- package/dist/cjs/mdns/MdnsServer.js.map +6 -0
- package/dist/cjs/mdns/MdnsService.d.ts +28 -0
- package/dist/cjs/mdns/MdnsService.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsService.js +95 -0
- package/dist/cjs/mdns/MdnsService.js.map +6 -0
- package/dist/cjs/mdns/index.d.ts +12 -0
- package/dist/cjs/mdns/index.d.ts.map +1 -0
- package/dist/cjs/mdns/index.js +29 -0
- package/dist/cjs/mdns/index.js.map +6 -0
- package/dist/cjs/package.json +10 -0
- package/dist/cjs/peer/ControllerCommissioner.d.ts +82 -0
- package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -0
- package/dist/cjs/peer/ControllerCommissioner.js +224 -0
- package/dist/cjs/peer/ControllerCommissioner.js.map +6 -0
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts +88 -0
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -0
- package/dist/cjs/peer/ControllerCommissioningFlow.js +849 -0
- package/dist/cjs/peer/ControllerCommissioningFlow.js.map +6 -0
- package/dist/cjs/peer/ControllerDiscovery.d.ts +43 -0
- package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -0
- package/dist/cjs/peer/ControllerDiscovery.js +192 -0
- package/dist/cjs/peer/ControllerDiscovery.js.map +6 -0
- package/dist/cjs/peer/OperationalPeer.d.ts +28 -0
- package/dist/cjs/peer/OperationalPeer.d.ts.map +1 -0
- package/dist/cjs/peer/OperationalPeer.js +22 -0
- package/dist/cjs/peer/OperationalPeer.js.map +6 -0
- package/dist/cjs/peer/PeerAddress.d.ts +30 -0
- package/dist/cjs/peer/PeerAddress.d.ts.map +1 -0
- package/dist/cjs/peer/PeerAddress.js +71 -0
- package/dist/cjs/peer/PeerAddress.js.map +6 -0
- package/dist/cjs/peer/PeerSet.d.ts +98 -0
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -0
- package/dist/cjs/peer/PeerSet.js +500 -0
- package/dist/cjs/peer/PeerSet.js.map +6 -0
- package/dist/cjs/peer/PeerStore.d.ts +17 -0
- package/dist/cjs/peer/PeerStore.d.ts.map +1 -0
- package/dist/cjs/peer/PeerStore.js +31 -0
- package/dist/cjs/peer/PeerStore.js.map +6 -0
- package/dist/cjs/peer/index.d.ts +13 -0
- package/dist/cjs/peer/index.d.ts.map +1 -0
- package/dist/cjs/peer/index.js +30 -0
- package/dist/cjs/peer/index.js.map +6 -0
- package/dist/cjs/protocol/ChannelManager.d.ts +30 -0
- package/dist/cjs/protocol/ChannelManager.d.ts.map +1 -0
- package/dist/cjs/protocol/ChannelManager.js +168 -0
- package/dist/cjs/protocol/ChannelManager.js.map +6 -0
- package/dist/cjs/protocol/DeviceAdvertiser.d.ts +43 -0
- package/dist/cjs/protocol/DeviceAdvertiser.d.ts.map +1 -0
- package/dist/cjs/protocol/DeviceAdvertiser.js +185 -0
- package/dist/cjs/protocol/DeviceAdvertiser.js.map +6 -0
- package/dist/cjs/protocol/DeviceCommissioner.d.ts +49 -0
- package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -0
- package/dist/cjs/protocol/DeviceCommissioner.js +198 -0
- package/dist/cjs/protocol/DeviceCommissioner.js.map +6 -0
- package/dist/cjs/protocol/ExchangeManager.d.ts +73 -0
- package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -0
- package/dist/cjs/protocol/ExchangeManager.js +407 -0
- package/dist/cjs/protocol/ExchangeManager.js.map +6 -0
- package/dist/cjs/protocol/MessageCounter.d.ts +57 -0
- package/dist/cjs/protocol/MessageCounter.d.ts.map +1 -0
- package/dist/cjs/protocol/MessageCounter.js +104 -0
- package/dist/cjs/protocol/MessageCounter.js.map +6 -0
- package/dist/cjs/protocol/MessageExchange.d.ts +84 -0
- package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -0
- package/dist/cjs/protocol/MessageExchange.js +508 -0
- package/dist/cjs/protocol/MessageExchange.js.map +6 -0
- package/dist/cjs/protocol/MessageReceptionState.d.ts +65 -0
- package/dist/cjs/protocol/MessageReceptionState.d.ts.map +1 -0
- package/dist/cjs/protocol/MessageReceptionState.js +173 -0
- package/dist/cjs/protocol/MessageReceptionState.js.map +6 -0
- package/dist/cjs/protocol/ProtocolHandler.d.ts +13 -0
- package/dist/cjs/protocol/ProtocolHandler.d.ts.map +1 -0
- package/dist/cjs/protocol/ProtocolHandler.js +22 -0
- package/dist/cjs/protocol/ProtocolHandler.js.map +6 -0
- package/dist/cjs/protocol/index.d.ts +14 -0
- package/dist/cjs/protocol/index.d.ts.map +1 -0
- package/dist/cjs/protocol/index.js +31 -0
- package/dist/cjs/protocol/index.js.map +6 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts +53 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts.map +1 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.js +143 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.js.map +6 -0
- package/dist/cjs/securechannel/SecureChannelProtocol.d.ts +31 -0
- package/dist/cjs/securechannel/SecureChannelProtocol.d.ts.map +1 -0
- package/dist/cjs/securechannel/SecureChannelProtocol.js +140 -0
- package/dist/cjs/securechannel/SecureChannelProtocol.js.map +6 -0
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts +23 -0
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -0
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js +53 -0
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js.map +6 -0
- package/dist/cjs/securechannel/index.d.ts +9 -0
- package/dist/cjs/securechannel/index.d.ts.map +1 -0
- package/dist/cjs/securechannel/index.js +26 -0
- package/dist/cjs/securechannel/index.js.map +6 -0
- package/dist/cjs/session/InsecureSession.d.ts +38 -0
- package/dist/cjs/session/InsecureSession.d.ts.map +1 -0
- package/dist/cjs/session/InsecureSession.js +95 -0
- package/dist/cjs/session/InsecureSession.js.map +6 -0
- package/dist/cjs/session/SecureSession.d.ts +81 -0
- package/dist/cjs/session/SecureSession.d.ts.map +1 -0
- package/dist/cjs/session/SecureSession.js +291 -0
- package/dist/cjs/session/SecureSession.js.map +6 -0
- package/dist/cjs/session/Session.d.ts +102 -0
- package/dist/cjs/session/Session.d.ts.map +1 -0
- package/dist/cjs/session/Session.js +141 -0
- package/dist/cjs/session/Session.js.map +6 -0
- package/dist/cjs/session/SessionManager.d.ts +132 -0
- package/dist/cjs/session/SessionManager.d.ts.map +1 -0
- package/dist/cjs/session/SessionManager.js +410 -0
- package/dist/cjs/session/SessionManager.js.map +6 -0
- package/dist/cjs/session/case/CaseClient.d.ts +18 -0
- package/dist/cjs/session/case/CaseClient.d.ts.map +1 -0
- package/dist/cjs/session/case/CaseClient.js +216 -0
- package/dist/cjs/session/case/CaseClient.js.map +6 -0
- package/dist/cjs/session/case/CaseMessages.d.ts +82 -0
- package/dist/cjs/session/case/CaseMessages.d.ts.map +1 -0
- package/dist/cjs/session/case/CaseMessages.js +97 -0
- package/dist/cjs/session/case/CaseMessages.js.map +6 -0
- package/dist/cjs/session/case/CaseMessenger.d.ts +79 -0
- package/dist/cjs/session/case/CaseMessenger.d.ts.map +1 -0
- package/dist/cjs/session/case/CaseMessenger.js +74 -0
- package/dist/cjs/session/case/CaseMessenger.js.map +6 -0
- package/dist/cjs/session/case/CaseServer.d.ts +18 -0
- package/dist/cjs/session/case/CaseServer.d.ts.map +1 -0
- package/dist/cjs/session/case/CaseServer.js +232 -0
- package/dist/cjs/session/case/CaseServer.js.map +6 -0
- package/dist/cjs/session/index.d.ts +18 -0
- package/dist/cjs/session/index.d.ts.map +1 -0
- package/dist/cjs/session/index.js +35 -0
- package/dist/cjs/session/index.js.map +6 -0
- package/dist/cjs/session/pase/PaseClient.d.ts +18 -0
- package/dist/cjs/session/pase/PaseClient.d.ts.map +1 -0
- package/dist/cjs/session/pase/PaseClient.js +101 -0
- package/dist/cjs/session/pase/PaseClient.js.map +6 -0
- package/dist/cjs/session/pase/PaseMessages.d.ts +85 -0
- package/dist/cjs/session/pase/PaseMessages.d.ts.map +1 -0
- package/dist/cjs/session/pase/PaseMessages.js +88 -0
- package/dist/cjs/session/pase/PaseMessages.js.map +6 -0
- package/dist/cjs/session/pase/PaseMessenger.d.ts +75 -0
- package/dist/cjs/session/pase/PaseMessenger.d.ts.map +1 -0
- package/dist/cjs/session/pase/PaseMessenger.js +86 -0
- package/dist/cjs/session/pase/PaseMessenger.js.map +6 -0
- package/dist/cjs/session/pase/PaseServer.d.ts +29 -0
- package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -0
- package/dist/cjs/session/pase/PaseServer.js +159 -0
- package/dist/cjs/session/pase/PaseServer.js.map +6 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/MatterDevice.d.ts +79 -0
- package/dist/esm/MatterDevice.d.ts.map +1 -0
- package/dist/esm/MatterDevice.js +239 -0
- package/dist/esm/MatterDevice.js.map +6 -0
- package/dist/esm/ble/Ble.d.ts +29 -0
- package/dist/esm/ble/Ble.d.ts.map +1 -0
- package/dist/esm/ble/Ble.js +30 -0
- package/dist/esm/ble/Ble.js.map +6 -0
- package/dist/esm/ble/BleConsts.d.ts +32 -0
- package/dist/esm/ble/BleConsts.d.ts.map +1 -0
- package/dist/esm/ble/BleConsts.js +33 -0
- package/dist/esm/ble/BleConsts.js.map +6 -0
- package/dist/esm/ble/BtpSessionHandler.d.ts +87 -0
- package/dist/esm/ble/BtpSessionHandler.d.ts.map +1 -0
- package/dist/esm/ble/BtpSessionHandler.js +419 -0
- package/dist/esm/ble/BtpSessionHandler.js.map +6 -0
- package/dist/esm/ble/index.d.ts +9 -0
- package/dist/esm/ble/index.d.ts.map +1 -0
- package/dist/esm/ble/index.js +9 -0
- package/dist/esm/ble/index.js.map +6 -0
- package/dist/esm/certificate/AttestationCertificateManager.d.ts +28 -0
- package/dist/esm/certificate/AttestationCertificateManager.d.ts.map +1 -0
- package/dist/esm/certificate/AttestationCertificateManager.js +155 -0
- package/dist/esm/certificate/AttestationCertificateManager.js.map +6 -0
- package/dist/esm/certificate/CertificateManager.d.ts +575 -0
- package/dist/esm/certificate/CertificateManager.d.ts.map +1 -0
- package/dist/esm/certificate/CertificateManager.js +837 -0
- package/dist/esm/certificate/CertificateManager.js.map +6 -0
- package/dist/esm/certificate/CertificationDeclarationManager.d.ts +5 -0
- package/dist/esm/certificate/CertificationDeclarationManager.d.ts.map +1 -0
- package/dist/esm/certificate/CertificationDeclarationManager.js +34 -0
- package/dist/esm/certificate/CertificationDeclarationManager.js.map +6 -0
- package/dist/esm/certificate/ChipPAAuthorities.d.ts +14 -0
- package/dist/esm/certificate/ChipPAAuthorities.d.ts.map +1 -0
- package/dist/esm/certificate/ChipPAAuthorities.js +37 -0
- package/dist/esm/certificate/ChipPAAuthorities.js.map +6 -0
- package/dist/esm/certificate/DeviceCertification.d.ts +30 -0
- package/dist/esm/certificate/DeviceCertification.d.ts.map +1 -0
- package/dist/esm/certificate/DeviceCertification.js +83 -0
- package/dist/esm/certificate/DeviceCertification.js.map +6 -0
- package/dist/esm/certificate/RootCertificateManager.d.ts +33 -0
- package/dist/esm/certificate/RootCertificateManager.d.ts.map +1 -0
- package/dist/esm/certificate/RootCertificateManager.js +139 -0
- package/dist/esm/certificate/RootCertificateManager.js.map +6 -0
- package/dist/esm/certificate/index.d.ts +12 -0
- package/dist/esm/certificate/index.d.ts.map +1 -0
- package/dist/esm/certificate/index.js +12 -0
- package/dist/esm/certificate/index.js.map +6 -0
- package/dist/esm/cluster/client/AttributeClient.d.ts +61 -0
- package/dist/esm/cluster/client/AttributeClient.d.ts.map +1 -0
- package/dist/esm/cluster/client/AttributeClient.js +157 -0
- package/dist/esm/cluster/client/AttributeClient.js.map +6 -0
- package/dist/esm/cluster/client/ClusterClient.d.ts +10 -0
- package/dist/esm/cluster/client/ClusterClient.d.ts.map +1 -0
- package/dist/esm/cluster/client/ClusterClient.js +267 -0
- package/dist/esm/cluster/client/ClusterClient.js.map +6 -0
- package/dist/esm/cluster/client/ClusterClientTypes.d.ts +171 -0
- package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -0
- package/dist/esm/cluster/client/ClusterClientTypes.js +6 -0
- package/dist/esm/cluster/client/ClusterClientTypes.js.map +6 -0
- package/dist/esm/cluster/client/EventClient.d.ts +41 -0
- package/dist/esm/cluster/client/EventClient.d.ts.map +1 -0
- package/dist/esm/cluster/client/EventClient.js +74 -0
- package/dist/esm/cluster/client/EventClient.js.map +6 -0
- package/dist/esm/cluster/client/index.d.ts +10 -0
- package/dist/esm/cluster/client/index.d.ts.map +1 -0
- package/dist/esm/cluster/client/index.js +10 -0
- package/dist/esm/cluster/client/index.js.map +6 -0
- package/dist/esm/cluster/index.d.ts +8 -0
- package/dist/esm/cluster/index.d.ts.map +1 -0
- package/dist/esm/cluster/index.js +8 -0
- package/dist/esm/cluster/index.js.map +6 -0
- package/dist/esm/cluster/server/AttributeServer.d.ts +307 -0
- package/dist/esm/cluster/server/AttributeServer.d.ts.map +1 -0
- package/dist/esm/cluster/server/AttributeServer.js +718 -0
- package/dist/esm/cluster/server/AttributeServer.js.map +6 -0
- package/dist/esm/cluster/server/ClusterDatasource.d.ts +16 -0
- package/dist/esm/cluster/server/ClusterDatasource.d.ts.map +1 -0
- package/dist/esm/cluster/server/ClusterDatasource.js +6 -0
- package/dist/esm/cluster/server/ClusterDatasource.js.map +6 -0
- package/dist/esm/cluster/server/ClusterServer.d.ts +40 -0
- package/dist/esm/cluster/server/ClusterServer.d.ts.map +1 -0
- package/dist/esm/cluster/server/ClusterServer.js +6 -0
- package/dist/esm/cluster/server/ClusterServer.js.map +6 -0
- package/dist/esm/cluster/server/CommandServer.d.ts +34 -0
- package/dist/esm/cluster/server/CommandServer.d.ts.map +1 -0
- package/dist/esm/cluster/server/CommandServer.js +56 -0
- package/dist/esm/cluster/server/CommandServer.js.map +6 -0
- package/dist/esm/cluster/server/EventServer.d.ts +41 -0
- package/dist/esm/cluster/server/EventServer.d.ts.map +1 -0
- package/dist/esm/cluster/server/EventServer.js +137 -0
- package/dist/esm/cluster/server/EventServer.js.map +6 -0
- package/dist/esm/cluster/server/index.d.ts +11 -0
- package/dist/esm/cluster/server/index.d.ts.map +1 -0
- package/dist/esm/cluster/server/index.js +11 -0
- package/dist/esm/cluster/server/index.js.map +6 -0
- package/dist/esm/codec/BtpCodec.d.ts +78 -0
- package/dist/esm/codec/BtpCodec.d.ts.map +1 -0
- package/dist/esm/codec/BtpCodec.js +234 -0
- package/dist/esm/codec/BtpCodec.js.map +6 -0
- package/dist/esm/codec/MessageCodec.d.ts +63 -0
- package/dist/esm/codec/MessageCodec.d.ts.map +1 -0
- package/dist/esm/codec/MessageCodec.js +200 -0
- package/dist/esm/codec/MessageCodec.js.map +6 -0
- package/dist/esm/codec/index.d.ts +9 -0
- package/dist/esm/codec/index.d.ts.map +1 -0
- package/dist/esm/codec/index.js +15 -0
- package/dist/esm/codec/index.js.map +6 -0
- package/dist/esm/common/FailsafeContext.d.ts +79 -0
- package/dist/esm/common/FailsafeContext.d.ts.map +1 -0
- package/dist/esm/common/FailsafeContext.js +217 -0
- package/dist/esm/common/FailsafeContext.js.map +6 -0
- package/dist/esm/common/FailsafeTimer.d.ts +25 -0
- package/dist/esm/common/FailsafeTimer.d.ts.map +1 -0
- package/dist/esm/common/FailsafeTimer.js +71 -0
- package/dist/esm/common/FailsafeTimer.js.map +6 -0
- package/dist/esm/common/InstanceBroadcaster.d.ts +273 -0
- package/dist/esm/common/InstanceBroadcaster.d.ts.map +1 -0
- package/dist/esm/common/InstanceBroadcaster.js +119 -0
- package/dist/esm/common/InstanceBroadcaster.js.map +6 -0
- package/dist/esm/common/OperationalCredentialsTypes.d.ts +21 -0
- package/dist/esm/common/OperationalCredentialsTypes.d.ts.map +1 -0
- package/dist/esm/common/OperationalCredentialsTypes.js +25 -0
- package/dist/esm/common/OperationalCredentialsTypes.js.map +6 -0
- package/dist/esm/common/Scanner.d.ts +121 -0
- package/dist/esm/common/Scanner.d.ts.map +1 -0
- package/dist/esm/common/Scanner.js +31 -0
- package/dist/esm/common/Scanner.js.map +6 -0
- package/dist/esm/common/index.d.ts +12 -0
- package/dist/esm/common/index.d.ts.map +1 -0
- package/dist/esm/common/index.js +12 -0
- package/dist/esm/common/index.js.map +6 -0
- package/dist/esm/endpoint/EndpointInterface.d.ts +37 -0
- package/dist/esm/endpoint/EndpointInterface.d.ts.map +1 -0
- package/dist/esm/endpoint/EndpointInterface.js +6 -0
- package/dist/esm/endpoint/EndpointInterface.js.map +6 -0
- package/dist/esm/endpoint/EndpointStructureLogger.d.ts +31 -0
- package/dist/esm/endpoint/EndpointStructureLogger.d.ts.map +1 -0
- package/dist/esm/endpoint/EndpointStructureLogger.js +216 -0
- package/dist/esm/endpoint/EndpointStructureLogger.js.map +6 -0
- package/dist/esm/endpoint/index.d.ts +8 -0
- package/dist/esm/endpoint/index.d.ts.map +1 -0
- package/dist/esm/endpoint/index.js +8 -0
- package/dist/esm/endpoint/index.js.map +6 -0
- package/dist/esm/fabric/Fabric.d.ts +121 -0
- package/dist/esm/fabric/Fabric.d.ts.map +1 -0
- package/dist/esm/fabric/Fabric.js +422 -0
- package/dist/esm/fabric/Fabric.js.map +6 -0
- package/dist/esm/fabric/FabricManager.d.ts +44 -0
- package/dist/esm/fabric/FabricManager.d.ts.map +1 -0
- package/dist/esm/fabric/FabricManager.js +200 -0
- package/dist/esm/fabric/FabricManager.js.map +6 -0
- package/dist/esm/fabric/index.d.ts +8 -0
- package/dist/esm/fabric/index.d.ts.map +1 -0
- package/dist/esm/fabric/index.js +8 -0
- package/dist/esm/fabric/index.js.map +6 -0
- package/dist/esm/index.d.ts +20 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +20 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/interaction/AccessControlManager.d.ts +49 -0
- package/dist/esm/interaction/AccessControlManager.d.ts.map +1 -0
- package/dist/esm/interaction/AccessControlManager.js +228 -0
- package/dist/esm/interaction/AccessControlManager.js.map +6 -0
- package/dist/esm/interaction/AttributeDataDecoder.d.ts +52 -0
- package/dist/esm/interaction/AttributeDataDecoder.d.ts.map +1 -0
- package/dist/esm/interaction/AttributeDataDecoder.js +171 -0
- package/dist/esm/interaction/AttributeDataDecoder.js.map +6 -0
- package/dist/esm/interaction/AttributeDataEncoder.d.ts +71 -0
- package/dist/esm/interaction/AttributeDataEncoder.d.ts.map +1 -0
- package/dist/esm/interaction/AttributeDataEncoder.js +174 -0
- package/dist/esm/interaction/AttributeDataEncoder.js.map +6 -0
- package/dist/esm/interaction/EventDataDecoder.d.ts +30 -0
- package/dist/esm/interaction/EventDataDecoder.d.ts.map +1 -0
- package/dist/esm/interaction/EventDataDecoder.js +87 -0
- package/dist/esm/interaction/EventDataDecoder.js.map +6 -0
- package/dist/esm/interaction/EventHandler.d.ts +42 -0
- package/dist/esm/interaction/EventHandler.d.ts.map +1 -0
- package/dist/esm/interaction/EventHandler.js +96 -0
- package/dist/esm/interaction/EventHandler.js.map +6 -0
- package/dist/esm/interaction/InteractionClient.d.ts +294 -0
- package/dist/esm/interaction/InteractionClient.d.ts.map +1 -0
- package/dist/esm/interaction/InteractionClient.js +827 -0
- package/dist/esm/interaction/InteractionClient.js.map +6 -0
- package/dist/esm/interaction/InteractionEndpointStructure.d.ts +59 -0
- package/dist/esm/interaction/InteractionEndpointStructure.d.ts.map +1 -0
- package/dist/esm/interaction/InteractionEndpointStructure.js +343 -0
- package/dist/esm/interaction/InteractionEndpointStructure.js.map +6 -0
- package/dist/esm/interaction/InteractionMessenger.d.ts +315 -0
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -0
- package/dist/esm/interaction/InteractionMessenger.js +489 -0
- package/dist/esm/interaction/InteractionMessenger.js.map +6 -0
- package/dist/esm/interaction/InteractionServer.d.ts +97 -0
- package/dist/esm/interaction/InteractionServer.d.ts.map +1 -0
- package/dist/esm/interaction/InteractionServer.js +1027 -0
- package/dist/esm/interaction/InteractionServer.js.map +6 -0
- package/dist/esm/interaction/ServerSubscription.d.ts +121 -0
- package/dist/esm/interaction/ServerSubscription.d.ts.map +1 -0
- package/dist/esm/interaction/ServerSubscription.js +669 -0
- package/dist/esm/interaction/ServerSubscription.js.map +6 -0
- package/dist/esm/interaction/Subscription.d.ts +44 -0
- package/dist/esm/interaction/Subscription.d.ts.map +1 -0
- package/dist/esm/interaction/Subscription.js +65 -0
- package/dist/esm/interaction/Subscription.js.map +6 -0
- package/dist/esm/interaction/SubscriptionOptions.d.ts +43 -0
- package/dist/esm/interaction/SubscriptionOptions.d.ts.map +1 -0
- package/dist/esm/interaction/SubscriptionOptions.js +26 -0
- package/dist/esm/interaction/SubscriptionOptions.js.map +6 -0
- package/dist/esm/interaction/index.d.ts +17 -0
- package/dist/esm/interaction/index.d.ts.map +1 -0
- package/dist/esm/interaction/index.js +17 -0
- package/dist/esm/interaction/index.js.map +6 -0
- package/dist/esm/mdns/MdnsBroadcaster.d.ts +34 -0
- package/dist/esm/mdns/MdnsBroadcaster.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsBroadcaster.js +351 -0
- package/dist/esm/mdns/MdnsBroadcaster.js.map +6 -0
- package/dist/esm/mdns/MdnsConsts.d.ts +19 -0
- package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsConsts.js +32 -0
- package/dist/esm/mdns/MdnsConsts.js.map +6 -0
- package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts +28 -0
- package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsInstanceBroadcaster.js +67 -0
- package/dist/esm/mdns/MdnsInstanceBroadcaster.js.map +6 -0
- package/dist/esm/mdns/MdnsScanner.d.ts +79 -0
- package/dist/esm/mdns/MdnsScanner.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsScanner.js +847 -0
- package/dist/esm/mdns/MdnsScanner.js.map +6 -0
- package/dist/esm/mdns/MdnsServer.d.ts +29 -0
- package/dist/esm/mdns/MdnsServer.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsServer.js +266 -0
- package/dist/esm/mdns/MdnsServer.js.map +6 -0
- package/dist/esm/mdns/MdnsService.d.ts +28 -0
- package/dist/esm/mdns/MdnsService.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsService.js +83 -0
- package/dist/esm/mdns/MdnsService.js.map +6 -0
- package/dist/esm/mdns/index.d.ts +12 -0
- package/dist/esm/mdns/index.d.ts.map +1 -0
- package/dist/esm/mdns/index.js +12 -0
- package/dist/esm/mdns/index.js.map +6 -0
- package/dist/esm/package.json +10 -0
- package/dist/esm/peer/ControllerCommissioner.d.ts +82 -0
- package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -0
- package/dist/esm/peer/ControllerCommissioner.js +211 -0
- package/dist/esm/peer/ControllerCommissioner.js.map +6 -0
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts +88 -0
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -0
- package/dist/esm/peer/ControllerCommissioningFlow.js +832 -0
- package/dist/esm/peer/ControllerCommissioningFlow.js.map +6 -0
- package/dist/esm/peer/ControllerDiscovery.d.ts +43 -0
- package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -0
- package/dist/esm/peer/ControllerDiscovery.js +172 -0
- package/dist/esm/peer/ControllerDiscovery.js.map +6 -0
- package/dist/esm/peer/OperationalPeer.d.ts +28 -0
- package/dist/esm/peer/OperationalPeer.d.ts.map +1 -0
- package/dist/esm/peer/OperationalPeer.js +6 -0
- package/dist/esm/peer/OperationalPeer.js.map +6 -0
- package/dist/esm/peer/PeerAddress.d.ts +30 -0
- package/dist/esm/peer/PeerAddress.d.ts.map +1 -0
- package/dist/esm/peer/PeerAddress.js +51 -0
- package/dist/esm/peer/PeerAddress.js.map +6 -0
- package/dist/esm/peer/PeerSet.d.ts +98 -0
- package/dist/esm/peer/PeerSet.d.ts.map +1 -0
- package/dist/esm/peer/PeerSet.js +495 -0
- package/dist/esm/peer/PeerSet.js.map +6 -0
- package/dist/esm/peer/PeerStore.d.ts +17 -0
- package/dist/esm/peer/PeerStore.d.ts.map +1 -0
- package/dist/esm/peer/PeerStore.js +11 -0
- package/dist/esm/peer/PeerStore.js.map +6 -0
- package/dist/esm/peer/index.d.ts +13 -0
- package/dist/esm/peer/index.d.ts.map +1 -0
- package/dist/esm/peer/index.js +13 -0
- package/dist/esm/peer/index.js.map +6 -0
- package/dist/esm/protocol/ChannelManager.d.ts +30 -0
- package/dist/esm/protocol/ChannelManager.d.ts.map +1 -0
- package/dist/esm/protocol/ChannelManager.js +148 -0
- package/dist/esm/protocol/ChannelManager.js.map +6 -0
- package/dist/esm/protocol/DeviceAdvertiser.d.ts +43 -0
- package/dist/esm/protocol/DeviceAdvertiser.d.ts.map +1 -0
- package/dist/esm/protocol/DeviceAdvertiser.js +173 -0
- package/dist/esm/protocol/DeviceAdvertiser.js.map +6 -0
- package/dist/esm/protocol/DeviceCommissioner.d.ts +49 -0
- package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -0
- package/dist/esm/protocol/DeviceCommissioner.js +187 -0
- package/dist/esm/protocol/DeviceCommissioner.js.map +6 -0
- package/dist/esm/protocol/ExchangeManager.d.ts +73 -0
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -0
- package/dist/esm/protocol/ExchangeManager.js +398 -0
- package/dist/esm/protocol/ExchangeManager.js.map +6 -0
- package/dist/esm/protocol/MessageCounter.d.ts +57 -0
- package/dist/esm/protocol/MessageCounter.d.ts.map +1 -0
- package/dist/esm/protocol/MessageCounter.js +84 -0
- package/dist/esm/protocol/MessageCounter.js.map +6 -0
- package/dist/esm/protocol/MessageExchange.d.ts +84 -0
- package/dist/esm/protocol/MessageExchange.d.ts.map +1 -0
- package/dist/esm/protocol/MessageExchange.js +504 -0
- package/dist/esm/protocol/MessageExchange.js.map +6 -0
- package/dist/esm/protocol/MessageReceptionState.d.ts +65 -0
- package/dist/esm/protocol/MessageReceptionState.d.ts.map +1 -0
- package/dist/esm/protocol/MessageReceptionState.js +153 -0
- package/dist/esm/protocol/MessageReceptionState.js.map +6 -0
- package/dist/esm/protocol/ProtocolHandler.d.ts +13 -0
- package/dist/esm/protocol/ProtocolHandler.d.ts.map +1 -0
- package/dist/esm/protocol/ProtocolHandler.js +6 -0
- package/dist/esm/protocol/ProtocolHandler.js.map +6 -0
- package/dist/esm/protocol/index.d.ts +14 -0
- package/dist/esm/protocol/index.d.ts.map +1 -0
- package/dist/esm/protocol/index.js +14 -0
- package/dist/esm/protocol/index.js.map +6 -0
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts +53 -0
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -0
- package/dist/esm/securechannel/SecureChannelMessenger.js +128 -0
- package/dist/esm/securechannel/SecureChannelMessenger.js.map +6 -0
- package/dist/esm/securechannel/SecureChannelProtocol.d.ts +31 -0
- package/dist/esm/securechannel/SecureChannelProtocol.d.ts.map +1 -0
- package/dist/esm/securechannel/SecureChannelProtocol.js +127 -0
- package/dist/esm/securechannel/SecureChannelProtocol.js.map +6 -0
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts +23 -0
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -0
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js +33 -0
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js.map +6 -0
- package/dist/esm/securechannel/index.d.ts +9 -0
- package/dist/esm/securechannel/index.d.ts.map +1 -0
- package/dist/esm/securechannel/index.js +9 -0
- package/dist/esm/securechannel/index.js.map +6 -0
- package/dist/esm/session/InsecureSession.d.ts +38 -0
- package/dist/esm/session/InsecureSession.d.ts.map +1 -0
- package/dist/esm/session/InsecureSession.js +75 -0
- package/dist/esm/session/InsecureSession.js.map +6 -0
- package/dist/esm/session/SecureSession.d.ts +81 -0
- package/dist/esm/session/SecureSession.d.ts.map +1 -0
- package/dist/esm/session/SecureSession.js +281 -0
- package/dist/esm/session/SecureSession.js.map +6 -0
- package/dist/esm/session/Session.d.ts +102 -0
- package/dist/esm/session/Session.d.ts.map +1 -0
- package/dist/esm/session/Session.js +121 -0
- package/dist/esm/session/Session.js.map +6 -0
- package/dist/esm/session/SessionManager.d.ts +132 -0
- package/dist/esm/session/SessionManager.d.ts.map +1 -0
- package/dist/esm/session/SessionManager.js +411 -0
- package/dist/esm/session/SessionManager.js.map +6 -0
- package/dist/esm/session/case/CaseClient.d.ts +18 -0
- package/dist/esm/session/case/CaseClient.d.ts.map +1 -0
- package/dist/esm/session/case/CaseClient.js +208 -0
- package/dist/esm/session/case/CaseClient.js.map +6 -0
- package/dist/esm/session/case/CaseMessages.d.ts +82 -0
- package/dist/esm/session/case/CaseMessages.d.ts.map +1 -0
- package/dist/esm/session/case/CaseMessages.js +83 -0
- package/dist/esm/session/case/CaseMessages.js.map +6 -0
- package/dist/esm/session/case/CaseMessenger.d.ts +79 -0
- package/dist/esm/session/case/CaseMessenger.d.ts.map +1 -0
- package/dist/esm/session/case/CaseMessenger.js +54 -0
- package/dist/esm/session/case/CaseMessenger.js.map +6 -0
- package/dist/esm/session/case/CaseServer.d.ts +18 -0
- package/dist/esm/session/case/CaseServer.d.ts.map +1 -0
- package/dist/esm/session/case/CaseServer.js +224 -0
- package/dist/esm/session/case/CaseServer.js.map +6 -0
- package/dist/esm/session/index.d.ts +18 -0
- package/dist/esm/session/index.d.ts.map +1 -0
- package/dist/esm/session/index.js +18 -0
- package/dist/esm/session/index.js.map +6 -0
- package/dist/esm/session/pase/PaseClient.d.ts +18 -0
- package/dist/esm/session/pase/PaseClient.d.ts.map +1 -0
- package/dist/esm/session/pase/PaseClient.js +81 -0
- package/dist/esm/session/pase/PaseClient.js.map +6 -0
- package/dist/esm/session/pase/PaseMessages.d.ts +85 -0
- package/dist/esm/session/pase/PaseMessages.d.ts.map +1 -0
- package/dist/esm/session/pase/PaseMessages.js +68 -0
- package/dist/esm/session/pase/PaseMessages.js.map +6 -0
- package/dist/esm/session/pase/PaseMessenger.d.ts +75 -0
- package/dist/esm/session/pase/PaseMessenger.d.ts.map +1 -0
- package/dist/esm/session/pase/PaseMessenger.js +75 -0
- package/dist/esm/session/pase/PaseMessenger.js.map +6 -0
- package/dist/esm/session/pase/PaseServer.d.ts +29 -0
- package/dist/esm/session/pase/PaseServer.d.ts.map +1 -0
- package/dist/esm/session/pase/PaseServer.js +148 -0
- package/dist/esm/session/pase/PaseServer.js.map +6 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/package.json +83 -0
- package/src/MatterDevice.ts +319 -0
- package/src/ble/Ble.ts +40 -0
- package/src/ble/BleConsts.ts +41 -0
- package/src/ble/BtpSessionHandler.ts +490 -0
- package/src/ble/index.ts +9 -0
- package/src/certificate/AttestationCertificateManager.ts +166 -0
- package/src/certificate/CertificateManager.ts +1136 -0
- package/src/certificate/CertificationDeclarationManager.ts +52 -0
- package/src/certificate/ChipPAAuthorities.ts +35 -0
- package/src/certificate/DeviceCertification.ts +116 -0
- package/src/certificate/RootCertificateManager.ts +179 -0
- package/src/certificate/index.ts +12 -0
- package/src/cluster/client/AttributeClient.ts +196 -0
- package/src/cluster/client/ClusterClient.ts +354 -0
- package/src/cluster/client/ClusterClientTypes.ts +257 -0
- package/src/cluster/client/EventClient.ts +110 -0
- package/src/cluster/client/index.ts +10 -0
- package/src/cluster/index.ts +8 -0
- package/src/cluster/server/AttributeServer.ts +986 -0
- package/src/cluster/server/ClusterDatasource.ts +17 -0
- package/src/cluster/server/ClusterServer.ts +46 -0
- package/src/cluster/server/CommandServer.ts +89 -0
- package/src/cluster/server/EventServer.ts +198 -0
- package/src/cluster/server/index.ts +11 -0
- package/src/codec/BtpCodec.ts +333 -0
- package/src/codec/MessageCodec.ts +276 -0
- package/src/codec/index.ts +9 -0
- package/src/common/FailsafeContext.ts +330 -0
- package/src/common/FailsafeTimer.ts +91 -0
- package/src/common/InstanceBroadcaster.ts +220 -0
- package/src/common/OperationalCredentialsTypes.ts +24 -0
- package/src/common/Scanner.ts +188 -0
- package/src/common/index.ts +12 -0
- package/src/endpoint/EndpointInterface.ts +41 -0
- package/src/endpoint/EndpointStructureLogger.ts +277 -0
- package/src/endpoint/index.ts +8 -0
- package/src/fabric/Fabric.ts +528 -0
- package/src/fabric/FabricManager.ts +231 -0
- package/src/fabric/index.ts +8 -0
- package/src/index.ts +20 -0
- package/src/interaction/AccessControlManager.ts +343 -0
- package/src/interaction/AttributeDataDecoder.ts +266 -0
- package/src/interaction/AttributeDataEncoder.ts +268 -0
- package/src/interaction/EventDataDecoder.ts +133 -0
- package/src/interaction/EventHandler.ts +141 -0
- package/src/interaction/InteractionClient.ts +1215 -0
- package/src/interaction/InteractionEndpointStructure.ts +462 -0
- package/src/interaction/InteractionMessenger.ts +592 -0
- package/src/interaction/InteractionServer.ts +1428 -0
- package/src/interaction/ServerSubscription.ts +908 -0
- package/src/interaction/Subscription.ts +89 -0
- package/src/interaction/SubscriptionOptions.ts +49 -0
- package/src/interaction/index.ts +17 -0
- package/src/mdns/MdnsBroadcaster.ts +415 -0
- package/src/mdns/MdnsConsts.ts +24 -0
- package/src/mdns/MdnsInstanceBroadcaster.ts +88 -0
- package/src/mdns/MdnsScanner.ts +1042 -0
- package/src/mdns/MdnsServer.ts +322 -0
- package/src/mdns/MdnsService.ts +102 -0
- package/src/mdns/index.ts +12 -0
- package/src/peer/ControllerCommissioner.ts +372 -0
- package/src/peer/ControllerCommissioningFlow.ts +1127 -0
- package/src/peer/ControllerDiscovery.ts +231 -0
- package/src/peer/OperationalPeer.ts +32 -0
- package/src/peer/PeerAddress.ts +78 -0
- package/src/peer/PeerSet.ts +684 -0
- package/src/peer/PeerStore.ts +19 -0
- package/src/peer/index.ts +13 -0
- package/src/protocol/ChannelManager.ts +168 -0
- package/src/protocol/DeviceAdvertiser.ts +208 -0
- package/src/protocol/DeviceCommissioner.ts +280 -0
- package/src/protocol/ExchangeManager.ts +493 -0
- package/src/protocol/MessageCounter.ts +128 -0
- package/src/protocol/MessageExchange.ts +662 -0
- package/src/protocol/MessageReceptionState.ts +207 -0
- package/src/protocol/ProtocolHandler.ts +14 -0
- package/src/protocol/index.ts +14 -0
- package/src/securechannel/SecureChannelMessenger.ts +166 -0
- package/src/securechannel/SecureChannelProtocol.ts +150 -0
- package/src/securechannel/SecureChannelStatusMessageSchema.ts +40 -0
- package/src/securechannel/index.ts +10 -0
- package/src/session/InsecureSession.ts +96 -0
- package/src/session/SecureSession.ts +349 -0
- package/src/session/Session.ts +188 -0
- package/src/session/SessionManager.ts +559 -0
- package/src/session/case/CaseClient.ts +235 -0
- package/src/session/case/CaseMessages.ts +81 -0
- package/src/session/case/CaseMessenger.ts +57 -0
- package/src/session/case/CaseServer.ts +269 -0
- package/src/session/index.ts +21 -0
- package/src/session/pase/PaseClient.ts +100 -0
- package/src/session/pase/PaseMessages.ts +72 -0
- package/src/session/pase/PaseMessenger.ts +86 -0
- package/src/session/pase/PaseServer.ts +187 -0
- package/src/tsconfig.json +20 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { InternalError, MatterError } from "#general";
|
|
8
|
+
import { MAX_COUNTER_VALUE_32BIT } from "./MessageCounter.js";
|
|
9
|
+
|
|
10
|
+
/** 2^31 used for Duplicate detection in some cases. */
|
|
11
|
+
const MAX_COUNTER_INCREASE_2POW31 = Math.pow(2, 31);
|
|
12
|
+
|
|
13
|
+
/** Maximum number of previously processed message counters to accept from a given Node and key. */
|
|
14
|
+
const MSG_COUNTER_WINDOW_SIZE = 32;
|
|
15
|
+
|
|
16
|
+
export class DuplicateMessageError extends MatterError {}
|
|
17
|
+
|
|
18
|
+
export abstract class MessageReceptionState {
|
|
19
|
+
abstract updateMessageCounter(messageCounter: number): void;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Implements a message reception state for encrypted messages without rollover.
|
|
24
|
+
* A counter in the range [(max_message_counter + 1) to (232 - 1)] SHALL be considered new, and cause the
|
|
25
|
+
* max_message_counter value to be updated.
|
|
26
|
+
* Message counters within the range of the bitmap SHALL be considered duplicate if the corresponding bit
|
|
27
|
+
* offset is set to true. All other message counters SHALL be considered duplicate.
|
|
28
|
+
*/
|
|
29
|
+
export class MessageReceptionStateEncryptedWithoutRollover extends MessageReceptionState {
|
|
30
|
+
protected maximumMessageCounter: number | undefined;
|
|
31
|
+
private messageCounterBitmap = 0xffffffff; // All bits set to 1
|
|
32
|
+
|
|
33
|
+
constructor(messageCounter?: number) {
|
|
34
|
+
super();
|
|
35
|
+
if (messageCounter !== undefined) {
|
|
36
|
+
this.initialize(messageCounter);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Initialize the message counter state. */
|
|
41
|
+
private initialize(messageCounter: number) {
|
|
42
|
+
this.maximumMessageCounter = messageCounter;
|
|
43
|
+
this.messageCounterBitmap = 0xffffffff; // All bits set to 1
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Calculate plain diff without rollover.
|
|
48
|
+
* This method is mainly overridden for other counter types and follow the following semantic
|
|
49
|
+
* Return number is:
|
|
50
|
+
* * negative if the new message counter is smaller than the current maximum. Smaller values within the Window size
|
|
51
|
+
* are check separately within the window. Other smaller values are considered DUPLICATE
|
|
52
|
+
* * positive if the new message counter is larger than the current maximum and are always NEW
|
|
53
|
+
*/
|
|
54
|
+
protected calculateDiff(messageCounter: number) {
|
|
55
|
+
if (this.maximumMessageCounter === undefined) {
|
|
56
|
+
return 0;
|
|
57
|
+
}
|
|
58
|
+
return messageCounter - this.maximumMessageCounter;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** Update or move the message counter window. */
|
|
62
|
+
private calculateMessageCounterBitmap(messageCounterBitmap: number, diff: number) {
|
|
63
|
+
if (diff < 0) {
|
|
64
|
+
// negative value means the new message counter is smaller than the current maximum
|
|
65
|
+
if (diff < -MSG_COUNTER_WINDOW_SIZE) {
|
|
66
|
+
throw new InternalError(`Message counter difference too large: ${diff}`);
|
|
67
|
+
}
|
|
68
|
+
// set the corresponding bit
|
|
69
|
+
const bit = 1 << (-diff - 1);
|
|
70
|
+
messageCounterBitmap |= bit;
|
|
71
|
+
} else if (diff > 0) {
|
|
72
|
+
// positive value means new message counter is larger than the current maximum
|
|
73
|
+
if (diff <= MSG_COUNTER_WINDOW_SIZE) {
|
|
74
|
+
// shift the bitmap and set the bit for the previous maximum
|
|
75
|
+
const bit = 1 << (diff - 1);
|
|
76
|
+
messageCounterBitmap = ((messageCounterBitmap << diff) >>> 0) | bit;
|
|
77
|
+
} else {
|
|
78
|
+
// diff is larger than the window size, so no previous message counter is known
|
|
79
|
+
messageCounterBitmap = 0;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return messageCounterBitmap >>> 0; // Stay 32 bit unsigned integer
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/** Update the message counter and window. */
|
|
86
|
+
private updateMessageCounterAndBitmap(messageCounter: number, diff: number) {
|
|
87
|
+
if (this.maximumMessageCounter === undefined) {
|
|
88
|
+
this.initialize(messageCounter);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
this.messageCounterBitmap = this.calculateMessageCounterBitmap(this.messageCounterBitmap, diff);
|
|
93
|
+
|
|
94
|
+
if (diff > 0 || diff < -MSG_COUNTER_WINDOW_SIZE) {
|
|
95
|
+
this.maximumMessageCounter = messageCounter;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/** Check if the message counter is known in the bitmap. */
|
|
100
|
+
private isCounterKnownInBitmap(diff: number) {
|
|
101
|
+
if (diff < -MSG_COUNTER_WINDOW_SIZE || diff >= 0) {
|
|
102
|
+
throw new InternalError(`Invalid Message counter difference for check: ${diff}`);
|
|
103
|
+
}
|
|
104
|
+
const bit = 1 << (-diff - 1);
|
|
105
|
+
return (this.messageCounterBitmap & bit) !== 0;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Returns true if the message counter is a duplicate.
|
|
110
|
+
*/
|
|
111
|
+
updateMessageCounter(messageCounter: number) {
|
|
112
|
+
if (messageCounter < 0 || messageCounter > MAX_COUNTER_VALUE_32BIT) {
|
|
113
|
+
throw new InternalError(`Invalid message counter value: ${messageCounter}`);
|
|
114
|
+
}
|
|
115
|
+
if (this.maximumMessageCounter === undefined) {
|
|
116
|
+
this.updateMessageCounterAndBitmap(messageCounter, 0);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
if (messageCounter === this.maximumMessageCounter) {
|
|
120
|
+
throw new DuplicateMessageError("Message counter equals the maximum message counter.");
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const diff = this.calculateDiff(messageCounter);
|
|
124
|
+
// A counter in the range [(max_message_counter + 1) to (232 - 1)] SHALL be considered new, and cause the
|
|
125
|
+
// max_message_counter value to be updated.
|
|
126
|
+
// Message counters within the range of the bitmap SHALL be considered duplicate if the corresponding bit
|
|
127
|
+
// offset is set to true. All other message counters SHALL be considered duplicate.
|
|
128
|
+
if (diff < 0) {
|
|
129
|
+
if (diff < -MSG_COUNTER_WINDOW_SIZE) {
|
|
130
|
+
throw new DuplicateMessageError("Message counter is considered duplicate.");
|
|
131
|
+
}
|
|
132
|
+
if (this.isCounterKnownInBitmap(diff)) {
|
|
133
|
+
throw new DuplicateMessageError("Message counter is within the message counter window and duplicate.");
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
this.updateMessageCounterAndBitmap(messageCounter, diff);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Implements a message reception state for encrypted messages with rollover.
|
|
142
|
+
* A message counter with rollover is a free running message counter that monotonically increases, but rolls
|
|
143
|
+
* over to zero when it exceeds the maximum value of the counter (32-bits). If the difference is below 2^31 then it is
|
|
144
|
+
* considered a rollover and not a smaller value
|
|
145
|
+
*/
|
|
146
|
+
export class MessageReceptionStateEncryptedWithRollover extends MessageReceptionStateEncryptedWithoutRollover {
|
|
147
|
+
protected override calculateDiff(messageCounter: number) {
|
|
148
|
+
if (this.maximumMessageCounter === undefined) {
|
|
149
|
+
return 0;
|
|
150
|
+
}
|
|
151
|
+
// A message counter with rollover is a free running message counter that monotonically increases, but rolls
|
|
152
|
+
// over to zero when it exceeds the maximum value of the counter (32-bits). if the difference is below 2^31 then it is considered a rollover and not a smaller value
|
|
153
|
+
const diff = messageCounter - this.maximumMessageCounter;
|
|
154
|
+
|
|
155
|
+
if (diff > 0) {
|
|
156
|
+
// positive value means new message counter is larger than the current maximum
|
|
157
|
+
if (diff < MAX_COUNTER_INCREASE_2POW31) {
|
|
158
|
+
return diff;
|
|
159
|
+
}
|
|
160
|
+
return diff - MAX_COUNTER_VALUE_32BIT - 1;
|
|
161
|
+
} else if (diff < 0) {
|
|
162
|
+
// negative value means the new message counter is smaller than the current maximum
|
|
163
|
+
if (diff >= -MAX_COUNTER_INCREASE_2POW31) {
|
|
164
|
+
return diff;
|
|
165
|
+
}
|
|
166
|
+
return diff + MAX_COUNTER_VALUE_32BIT + 1;
|
|
167
|
+
}
|
|
168
|
+
return 0;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Implements a message reception state for unencrypted messages without rollover.
|
|
174
|
+
* Any message counter equal to max_message_counter or within the message counter window, where the corresponding bit
|
|
175
|
+
* is set to true SHALL be considered duplicate. All other message counters, whether behind the window or ahead of
|
|
176
|
+
* max_message_counter, are considered new and SHALL update max_message_counter and shift the window accordingly.
|
|
177
|
+
* Messages with a counter behind the window are likely caused by a node rebooting and are thus processed as rolling
|
|
178
|
+
* back the window to the current location.
|
|
179
|
+
*/
|
|
180
|
+
export class MessageReceptionStateUnencryptedWithRollover extends MessageReceptionStateEncryptedWithoutRollover {
|
|
181
|
+
protected override calculateDiff(messageCounter: number) {
|
|
182
|
+
if (this.maximumMessageCounter === undefined) {
|
|
183
|
+
return 0;
|
|
184
|
+
}
|
|
185
|
+
// A message counter with rollover is a free running message counter that monotonically increases, but rolls
|
|
186
|
+
// over to zero when it exceeds the maximum value of the counter (32-bits).
|
|
187
|
+
// Any message counter equal to max_message_counter or within the message counter window, where the corresponding
|
|
188
|
+
// bit is set to true SHALL be considered duplicate. All other message counters, whether behind the window or
|
|
189
|
+
// ahead of max_message_counter, are considered new and SHALL update max_message_counter
|
|
190
|
+
const diff = messageCounter - this.maximumMessageCounter;
|
|
191
|
+
|
|
192
|
+
if (diff > 0) {
|
|
193
|
+
// positive value means new message counter is larger than the current maximum
|
|
194
|
+
if (-diff + MAX_COUNTER_VALUE_32BIT < MSG_COUNTER_WINDOW_SIZE) {
|
|
195
|
+
return diff - MAX_COUNTER_VALUE_32BIT - 1;
|
|
196
|
+
}
|
|
197
|
+
return diff;
|
|
198
|
+
} else if (diff < 0) {
|
|
199
|
+
// negative value means the new message counter is smaller than the current maximum
|
|
200
|
+
if (diff < -MSG_COUNTER_WINDOW_SIZE) {
|
|
201
|
+
return MAX_COUNTER_VALUE_32BIT + diff;
|
|
202
|
+
}
|
|
203
|
+
return diff;
|
|
204
|
+
}
|
|
205
|
+
return 0;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Message } from "../codec/MessageCodec.js";
|
|
8
|
+
import { MessageExchange } from "./MessageExchange.js";
|
|
9
|
+
|
|
10
|
+
export interface ProtocolHandler {
|
|
11
|
+
getId(): number;
|
|
12
|
+
onNewExchange(exchange: MessageExchange, message: Message): Promise<void>;
|
|
13
|
+
close(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export * from "./ChannelManager.js";
|
|
8
|
+
export * from "./DeviceAdvertiser.js";
|
|
9
|
+
export * from "./DeviceCommissioner.js";
|
|
10
|
+
export * from "./ExchangeManager.js";
|
|
11
|
+
export * from "./MessageCounter.js";
|
|
12
|
+
export * from "./MessageExchange.js";
|
|
13
|
+
export * from "./MessageReceptionState.js";
|
|
14
|
+
export * from "./ProtocolHandler.js";
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { MatterError, UnexpectedDataError } from "#general";
|
|
8
|
+
import {
|
|
9
|
+
GeneralStatusCode,
|
|
10
|
+
ProtocolStatusCode,
|
|
11
|
+
SECURE_CHANNEL_PROTOCOL_ID,
|
|
12
|
+
SecureMessageType,
|
|
13
|
+
TlvSchema,
|
|
14
|
+
} from "#types";
|
|
15
|
+
import { Message } from "../codec/MessageCodec.js";
|
|
16
|
+
import { ExchangeSendOptions, MessageExchange } from "../protocol/MessageExchange.js";
|
|
17
|
+
import { TlvSecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
|
|
18
|
+
|
|
19
|
+
/** Error base Class for all errors related to the status response messages. */
|
|
20
|
+
export class ChannelStatusResponseError extends MatterError {
|
|
21
|
+
public constructor(
|
|
22
|
+
message: string,
|
|
23
|
+
public readonly generalStatusCode: GeneralStatusCode,
|
|
24
|
+
public readonly protocolStatusCode: ProtocolStatusCode,
|
|
25
|
+
) {
|
|
26
|
+
super(`(${generalStatusCode}/${protocolStatusCode}) ${message}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** This value is used by chip SDK when performance wise heavy crypto operations are expected. */
|
|
31
|
+
export const EXPECTED_CRYPTO_PROCESSING_TIME_MS = 30_000;
|
|
32
|
+
|
|
33
|
+
/** This value is used by chip SDK when normal processing time is expected. */
|
|
34
|
+
export const DEFAULT_NORMAL_PROCESSING_TIME_MS = 2_000;
|
|
35
|
+
|
|
36
|
+
export class SecureChannelMessenger {
|
|
37
|
+
#defaultExpectedProcessingTimeMs: number;
|
|
38
|
+
|
|
39
|
+
constructor(
|
|
40
|
+
protected readonly exchange: MessageExchange,
|
|
41
|
+
defaultExpectedProcessingTimeMs = EXPECTED_CRYPTO_PROCESSING_TIME_MS,
|
|
42
|
+
) {
|
|
43
|
+
this.#defaultExpectedProcessingTimeMs = defaultExpectedProcessingTimeMs;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Waits for the next message and returns it.
|
|
48
|
+
* When no expectedProcessingTimeMs is provided, the default value of EXPECTED_CRYPTO_PROCESSING_TIME_MS is used.
|
|
49
|
+
*/
|
|
50
|
+
async nextMessage(
|
|
51
|
+
expectedMessageInfo: string,
|
|
52
|
+
expectedMessageType?: number,
|
|
53
|
+
expectedProcessingTimeMs = this.#defaultExpectedProcessingTimeMs,
|
|
54
|
+
) {
|
|
55
|
+
const message = await this.exchange.nextMessage(expectedProcessingTimeMs);
|
|
56
|
+
const messageType = message.payloadHeader.messageType;
|
|
57
|
+
this.throwIfErrorStatusReport(message, expectedMessageInfo);
|
|
58
|
+
if (expectedMessageType !== undefined && messageType !== expectedMessageType)
|
|
59
|
+
throw new UnexpectedDataError(
|
|
60
|
+
`Received unexpected message type: ${messageType}, expected: ${expectedMessageType} (${expectedMessageInfo})`,
|
|
61
|
+
);
|
|
62
|
+
return message;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Waits for the next message and decodes it.
|
|
67
|
+
* When no expectedProcessingTimeMs is provided, the default value of EXPECTED_CRYPTO_PROCESSING_TIME_MS is used.
|
|
68
|
+
*/
|
|
69
|
+
async nextMessageDecoded<T>(
|
|
70
|
+
expectedMessageType: number,
|
|
71
|
+
schema: TlvSchema<T>,
|
|
72
|
+
expectedMessageInfo: string,
|
|
73
|
+
expectedProcessingTimeMs = this.#defaultExpectedProcessingTimeMs,
|
|
74
|
+
) {
|
|
75
|
+
return schema.decode(
|
|
76
|
+
(await this.nextMessage(expectedMessageInfo, expectedMessageType, expectedProcessingTimeMs)).payload,
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Waits for the next message and returns it.
|
|
82
|
+
* When no expectedProcessingTimeMs is provided, the default value of EXPECTED_CRYPTO_PROCESSING_TIME_MS is used.
|
|
83
|
+
*/
|
|
84
|
+
async waitForSuccess(
|
|
85
|
+
expectedMessageInfo: string,
|
|
86
|
+
expectedProcessingTimeMs = this.#defaultExpectedProcessingTimeMs,
|
|
87
|
+
) {
|
|
88
|
+
// If the status is not Success, this would throw an Error.
|
|
89
|
+
await this.nextMessage(expectedMessageInfo, SecureMessageType.StatusReport, expectedProcessingTimeMs);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Sends a message of the given type with the given payload.
|
|
94
|
+
* If no ExchangeSendOptions are provided, the expectedProcessingTimeMs will be set to
|
|
95
|
+
* EXPECTED_CRYPTO_PROCESSING_TIME_MS.
|
|
96
|
+
*/
|
|
97
|
+
async send<T>(message: T, type: number, schema: TlvSchema<T>, options?: ExchangeSendOptions) {
|
|
98
|
+
options = {
|
|
99
|
+
...options,
|
|
100
|
+
expectedProcessingTimeMs: options?.expectedProcessingTimeMs ?? this.#defaultExpectedProcessingTimeMs,
|
|
101
|
+
};
|
|
102
|
+
const payload = schema.encode(message);
|
|
103
|
+
await this.exchange.send(type, payload, options);
|
|
104
|
+
return payload;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
sendError(code: ProtocolStatusCode) {
|
|
108
|
+
return this.sendStatusReport(GeneralStatusCode.Failure, code);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
sendSuccess() {
|
|
112
|
+
return this.sendStatusReport(GeneralStatusCode.Success, ProtocolStatusCode.Success);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
sendCloseSession() {
|
|
116
|
+
return this.sendStatusReport(GeneralStatusCode.Success, ProtocolStatusCode.CloseSession, false);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
getChannelName() {
|
|
120
|
+
return this.exchange.channel.channel.name;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
async close() {
|
|
124
|
+
await this.exchange.close();
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
private async sendStatusReport(
|
|
128
|
+
generalStatus: GeneralStatusCode,
|
|
129
|
+
protocolStatus: ProtocolStatusCode,
|
|
130
|
+
requiresAck?: boolean,
|
|
131
|
+
) {
|
|
132
|
+
await this.exchange.send(
|
|
133
|
+
SecureMessageType.StatusReport,
|
|
134
|
+
TlvSecureChannelStatusMessage.encode({
|
|
135
|
+
generalStatus,
|
|
136
|
+
protocolId: SECURE_CHANNEL_PROTOCOL_ID,
|
|
137
|
+
protocolStatus,
|
|
138
|
+
}),
|
|
139
|
+
{ requiresAck },
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
protected throwIfErrorStatusReport(message: Message, logHint?: string) {
|
|
144
|
+
const {
|
|
145
|
+
payloadHeader: { messageType },
|
|
146
|
+
payload,
|
|
147
|
+
} = message;
|
|
148
|
+
if (messageType !== SecureMessageType.StatusReport) return;
|
|
149
|
+
|
|
150
|
+
const { generalStatus, protocolId, protocolStatus } = TlvSecureChannelStatusMessage.decode(payload);
|
|
151
|
+
if (generalStatus !== GeneralStatusCode.Success) {
|
|
152
|
+
throw new ChannelStatusResponseError(
|
|
153
|
+
`Received general error status for protocol ${protocolId}${logHint ? ` (${logHint})` : ""}`,
|
|
154
|
+
generalStatus,
|
|
155
|
+
protocolStatus,
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
if (protocolStatus !== ProtocolStatusCode.Success) {
|
|
159
|
+
throw new ChannelStatusResponseError(
|
|
160
|
+
`Received general success status, but protocol status is not Success${logHint ? ` (${logHint})` : ""}`,
|
|
161
|
+
generalStatus,
|
|
162
|
+
protocolStatus,
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { FabricManager } from "#fabric/FabricManager.js";
|
|
8
|
+
import { AsyncObservable, Logger, MatterFlowError } from "#general";
|
|
9
|
+
import { SessionManager } from "#session/SessionManager.js";
|
|
10
|
+
import {
|
|
11
|
+
GeneralStatusCode,
|
|
12
|
+
ProtocolStatusCode,
|
|
13
|
+
SECURE_CHANNEL_PROTOCOL_ID,
|
|
14
|
+
SecureMessageType,
|
|
15
|
+
StatusCode,
|
|
16
|
+
StatusResponseError,
|
|
17
|
+
} from "#types";
|
|
18
|
+
import { Message } from "../codec/MessageCodec.js";
|
|
19
|
+
import { MessageExchange } from "../protocol/MessageExchange.js";
|
|
20
|
+
import { ProtocolHandler } from "../protocol/ProtocolHandler.js";
|
|
21
|
+
import { assertSecureSession } from "../session/SecureSession.js";
|
|
22
|
+
import { CaseServer } from "../session/case/CaseServer.js";
|
|
23
|
+
import { MaximumPasePairingErrorsReachedError, PaseServer } from "../session/pase/PaseServer.js";
|
|
24
|
+
import { ChannelStatusResponseError, SecureChannelMessenger } from "./SecureChannelMessenger.js";
|
|
25
|
+
import { TlvSecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
|
|
26
|
+
|
|
27
|
+
const logger = Logger.get("SecureChannelProtocol");
|
|
28
|
+
|
|
29
|
+
export class StatusReportOnlySecureChannelProtocol implements ProtocolHandler {
|
|
30
|
+
getId(): number {
|
|
31
|
+
return SECURE_CHANNEL_PROTOCOL_ID;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async onNewExchange(exchange: MessageExchange, message: Message) {
|
|
35
|
+
const messageType = message.payloadHeader.messageType;
|
|
36
|
+
|
|
37
|
+
switch (messageType) {
|
|
38
|
+
case SecureMessageType.StatusReport:
|
|
39
|
+
await this.handleInitialStatusReport(exchange, message);
|
|
40
|
+
break;
|
|
41
|
+
default:
|
|
42
|
+
// We silently ignore incoming Standalone Ack messages that we do not expect here
|
|
43
|
+
if (messageType !== SecureMessageType.StandaloneAck) {
|
|
44
|
+
throw new StatusResponseError(
|
|
45
|
+
`Unexpected initial message on secure channel protocol: ${messageType.toString(16)}`,
|
|
46
|
+
StatusCode.InvalidAction,
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async handleInitialStatusReport(exchange: MessageExchange, message: Message) {
|
|
53
|
+
const {
|
|
54
|
+
payloadHeader: { messageType },
|
|
55
|
+
payload,
|
|
56
|
+
} = message;
|
|
57
|
+
if (messageType !== SecureMessageType.StatusReport) {
|
|
58
|
+
throw new MatterFlowError(
|
|
59
|
+
`Unexpected message type on secure channel protocol, expected StatusReport: ${messageType.toString(
|
|
60
|
+
16,
|
|
61
|
+
)}`,
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const { generalStatus, protocolId, protocolStatus } = TlvSecureChannelStatusMessage.decode(payload);
|
|
66
|
+
if (generalStatus !== GeneralStatusCode.Success) {
|
|
67
|
+
throw new ChannelStatusResponseError(
|
|
68
|
+
`Received general error status (${protocolId})`,
|
|
69
|
+
generalStatus,
|
|
70
|
+
protocolStatus,
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
if (protocolStatus !== ProtocolStatusCode.CloseSession) {
|
|
74
|
+
throw new ChannelStatusResponseError(
|
|
75
|
+
`Received general success status, but protocol status is not CloseSession`,
|
|
76
|
+
generalStatus,
|
|
77
|
+
protocolStatus,
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const { session } = exchange;
|
|
82
|
+
assertSecureSession(session);
|
|
83
|
+
logger.debug(`Peer requested to close session ${session.name}. Remove session now.`);
|
|
84
|
+
// TODO: and do more - see Core Specs 5.5
|
|
85
|
+
await session.destroy(false, false);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
async close() {
|
|
89
|
+
// Nothing to do
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export class SecureChannelProtocol extends StatusReportOnlySecureChannelProtocol {
|
|
94
|
+
#paseCommissioner: PaseServer | undefined;
|
|
95
|
+
readonly #caseCommissioner: CaseServer;
|
|
96
|
+
readonly #tooManyPaseErrors = AsyncObservable<[]>();
|
|
97
|
+
|
|
98
|
+
constructor(sessions: SessionManager, fabrics: FabricManager) {
|
|
99
|
+
super();
|
|
100
|
+
this.#caseCommissioner = new CaseServer(sessions, fabrics);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Emitted when the active PASE session hits the maximum error threshold.
|
|
105
|
+
*/
|
|
106
|
+
get tooManyPaseErrors() {
|
|
107
|
+
return this.#tooManyPaseErrors;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
setPaseCommissioner(paseServer: PaseServer) {
|
|
111
|
+
this.#paseCommissioner = paseServer;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
removePaseCommissioner() {
|
|
115
|
+
this.#paseCommissioner = undefined;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
override async onNewExchange(exchange: MessageExchange, message: Message) {
|
|
119
|
+
const messageType = message.payloadHeader.messageType;
|
|
120
|
+
|
|
121
|
+
switch (messageType) {
|
|
122
|
+
case SecureMessageType.PbkdfParamRequest:
|
|
123
|
+
if (this.#paseCommissioner === undefined) {
|
|
124
|
+
// Cleaner to return an error (ok for chip-tool as it seems)?
|
|
125
|
+
// Formally we should not respond at all which leads to retries and such
|
|
126
|
+
const messenger = new SecureChannelMessenger(exchange);
|
|
127
|
+
await messenger.sendError(ProtocolStatusCode.InvalidParam);
|
|
128
|
+
await messenger.close(); // also closes exchange
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
await this.#paseCommissioner.onNewExchange(exchange);
|
|
133
|
+
} catch (error) {
|
|
134
|
+
MaximumPasePairingErrorsReachedError.accept(error);
|
|
135
|
+
|
|
136
|
+
await this.#tooManyPaseErrors.emit();
|
|
137
|
+
}
|
|
138
|
+
break;
|
|
139
|
+
case SecureMessageType.Sigma1:
|
|
140
|
+
await this.#caseCommissioner.onNewExchange(exchange);
|
|
141
|
+
break;
|
|
142
|
+
default:
|
|
143
|
+
await super.onNewExchange(exchange, message);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
static isStandaloneAck(protocolId: number, messageType: number) {
|
|
148
|
+
return protocolId === SECURE_CHANNEL_PROTOCOL_ID && messageType === SecureMessageType.StandaloneAck;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { DataReader, DataWriter, Endian } from "#general";
|
|
8
|
+
import { GeneralStatusCode, ProtocolStatusCode, Schema } from "#types";
|
|
9
|
+
|
|
10
|
+
export type StatusMessage = {
|
|
11
|
+
generalStatus: GeneralStatusCode;
|
|
12
|
+
protocolId: number;
|
|
13
|
+
protocolStatus: ProtocolStatusCode;
|
|
14
|
+
protocolData?: Uint8Array;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export class SecureChannelStatusMessageSchema extends Schema<StatusMessage, Uint8Array> {
|
|
18
|
+
encodeInternal({ generalStatus, protocolId, protocolStatus, protocolData }: StatusMessage) {
|
|
19
|
+
const writer = new DataWriter(Endian.Little);
|
|
20
|
+
writer.writeUInt16(generalStatus);
|
|
21
|
+
writer.writeUInt32(protocolId);
|
|
22
|
+
writer.writeUInt16(protocolStatus);
|
|
23
|
+
if (protocolData !== undefined && protocolData.length > 0) {
|
|
24
|
+
writer.writeByteArray(protocolData);
|
|
25
|
+
}
|
|
26
|
+
return writer.toByteArray();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
decodeInternal(bytes: Uint8Array) {
|
|
30
|
+
const reader = new DataReader(bytes, Endian.Little);
|
|
31
|
+
const generalStatus = reader.readUInt16();
|
|
32
|
+
const protocolId = reader.readUInt32();
|
|
33
|
+
const protocolStatus = reader.readUInt16();
|
|
34
|
+
const remainingBytes = reader.getRemainingBytesCount() > 0 ? reader.getRemainingBytes() : undefined;
|
|
35
|
+
|
|
36
|
+
return { generalStatus, protocolId, protocolStatus, remainingBytes };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const TlvSecureChannelStatusMessage = new SecureChannelStatusMessageSchema();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Export SecureChannel Classes
|
|
8
|
+
export * from "./SecureChannelMessenger.js";
|
|
9
|
+
export * from "./SecureChannelProtocol.js";
|
|
10
|
+
export * from "./SecureChannelStatusMessageSchema.js";
|