@matter/thread-br-client 0.0.1 → 0.17.5-alpha.0-20260706-fd4c49e2e
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/README.md +5 -5
- package/dist/cjs/coap/CoapClient.d.ts +2 -2
- package/dist/cjs/coap/CoapClient.d.ts.map +1 -1
- package/dist/cjs/coap/CoapClient.js +9 -16
- package/dist/cjs/coap/CoapClient.js.map +1 -1
- package/dist/cjs/coap/CoapMessage.d.ts +11 -6
- package/dist/cjs/coap/CoapMessage.d.ts.map +1 -1
- package/dist/cjs/coap/CoapMessage.js +8 -5
- package/dist/cjs/coap/CoapMessage.js.map +1 -1
- package/dist/cjs/commissioner/Commissioner.d.ts.map +1 -1
- package/dist/cjs/commissioner/Commissioner.js +5 -2
- package/dist/cjs/commissioner/Commissioner.js.map +1 -1
- package/dist/cjs/commissioner/LeadKa.d.ts +3 -3
- package/dist/cjs/commissioner/LeadKa.d.ts.map +1 -1
- package/dist/cjs/commissioner/LeadKa.js +1 -1
- package/dist/cjs/commissioner/LeadKa.js.map +1 -1
- package/dist/cjs/commissioner/LeadPet.d.ts +3 -2
- package/dist/cjs/commissioner/LeadPet.d.ts.map +1 -1
- package/dist/cjs/commissioner/LeadPet.js +4 -3
- package/dist/cjs/commissioner/LeadPet.js.map +1 -1
- package/dist/cjs/credentials/ThreadCredentialsRegistry.d.ts +5 -5
- package/dist/cjs/credentials/ThreadCredentialsRegistry.d.ts.map +1 -1
- package/dist/cjs/credentials/ThreadCredentialsRegistry.js +10 -9
- package/dist/cjs/credentials/ThreadCredentialsRegistry.js.map +1 -1
- package/dist/cjs/credentials/ThreadNetworkCredentials.d.ts +4 -3
- package/dist/cjs/credentials/ThreadNetworkCredentials.d.ts.map +1 -1
- package/dist/cjs/crypto/AesCmacPrf128.d.ts +4 -14
- package/dist/cjs/crypto/AesCmacPrf128.d.ts.map +1 -1
- package/dist/cjs/crypto/AesCmacPrf128.js +7 -71
- package/dist/cjs/crypto/AesCmacPrf128.js.map +2 -2
- package/dist/cjs/crypto/Pbkdf2AesCmac.d.ts +5 -4
- package/dist/cjs/crypto/Pbkdf2AesCmac.d.ts.map +1 -1
- package/dist/cjs/crypto/Pbkdf2AesCmac.js +5 -4
- package/dist/cjs/crypto/Pbkdf2AesCmac.js.map +1 -1
- package/dist/cjs/crypto/Pskc.d.ts +4 -3
- package/dist/cjs/crypto/Pskc.d.ts.map +1 -1
- package/dist/cjs/crypto/Pskc.js +6 -5
- package/dist/cjs/crypto/Pskc.js.map +1 -1
- package/dist/cjs/crypto/index.d.ts +1 -1
- package/dist/cjs/crypto/index.d.ts.map +1 -1
- package/dist/cjs/crypto/index.js +0 -1
- package/dist/cjs/crypto/index.js.map +1 -1
- package/dist/cjs/dataset/OperationalDataset.d.ts +10 -10
- package/dist/cjs/dataset/OperationalDataset.d.ts.map +1 -1
- package/dist/cjs/dataset/OperationalDataset.js +32 -31
- package/dist/cjs/dataset/OperationalDataset.js.map +1 -1
- package/dist/cjs/dataset/SecurityPolicy.d.ts +3 -2
- package/dist/cjs/dataset/SecurityPolicy.d.ts.map +1 -1
- package/dist/cjs/dataset/SecurityPolicy.js +5 -4
- package/dist/cjs/dataset/SecurityPolicy.js.map +1 -1
- package/dist/cjs/diagnostic/DiagnosticResponse.d.ts +5 -4
- package/dist/cjs/diagnostic/DiagnosticResponse.d.ts.map +1 -1
- package/dist/cjs/diagnostic/DiagnosticSource.d.ts +2 -2
- package/dist/cjs/diagnostic/DiagnosticSource.d.ts.map +1 -1
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.d.ts +7 -3
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.d.ts.map +1 -1
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.js +48 -43
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.js.map +1 -1
- package/dist/cjs/diagnostic/connectMeshcop.d.ts.map +1 -1
- package/dist/cjs/diagnostic/connectMeshcop.js +5 -12
- package/dist/cjs/diagnostic/connectMeshcop.js.map +1 -1
- package/dist/cjs/diagnostic/errors.d.ts +1 -1
- package/dist/cjs/diagnostic/errors.d.ts.map +1 -1
- package/dist/cjs/discovery/BorderRouterRegistry.d.ts.map +1 -1
- package/dist/cjs/discovery/BorderRouterRegistry.js +2 -4
- package/dist/cjs/discovery/BorderRouterRegistry.js.map +1 -1
- package/dist/cjs/dtls/channel/DtlsConnectOpts.d.ts +3 -3
- package/dist/cjs/dtls/channel/DtlsConnectOpts.d.ts.map +1 -1
- package/dist/cjs/dtls/channel/NobleDtlsChannel.d.ts.map +1 -1
- package/dist/cjs/dtls/channel/NobleDtlsChannel.js +89 -58
- package/dist/cjs/dtls/channel/NobleDtlsChannel.js.map +1 -1
- package/dist/cjs/dtls/ecjpake/EcJpakePms.d.ts +5 -4
- package/dist/cjs/dtls/ecjpake/EcJpakePms.d.ts.map +1 -1
- package/dist/cjs/dtls/ecjpake/EcJpakePms.js +4 -5
- package/dist/cjs/dtls/ecjpake/EcJpakePms.js.map +1 -1
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.d.ts +16 -15
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.d.ts.map +1 -1
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.js +40 -29
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.js.map +1 -1
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.d.ts +10 -9
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.d.ts.map +1 -1
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.js +17 -13
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.js.map +1 -1
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.d.ts +2 -1
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.js +3 -1
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.js.map +1 -1
- package/dist/cjs/dtls/handshake/ClientHelloMessage.d.ts +27 -4
- package/dist/cjs/dtls/handshake/ClientHelloMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ClientHelloMessage.js +3 -1
- package/dist/cjs/dtls/handshake/ClientHelloMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.d.ts +2 -1
- package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/DtlsClient.d.ts +9 -6
- package/dist/cjs/dtls/handshake/DtlsClient.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/DtlsClient.js +99 -77
- package/dist/cjs/dtls/handshake/DtlsClient.js.map +1 -1
- package/dist/cjs/dtls/handshake/FinishedMessage.d.ts +10 -3
- package/dist/cjs/dtls/handshake/FinishedMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/FinishedMessage.js +4 -2
- package/dist/cjs/dtls/handshake/FinishedMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/HandshakeMessage.d.ts +5 -4
- package/dist/cjs/dtls/handshake/HandshakeMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/HandshakeMessage.js +13 -11
- package/dist/cjs/dtls/handshake/HandshakeMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.d.ts +19 -2
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.js +3 -1
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.d.ts +2 -1
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.js +3 -2
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/ServerHelloMessage.d.ts +4 -3
- package/dist/cjs/dtls/handshake/ServerHelloMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ServerHelloMessage.js +3 -1
- package/dist/cjs/dtls/handshake/ServerHelloMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.d.ts +2 -1
- package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.js.map +1 -1
- package/dist/cjs/dtls/prf/HandshakeTranscript.d.ts +7 -5
- package/dist/cjs/dtls/prf/HandshakeTranscript.d.ts.map +1 -1
- package/dist/cjs/dtls/prf/HandshakeTranscript.js +14 -9
- package/dist/cjs/dtls/prf/HandshakeTranscript.js.map +1 -1
- package/dist/cjs/dtls/prf/TlsPrf.d.ts +23 -22
- package/dist/cjs/dtls/prf/TlsPrf.d.ts.map +1 -1
- package/dist/cjs/dtls/prf/TlsPrf.js +33 -30
- package/dist/cjs/dtls/prf/TlsPrf.js.map +1 -1
- package/dist/cjs/dtls/record/AesCcm8.d.ts +13 -12
- package/dist/cjs/dtls/record/AesCcm8.d.ts.map +1 -1
- package/dist/cjs/dtls/record/AesCcm8.js +12 -34
- package/dist/cjs/dtls/record/AesCcm8.js.map +1 -1
- package/dist/cjs/dtls/record/DtlsCipherState.d.ts +11 -10
- package/dist/cjs/dtls/record/DtlsCipherState.d.ts.map +1 -1
- package/dist/cjs/dtls/record/DtlsCipherState.js +10 -6
- package/dist/cjs/dtls/record/DtlsCipherState.js.map +1 -1
- package/dist/cjs/dtls/record/DtlsRecord.d.ts +10 -10
- package/dist/cjs/dtls/record/DtlsRecord.d.ts.map +1 -1
- package/dist/cjs/dtls/record/DtlsRecord.js +10 -8
- package/dist/cjs/dtls/record/DtlsRecord.js.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestCapability.d.ts +3 -4
- package/dist/cjs/otbr-rest/OtbrRestCapability.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestClient.d.ts +27 -8
- package/dist/cjs/otbr-rest/OtbrRestClient.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestClient.js +50 -20
- package/dist/cjs/otbr-rest/OtbrRestClient.js.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.d.ts +2 -1
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.js +3 -3
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.js.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestProbe.d.ts +6 -4
- package/dist/cjs/otbr-rest/OtbrRestProbe.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestProbe.js +11 -43
- package/dist/cjs/otbr-rest/OtbrRestProbe.js.map +1 -1
- package/dist/cjs/otbr-rest/caseNormalizer.d.ts +7 -0
- package/dist/cjs/otbr-rest/caseNormalizer.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/caseNormalizer.js +11 -0
- package/dist/cjs/otbr-rest/caseNormalizer.js.map +1 -1
- package/dist/cjs/otbr-rest/parseHexBytes.d.ts +22 -0
- package/dist/cjs/otbr-rest/parseHexBytes.d.ts.map +1 -0
- package/dist/cjs/otbr-rest/parseHexBytes.js +50 -0
- package/dist/cjs/otbr-rest/parseHexBytes.js.map +6 -0
- package/dist/cjs/otbr-rest/translation.d.ts +2 -1
- package/dist/cjs/otbr-rest/translation.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/translation.js +20 -22
- package/dist/cjs/otbr-rest/translation.js.map +1 -1
- package/dist/cjs/selection/selectBr.d.ts +8 -4
- package/dist/cjs/selection/selectBr.d.ts.map +1 -1
- package/dist/cjs/selection/selectBr.js +6 -5
- package/dist/cjs/selection/selectBr.js.map +1 -1
- package/dist/cjs/selection/withExtPanIdLock.d.ts +2 -1
- package/dist/cjs/selection/withExtPanIdLock.d.ts.map +1 -1
- package/dist/cjs/selection/withExtPanIdLock.js.map +1 -1
- package/dist/cjs/tlv/BasicTlvCodec.d.ts +4 -4
- package/dist/cjs/tlv/BasicTlvCodec.d.ts.map +1 -1
- package/dist/cjs/tlv/BasicTlvCodec.js +13 -11
- package/dist/cjs/tlv/BasicTlvCodec.js.map +1 -1
- package/dist/cjs/tlv/NetworkDiagnosticTlv.d.ts +3 -2
- package/dist/cjs/tlv/NetworkDiagnosticTlv.d.ts.map +1 -1
- package/dist/cjs/tlv/NetworkDiagnosticTlv.js.map +1 -1
- package/dist/cjs/tlv/TypeListTlv.d.ts +3 -2
- package/dist/cjs/tlv/TypeListTlv.d.ts.map +1 -1
- package/dist/cjs/tlv/TypeListTlv.js +1 -1
- package/dist/cjs/tlv/TypeListTlv.js.map +1 -1
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.d.ts +3 -2
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.js +5 -3
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.js.map +1 -1
- package/dist/cjs/tlv/diag/ChildTable.d.ts +3 -2
- package/dist/cjs/tlv/diag/ChildTable.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/ChildTable.js +7 -6
- package/dist/cjs/tlv/diag/ChildTable.js.map +1 -1
- package/dist/cjs/tlv/diag/Connectivity.d.ts +3 -2
- package/dist/cjs/tlv/diag/Connectivity.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Connectivity.js +14 -14
- package/dist/cjs/tlv/diag/Connectivity.js.map +1 -1
- package/dist/cjs/tlv/diag/Ipv6AddressList.d.ts +3 -2
- package/dist/cjs/tlv/diag/Ipv6AddressList.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Ipv6AddressList.js +6 -5
- package/dist/cjs/tlv/diag/Ipv6AddressList.js.map +1 -1
- package/dist/cjs/tlv/diag/LeaderData.d.ts +3 -2
- package/dist/cjs/tlv/diag/LeaderData.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/LeaderData.js +8 -7
- package/dist/cjs/tlv/diag/LeaderData.js.map +1 -1
- package/dist/cjs/tlv/diag/MacCounters.d.ts +3 -2
- package/dist/cjs/tlv/diag/MacCounters.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/MacCounters.js +12 -11
- package/dist/cjs/tlv/diag/MacCounters.js.map +1 -1
- package/dist/cjs/tlv/diag/MleCounters.d.ts +3 -2
- package/dist/cjs/tlv/diag/MleCounters.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/MleCounters.js +18 -17
- package/dist/cjs/tlv/diag/MleCounters.js.map +1 -1
- package/dist/cjs/tlv/diag/Mode.d.ts +3 -2
- package/dist/cjs/tlv/diag/Mode.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Mode.js +5 -3
- package/dist/cjs/tlv/diag/Mode.js.map +1 -1
- package/dist/cjs/tlv/diag/NetworkData.d.ts +7 -6
- package/dist/cjs/tlv/diag/NetworkData.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/NetworkData.js +23 -18
- package/dist/cjs/tlv/diag/NetworkData.js.map +1 -1
- package/dist/cjs/tlv/diag/Primitives.d.ts +15 -14
- package/dist/cjs/tlv/diag/Primitives.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Primitives.js +25 -19
- package/dist/cjs/tlv/diag/Primitives.js.map +1 -1
- package/dist/cjs/tlv/diag/Route64.d.ts +3 -2
- package/dist/cjs/tlv/diag/Route64.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Route64.js +8 -7
- package/dist/cjs/tlv/diag/Route64.js.map +1 -1
- package/dist/cjs/tlv/diag/RouterNeighbor.d.ts +3 -2
- package/dist/cjs/tlv/diag/RouterNeighbor.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/RouterNeighbor.js +13 -11
- package/dist/cjs/tlv/diag/RouterNeighbor.js.map +1 -1
- package/dist/cjs/tlv/diag/Timeout.d.ts +3 -2
- package/dist/cjs/tlv/diag/Timeout.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Timeout.js +4 -3
- package/dist/cjs/tlv/diag/Timeout.js.map +1 -1
- package/dist/cjs/tlv/diag/VendorInfo.d.ts +13 -12
- package/dist/cjs/tlv/diag/VendorInfo.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/VendorInfo.js +4 -3
- package/dist/cjs/tlv/diag/VendorInfo.js.map +1 -1
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.d.ts +3 -2
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.d.ts.map +1 -1
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.js +7 -4
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.js.map +1 -1
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.d.ts +4 -3
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.d.ts.map +1 -1
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.js +9 -7
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.js.map +1 -1
- package/dist/cjs/util/meshLocalAddr.d.ts +5 -4
- package/dist/cjs/util/meshLocalAddr.d.ts.map +1 -1
- package/dist/cjs/util/meshLocalAddr.js +6 -4
- package/dist/cjs/util/meshLocalAddr.js.map +1 -1
- package/dist/esm/coap/CoapClient.d.ts +2 -2
- package/dist/esm/coap/CoapClient.d.ts.map +1 -1
- package/dist/esm/coap/CoapClient.js +11 -17
- package/dist/esm/coap/CoapClient.js.map +1 -1
- package/dist/esm/coap/CoapMessage.d.ts +11 -6
- package/dist/esm/coap/CoapMessage.d.ts.map +1 -1
- package/dist/esm/coap/CoapMessage.js +8 -5
- package/dist/esm/coap/CoapMessage.js.map +1 -1
- package/dist/esm/commissioner/Commissioner.d.ts.map +1 -1
- package/dist/esm/commissioner/Commissioner.js +5 -2
- package/dist/esm/commissioner/Commissioner.js.map +1 -1
- package/dist/esm/commissioner/LeadKa.d.ts +3 -3
- package/dist/esm/commissioner/LeadKa.d.ts.map +1 -1
- package/dist/esm/commissioner/LeadKa.js +2 -2
- package/dist/esm/commissioner/LeadKa.js.map +1 -1
- package/dist/esm/commissioner/LeadPet.d.ts +3 -2
- package/dist/esm/commissioner/LeadPet.d.ts.map +1 -1
- package/dist/esm/commissioner/LeadPet.js +4 -3
- package/dist/esm/commissioner/LeadPet.js.map +1 -1
- package/dist/esm/credentials/ThreadCredentialsRegistry.d.ts +5 -5
- package/dist/esm/credentials/ThreadCredentialsRegistry.d.ts.map +1 -1
- package/dist/esm/credentials/ThreadCredentialsRegistry.js +10 -9
- package/dist/esm/credentials/ThreadCredentialsRegistry.js.map +1 -1
- package/dist/esm/credentials/ThreadNetworkCredentials.d.ts +4 -3
- package/dist/esm/credentials/ThreadNetworkCredentials.d.ts.map +1 -1
- package/dist/esm/crypto/AesCmacPrf128.d.ts +4 -14
- package/dist/esm/crypto/AesCmacPrf128.d.ts.map +1 -1
- package/dist/esm/crypto/AesCmacPrf128.js +8 -72
- package/dist/esm/crypto/AesCmacPrf128.js.map +2 -2
- package/dist/esm/crypto/Pbkdf2AesCmac.d.ts +5 -4
- package/dist/esm/crypto/Pbkdf2AesCmac.d.ts.map +1 -1
- package/dist/esm/crypto/Pbkdf2AesCmac.js +6 -5
- package/dist/esm/crypto/Pbkdf2AesCmac.js.map +1 -1
- package/dist/esm/crypto/Pskc.d.ts +4 -3
- package/dist/esm/crypto/Pskc.d.ts.map +1 -1
- package/dist/esm/crypto/Pskc.js +7 -6
- package/dist/esm/crypto/Pskc.js.map +1 -1
- package/dist/esm/crypto/index.d.ts +1 -1
- package/dist/esm/crypto/index.d.ts.map +1 -1
- package/dist/esm/crypto/index.js +1 -2
- package/dist/esm/crypto/index.js.map +1 -1
- package/dist/esm/dataset/OperationalDataset.d.ts +10 -10
- package/dist/esm/dataset/OperationalDataset.d.ts.map +1 -1
- package/dist/esm/dataset/OperationalDataset.js +32 -31
- package/dist/esm/dataset/OperationalDataset.js.map +1 -1
- package/dist/esm/dataset/SecurityPolicy.d.ts +3 -2
- package/dist/esm/dataset/SecurityPolicy.d.ts.map +1 -1
- package/dist/esm/dataset/SecurityPolicy.js +6 -5
- package/dist/esm/dataset/SecurityPolicy.js.map +1 -1
- package/dist/esm/diagnostic/DiagnosticResponse.d.ts +5 -4
- package/dist/esm/diagnostic/DiagnosticResponse.d.ts.map +1 -1
- package/dist/esm/diagnostic/DiagnosticSource.d.ts +2 -2
- package/dist/esm/diagnostic/DiagnosticSource.d.ts.map +1 -1
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.d.ts +7 -3
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.d.ts.map +1 -1
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.js +49 -43
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.js.map +1 -1
- package/dist/esm/diagnostic/connectMeshcop.d.ts.map +1 -1
- package/dist/esm/diagnostic/connectMeshcop.js +6 -13
- package/dist/esm/diagnostic/connectMeshcop.js.map +1 -1
- package/dist/esm/diagnostic/errors.d.ts +1 -1
- package/dist/esm/diagnostic/errors.d.ts.map +1 -1
- package/dist/esm/discovery/BorderRouterRegistry.d.ts.map +1 -1
- package/dist/esm/discovery/BorderRouterRegistry.js +2 -4
- package/dist/esm/discovery/BorderRouterRegistry.js.map +1 -1
- package/dist/esm/dtls/channel/DtlsConnectOpts.d.ts +3 -3
- package/dist/esm/dtls/channel/DtlsConnectOpts.d.ts.map +1 -1
- package/dist/esm/dtls/channel/NobleDtlsChannel.d.ts.map +1 -1
- package/dist/esm/dtls/channel/NobleDtlsChannel.js +90 -58
- package/dist/esm/dtls/channel/NobleDtlsChannel.js.map +1 -1
- package/dist/esm/dtls/ecjpake/EcJpakePms.d.ts +5 -4
- package/dist/esm/dtls/ecjpake/EcJpakePms.d.ts.map +1 -1
- package/dist/esm/dtls/ecjpake/EcJpakePms.js +5 -6
- package/dist/esm/dtls/ecjpake/EcJpakePms.js.map +1 -1
- package/dist/esm/dtls/ecjpake/EcJpakeRound.d.ts +16 -15
- package/dist/esm/dtls/ecjpake/EcJpakeRound.d.ts.map +1 -1
- package/dist/esm/dtls/ecjpake/EcJpakeRound.js +41 -30
- package/dist/esm/dtls/ecjpake/EcJpakeRound.js.map +1 -1
- package/dist/esm/dtls/ecjpake/SchnorrZkp.d.ts +10 -9
- package/dist/esm/dtls/ecjpake/SchnorrZkp.d.ts.map +1 -1
- package/dist/esm/dtls/ecjpake/SchnorrZkp.js +18 -14
- package/dist/esm/dtls/ecjpake/SchnorrZkp.js.map +1 -1
- package/dist/esm/dtls/handshake/ChangeCipherSpec.d.ts +2 -1
- package/dist/esm/dtls/handshake/ChangeCipherSpec.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ChangeCipherSpec.js +3 -1
- package/dist/esm/dtls/handshake/ChangeCipherSpec.js.map +1 -1
- package/dist/esm/dtls/handshake/ClientHelloMessage.d.ts +27 -4
- package/dist/esm/dtls/handshake/ClientHelloMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ClientHelloMessage.js +4 -2
- package/dist/esm/dtls/handshake/ClientHelloMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.d.ts +2 -1
- package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/DtlsClient.d.ts +9 -6
- package/dist/esm/dtls/handshake/DtlsClient.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/DtlsClient.js +100 -78
- package/dist/esm/dtls/handshake/DtlsClient.js.map +1 -1
- package/dist/esm/dtls/handshake/FinishedMessage.d.ts +10 -3
- package/dist/esm/dtls/handshake/FinishedMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/FinishedMessage.js +5 -3
- package/dist/esm/dtls/handshake/FinishedMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/HandshakeMessage.d.ts +5 -4
- package/dist/esm/dtls/handshake/HandshakeMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/HandshakeMessage.js +14 -12
- package/dist/esm/dtls/handshake/HandshakeMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.d.ts +19 -2
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.js +3 -1
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.d.ts +2 -1
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.js +3 -2
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/ServerHelloMessage.d.ts +4 -3
- package/dist/esm/dtls/handshake/ServerHelloMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ServerHelloMessage.js +3 -1
- package/dist/esm/dtls/handshake/ServerHelloMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.d.ts +2 -1
- package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.js.map +1 -1
- package/dist/esm/dtls/prf/HandshakeTranscript.d.ts +7 -5
- package/dist/esm/dtls/prf/HandshakeTranscript.d.ts.map +1 -1
- package/dist/esm/dtls/prf/HandshakeTranscript.js +15 -10
- package/dist/esm/dtls/prf/HandshakeTranscript.js.map +1 -1
- package/dist/esm/dtls/prf/TlsPrf.d.ts +23 -22
- package/dist/esm/dtls/prf/TlsPrf.d.ts.map +1 -1
- package/dist/esm/dtls/prf/TlsPrf.js +34 -31
- package/dist/esm/dtls/prf/TlsPrf.js.map +1 -1
- package/dist/esm/dtls/record/AesCcm8.d.ts +13 -12
- package/dist/esm/dtls/record/AesCcm8.d.ts.map +1 -1
- package/dist/esm/dtls/record/AesCcm8.js +13 -35
- package/dist/esm/dtls/record/AesCcm8.js.map +1 -1
- package/dist/esm/dtls/record/DtlsCipherState.d.ts +11 -10
- package/dist/esm/dtls/record/DtlsCipherState.d.ts.map +1 -1
- package/dist/esm/dtls/record/DtlsCipherState.js +11 -7
- package/dist/esm/dtls/record/DtlsCipherState.js.map +1 -1
- package/dist/esm/dtls/record/DtlsRecord.d.ts +10 -10
- package/dist/esm/dtls/record/DtlsRecord.d.ts.map +1 -1
- package/dist/esm/dtls/record/DtlsRecord.js +11 -9
- package/dist/esm/dtls/record/DtlsRecord.js.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestCapability.d.ts +3 -4
- package/dist/esm/otbr-rest/OtbrRestCapability.d.ts.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestClient.d.ts +27 -8
- package/dist/esm/otbr-rest/OtbrRestClient.d.ts.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestClient.js +51 -21
- package/dist/esm/otbr-rest/OtbrRestClient.js.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.d.ts +2 -1
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.d.ts.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.js +4 -4
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.js.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestProbe.d.ts +6 -4
- package/dist/esm/otbr-rest/OtbrRestProbe.d.ts.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestProbe.js +12 -44
- package/dist/esm/otbr-rest/OtbrRestProbe.js.map +1 -1
- package/dist/esm/otbr-rest/caseNormalizer.d.ts +7 -0
- package/dist/esm/otbr-rest/caseNormalizer.d.ts.map +1 -1
- package/dist/esm/otbr-rest/caseNormalizer.js +11 -0
- package/dist/esm/otbr-rest/caseNormalizer.js.map +1 -1
- package/dist/esm/otbr-rest/parseHexBytes.d.ts +22 -0
- package/dist/esm/otbr-rest/parseHexBytes.d.ts.map +1 -0
- package/dist/esm/otbr-rest/parseHexBytes.js +30 -0
- package/dist/esm/otbr-rest/parseHexBytes.js.map +6 -0
- package/dist/esm/otbr-rest/translation.d.ts +2 -1
- package/dist/esm/otbr-rest/translation.d.ts.map +1 -1
- package/dist/esm/otbr-rest/translation.js +16 -18
- package/dist/esm/otbr-rest/translation.js.map +1 -1
- package/dist/esm/selection/selectBr.d.ts +8 -4
- package/dist/esm/selection/selectBr.d.ts.map +1 -1
- package/dist/esm/selection/selectBr.js +6 -5
- package/dist/esm/selection/selectBr.js.map +1 -1
- package/dist/esm/selection/withExtPanIdLock.d.ts +2 -1
- package/dist/esm/selection/withExtPanIdLock.d.ts.map +1 -1
- package/dist/esm/selection/withExtPanIdLock.js.map +1 -1
- package/dist/esm/tlv/BasicTlvCodec.d.ts +4 -4
- package/dist/esm/tlv/BasicTlvCodec.d.ts.map +1 -1
- package/dist/esm/tlv/BasicTlvCodec.js +14 -12
- package/dist/esm/tlv/BasicTlvCodec.js.map +1 -1
- package/dist/esm/tlv/NetworkDiagnosticTlv.d.ts +3 -2
- package/dist/esm/tlv/NetworkDiagnosticTlv.d.ts.map +1 -1
- package/dist/esm/tlv/NetworkDiagnosticTlv.js.map +1 -1
- package/dist/esm/tlv/TypeListTlv.d.ts +3 -2
- package/dist/esm/tlv/TypeListTlv.d.ts.map +1 -1
- package/dist/esm/tlv/TypeListTlv.js +2 -2
- package/dist/esm/tlv/TypeListTlv.js.map +1 -1
- package/dist/esm/tlv/diag/ChildIpv6AddressList.d.ts +3 -2
- package/dist/esm/tlv/diag/ChildIpv6AddressList.d.ts.map +1 -1
- package/dist/esm/tlv/diag/ChildIpv6AddressList.js +5 -3
- package/dist/esm/tlv/diag/ChildIpv6AddressList.js.map +1 -1
- package/dist/esm/tlv/diag/ChildTable.d.ts +3 -2
- package/dist/esm/tlv/diag/ChildTable.d.ts.map +1 -1
- package/dist/esm/tlv/diag/ChildTable.js +8 -7
- package/dist/esm/tlv/diag/ChildTable.js.map +1 -1
- package/dist/esm/tlv/diag/Connectivity.d.ts +3 -2
- package/dist/esm/tlv/diag/Connectivity.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Connectivity.js +14 -14
- package/dist/esm/tlv/diag/Connectivity.js.map +1 -1
- package/dist/esm/tlv/diag/Ipv6AddressList.d.ts +3 -2
- package/dist/esm/tlv/diag/Ipv6AddressList.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Ipv6AddressList.js +7 -6
- package/dist/esm/tlv/diag/Ipv6AddressList.js.map +1 -1
- package/dist/esm/tlv/diag/LeaderData.d.ts +3 -2
- package/dist/esm/tlv/diag/LeaderData.d.ts.map +1 -1
- package/dist/esm/tlv/diag/LeaderData.js +9 -8
- package/dist/esm/tlv/diag/LeaderData.js.map +1 -1
- package/dist/esm/tlv/diag/MacCounters.d.ts +3 -2
- package/dist/esm/tlv/diag/MacCounters.d.ts.map +1 -1
- package/dist/esm/tlv/diag/MacCounters.js +13 -12
- package/dist/esm/tlv/diag/MacCounters.js.map +1 -1
- package/dist/esm/tlv/diag/MleCounters.d.ts +3 -2
- package/dist/esm/tlv/diag/MleCounters.d.ts.map +1 -1
- package/dist/esm/tlv/diag/MleCounters.js +19 -18
- package/dist/esm/tlv/diag/MleCounters.js.map +1 -1
- package/dist/esm/tlv/diag/Mode.d.ts +3 -2
- package/dist/esm/tlv/diag/Mode.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Mode.js +5 -3
- package/dist/esm/tlv/diag/Mode.js.map +1 -1
- package/dist/esm/tlv/diag/NetworkData.d.ts +7 -6
- package/dist/esm/tlv/diag/NetworkData.d.ts.map +1 -1
- package/dist/esm/tlv/diag/NetworkData.js +23 -18
- package/dist/esm/tlv/diag/NetworkData.js.map +1 -1
- package/dist/esm/tlv/diag/Primitives.d.ts +15 -14
- package/dist/esm/tlv/diag/Primitives.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Primitives.js +26 -20
- package/dist/esm/tlv/diag/Primitives.js.map +1 -1
- package/dist/esm/tlv/diag/Route64.d.ts +3 -2
- package/dist/esm/tlv/diag/Route64.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Route64.js +9 -8
- package/dist/esm/tlv/diag/Route64.js.map +1 -1
- package/dist/esm/tlv/diag/RouterNeighbor.d.ts +3 -2
- package/dist/esm/tlv/diag/RouterNeighbor.d.ts.map +1 -1
- package/dist/esm/tlv/diag/RouterNeighbor.js +13 -11
- package/dist/esm/tlv/diag/RouterNeighbor.js.map +1 -1
- package/dist/esm/tlv/diag/Timeout.d.ts +3 -2
- package/dist/esm/tlv/diag/Timeout.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Timeout.js +5 -4
- package/dist/esm/tlv/diag/Timeout.js.map +1 -1
- package/dist/esm/tlv/diag/VendorInfo.d.ts +13 -12
- package/dist/esm/tlv/diag/VendorInfo.d.ts.map +1 -1
- package/dist/esm/tlv/diag/VendorInfo.js +5 -4
- package/dist/esm/tlv/diag/VendorInfo.js.map +1 -1
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.d.ts +3 -2
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.d.ts.map +1 -1
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.js +7 -4
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.js.map +1 -1
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.d.ts +4 -3
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.d.ts.map +1 -1
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.js +10 -8
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.js.map +1 -1
- package/dist/esm/util/meshLocalAddr.d.ts +5 -4
- package/dist/esm/util/meshLocalAddr.d.ts.map +1 -1
- package/dist/esm/util/meshLocalAddr.js +7 -5
- package/dist/esm/util/meshLocalAddr.js.map +1 -1
- package/package.json +5 -5
- package/src/coap/CoapClient.ts +13 -20
- package/src/coap/CoapMessage.ts +17 -9
- package/src/commissioner/Commissioner.ts +5 -2
- package/src/commissioner/LeadKa.ts +4 -4
- package/src/commissioner/LeadPet.ts +6 -5
- package/src/credentials/ThreadCredentialsRegistry.ts +14 -13
- package/src/credentials/ThreadNetworkCredentials.ts +5 -3
- package/src/crypto/AesCmacPrf128.ts +10 -87
- package/src/crypto/Pbkdf2AesCmac.ts +14 -10
- package/src/crypto/Pskc.ts +7 -6
- package/src/crypto/index.ts +1 -1
- package/src/dataset/OperationalDataset.ts +48 -47
- package/src/dataset/SecurityPolicy.ts +8 -7
- package/src/diagnostic/DiagnosticResponse.ts +5 -4
- package/src/diagnostic/DiagnosticSource.ts +2 -2
- package/src/diagnostic/MeshCopDiagnosticSource.ts +80 -64
- package/src/diagnostic/connectMeshcop.ts +6 -14
- package/src/diagnostic/errors.ts +1 -1
- package/src/discovery/BorderRouterRegistry.ts +2 -4
- package/src/dtls/channel/DtlsConnectOpts.ts +3 -3
- package/src/dtls/channel/NobleDtlsChannel.ts +96 -60
- package/src/dtls/ecjpake/EcJpakePms.ts +5 -6
- package/src/dtls/ecjpake/EcJpakeRound.ts +57 -37
- package/src/dtls/ecjpake/SchnorrZkp.ts +43 -30
- package/src/dtls/handshake/ChangeCipherSpec.ts +3 -1
- package/src/dtls/handshake/ClientHelloMessage.ts +8 -6
- package/src/dtls/handshake/ClientKeyExchangeMessage.ts +2 -1
- package/src/dtls/handshake/DtlsClient.ts +119 -95
- package/src/dtls/handshake/FinishedMessage.ts +5 -3
- package/src/dtls/handshake/HandshakeMessage.ts +18 -16
- package/src/dtls/handshake/HelloVerifyRequestMessage.ts +3 -1
- package/src/dtls/handshake/ServerHelloDoneMessage.ts +5 -3
- package/src/dtls/handshake/ServerHelloMessage.ts +5 -3
- package/src/dtls/handshake/ServerKeyExchangeMessage.ts +2 -1
- package/src/dtls/prf/HandshakeTranscript.ts +18 -11
- package/src/dtls/prf/TlsPrf.ts +68 -54
- package/src/dtls/record/AesCcm8.ts +23 -49
- package/src/dtls/record/DtlsCipherState.ts +20 -16
- package/src/dtls/record/DtlsRecord.ts +17 -15
- package/src/otbr-rest/OtbrRestCapability.ts +4 -4
- package/src/otbr-rest/OtbrRestClient.ts +64 -29
- package/src/otbr-rest/OtbrRestDiagnosticSource.ts +5 -5
- package/src/otbr-rest/OtbrRestProbe.ts +12 -47
- package/src/otbr-rest/caseNormalizer.ts +17 -0
- package/src/otbr-rest/parseHexBytes.ts +47 -0
- package/src/otbr-rest/translation.ts +24 -22
- package/src/selection/selectBr.ts +26 -13
- package/src/selection/withExtPanIdLock.ts +1 -1
- package/src/tlv/BasicTlvCodec.ts +17 -15
- package/src/tlv/NetworkDiagnosticTlv.ts +3 -2
- package/src/tlv/TypeListTlv.ts +4 -4
- package/src/tlv/diag/ChildIpv6AddressList.ts +8 -5
- package/src/tlv/diag/ChildTable.ts +10 -9
- package/src/tlv/diag/Connectivity.ts +16 -16
- package/src/tlv/diag/Ipv6AddressList.ts +9 -8
- package/src/tlv/diag/LeaderData.ts +11 -10
- package/src/tlv/diag/MacCounters.ts +15 -14
- package/src/tlv/diag/MleCounters.ts +21 -20
- package/src/tlv/diag/Mode.ts +7 -5
- package/src/tlv/diag/NetworkData.ts +31 -26
- package/src/tlv/diag/Primitives.ts +42 -36
- package/src/tlv/diag/Route64.ts +11 -10
- package/src/tlv/diag/RouterNeighbor.ts +16 -13
- package/src/tlv/diag/Timeout.ts +7 -6
- package/src/tlv/diag/VendorInfo.ts +19 -18
- package/src/tlv/meshcop/Ip6AddressTlv.ts +9 -6
- package/src/tlv/meshcop/UdpEncapsulationTlv.ts +13 -11
- package/src/util/meshLocalAddr.ts +10 -8
|
@@ -21,6 +21,7 @@ __export(HelloVerifyRequestMessage_exports, {
|
|
|
21
21
|
HelloVerifyRequestMessage: () => HelloVerifyRequestMessage
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(HelloVerifyRequestMessage_exports);
|
|
24
|
+
var import_general = require("@matter/general");
|
|
24
25
|
var import_DtlsChannel = require("../channel/DtlsChannel.js");
|
|
25
26
|
/**
|
|
26
27
|
* @license
|
|
@@ -29,7 +30,8 @@ var import_DtlsChannel = require("../channel/DtlsChannel.js");
|
|
|
29
30
|
*/
|
|
30
31
|
const MAX_COOKIE_LEN = 255;
|
|
31
32
|
const HelloVerifyRequestMessage = {
|
|
32
|
-
parse(
|
|
33
|
+
parse(rawBody) {
|
|
34
|
+
const body = import_general.Bytes.of(rawBody);
|
|
33
35
|
if (body.length < 2 + 1) {
|
|
34
36
|
throw new import_DtlsChannel.DtlsError(`HelloVerifyRequest body truncated: have ${body.length}, need >= 3`);
|
|
35
37
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/dtls/handshake/HelloVerifyRequestMessage.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBA,yBAA0B;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBA,qBAAsB;AACtB,yBAA0B;AAxB1B;AAAA;AAAA;AAAA;AAAA;AA0BA,MAAM,iBAAiB;AAEhB,MAAM,4BAA4B;AAAA,EACrC,MAAM,SAAmC;AACrC,UAAM,OAAO,qBAAM,GAAG,OAAO;AAC7B,QAAI,KAAK,SAAS,IAAI,GAAG;AACrB,YAAM,IAAI,6BAAU,2CAA2C,KAAK,MAAM,aAAa;AAAA,IAC3F;AAEA,UAAM,YAAY,KAAK,CAAC;AACxB,QAAI,YAAY,gBAAgB;AAC5B,YAAM,IAAI,6BAAU,oCAAoC,SAAS,YAAY,cAAc,EAAE;AAAA,IACjG;AACA,UAAM,cAAc,IAAI,IAAI;AAC5B,QAAI,KAAK,WAAW,aAAa;AAC7B,YAAM,IAAI;AAAA,QACN,kCAAkC,KAAK,MAAM,iCAAiC,SAAS,cAAc,WAAW;AAAA,MACpH;AAAA,IACJ;AAEA,WAAO,EAAE,QAAQ,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AAAA,EAClD;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Bytes } from "@matter/general";
|
|
6
7
|
/**
|
|
7
8
|
* ServerHelloDone body parser (RFC 5246 §7.4.5). The body is empty; this
|
|
8
9
|
* exists only so the state machine has a uniform per-message entry point and
|
|
9
10
|
* a single place to fail loudly if a future BR ever sends payload bytes here.
|
|
10
11
|
*/
|
|
11
12
|
export declare const ServerHelloDoneMessage: {
|
|
12
|
-
parse(body:
|
|
13
|
+
parse(body: Bytes): void;
|
|
13
14
|
};
|
|
14
15
|
//# sourceMappingURL=ServerHelloDoneMessage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerHelloDoneMessage.d.ts","sourceRoot":"","sources":["../../../../src/dtls/handshake/ServerHelloDoneMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"ServerHelloDoneMessage.d.ts","sourceRoot":"","sources":["../../../../src/dtls/handshake/ServerHelloDoneMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;IAC/B,KAAK,OAAO,KAAK,GAAG,IAAI;CAMlB,CAAC"}
|
|
@@ -29,8 +29,9 @@ var import_DtlsChannel = require("../channel/DtlsChannel.js");
|
|
|
29
29
|
*/
|
|
30
30
|
const ServerHelloDoneMessage = {
|
|
31
31
|
parse(body) {
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
const length = body.byteLength;
|
|
33
|
+
if (length !== 0) {
|
|
34
|
+
throw new import_DtlsChannel.DtlsError(`ServerHelloDone body must be empty, got ${length} bytes`);
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/dtls/handshake/ServerHelloDoneMessage.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,yBAA0B;AAP1B;AAAA;AAAA;AAAA;AAAA;AAcO,MAAM,yBAAyB;AAAA,EAClC,MAAM,MAAmB;AACrB,UAAM,SAAS,KAAK;AACpB,QAAI,WAAW,GAAG;AACd,YAAM,IAAI,6BAAU,2CAA2C,MAAM,QAAQ;AAAA,IACjF;AAAA,EACJ;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Bytes } from "@matter/general";
|
|
6
7
|
export interface ParsedServerHello {
|
|
7
8
|
/** Server's 32-byte random — feeds the TLS PRF. */
|
|
8
|
-
serverRandom:
|
|
9
|
+
serverRandom: Bytes;
|
|
9
10
|
/** Server's `ecjpake_kkpp` extension data (round-1 ECJPAKEKeyKPPairList). */
|
|
10
|
-
ecjpakeKkpp:
|
|
11
|
+
ecjpakeKkpp: Bytes;
|
|
11
12
|
}
|
|
12
13
|
export declare const ServerHelloMessage: {
|
|
13
|
-
parse(
|
|
14
|
+
parse(rawBody: Bytes): ParsedServerHello;
|
|
14
15
|
};
|
|
15
16
|
//# sourceMappingURL=ServerHelloMessage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerHelloMessage.d.ts","sourceRoot":"","sources":["../../../../src/dtls/handshake/ServerHelloMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"ServerHelloMessage.d.ts","sourceRoot":"","sources":["../../../../src/dtls/handshake/ServerHelloMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAuCxC,MAAM,WAAW,iBAAiB;IAC9B,mDAAmD;IACnD,YAAY,EAAE,KAAK,CAAC;IACpB,6EAA6E;IAC7E,WAAW,EAAE,KAAK,CAAC;CACtB;AAED,eAAO,MAAM,kBAAkB;IAC3B,KAAK,UAAU,KAAK,GAAG,iBAAiB;CA6ElC,CAAC"}
|
|
@@ -21,6 +21,7 @@ __export(ServerHelloMessage_exports, {
|
|
|
21
21
|
ServerHelloMessage: () => ServerHelloMessage
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(ServerHelloMessage_exports);
|
|
24
|
+
var import_general = require("@matter/general");
|
|
24
25
|
var import_DtlsChannel = require("../channel/DtlsChannel.js");
|
|
25
26
|
var import_ClientHelloMessage = require("./ClientHelloMessage.js");
|
|
26
27
|
/**
|
|
@@ -36,7 +37,8 @@ function readUint16BE(buf, offset) {
|
|
|
36
37
|
return buf[offset] << 8 | buf[offset + 1];
|
|
37
38
|
}
|
|
38
39
|
const ServerHelloMessage = {
|
|
39
|
-
parse(
|
|
40
|
+
parse(rawBody) {
|
|
41
|
+
const body = import_general.Bytes.of(rawBody);
|
|
40
42
|
if (body.length < 2 + RANDOM_LEN + 1 + 2 + 1) {
|
|
41
43
|
throw new import_DtlsChannel.DtlsError(`ServerHello body truncated: have ${body.length}`);
|
|
42
44
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/dtls/handshake/ServerHelloMessage.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAA0B;AAC1B,gCAAqF;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import type { Bytes } from "@matter/general";
|
|
6
7
|
import { type EcJpakeKeyKP } from "../ecjpake/EcJpakeRound.js";
|
|
7
8
|
/**
|
|
8
9
|
* ServerKeyExchange body parser for `TLS_ECJPAKE_WITH_AES_128_CCM_8`
|
|
@@ -19,6 +20,6 @@ import { type EcJpakeKeyKP } from "../ecjpake/EcJpakeRound.js";
|
|
|
19
20
|
* with `expectEcParameters: false`.
|
|
20
21
|
*/
|
|
21
22
|
export declare const ServerKeyExchangeMessage: {
|
|
22
|
-
parse(body:
|
|
23
|
+
parse(body: Bytes): EcJpakeKeyKP;
|
|
23
24
|
};
|
|
24
25
|
//# sourceMappingURL=ServerKeyExchangeMessage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerKeyExchangeMessage.d.ts","sourceRoot":"","sources":["../../../../src/dtls/handshake/ServerKeyExchangeMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,4BAA4B,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,wBAAwB;IACjC,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"ServerKeyExchangeMessage.d.ts","sourceRoot":"","sources":["../../../../src/dtls/handshake/ServerKeyExchangeMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,4BAA4B,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,wBAAwB;IACjC,KAAK,OAAO,KAAK,GAAG,YAAY;CAM1B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/dtls/handshake/ServerKeyExchangeMessage.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,0BAAgD;AAPhD;AAAA;AAAA;AAAA;AAAA;AAwBO,MAAM,2BAA2B;AAAA,EACpC,MAAM,MAA2B;AAI7B,WAAO,iCAAa,YAAY,MAAM,EAAE,oBAAoB,KAAK,CAAC;AAAA,EACtE;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Bytes, Crypto } from "@matter/general";
|
|
6
7
|
/**
|
|
7
8
|
* Running SHA-256 over the DTLS 1.2 handshake transcript that feeds the
|
|
8
9
|
* Finished MAC (RFC 5246 §7.4.9). The transcript covers every handshake
|
|
@@ -21,16 +22,17 @@
|
|
|
21
22
|
*/
|
|
22
23
|
export declare class HandshakeTranscript {
|
|
23
24
|
#private;
|
|
25
|
+
constructor(crypto: Crypto);
|
|
24
26
|
/**
|
|
25
27
|
* Append a handshake message in DTLS 1.2 form
|
|
26
28
|
* (`type(1) || length(3) || message_seq(2) || fragment_offset(3) || fragment_length(3) || body`).
|
|
27
29
|
*/
|
|
28
|
-
appendHandshakeMessage(messageBytes:
|
|
30
|
+
appendHandshakeMessage(messageBytes: Bytes): void;
|
|
29
31
|
/**
|
|
30
|
-
*
|
|
31
|
-
* the same
|
|
32
|
-
* absorbing later messages.
|
|
32
|
+
* SHA-256 over the messages appended so far. Non-mutating: the buffer keeps
|
|
33
|
+
* growing, so the same transcript yields Finished for both peers and keeps
|
|
34
|
+
* absorbing later messages.
|
|
33
35
|
*/
|
|
34
|
-
digest():
|
|
36
|
+
digest(): Promise<Bytes>;
|
|
35
37
|
}
|
|
36
38
|
//# sourceMappingURL=HandshakeTranscript.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HandshakeTranscript.d.ts","sourceRoot":"","sources":["../../../../src/dtls/prf/HandshakeTranscript.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"HandshakeTranscript.d.ts","sourceRoot":"","sources":["../../../../src/dtls/prf/HandshakeTranscript.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AAI/D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,mBAAmB;;IAI5B,YAAY,MAAM,EAAE,MAAM,EAEzB;IAED;;;OAGG;IACH,sBAAsB,CAAC,YAAY,EAAE,KAAK,GAAG,IAAI,CAMhD;IAED;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAM7B;CACJ"}
|
|
@@ -22,7 +22,6 @@ __export(HandshakeTranscript_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(HandshakeTranscript_exports);
|
|
24
24
|
var import_general = require("@matter/general");
|
|
25
|
-
var import_node_crypto = require("node:crypto");
|
|
26
25
|
/**
|
|
27
26
|
* @license
|
|
28
27
|
* Copyright 2022-2026 Matter.js Authors
|
|
@@ -30,22 +29,28 @@ var import_node_crypto = require("node:crypto");
|
|
|
30
29
|
*/
|
|
31
30
|
const SHA256_LEN = 32;
|
|
32
31
|
class HandshakeTranscript {
|
|
33
|
-
#
|
|
32
|
+
#crypto;
|
|
33
|
+
#chunks = new Array();
|
|
34
|
+
constructor(crypto) {
|
|
35
|
+
this.#crypto = crypto;
|
|
36
|
+
}
|
|
34
37
|
/**
|
|
35
38
|
* Append a handshake message in DTLS 1.2 form
|
|
36
39
|
* (`type(1) || length(3) || message_seq(2) || fragment_offset(3) || fragment_length(3) || body`).
|
|
37
40
|
*/
|
|
38
41
|
appendHandshakeMessage(messageBytes) {
|
|
39
|
-
|
|
42
|
+
const bytes = import_general.Bytes.of(messageBytes);
|
|
43
|
+
if (bytes.length > 0) {
|
|
44
|
+
this.#chunks.push(new Uint8Array(bytes));
|
|
45
|
+
}
|
|
40
46
|
}
|
|
41
47
|
/**
|
|
42
|
-
*
|
|
43
|
-
* the same
|
|
44
|
-
* absorbing later messages.
|
|
48
|
+
* SHA-256 over the messages appended so far. Non-mutating: the buffer keeps
|
|
49
|
+
* growing, so the same transcript yields Finished for both peers and keeps
|
|
50
|
+
* absorbing later messages.
|
|
45
51
|
*/
|
|
46
|
-
digest() {
|
|
47
|
-
const
|
|
48
|
-
const out = new Uint8Array(snapshot.digest());
|
|
52
|
+
async digest() {
|
|
53
|
+
const out = import_general.Bytes.of(await this.#crypto.computeHash(this.#chunks));
|
|
49
54
|
if (out.length !== SHA256_LEN) {
|
|
50
55
|
throw new import_general.InternalError(`HandshakeTranscript digest length ${out.length} != ${SHA256_LEN}`);
|
|
51
56
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/dtls/prf/HandshakeTranscript.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA6C;AAN7C;AAAA;AAAA;AAAA;AAAA;AAQA,MAAM,aAAa;AAkBZ,MAAM,oBAAoB;AAAA,EACpB;AAAA,EACA,UAAU,IAAI,MAAkB;AAAA,EAEzC,YAAY,QAAgB;AACxB,SAAK,UAAU;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,uBAAuB,cAA2B;AAC9C,UAAM,QAAQ,qBAAM,GAAG,YAAY;AACnC,QAAI,MAAM,SAAS,GAAG;AAElB,WAAK,QAAQ,KAAK,IAAI,WAAW,KAAK,CAAC;AAAA,IAC3C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,SAAyB;AAC3B,UAAM,MAAM,qBAAM,GAAG,MAAM,KAAK,QAAQ,YAAY,KAAK,OAAO,CAAC;AACjE,QAAI,IAAI,WAAW,YAAY;AAC3B,YAAM,IAAI,6BAAc,qCAAqC,IAAI,MAAM,OAAO,UAAU,EAAE;AAAA,IAC9F;AACA,WAAO;AAAA,EACX;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Bytes, Crypto } from "@matter/general";
|
|
6
7
|
/**
|
|
7
8
|
* TLS 1.2 pseudo-random function (RFC 5246 §5) using HMAC-SHA256 — the only PRF
|
|
8
9
|
* permitted for `TLS_ECJPAKE_WITH_AES_128_CCM_8` (RFC 6655 §3). Mirrors mbedTLS
|
|
@@ -22,31 +23,31 @@ export declare namespace TlsPrf {
|
|
|
22
23
|
* concatenated with the seed (no length prefix). The label is ASCII per
|
|
23
24
|
* RFC 5246; we encode it as UTF-8 which coincides for ASCII-only input.
|
|
24
25
|
*/
|
|
25
|
-
function compute(args: {
|
|
26
|
-
secret:
|
|
26
|
+
function compute(crypto: Crypto, args: {
|
|
27
|
+
secret: Bytes;
|
|
27
28
|
label: string;
|
|
28
|
-
seed:
|
|
29
|
+
seed: Bytes;
|
|
29
30
|
outputLength: number;
|
|
30
|
-
}):
|
|
31
|
+
}): Promise<Bytes>;
|
|
31
32
|
/**
|
|
32
33
|
* `master_secret = PRF(pre_master_secret, "master secret",
|
|
33
34
|
* ClientHello.random || ServerHello.random)[0..47]`
|
|
34
35
|
* (RFC 5246 §8.1).
|
|
35
36
|
*/
|
|
36
|
-
function masterSecret(args: {
|
|
37
|
-
premasterSecret:
|
|
38
|
-
clientRandom:
|
|
39
|
-
serverRandom:
|
|
40
|
-
}):
|
|
37
|
+
function masterSecret(crypto: Crypto, args: {
|
|
38
|
+
premasterSecret: Bytes;
|
|
39
|
+
clientRandom: Bytes;
|
|
40
|
+
serverRandom: Bytes;
|
|
41
|
+
}): Promise<Bytes>;
|
|
41
42
|
/**
|
|
42
43
|
* Slices of the 40-byte key block for `TLS_ECJPAKE_WITH_AES_128_CCM_8`
|
|
43
44
|
* (AEAD, no MAC keys; RFC 6655 §3, RFC 5246 §6.3).
|
|
44
45
|
*/
|
|
45
46
|
interface KeyBlock {
|
|
46
|
-
clientWriteKey:
|
|
47
|
-
serverWriteKey:
|
|
48
|
-
clientWriteIv:
|
|
49
|
-
serverWriteIv:
|
|
47
|
+
clientWriteKey: Bytes;
|
|
48
|
+
serverWriteKey: Bytes;
|
|
49
|
+
clientWriteIv: Bytes;
|
|
50
|
+
serverWriteIv: Bytes;
|
|
50
51
|
}
|
|
51
52
|
/**
|
|
52
53
|
* `key_block = PRF(master_secret, "key expansion",
|
|
@@ -59,11 +60,11 @@ export declare namespace TlsPrf {
|
|
|
59
60
|
* `client_write_key (16) || server_write_key (16) ||
|
|
60
61
|
* client_write_IV (4) || server_write_IV (4)`.
|
|
61
62
|
*/
|
|
62
|
-
function keyBlock(args: {
|
|
63
|
-
masterSecret:
|
|
64
|
-
clientRandom:
|
|
65
|
-
serverRandom:
|
|
66
|
-
}): KeyBlock
|
|
63
|
+
function keyBlock(crypto: Crypto, args: {
|
|
64
|
+
masterSecret: Bytes;
|
|
65
|
+
clientRandom: Bytes;
|
|
66
|
+
serverRandom: Bytes;
|
|
67
|
+
}): Promise<KeyBlock>;
|
|
67
68
|
/**
|
|
68
69
|
* Finished `verify_data` (RFC 5246 §7.4.9):
|
|
69
70
|
*
|
|
@@ -73,10 +74,10 @@ export declare namespace TlsPrf {
|
|
|
73
74
|
* with `finished_label = "client finished"` for the client-sent Finished
|
|
74
75
|
* and `"server finished"` for the server-sent one.
|
|
75
76
|
*/
|
|
76
|
-
function verifyData(args: {
|
|
77
|
-
masterSecret:
|
|
77
|
+
function verifyData(crypto: Crypto, args: {
|
|
78
|
+
masterSecret: Bytes;
|
|
78
79
|
role: "client" | "server";
|
|
79
|
-
transcriptDigest:
|
|
80
|
-
}):
|
|
80
|
+
transcriptDigest: Bytes;
|
|
81
|
+
}): Promise<Bytes>;
|
|
81
82
|
}
|
|
82
83
|
//# sourceMappingURL=TlsPrf.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TlsPrf.d.ts","sourceRoot":"","sources":["../../../../src/dtls/prf/TlsPrf.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"TlsPrf.d.ts","sourceRoot":"","sources":["../../../../src/dtls/prf/TlsPrf.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AA6C/D;;;;;;GAMG;AACH,yBAAiB,MAAM,CAAC,CAAC;IACrB;;;;;;;;;;OAUG;IACH,SAAsB,OAAO,CACzB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;QACF,MAAM,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,KAAK,CAAC;QACZ,YAAY,EAAE,MAAM,CAAC;KACxB,GACF,OAAO,CAAC,KAAK,CAAC,CAQhB;IAED;;;;OAIG;IACH,SAAsB,YAAY,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;QACF,eAAe,EAAE,KAAK,CAAC;QACvB,YAAY,EAAE,KAAK,CAAC;QACpB,YAAY,EAAE,KAAK,CAAC;KACvB,GACF,OAAO,CAAC,KAAK,CAAC,CAahB;IAED;;;OAGG;IACH,UAAiB,QAAQ;QACrB,cAAc,EAAE,KAAK,CAAC;QACtB,cAAc,EAAE,KAAK,CAAC;QACtB,aAAa,EAAE,KAAK,CAAC;QACrB,aAAa,EAAE,KAAK,CAAC;KACxB;IAED;;;;;;;;;;OAUG;IACH,SAAsB,QAAQ,CAC1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;QACF,YAAY,EAAE,KAAK,CAAC;QACpB,YAAY,EAAE,KAAK,CAAC;QACpB,YAAY,EAAE,KAAK,CAAC;KACvB,GACF,OAAO,CAAC,QAAQ,CAAC,CAiBnB;IAED;;;;;;;;OAQG;IACH,SAAsB,UAAU,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;QACF,YAAY,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAC1B,gBAAgB,EAAE,KAAK,CAAC;KAC3B,GACF,OAAO,CAAC,KAAK,CAAC,CAMhB;CACJ"}
|
|
@@ -22,7 +22,6 @@ __export(TlsPrf_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(TlsPrf_exports);
|
|
24
24
|
var import_general = require("@matter/general");
|
|
25
|
-
var import_node_crypto = require("node:crypto");
|
|
26
25
|
/**
|
|
27
26
|
* @license
|
|
28
27
|
* Copyright 2022-2026 Matter.js Authors
|
|
@@ -36,17 +35,13 @@ const IV_LEN = 4;
|
|
|
36
35
|
const KEY_BLOCK_LEN = KEY_LEN * 2 + IV_LEN * 2;
|
|
37
36
|
const VERIFY_DATA_LEN = 12;
|
|
38
37
|
const ASCII_ENCODER = new TextEncoder();
|
|
39
|
-
function hmacSha256(key, data) {
|
|
40
|
-
const hmac = (0, import_node_crypto.createHmac)("sha256", key);
|
|
41
|
-
hmac.update(data);
|
|
42
|
-
return new Uint8Array(hmac.digest());
|
|
43
|
-
}
|
|
44
38
|
function expectLength(name, value, expected) {
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
const length = value.byteLength;
|
|
40
|
+
if (length !== expected) {
|
|
41
|
+
throw new import_general.InternalError(`TlsPrf ${name} must be ${expected} bytes, got ${length}`);
|
|
47
42
|
}
|
|
48
43
|
}
|
|
49
|
-
function pSha256(secret, seed, outputLength) {
|
|
44
|
+
async function pSha256(crypto, secret, seed, outputLength) {
|
|
50
45
|
if (outputLength < 0) {
|
|
51
46
|
throw new import_general.InternalError(`TlsPrf outputLength must be non-negative, got ${outputLength}`);
|
|
52
47
|
}
|
|
@@ -54,53 +49,61 @@ function pSha256(secret, seed, outputLength) {
|
|
|
54
49
|
if (outputLength === 0) {
|
|
55
50
|
return out;
|
|
56
51
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
block
|
|
52
|
+
const seedBytes = import_general.Bytes.of(seed);
|
|
53
|
+
let a = import_general.Bytes.of(await crypto.signHmac(secret, seedBytes));
|
|
54
|
+
const block = new Uint8Array(SHA256_LEN + seedBytes.length);
|
|
55
|
+
block.set(seedBytes, SHA256_LEN);
|
|
60
56
|
let written = 0;
|
|
61
57
|
while (written < outputLength) {
|
|
62
58
|
block.set(a, 0);
|
|
63
|
-
const next =
|
|
64
|
-
const
|
|
65
|
-
const copyLen = Math.min(SHA256_LEN, remaining);
|
|
59
|
+
const next = import_general.Bytes.of(await crypto.signHmac(secret, block));
|
|
60
|
+
const copyLen = Math.min(SHA256_LEN, outputLength - written);
|
|
66
61
|
out.set(next.subarray(0, copyLen), written);
|
|
67
62
|
written += copyLen;
|
|
68
63
|
if (written < outputLength) {
|
|
69
|
-
a =
|
|
64
|
+
a = import_general.Bytes.of(await crypto.signHmac(secret, a));
|
|
70
65
|
}
|
|
71
66
|
}
|
|
72
67
|
return out;
|
|
73
68
|
}
|
|
74
69
|
var TlsPrf;
|
|
75
70
|
((TlsPrf2) => {
|
|
76
|
-
function compute(args) {
|
|
71
|
+
async function compute(crypto, args) {
|
|
77
72
|
const { secret, label, seed, outputLength } = args;
|
|
78
73
|
const labelBytes = ASCII_ENCODER.encode(label);
|
|
79
|
-
const
|
|
74
|
+
const seedBytes = import_general.Bytes.of(seed);
|
|
75
|
+
const combined = new Uint8Array(labelBytes.length + seedBytes.length);
|
|
80
76
|
combined.set(labelBytes, 0);
|
|
81
|
-
combined.set(
|
|
82
|
-
return pSha256(secret, combined, outputLength);
|
|
77
|
+
combined.set(seedBytes, labelBytes.length);
|
|
78
|
+
return pSha256(crypto, secret, combined, outputLength);
|
|
83
79
|
}
|
|
84
80
|
TlsPrf2.compute = compute;
|
|
85
|
-
function masterSecret(args) {
|
|
81
|
+
async function masterSecret(crypto, args) {
|
|
86
82
|
const { premasterSecret, clientRandom, serverRandom } = args;
|
|
87
83
|
expectLength("clientRandom", clientRandom, RANDOM_LEN);
|
|
88
84
|
expectLength("serverRandom", serverRandom, RANDOM_LEN);
|
|
89
85
|
const seed = new Uint8Array(RANDOM_LEN * 2);
|
|
90
|
-
seed.set(clientRandom, 0);
|
|
91
|
-
seed.set(serverRandom, RANDOM_LEN);
|
|
92
|
-
return compute(
|
|
86
|
+
seed.set(import_general.Bytes.of(clientRandom), 0);
|
|
87
|
+
seed.set(import_general.Bytes.of(serverRandom), RANDOM_LEN);
|
|
88
|
+
return compute(crypto, {
|
|
89
|
+
secret: premasterSecret,
|
|
90
|
+
label: "master secret",
|
|
91
|
+
seed,
|
|
92
|
+
outputLength: MASTER_SECRET_LEN
|
|
93
|
+
});
|
|
93
94
|
}
|
|
94
95
|
TlsPrf2.masterSecret = masterSecret;
|
|
95
|
-
function keyBlock(args) {
|
|
96
|
+
async function keyBlock(crypto, args) {
|
|
96
97
|
const { masterSecret: ms, clientRandom, serverRandom } = args;
|
|
97
98
|
expectLength("masterSecret", ms, MASTER_SECRET_LEN);
|
|
98
99
|
expectLength("clientRandom", clientRandom, RANDOM_LEN);
|
|
99
100
|
expectLength("serverRandom", serverRandom, RANDOM_LEN);
|
|
100
101
|
const seed = new Uint8Array(RANDOM_LEN * 2);
|
|
101
|
-
seed.set(serverRandom, 0);
|
|
102
|
-
seed.set(clientRandom, RANDOM_LEN);
|
|
103
|
-
const block =
|
|
102
|
+
seed.set(import_general.Bytes.of(serverRandom), 0);
|
|
103
|
+
seed.set(import_general.Bytes.of(clientRandom), RANDOM_LEN);
|
|
104
|
+
const block = import_general.Bytes.of(
|
|
105
|
+
await compute(crypto, { secret: ms, label: "key expansion", seed, outputLength: KEY_BLOCK_LEN })
|
|
106
|
+
);
|
|
104
107
|
return {
|
|
105
108
|
clientWriteKey: block.slice(0, KEY_LEN),
|
|
106
109
|
serverWriteKey: block.slice(KEY_LEN, KEY_LEN * 2),
|
|
@@ -109,12 +112,12 @@ var TlsPrf;
|
|
|
109
112
|
};
|
|
110
113
|
}
|
|
111
114
|
TlsPrf2.keyBlock = keyBlock;
|
|
112
|
-
function verifyData(args) {
|
|
115
|
+
async function verifyData(crypto, args) {
|
|
113
116
|
const { masterSecret: ms, role, transcriptDigest } = args;
|
|
114
117
|
expectLength("masterSecret", ms, MASTER_SECRET_LEN);
|
|
115
118
|
expectLength("transcriptDigest", transcriptDigest, SHA256_LEN);
|
|
116
119
|
const label = role === "client" ? "client finished" : "server finished";
|
|
117
|
-
return compute({ secret: ms, label, seed: transcriptDigest, outputLength: VERIFY_DATA_LEN });
|
|
120
|
+
return compute(crypto, { secret: ms, label, seed: transcriptDigest, outputLength: VERIFY_DATA_LEN });
|
|
118
121
|
}
|
|
119
122
|
TlsPrf2.verifyData = verifyData;
|
|
120
123
|
})(TlsPrf || (TlsPrf = {}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/dtls/prf/TlsPrf.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["TlsPrf"]
|
|
6
6
|
}
|
|
@@ -3,30 +3,31 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Bytes, Crypto } from "@matter/general";
|
|
6
7
|
/**
|
|
7
8
|
* AES-128-CCM with an 8-octet authentication tag, the AEAD primitive used by the
|
|
8
9
|
* `TLS_ECJPAKE_WITH_AES_128_CCM_8` cipher suite (RFC 6655 §3, RFC 3610).
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
* `ciphertext || tag` to match the wire layout expected by the DTLS record layer.
|
|
11
|
+
* Delegates to the matter.js {@link Crypto} abstraction with a fixed 8-byte tag length
|
|
12
|
+
* and returns `ciphertext || tag` to match the wire layout expected by the DTLS record layer.
|
|
12
13
|
*
|
|
13
14
|
* The 12-byte nonce length implies CCM L=3 (15 - 12), giving a 2^24 byte payload
|
|
14
15
|
* limit per record — well above the DTLS 16 KiB record cap.
|
|
15
16
|
*/
|
|
16
17
|
export declare namespace AesCcm8 {
|
|
17
18
|
interface EncryptArgs {
|
|
18
|
-
key:
|
|
19
|
-
nonce:
|
|
20
|
-
aad:
|
|
21
|
-
plaintext:
|
|
19
|
+
key: Bytes;
|
|
20
|
+
nonce: Bytes;
|
|
21
|
+
aad: Bytes;
|
|
22
|
+
plaintext: Bytes;
|
|
22
23
|
}
|
|
23
24
|
interface DecryptArgs {
|
|
24
|
-
key:
|
|
25
|
-
nonce:
|
|
26
|
-
aad:
|
|
27
|
-
ciphertextWithTag:
|
|
25
|
+
key: Bytes;
|
|
26
|
+
nonce: Bytes;
|
|
27
|
+
aad: Bytes;
|
|
28
|
+
ciphertextWithTag: Bytes;
|
|
28
29
|
}
|
|
29
|
-
function encrypt({ key, nonce, aad, plaintext }: EncryptArgs):
|
|
30
|
-
function decrypt({ key, nonce, aad, ciphertextWithTag }: DecryptArgs):
|
|
30
|
+
function encrypt(crypto: Crypto, { key, nonce, aad, plaintext }: EncryptArgs): Promise<Bytes>;
|
|
31
|
+
function decrypt(crypto: Crypto, { key, nonce, aad, ciphertextWithTag }: DecryptArgs): Promise<Bytes>;
|
|
31
32
|
}
|
|
32
33
|
//# sourceMappingURL=AesCcm8.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AesCcm8.d.ts","sourceRoot":"","sources":["../../../../src/dtls/record/AesCcm8.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"AesCcm8.d.ts","sourceRoot":"","sources":["../../../../src/dtls/record/AesCcm8.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AAM/D;;;;;;;;;GASG;AACH,yBAAiB,OAAO,CAAC,CAAC;IACtB,UAAiB,WAAW;QACxB,GAAG,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,KAAK,CAAC;KACpB;IAED,UAAiB,WAAW;QACxB,GAAG,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,KAAK,CAAC;QACX,iBAAiB,EAAE,KAAK,CAAC;KAC5B;IAED,SAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAMzG;IAED,SAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAUjH;CACJ"}
|
|
@@ -22,7 +22,6 @@ __export(AesCcm8_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(AesCcm8_exports);
|
|
24
24
|
var import_general = require("@matter/general");
|
|
25
|
-
var import_node_crypto = require("node:crypto");
|
|
26
25
|
var import_DtlsChannel = require("../channel/DtlsChannel.js");
|
|
27
26
|
/**
|
|
28
27
|
* @license
|
|
@@ -33,45 +32,24 @@ const KEY_LEN = 16;
|
|
|
33
32
|
const TAG_LEN = 8;
|
|
34
33
|
var AesCcm8;
|
|
35
34
|
((AesCcm82) => {
|
|
36
|
-
function encrypt({ key, nonce, aad, plaintext }) {
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
async function encrypt(crypto, { key, nonce, aad, plaintext }) {
|
|
36
|
+
const keyBytes = import_general.Bytes.of(key);
|
|
37
|
+
if (keyBytes.length !== KEY_LEN) {
|
|
38
|
+
throw new import_general.InternalError(`AES-128-CCM-8 key must be ${KEY_LEN} bytes, got ${keyBytes.length}`);
|
|
39
39
|
}
|
|
40
|
-
|
|
41
|
-
cipher.setAAD(aad, { plaintextLength: plaintext.length });
|
|
42
|
-
const body = cipher.update(plaintext);
|
|
43
|
-
const tail = cipher.final();
|
|
44
|
-
const tag = cipher.getAuthTag();
|
|
45
|
-
const out = new Uint8Array(plaintext.length + TAG_LEN);
|
|
46
|
-
out.set(body, 0);
|
|
47
|
-
if (tail.length > 0) {
|
|
48
|
-
out.set(tail, body.length);
|
|
49
|
-
}
|
|
50
|
-
out.set(tag, plaintext.length);
|
|
51
|
-
return out;
|
|
40
|
+
return crypto.encrypt(keyBytes, plaintext, nonce, aad, TAG_LEN);
|
|
52
41
|
}
|
|
53
42
|
AesCcm82.encrypt = encrypt;
|
|
54
|
-
function decrypt({ key, nonce, aad, ciphertextWithTag }) {
|
|
55
|
-
|
|
56
|
-
|
|
43
|
+
async function decrypt(crypto, { key, nonce, aad, ciphertextWithTag }) {
|
|
44
|
+
const keyBytes = import_general.Bytes.of(key);
|
|
45
|
+
if (keyBytes.length !== KEY_LEN) {
|
|
46
|
+
throw new import_general.InternalError(`AES-128-CCM-8 key must be ${KEY_LEN} bytes, got ${keyBytes.length}`);
|
|
57
47
|
}
|
|
58
|
-
|
|
48
|
+
const ciphertextBytes = import_general.Bytes.of(ciphertextWithTag);
|
|
49
|
+
if (ciphertextBytes.length < TAG_LEN) {
|
|
59
50
|
throw new import_DtlsChannel.DtlsError(`AES-128-CCM-8 input shorter than ${TAG_LEN}-byte tag`);
|
|
60
51
|
}
|
|
61
|
-
|
|
62
|
-
const ct = ciphertextWithTag.subarray(0, ctLen);
|
|
63
|
-
const tag = ciphertextWithTag.subarray(ctLen);
|
|
64
|
-
const decipher = (0, import_node_crypto.createDecipheriv)("aes-128-ccm", key, nonce, { authTagLength: TAG_LEN });
|
|
65
|
-
decipher.setAAD(aad, { plaintextLength: ctLen });
|
|
66
|
-
decipher.setAuthTag(tag);
|
|
67
|
-
const body = decipher.update(ct);
|
|
68
|
-
const tail = decipher.final();
|
|
69
|
-
const out = new Uint8Array(ctLen);
|
|
70
|
-
out.set(body, 0);
|
|
71
|
-
if (tail.length > 0) {
|
|
72
|
-
out.set(tail, body.length);
|
|
73
|
-
}
|
|
74
|
-
return out;
|
|
52
|
+
return crypto.decrypt(keyBytes, ciphertextBytes, nonce, aad, TAG_LEN);
|
|
75
53
|
}
|
|
76
54
|
AesCcm82.decrypt = decrypt;
|
|
77
55
|
})(AesCcm8 || (AesCcm8 = {}));
|