@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,490 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Bytes, DataReader, Diagnostic, Endian, Logger, MatterError, Time } from "#general";
|
|
8
|
+
import { BtpCodec } from "../codec/BtpCodec.js";
|
|
9
|
+
import {
|
|
10
|
+
BLE_MAXIMUM_BTP_MTU,
|
|
11
|
+
BLE_MINIMUM_ATT_MTU,
|
|
12
|
+
BTP_ACK_TIMEOUT_MS,
|
|
13
|
+
BTP_CONN_IDLE_TIMEOUT,
|
|
14
|
+
BTP_MAXIMUM_WINDOW_SIZE,
|
|
15
|
+
BTP_SEND_ACK_TIMEOUT_MS,
|
|
16
|
+
} from "./BleConsts.js";
|
|
17
|
+
|
|
18
|
+
export class BtpMatterError extends MatterError {}
|
|
19
|
+
export class BtpProtocolError extends BtpMatterError {}
|
|
20
|
+
export class BtpFlowError extends BtpMatterError {}
|
|
21
|
+
|
|
22
|
+
export const BTP_SUPPORTED_VERSIONS = [4]; // needs to be sort in descending order!
|
|
23
|
+
const MAXIMUM_SEQUENCE_NUMBER = 255;
|
|
24
|
+
|
|
25
|
+
const logger = Logger.get("BtpSessionHandler");
|
|
26
|
+
|
|
27
|
+
export class BtpSessionHandler {
|
|
28
|
+
private currentIncomingSegmentedMsgLength: number | undefined;
|
|
29
|
+
private currentIncomingSegmentedPayload: Uint8Array | undefined;
|
|
30
|
+
private prevIncomingSequenceNumber = 255; // Incoming Sequence Number received. Set to 255 to start at 0
|
|
31
|
+
private prevIncomingAckNumber = -1; // Previous ackNumber received
|
|
32
|
+
private readonly ackReceiveTimer = Time.getTimer("BTP ack timeout", BTP_ACK_TIMEOUT_MS, () =>
|
|
33
|
+
this.btpAckTimeoutTriggered(),
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
private sequenceNumber = 0; // Sequence number is set to 0 already for the handshake, next sequence number is 1
|
|
37
|
+
private prevAckedSequenceNumber = -1; // Previous (outgoing) Acked Sequence Number
|
|
38
|
+
private readonly queuedOutgoingMatterMessages = new Array<DataReader<Endian.Little>>();
|
|
39
|
+
private sendInProgress = false;
|
|
40
|
+
private readonly sendAckTimer = Time.getTimer("BTP send timeout", BTP_SEND_ACK_TIMEOUT_MS, () =>
|
|
41
|
+
this.btpSendAckTimeoutTriggered(),
|
|
42
|
+
);
|
|
43
|
+
private isActive = true;
|
|
44
|
+
private idleTimeout = Time.getTimer("Central Device Idle Timer", BTP_CONN_IDLE_TIMEOUT, async () => {
|
|
45
|
+
logger.info("Central Device Connection Idle Timer expired, closing BTP session");
|
|
46
|
+
await this.close();
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
/** Factory method to create a new BTPSessionHandler from a received handshake request */
|
|
50
|
+
static async createFromHandshakeRequest(
|
|
51
|
+
maxDataSize: number | undefined,
|
|
52
|
+
handshakeRequestPayload: Uint8Array,
|
|
53
|
+
writeBleCallback: (data: Uint8Array) => Promise<void>,
|
|
54
|
+
disconnectBleCallback: () => Promise<void>,
|
|
55
|
+
handleMatterMessagePayload: (data: Uint8Array) => Promise<void>,
|
|
56
|
+
): Promise<BtpSessionHandler> {
|
|
57
|
+
// Decode handshake request
|
|
58
|
+
const handshakeRequest = BtpCodec.decodeBtpHandshakeRequest(handshakeRequestPayload);
|
|
59
|
+
|
|
60
|
+
const {
|
|
61
|
+
versions,
|
|
62
|
+
attMtu: handshakeMtu, // Number excluding 3 header bytes
|
|
63
|
+
clientWindowSize,
|
|
64
|
+
} = handshakeRequest;
|
|
65
|
+
logger.debug(`Received BTP handshake request:`, Diagnostic.dict({ maxDataSize, ...handshakeRequest }));
|
|
66
|
+
|
|
67
|
+
// Verify handshake request and choose the highest supported version for both parties
|
|
68
|
+
const version = BTP_SUPPORTED_VERSIONS.find(version => versions.includes(version));
|
|
69
|
+
if (version === undefined) {
|
|
70
|
+
await disconnectBleCallback();
|
|
71
|
+
throw new BtpProtocolError(`No supported BTP version found in ${versions}`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
let attMtu = BLE_MINIMUM_ATT_MTU;
|
|
75
|
+
if (maxDataSize !== undefined) {
|
|
76
|
+
if (maxDataSize > BLE_MINIMUM_ATT_MTU) {
|
|
77
|
+
if (handshakeMtu <= BLE_MINIMUM_ATT_MTU) {
|
|
78
|
+
attMtu = Math.min(maxDataSize, BLE_MAXIMUM_BTP_MTU);
|
|
79
|
+
} else {
|
|
80
|
+
attMtu = Math.min(handshakeMtu, maxDataSize, BLE_MAXIMUM_BTP_MTU);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const fragmentSize = attMtu; // The attMtu is the maximum size of a single ATT packet, so use as fragmentSize
|
|
86
|
+
const windowSize = Math.min(BTP_MAXIMUM_WINDOW_SIZE, clientWindowSize);
|
|
87
|
+
|
|
88
|
+
// Generate and send out handshake response
|
|
89
|
+
const handshakeResponse = BtpCodec.encodeBtpHandshakeResponse({
|
|
90
|
+
version,
|
|
91
|
+
attMtu,
|
|
92
|
+
windowSize,
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
logger.debug(
|
|
96
|
+
`Sending BTP handshake response:`,
|
|
97
|
+
Diagnostic.dict({
|
|
98
|
+
version,
|
|
99
|
+
attMtu,
|
|
100
|
+
windowSize,
|
|
101
|
+
}),
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
const btpSession = new BtpSessionHandler(
|
|
105
|
+
"peripheral",
|
|
106
|
+
version,
|
|
107
|
+
fragmentSize,
|
|
108
|
+
windowSize,
|
|
109
|
+
writeBleCallback,
|
|
110
|
+
disconnectBleCallback,
|
|
111
|
+
handleMatterMessagePayload,
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
await writeBleCallback(handshakeResponse);
|
|
115
|
+
|
|
116
|
+
return btpSession;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
static async createAsCentral(
|
|
120
|
+
handshakeResponsePayload: Uint8Array,
|
|
121
|
+
writeBleCallback: (data: Uint8Array) => Promise<void>,
|
|
122
|
+
disconnectBleCallback: () => Promise<void>,
|
|
123
|
+
handleMatterMessagePayload: (data: Uint8Array) => Promise<void>,
|
|
124
|
+
) {
|
|
125
|
+
const handshakeRequest = BtpCodec.decodeBtpHandshakeResponsePayload(handshakeResponsePayload);
|
|
126
|
+
|
|
127
|
+
logger.debug("Handshake request", Diagnostic.dict(handshakeRequest));
|
|
128
|
+
|
|
129
|
+
const { version, attMtu: handshakeMtu, windowSize } = handshakeRequest;
|
|
130
|
+
const fragmentSize = Math.min(handshakeMtu, BLE_MAXIMUM_BTP_MTU);
|
|
131
|
+
|
|
132
|
+
return new BtpSessionHandler(
|
|
133
|
+
"central",
|
|
134
|
+
version,
|
|
135
|
+
fragmentSize,
|
|
136
|
+
windowSize,
|
|
137
|
+
writeBleCallback,
|
|
138
|
+
disconnectBleCallback,
|
|
139
|
+
handleMatterMessagePayload,
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Creates a new BTP session handler
|
|
145
|
+
*
|
|
146
|
+
* @param role The role of the BTP session handler
|
|
147
|
+
* @param btpVersion The BTP protocol version to use
|
|
148
|
+
* @param fragmentSize The fragment size to use for the messages
|
|
149
|
+
* @param clientWindowSize The client window size to use
|
|
150
|
+
* @param writeBleCallback Callback to write data to the BLE transport
|
|
151
|
+
* @param disconnectBleCallback Callback to disconnect the BLE transport
|
|
152
|
+
* @param handleMatterMessagePayload Callback to handle a Matter message payload
|
|
153
|
+
*/
|
|
154
|
+
constructor(
|
|
155
|
+
private readonly role: "central" | "peripheral",
|
|
156
|
+
btpVersion: number,
|
|
157
|
+
private readonly fragmentSize: number,
|
|
158
|
+
private readonly clientWindowSize: number,
|
|
159
|
+
private readonly writeBleCallback: (data: Uint8Array) => Promise<void>,
|
|
160
|
+
private readonly disconnectBleCallback: () => Promise<void>,
|
|
161
|
+
private readonly handleMatterMessagePayload: (data: Uint8Array) => Promise<void>,
|
|
162
|
+
) {
|
|
163
|
+
if (btpVersion !== 4) {
|
|
164
|
+
throw new BtpProtocolError(`Unsupported BTP version ${btpVersion}`);
|
|
165
|
+
}
|
|
166
|
+
if (role === "peripheral") {
|
|
167
|
+
this.ackReceiveTimer.start();
|
|
168
|
+
} else {
|
|
169
|
+
this.sendAckTimer.start();
|
|
170
|
+
this.prevIncomingSequenceNumber = 0;
|
|
171
|
+
this.prevIncomingAckNumber = -1;
|
|
172
|
+
this.sequenceNumber = -1; // First sequence number needs to be 0
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Handle incoming data from the transport layer and hand over completely received matter messages to the
|
|
178
|
+
* ExchangeManager layer
|
|
179
|
+
*
|
|
180
|
+
* @param data ByteArray containing the data
|
|
181
|
+
*/
|
|
182
|
+
public async handleIncomingBleData(data: Uint8Array) {
|
|
183
|
+
if (!this.isActive) {
|
|
184
|
+
logger.debug(`BTP session is not active, ignoring incoming BLE data`);
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
try {
|
|
188
|
+
if (data.length > this.fragmentSize) {
|
|
189
|
+
// Apple seems to interpret the ATT_MTU as the maximum size of a single ATT packet
|
|
190
|
+
if (data.length > this.fragmentSize + 3) {
|
|
191
|
+
throw new BtpProtocolError(
|
|
192
|
+
`Received data ${data.length} bytes exceeds fragment size of ${this.fragmentSize} bytes`,
|
|
193
|
+
);
|
|
194
|
+
} else {
|
|
195
|
+
logger.warn(
|
|
196
|
+
`Received data ${data.length} bytes exceeds fragment size of ${this.fragmentSize} bytes, still accepting`,
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
const btpPacket = BtpCodec.decodeBtpPacket(data);
|
|
201
|
+
logger.debug(`Received BTP packet: ${Logger.toJSON(btpPacket)}`);
|
|
202
|
+
const {
|
|
203
|
+
header: {
|
|
204
|
+
hasAckNumber,
|
|
205
|
+
isHandshakeRequest,
|
|
206
|
+
hasManagementOpcode,
|
|
207
|
+
isEndingSegment,
|
|
208
|
+
isBeginningSegment,
|
|
209
|
+
isContinuingSegment,
|
|
210
|
+
},
|
|
211
|
+
payload: { ackNumber, sequenceNumber, messageLength, segmentPayload },
|
|
212
|
+
} = btpPacket;
|
|
213
|
+
|
|
214
|
+
if (isHandshakeRequest || hasManagementOpcode) {
|
|
215
|
+
throw new BtpProtocolError("BTP packet must not be a handshake request or have a management opcode.");
|
|
216
|
+
}
|
|
217
|
+
if (segmentPayload.length === 0 && !hasAckNumber) {
|
|
218
|
+
throw new BtpProtocolError("BTP packet must have a segment payload or an ack number.");
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
if (sequenceNumber !== (this.prevIncomingSequenceNumber + 1) % 256) {
|
|
222
|
+
logger.debug(
|
|
223
|
+
`sequenceNumber : ${sequenceNumber}, prevClientSequenceNumber : ${this.prevIncomingSequenceNumber}`,
|
|
224
|
+
);
|
|
225
|
+
throw new BtpProtocolError("Expected and actual BTP packets sequence number does not match");
|
|
226
|
+
}
|
|
227
|
+
this.prevIncomingSequenceNumber = sequenceNumber;
|
|
228
|
+
|
|
229
|
+
if (!this.sendAckTimer.isRunning) {
|
|
230
|
+
this.sendAckTimer.start();
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
if (hasAckNumber && ackNumber !== undefined) {
|
|
234
|
+
// check that ack number is valid
|
|
235
|
+
if (ackNumber > this.sequenceNumber || this.exceedsWindowSize(this.prevIncomingAckNumber, ackNumber)) {
|
|
236
|
+
throw new BtpProtocolError(
|
|
237
|
+
`Invalid Ack Number, Ack Number: ${ackNumber}, Sequence Number: ${this.sequenceNumber}, Previous AckNumber: ${this.prevIncomingAckNumber}`,
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// for valid ack, stop timer and update prevIncomingAckNumber
|
|
242
|
+
this.ackReceiveTimer.stop();
|
|
243
|
+
this.prevIncomingAckNumber = ackNumber;
|
|
244
|
+
|
|
245
|
+
// if still waiting for ack for sequence number restart timer
|
|
246
|
+
if (ackNumber !== this.sequenceNumber) {
|
|
247
|
+
this.ackReceiveTimer.start();
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Set or add the payload to the current incoming segmented payload
|
|
252
|
+
if (isBeginningSegment) {
|
|
253
|
+
if (this.currentIncomingSegmentedPayload !== undefined) {
|
|
254
|
+
throw new BtpProtocolError(
|
|
255
|
+
`BTP message flow error! New beginning packet was received without previous message being completed.`,
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
this.currentIncomingSegmentedMsgLength = messageLength;
|
|
259
|
+
this.currentIncomingSegmentedPayload = segmentPayload;
|
|
260
|
+
} else if (isContinuingSegment || isEndingSegment) {
|
|
261
|
+
if (this.currentIncomingSegmentedPayload === undefined) {
|
|
262
|
+
throw new BtpProtocolError(`BTP Continuing or ending packet received without beginning packet.`);
|
|
263
|
+
}
|
|
264
|
+
if (segmentPayload.length === 0) {
|
|
265
|
+
throw new BtpProtocolError(`BTP Continuing or ending packet received without payload.`);
|
|
266
|
+
}
|
|
267
|
+
this.currentIncomingSegmentedPayload = Bytes.concat(
|
|
268
|
+
this.currentIncomingSegmentedPayload,
|
|
269
|
+
segmentPayload,
|
|
270
|
+
);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
if (isEndingSegment) {
|
|
274
|
+
if (
|
|
275
|
+
this.currentIncomingSegmentedMsgLength === undefined ||
|
|
276
|
+
this.currentIncomingSegmentedPayload === undefined
|
|
277
|
+
) {
|
|
278
|
+
throw new BtpProtocolError("BTP beginning packet missing but ending packet received.");
|
|
279
|
+
}
|
|
280
|
+
if (this.currentIncomingSegmentedPayload.length !== this.currentIncomingSegmentedMsgLength) {
|
|
281
|
+
throw new BtpProtocolError(
|
|
282
|
+
`BTP packet payload length does not match message length: ${this.currentIncomingSegmentedPayload.length} !== ${this.currentIncomingSegmentedMsgLength}`,
|
|
283
|
+
);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
const payloadToProcess = this.currentIncomingSegmentedPayload;
|
|
287
|
+
this.currentIncomingSegmentedMsgLength = undefined;
|
|
288
|
+
this.currentIncomingSegmentedPayload = undefined; // resetting current segment Payload to empty byte array
|
|
289
|
+
|
|
290
|
+
// Hand over the resulting Matter message to ExchangeManager via the callback
|
|
291
|
+
await this.handleMatterMessagePayload(payloadToProcess);
|
|
292
|
+
}
|
|
293
|
+
} catch (error) {
|
|
294
|
+
logger.error(`Error while handling incoming BTP data: ${error}`);
|
|
295
|
+
await this.close();
|
|
296
|
+
|
|
297
|
+
// If no BTP protocol error, rethrow
|
|
298
|
+
BtpProtocolError.accept(error);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Send a Matter message to the transport layer, but before that encode it into a BTP packet and potentially split
|
|
304
|
+
* it into multiple segments. This Method is indirectly called by the ExchangeManager layer when a Matter message
|
|
305
|
+
* should be sent.
|
|
306
|
+
*
|
|
307
|
+
* @param data ByteArray containing the Matter message
|
|
308
|
+
*/
|
|
309
|
+
public async sendMatterMessage(data: Uint8Array) {
|
|
310
|
+
if (!this.isActive) {
|
|
311
|
+
throw new BtpFlowError("BTP session is not active");
|
|
312
|
+
}
|
|
313
|
+
logger.debug(`Got Matter message to send via BLE transport: ${Bytes.toHex(data)}`);
|
|
314
|
+
|
|
315
|
+
if (data.length === 0) {
|
|
316
|
+
throw new BtpFlowError("BTP packet must not be empty");
|
|
317
|
+
}
|
|
318
|
+
const dataReader = new DataReader(data, Endian.Little);
|
|
319
|
+
this.queuedOutgoingMatterMessages.push(dataReader);
|
|
320
|
+
await this.processSendQueue();
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
private async processSendQueue() {
|
|
324
|
+
if (this.sendInProgress) return;
|
|
325
|
+
|
|
326
|
+
if (this.exceedsWindowSize(this.prevIncomingAckNumber, this.sequenceNumber)) return;
|
|
327
|
+
|
|
328
|
+
if (this.queuedOutgoingMatterMessages.length === 0) return;
|
|
329
|
+
|
|
330
|
+
this.sendInProgress = true;
|
|
331
|
+
|
|
332
|
+
while (this.queuedOutgoingMatterMessages.length > 0) {
|
|
333
|
+
const currentProcessedMessage = this.queuedOutgoingMatterMessages[0];
|
|
334
|
+
const remainingMessageLength = currentProcessedMessage.getRemainingBytesCount();
|
|
335
|
+
|
|
336
|
+
logger.debug(
|
|
337
|
+
"Sending BTP fragment: ",
|
|
338
|
+
Diagnostic.dict({
|
|
339
|
+
fullMessageLength: currentProcessedMessage.getLength(),
|
|
340
|
+
remainingLengthInBytes: remainingMessageLength,
|
|
341
|
+
}),
|
|
342
|
+
);
|
|
343
|
+
|
|
344
|
+
//checks if last ack number sent < ack number to be sent
|
|
345
|
+
const hasAckNumber = this.prevIncomingSequenceNumber !== this.prevAckedSequenceNumber;
|
|
346
|
+
if (hasAckNumber) {
|
|
347
|
+
this.prevAckedSequenceNumber = this.prevIncomingSequenceNumber;
|
|
348
|
+
this.sendAckTimer.stop();
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
const isBeginningSegment = remainingMessageLength === currentProcessedMessage.getLength();
|
|
352
|
+
|
|
353
|
+
// Calculate Header Size - faster than encoding and checking length
|
|
354
|
+
const btpHeaderLength = 2 + (isBeginningSegment ? 2 : 0) + (hasAckNumber ? 1 : 0); // 2(flags, sequenceNumber) + 2(beginning) + 1(ackNumber)
|
|
355
|
+
|
|
356
|
+
const isEndingSegment = remainingMessageLength <= this.fragmentSize - btpHeaderLength;
|
|
357
|
+
|
|
358
|
+
const packetHeader = {
|
|
359
|
+
isHandshakeRequest: false,
|
|
360
|
+
hasManagementOpcode: false,
|
|
361
|
+
hasAckNumber,
|
|
362
|
+
isBeginningSegment,
|
|
363
|
+
isContinuingSegment: !isBeginningSegment,
|
|
364
|
+
isEndingSegment,
|
|
365
|
+
};
|
|
366
|
+
|
|
367
|
+
logger.debug(
|
|
368
|
+
`Take up to ${
|
|
369
|
+
this.fragmentSize - btpHeaderLength
|
|
370
|
+
} bytes from Rest of message: ${remainingMessageLength}`,
|
|
371
|
+
);
|
|
372
|
+
|
|
373
|
+
const segmentPayload = currentProcessedMessage.readByteArray(this.fragmentSize - btpHeaderLength);
|
|
374
|
+
|
|
375
|
+
const btpPacket = {
|
|
376
|
+
header: packetHeader,
|
|
377
|
+
payload: {
|
|
378
|
+
ackNumber: hasAckNumber ? this.prevIncomingSequenceNumber : undefined,
|
|
379
|
+
sequenceNumber: this.getNextSequenceNumber(),
|
|
380
|
+
messageLength: packetHeader.isBeginningSegment ? remainingMessageLength : undefined, // remainingMessageLength if the fill length on beginning packet
|
|
381
|
+
segmentPayload,
|
|
382
|
+
},
|
|
383
|
+
};
|
|
384
|
+
|
|
385
|
+
logger.debug(`Sending BTP packet: ${Logger.toJSON(btpPacket)}`);
|
|
386
|
+
const packet = BtpCodec.encodeBtpPacket(btpPacket);
|
|
387
|
+
logger.debug(`Sending BTP packet raw: ${Bytes.toHex(packet)}`);
|
|
388
|
+
|
|
389
|
+
await this.writeBleCallback(packet);
|
|
390
|
+
|
|
391
|
+
if (!this.ackReceiveTimer.isRunning) {
|
|
392
|
+
this.ackReceiveTimer.start(); // starts the timer
|
|
393
|
+
}
|
|
394
|
+
if (this.role === "central") {
|
|
395
|
+
// Restart idle timer when sending unique data
|
|
396
|
+
if (this.idleTimeout.isRunning) {
|
|
397
|
+
this.idleTimeout.stop();
|
|
398
|
+
}
|
|
399
|
+
this.idleTimeout.start();
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
// Remove the message from the queue if it is the last segment
|
|
403
|
+
if (isEndingSegment) {
|
|
404
|
+
this.queuedOutgoingMatterMessages.shift();
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
// If the window is full, stop sending for now
|
|
408
|
+
if (this.exceedsWindowSize(this.prevIncomingAckNumber, this.sequenceNumber)) {
|
|
409
|
+
break;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
this.sendInProgress = false;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* Close the BTP session. This method is called when the BLE transport is disconnected and so the BTP session gets closed.
|
|
417
|
+
*/
|
|
418
|
+
public async close() {
|
|
419
|
+
this.sendAckTimer.stop();
|
|
420
|
+
this.ackReceiveTimer.stop();
|
|
421
|
+
this.idleTimeout.stop();
|
|
422
|
+
if (this.isActive) {
|
|
423
|
+
logger.debug(`Closing BTP session`);
|
|
424
|
+
this.isActive = false;
|
|
425
|
+
await this.disconnectBleCallback();
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* If this timer expires and the peer has a pending acknowledgement, the peer SHALL immediately send that
|
|
431
|
+
* acknowledgement
|
|
432
|
+
*/
|
|
433
|
+
private async btpSendAckTimeoutTriggered() {
|
|
434
|
+
if (this.prevIncomingSequenceNumber > this.prevAckedSequenceNumber) {
|
|
435
|
+
logger.debug(`Sending BTP ACK for sequence number ${this.prevIncomingSequenceNumber}`);
|
|
436
|
+
const btpPacket = {
|
|
437
|
+
header: {
|
|
438
|
+
isHandshakeRequest: false,
|
|
439
|
+
hasManagementOpcode: false,
|
|
440
|
+
hasAckNumber: true,
|
|
441
|
+
isBeginningSegment: false,
|
|
442
|
+
isContinuingSegment: false,
|
|
443
|
+
isEndingSegment: false,
|
|
444
|
+
},
|
|
445
|
+
payload: {
|
|
446
|
+
ackNumber: this.prevIncomingSequenceNumber,
|
|
447
|
+
sequenceNumber: this.getNextSequenceNumber(),
|
|
448
|
+
},
|
|
449
|
+
};
|
|
450
|
+
this.prevAckedSequenceNumber = this.prevIncomingSequenceNumber;
|
|
451
|
+
const packet = BtpCodec.encodeBtpPacket(btpPacket);
|
|
452
|
+
await this.writeBleCallback(packet);
|
|
453
|
+
if (!this.ackReceiveTimer.isRunning) {
|
|
454
|
+
this.ackReceiveTimer.start(); // starts the timer
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* If a peer’s acknowledgement-received timer expires, or if a peer receives an invalid acknowledgement,
|
|
461
|
+
* the peer SHALL close the BTP session and report an error to the application.
|
|
462
|
+
*/
|
|
463
|
+
private async btpAckTimeoutTriggered() {
|
|
464
|
+
if (this.prevIncomingAckNumber !== this.sequenceNumber) {
|
|
465
|
+
logger.warn("Acknowledgement for the sent sequence number was not received ... disconnect");
|
|
466
|
+
await this.close();
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Increments sequence number for the packets and round it off to 0 when it reaches the maximum limit.
|
|
472
|
+
*/
|
|
473
|
+
getNextSequenceNumber() {
|
|
474
|
+
this.sequenceNumber++;
|
|
475
|
+
if (this.sequenceNumber > MAXIMUM_SEQUENCE_NUMBER) {
|
|
476
|
+
this.sequenceNumber = 0;
|
|
477
|
+
}
|
|
478
|
+
return this.sequenceNumber;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
/**
|
|
482
|
+
* Checks if incoming ackNumber and sent sequence number exceeds the client window size or not.
|
|
483
|
+
*/
|
|
484
|
+
private exceedsWindowSize(prevIncomingAckNumber: number, currentSequenceNumber: number): boolean {
|
|
485
|
+
if (prevIncomingAckNumber > currentSequenceNumber) {
|
|
486
|
+
prevIncomingAckNumber = (prevIncomingAckNumber % MAXIMUM_SEQUENCE_NUMBER) - 1;
|
|
487
|
+
}
|
|
488
|
+
return currentSequenceNumber - prevIncomingAckNumber > this.clientWindowSize - 1;
|
|
489
|
+
}
|
|
490
|
+
}
|
package/src/ble/index.ts
ADDED
|
@@ -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 { Bytes, Crypto, PrivateKey, Time, toHex } from "#general";
|
|
8
|
+
import { VendorId } from "#types";
|
|
9
|
+
import { CertificateManager, jsToMatterDate } from "./CertificateManager.js";
|
|
10
|
+
import {
|
|
11
|
+
TestCert_PAA_NoVID_PrivateKey,
|
|
12
|
+
TestCert_PAA_NoVID_PublicKey,
|
|
13
|
+
TestCert_PAA_NoVID_SKID,
|
|
14
|
+
} from "./ChipPAAuthorities.js";
|
|
15
|
+
|
|
16
|
+
function getPaiCommonName(vendorId: VendorId, productId?: number) {
|
|
17
|
+
return `node-matter Dev PAI 0x${vendorId.toString(16).toUpperCase()} ${
|
|
18
|
+
productId === undefined ? "no PID" : `0x${productId.toString(16).toUpperCase()}`
|
|
19
|
+
}`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function getDacCommonName(vendorId: VendorId, productId: number) {
|
|
23
|
+
return `node-matter Dev DAC 0x${vendorId.toString(16).toUpperCase()}/0x${productId.toString(16).toUpperCase()}`;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function getPaaCommonName() {
|
|
27
|
+
// Do not change this because we use the official Matter Test PAA and the certificate uses this name!
|
|
28
|
+
return "Matter Test PAA";
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export class AttestationCertificateManager {
|
|
32
|
+
private paaCertId = BigInt(0);
|
|
33
|
+
|
|
34
|
+
// We use the official PAA cert for now because else pairing with Chip tool do not work because
|
|
35
|
+
// only this one is the Certificate store
|
|
36
|
+
private readonly paaKeyPair = PrivateKey(TestCert_PAA_NoVID_PrivateKey, {
|
|
37
|
+
publicKey: TestCert_PAA_NoVID_PublicKey,
|
|
38
|
+
});
|
|
39
|
+
private readonly paaKeyIdentifier = TestCert_PAA_NoVID_SKID;
|
|
40
|
+
private readonly paiCertId = BigInt(1);
|
|
41
|
+
private readonly paiKeyPair = Crypto.createKeyPair();
|
|
42
|
+
private readonly paiKeyIdentifier = Crypto.hash(this.paiKeyPair.publicKey).slice(0, 20);
|
|
43
|
+
private readonly paiCertBytes;
|
|
44
|
+
private nextCertificateId = 2;
|
|
45
|
+
|
|
46
|
+
constructor(private readonly vendorId: VendorId) {
|
|
47
|
+
this.paiCertBytes = this.generatePAICert(vendorId);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
getPAICert() {
|
|
51
|
+
return this.paiCertBytes;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
getDACert(productId: number) {
|
|
55
|
+
const dacKeyPair = Crypto.createKeyPair();
|
|
56
|
+
return {
|
|
57
|
+
keyPair: dacKeyPair,
|
|
58
|
+
dac: this.generateDaCert(dacKeyPair.publicKey, this.vendorId, productId),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Method unused for now because we use the official Matter Test PAA, but is functional
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
private generatePAACert(vendorId?: VendorId) {
|
|
66
|
+
const now = Time.get().now();
|
|
67
|
+
const unsignedCertificate = {
|
|
68
|
+
serialNumber: Bytes.fromHex(toHex(this.paaCertId)),
|
|
69
|
+
signatureAlgorithm: 1 /* EcdsaWithSHA256 */,
|
|
70
|
+
publicKeyAlgorithm: 1 /* EC */,
|
|
71
|
+
ellipticCurveIdentifier: 1 /* P256v1 */,
|
|
72
|
+
issuer: {
|
|
73
|
+
commonName: getPaaCommonName(),
|
|
74
|
+
vendorId: vendorId,
|
|
75
|
+
},
|
|
76
|
+
notBefore: jsToMatterDate(now, -1),
|
|
77
|
+
notAfter: jsToMatterDate(now, 10),
|
|
78
|
+
subject: {
|
|
79
|
+
commonName: getPaaCommonName(),
|
|
80
|
+
vendorId: vendorId,
|
|
81
|
+
},
|
|
82
|
+
ellipticCurvePublicKey: this.paaKeyPair.publicKey,
|
|
83
|
+
extensions: {
|
|
84
|
+
basicConstraints: {
|
|
85
|
+
isCa: true,
|
|
86
|
+
pathLen: 1,
|
|
87
|
+
},
|
|
88
|
+
keyUsage: {
|
|
89
|
+
keyCertSign: true,
|
|
90
|
+
cRLSign: true,
|
|
91
|
+
},
|
|
92
|
+
subjectKeyIdentifier: this.paaKeyIdentifier,
|
|
93
|
+
authorityKeyIdentifier: this.paaKeyIdentifier,
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
return CertificateManager.productAttestationAuthorityCertToAsn1(unsignedCertificate, this.paaKeyPair);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
private generatePAICert(vendorId: VendorId, productId?: number) {
|
|
100
|
+
const now = Time.get().now();
|
|
101
|
+
const unsignedCertificate = {
|
|
102
|
+
serialNumber: Bytes.fromHex(toHex(this.paiCertId)),
|
|
103
|
+
signatureAlgorithm: 1 /* EcdsaWithSHA256 */,
|
|
104
|
+
publicKeyAlgorithm: 1 /* EC */,
|
|
105
|
+
ellipticCurveIdentifier: 1 /* P256v1 */,
|
|
106
|
+
issuer: {
|
|
107
|
+
commonName: getPaaCommonName(),
|
|
108
|
+
},
|
|
109
|
+
notBefore: jsToMatterDate(now, -1),
|
|
110
|
+
notAfter: jsToMatterDate(now, 10),
|
|
111
|
+
subject: {
|
|
112
|
+
commonName: getPaiCommonName(vendorId, productId),
|
|
113
|
+
vendorId: vendorId,
|
|
114
|
+
productId: productId,
|
|
115
|
+
},
|
|
116
|
+
ellipticCurvePublicKey: this.paiKeyPair.publicKey,
|
|
117
|
+
extensions: {
|
|
118
|
+
basicConstraints: {
|
|
119
|
+
isCa: true,
|
|
120
|
+
pathLen: 0,
|
|
121
|
+
},
|
|
122
|
+
keyUsage: {
|
|
123
|
+
keyCertSign: true,
|
|
124
|
+
cRLSign: true,
|
|
125
|
+
},
|
|
126
|
+
subjectKeyIdentifier: this.paiKeyIdentifier,
|
|
127
|
+
authorityKeyIdentifier: this.paaKeyIdentifier,
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
return CertificateManager.productAttestationIntermediateCertToAsn1(unsignedCertificate, this.paaKeyPair);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
generateDaCert(publicKey: Uint8Array, vendorId: VendorId, productId: number) {
|
|
134
|
+
const now = Time.get().now();
|
|
135
|
+
const certId = this.nextCertificateId++;
|
|
136
|
+
const unsignedCertificate = {
|
|
137
|
+
serialNumber: Bytes.fromHex(toHex(certId)),
|
|
138
|
+
signatureAlgorithm: 1 /* EcdsaWithSHA256 */,
|
|
139
|
+
publicKeyAlgorithm: 1 /* EC */,
|
|
140
|
+
ellipticCurveIdentifier: 1 /* P256v1 */,
|
|
141
|
+
notBefore: jsToMatterDate(now, -1),
|
|
142
|
+
notAfter: jsToMatterDate(now, 10),
|
|
143
|
+
issuer: {
|
|
144
|
+
commonName: getPaiCommonName(vendorId),
|
|
145
|
+
vendorId: vendorId,
|
|
146
|
+
},
|
|
147
|
+
subject: {
|
|
148
|
+
commonName: getDacCommonName(vendorId, productId),
|
|
149
|
+
vendorId: vendorId,
|
|
150
|
+
productId: productId,
|
|
151
|
+
},
|
|
152
|
+
ellipticCurvePublicKey: publicKey,
|
|
153
|
+
extensions: {
|
|
154
|
+
basicConstraints: {
|
|
155
|
+
isCa: false,
|
|
156
|
+
},
|
|
157
|
+
keyUsage: {
|
|
158
|
+
digitalSignature: true,
|
|
159
|
+
},
|
|
160
|
+
subjectKeyIdentifier: Crypto.hash(publicKey).slice(0, 20),
|
|
161
|
+
authorityKeyIdentifier: this.paiKeyIdentifier,
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
return CertificateManager.deviceAttestationCertToAsn1(unsignedCertificate, this.paiKeyPair);
|
|
165
|
+
}
|
|
166
|
+
}
|