@matter/general 0.16.0-alpha.0-20250812-285b75d83 → 0.16.0-alpha.0-20250815-ac9fd6eb0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/codec/DerCodec.d.ts +15 -14
- package/dist/cjs/codec/DerCodec.d.ts.map +1 -1
- package/dist/cjs/codec/DerCodec.js +19 -25
- package/dist/cjs/codec/DerCodec.js.map +1 -1
- package/dist/cjs/codec/DerTypes.d.ts +9 -8
- package/dist/cjs/codec/DerTypes.d.ts.map +1 -1
- package/dist/cjs/codec/DerTypes.js.map +1 -1
- package/dist/cjs/codec/DnsCodec.d.ts +16 -16
- package/dist/cjs/codec/DnsCodec.d.ts.map +1 -1
- package/dist/cjs/codec/DnsCodec.js +7 -7
- package/dist/cjs/codec/DnsCodec.js.map +1 -1
- package/dist/cjs/crypto/Crypto.d.ts +11 -10
- package/dist/cjs/crypto/Crypto.d.ts.map +1 -1
- package/dist/cjs/crypto/Crypto.js +4 -4
- package/dist/cjs/crypto/Crypto.js.map +1 -1
- package/dist/cjs/crypto/Key.d.ts +22 -21
- package/dist/cjs/crypto/Key.d.ts.map +1 -1
- package/dist/cjs/crypto/Key.js +17 -16
- package/dist/cjs/crypto/Key.js.map +1 -1
- package/dist/cjs/crypto/MockCrypto.d.ts.map +1 -1
- package/dist/cjs/crypto/MockCrypto.js +2 -1
- package/dist/cjs/crypto/MockCrypto.js.map +1 -1
- package/dist/cjs/crypto/Spake2p.d.ts +12 -11
- package/dist/cjs/crypto/Spake2p.d.ts.map +1 -1
- package/dist/cjs/crypto/Spake2p.js +15 -11
- package/dist/cjs/crypto/Spake2p.js.map +1 -1
- package/dist/cjs/crypto/StandardCrypto.d.ts +12 -11
- package/dist/cjs/crypto/StandardCrypto.d.ts.map +1 -1
- package/dist/cjs/crypto/StandardCrypto.js +27 -17
- package/dist/cjs/crypto/StandardCrypto.js.map +1 -1
- package/dist/cjs/crypto/aes/Aes.d.ts +2 -1
- package/dist/cjs/crypto/aes/Aes.d.ts.map +1 -1
- package/dist/cjs/crypto/aes/Aes.js +3 -1
- package/dist/cjs/crypto/aes/Aes.js.map +1 -1
- package/dist/cjs/crypto/aes/Ccm.d.ts +4 -3
- package/dist/cjs/crypto/aes/Ccm.d.ts.map +1 -1
- package/dist/cjs/crypto/aes/Ccm.js.map +1 -1
- package/dist/cjs/log/Diagnostic.js +1 -1
- package/dist/cjs/log/Diagnostic.js.map +1 -1
- package/dist/cjs/log/LogFormat.js +1 -1
- package/dist/cjs/log/LogFormat.js.map +1 -1
- package/dist/cjs/log/Logger.js +1 -1
- package/dist/cjs/log/Logger.js.map +1 -1
- package/dist/cjs/net/NetInterface.d.ts +2 -1
- package/dist/cjs/net/NetInterface.d.ts.map +1 -1
- package/dist/cjs/net/NetInterface.js.map +1 -1
- package/dist/cjs/net/TransportInterface.d.ts +2 -1
- package/dist/cjs/net/TransportInterface.d.ts.map +1 -1
- package/dist/cjs/net/TransportInterface.js.map +1 -1
- package/dist/cjs/net/UdpChannel.d.ts +3 -3
- package/dist/cjs/net/UdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/UdpInterface.d.ts +4 -3
- package/dist/cjs/net/UdpInterface.d.ts.map +1 -1
- package/dist/cjs/net/UdpInterface.js.map +1 -1
- package/dist/cjs/net/UdpMulticastServer.d.ts +3 -2
- package/dist/cjs/net/UdpMulticastServer.d.ts.map +1 -1
- package/dist/cjs/net/UdpMulticastServer.js.map +1 -1
- package/dist/cjs/net/mock/MockRouter.d.ts +1 -1
- package/dist/cjs/net/mock/MockRouter.d.ts.map +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.d.ts +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.js.map +1 -1
- package/dist/cjs/net/mock/NetworkSimulator.d.ts +1 -1
- package/dist/cjs/net/mock/NetworkSimulator.d.ts.map +1 -1
- package/dist/cjs/storage/Storage.d.ts +1 -1
- package/dist/cjs/storage/Storage.d.ts.map +1 -1
- package/dist/cjs/storage/StorageBackendMemory.d.ts +1 -1
- package/dist/cjs/storage/StorageBackendMemory.d.ts.map +1 -1
- package/dist/cjs/storage/StorageBackendMemory.js +7 -5
- package/dist/cjs/storage/StorageBackendMemory.js.map +1 -1
- package/dist/cjs/storage/StorageContext.d.ts +1 -1
- package/dist/cjs/storage/StorageContext.d.ts.map +1 -1
- package/dist/cjs/storage/StorageContext.js.map +1 -1
- package/dist/cjs/storage/StringifyTools.d.ts +2 -1
- package/dist/cjs/storage/StringifyTools.d.ts.map +1 -1
- package/dist/cjs/storage/StringifyTools.js +1 -1
- package/dist/cjs/storage/StringifyTools.js.map +1 -1
- package/dist/cjs/transaction/Tx.js +5 -1
- package/dist/cjs/transaction/Tx.js.map +1 -1
- package/dist/cjs/util/Bytes.d.ts +29 -11
- package/dist/cjs/util/Bytes.d.ts.map +1 -1
- package/dist/cjs/util/Bytes.js +30 -11
- package/dist/cjs/util/Bytes.js.map +1 -1
- package/dist/cjs/util/DataReader.d.ts +2 -2
- package/dist/cjs/util/DataReader.d.ts.map +1 -1
- package/dist/cjs/util/DataReader.js +1 -1
- package/dist/cjs/util/DataReader.js.map +1 -1
- package/dist/cjs/util/DataWriter.d.ts +3 -3
- package/dist/cjs/util/DataWriter.d.ts.map +1 -1
- package/dist/cjs/util/DataWriter.js +1 -1
- package/dist/cjs/util/DataWriter.js.map +1 -1
- package/dist/cjs/util/String.d.ts.map +1 -1
- package/dist/cjs/util/String.js +3 -8
- package/dist/cjs/util/String.js.map +1 -1
- package/dist/esm/codec/DerCodec.d.ts +15 -14
- package/dist/esm/codec/DerCodec.d.ts.map +1 -1
- package/dist/esm/codec/DerCodec.js +19 -25
- package/dist/esm/codec/DerCodec.js.map +1 -1
- package/dist/esm/codec/DerTypes.d.ts +9 -8
- package/dist/esm/codec/DerTypes.d.ts.map +1 -1
- package/dist/esm/codec/DerTypes.js.map +1 -1
- package/dist/esm/codec/DnsCodec.d.ts +16 -16
- package/dist/esm/codec/DnsCodec.d.ts.map +1 -1
- package/dist/esm/codec/DnsCodec.js +7 -7
- package/dist/esm/codec/DnsCodec.js.map +1 -1
- package/dist/esm/crypto/Crypto.d.ts +11 -10
- package/dist/esm/crypto/Crypto.d.ts.map +1 -1
- package/dist/esm/crypto/Crypto.js +4 -4
- package/dist/esm/crypto/Crypto.js.map +1 -1
- package/dist/esm/crypto/Key.d.ts +22 -21
- package/dist/esm/crypto/Key.d.ts.map +1 -1
- package/dist/esm/crypto/Key.js +17 -16
- package/dist/esm/crypto/Key.js.map +1 -1
- package/dist/esm/crypto/MockCrypto.d.ts.map +1 -1
- package/dist/esm/crypto/MockCrypto.js +2 -1
- package/dist/esm/crypto/MockCrypto.js.map +1 -1
- package/dist/esm/crypto/Spake2p.d.ts +12 -11
- package/dist/esm/crypto/Spake2p.d.ts.map +1 -1
- package/dist/esm/crypto/Spake2p.js +15 -11
- package/dist/esm/crypto/Spake2p.js.map +1 -1
- package/dist/esm/crypto/StandardCrypto.d.ts +12 -11
- package/dist/esm/crypto/StandardCrypto.d.ts.map +1 -1
- package/dist/esm/crypto/StandardCrypto.js +27 -17
- package/dist/esm/crypto/StandardCrypto.js.map +1 -1
- package/dist/esm/crypto/aes/Aes.d.ts +2 -1
- package/dist/esm/crypto/aes/Aes.d.ts.map +1 -1
- package/dist/esm/crypto/aes/Aes.js +3 -1
- package/dist/esm/crypto/aes/Aes.js.map +1 -1
- package/dist/esm/crypto/aes/Ccm.d.ts +4 -3
- package/dist/esm/crypto/aes/Ccm.d.ts.map +1 -1
- package/dist/esm/crypto/aes/Ccm.js.map +1 -1
- package/dist/esm/log/Diagnostic.js +1 -1
- package/dist/esm/log/Diagnostic.js.map +1 -1
- package/dist/esm/log/LogFormat.js +1 -1
- package/dist/esm/log/LogFormat.js.map +1 -1
- package/dist/esm/log/Logger.js +1 -1
- package/dist/esm/log/Logger.js.map +1 -1
- package/dist/esm/net/NetInterface.d.ts +2 -1
- package/dist/esm/net/NetInterface.d.ts.map +1 -1
- package/dist/esm/net/NetInterface.js.map +1 -1
- package/dist/esm/net/TransportInterface.d.ts +2 -1
- package/dist/esm/net/TransportInterface.d.ts.map +1 -1
- package/dist/esm/net/TransportInterface.js.map +1 -1
- package/dist/esm/net/UdpChannel.d.ts +3 -3
- package/dist/esm/net/UdpChannel.d.ts.map +1 -1
- package/dist/esm/net/UdpInterface.d.ts +4 -3
- package/dist/esm/net/UdpInterface.d.ts.map +1 -1
- package/dist/esm/net/UdpInterface.js.map +1 -1
- package/dist/esm/net/UdpMulticastServer.d.ts +3 -2
- package/dist/esm/net/UdpMulticastServer.d.ts.map +1 -1
- package/dist/esm/net/UdpMulticastServer.js.map +1 -1
- package/dist/esm/net/mock/MockRouter.d.ts +1 -1
- package/dist/esm/net/mock/MockRouter.d.ts.map +1 -1
- package/dist/esm/net/mock/MockUdpChannel.d.ts +1 -1
- package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/esm/net/mock/MockUdpChannel.js.map +1 -1
- package/dist/esm/net/mock/NetworkSimulator.d.ts +1 -1
- package/dist/esm/net/mock/NetworkSimulator.d.ts.map +1 -1
- package/dist/esm/storage/Storage.d.ts +1 -1
- package/dist/esm/storage/Storage.d.ts.map +1 -1
- package/dist/esm/storage/StorageBackendMemory.d.ts +1 -1
- package/dist/esm/storage/StorageBackendMemory.d.ts.map +1 -1
- package/dist/esm/storage/StorageBackendMemory.js +7 -5
- package/dist/esm/storage/StorageBackendMemory.js.map +1 -1
- package/dist/esm/storage/StorageContext.d.ts +1 -1
- package/dist/esm/storage/StorageContext.d.ts.map +1 -1
- package/dist/esm/storage/StorageContext.js.map +1 -1
- package/dist/esm/storage/StringifyTools.d.ts +2 -1
- package/dist/esm/storage/StringifyTools.d.ts.map +1 -1
- package/dist/esm/storage/StringifyTools.js +1 -1
- package/dist/esm/storage/StringifyTools.js.map +1 -1
- package/dist/esm/transaction/Tx.js +5 -1
- package/dist/esm/transaction/Tx.js.map +1 -1
- package/dist/esm/util/Bytes.d.ts +29 -11
- package/dist/esm/util/Bytes.d.ts.map +1 -1
- package/dist/esm/util/Bytes.js +31 -12
- package/dist/esm/util/Bytes.js.map +1 -1
- package/dist/esm/util/DataReader.d.ts +2 -2
- package/dist/esm/util/DataReader.d.ts.map +1 -1
- package/dist/esm/util/DataReader.js +1 -1
- package/dist/esm/util/DataReader.js.map +1 -1
- package/dist/esm/util/DataWriter.d.ts +3 -3
- package/dist/esm/util/DataWriter.d.ts.map +1 -1
- package/dist/esm/util/DataWriter.js +2 -2
- package/dist/esm/util/DataWriter.js.map +1 -1
- package/dist/esm/util/String.d.ts.map +1 -1
- package/dist/esm/util/String.js +3 -8
- package/dist/esm/util/String.js.map +1 -1
- package/package.json +2 -2
- package/src/codec/DerCodec.ts +32 -39
- package/src/codec/DerTypes.ts +4 -3
- package/src/codec/DnsCodec.ts +21 -21
- package/src/crypto/Crypto.ts +16 -26
- package/src/crypto/Key.ts +46 -41
- package/src/crypto/MockCrypto.ts +2 -1
- package/src/crypto/Spake2p.ts +26 -22
- package/src/crypto/StandardCrypto.ts +40 -31
- package/src/crypto/aes/Aes.ts +4 -2
- package/src/crypto/aes/Ccm.ts +4 -3
- package/src/log/Diagnostic.ts +1 -1
- package/src/log/LogFormat.ts +1 -1
- package/src/log/Logger.ts +1 -1
- package/src/net/NetInterface.ts +2 -1
- package/src/net/TransportInterface.ts +2 -1
- package/src/net/UdpChannel.ts +3 -3
- package/src/net/UdpInterface.ts +4 -3
- package/src/net/UdpMulticastServer.ts +3 -2
- package/src/net/mock/MockRouter.ts +1 -1
- package/src/net/mock/MockUdpChannel.ts +1 -1
- package/src/net/mock/NetworkSimulator.ts +1 -1
- package/src/storage/Storage.ts +1 -1
- package/src/storage/StorageBackendMemory.ts +8 -6
- package/src/storage/StorageContext.ts +1 -1
- package/src/storage/StringifyTools.ts +2 -2
- package/src/transaction/Tx.ts +5 -1
- package/src/util/Bytes.ts +59 -21
- package/src/util/DataReader.ts +2 -2
- package/src/util/DataWriter.ts +3 -3
- package/src/util/String.ts +3 -8
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Endian } from "./Bytes.js";
|
|
6
|
+
import { Bytes, Endian } from "./Bytes.js";
|
|
7
7
|
/** Writer that auto-increments its offset after each write. */
|
|
8
8
|
export declare class DataWriter<E extends Endian = Endian.Big> {
|
|
9
9
|
private readonly littleEndian;
|
|
@@ -20,7 +20,7 @@ export declare class DataWriter<E extends Endian = Endian.Big> {
|
|
|
20
20
|
writeInt64(value: number | bigint): void;
|
|
21
21
|
writeFloat(value: number): void;
|
|
22
22
|
writeDouble(value: number): void;
|
|
23
|
-
writeByteArray(value:
|
|
24
|
-
toByteArray(): Uint8Array<
|
|
23
|
+
writeByteArray(value: Bytes): void;
|
|
24
|
+
toByteArray(): Uint8Array<ArrayBufferLike>;
|
|
25
25
|
}
|
|
26
26
|
//# sourceMappingURL=DataWriter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataWriter.d.ts","sourceRoot":"","sources":["../../../src/util/DataWriter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"DataWriter.d.ts","sourceRoot":"","sources":["../../../src/util/DataWriter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAG3C,+DAA+D;AAE/D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,GAAG;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;gBAEtC,MAAM,CAAC,EAAE,CAAC;IAItB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOhC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOjC,UAAU,CAAC,KAAK,EAAE,MAAM;IAOxB,WAAW,CAAC,KAAK,EAAE,MAAM;IAOzB,cAAc,CAAC,KAAK,EAAE,KAAK;IAK3B,WAAW;CAed"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Endian } from "./Bytes.js";
|
|
6
|
+
import { Bytes, Endian } from "./Bytes.js";
|
|
7
7
|
import { toNumber } from "./Number.js";
|
|
8
8
|
class DataWriter {
|
|
9
9
|
littleEndian;
|
|
@@ -71,7 +71,7 @@ class DataWriter {
|
|
|
71
71
|
this.length += 8;
|
|
72
72
|
}
|
|
73
73
|
writeByteArray(value) {
|
|
74
|
-
this.chunks.push(value);
|
|
74
|
+
this.chunks.push(Bytes.of(value));
|
|
75
75
|
this.length += value.byteLength;
|
|
76
76
|
}
|
|
77
77
|
toByteArray() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/DataWriter.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../../src/util/String.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GACE,UAAU,CAAC,CAAC,CAAC,CAClE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,UA8DxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,UAgBvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../../src/util/String.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GACE,UAAU,CAAC,CAAC,CAAC,CAClE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,UA8DxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,UAgBvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,sBAyEnC;AAED,yBAAiB,SAAS,CAAC;IACvB;;OAEG;IACI,MAAM,SAAS,eAAsB,CAAC;IAE7C;;;OAGG;IACH,SAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,OAU9B;IAED;;OAEG;IACH,SAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,WAgBrC;CACJ;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAkBvE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,UAwD3C"}
|
package/dist/esm/util/String.js
CHANGED
|
@@ -107,13 +107,8 @@ function serialize(value) {
|
|
|
107
107
|
if (typeof value2 === "boolean") {
|
|
108
108
|
return value2 ? "true" : "false";
|
|
109
109
|
}
|
|
110
|
-
if (
|
|
111
|
-
|
|
112
|
-
const bytes = Array();
|
|
113
|
-
for (let i = 0; i < dv.byteLength; i++) {
|
|
114
|
-
bytes.push(dv.getUint8(i).toString(16).padStart(2, "0"));
|
|
115
|
-
}
|
|
116
|
-
return bytes.join("");
|
|
110
|
+
if (Bytes.isBytes(value2)) {
|
|
111
|
+
return Bytes.toHex(value2);
|
|
117
112
|
}
|
|
118
113
|
if (visited.has(value2)) {
|
|
119
114
|
return;
|
|
@@ -203,7 +198,7 @@ function serializeToJs(value) {
|
|
|
203
198
|
if (value instanceof Date) {
|
|
204
199
|
return `new Date(${JSON.stringify(value.toISOString)})`;
|
|
205
200
|
}
|
|
206
|
-
if (value
|
|
201
|
+
if (Bytes.isBytes(value)) {
|
|
207
202
|
return `b$\`${Bytes.toHex(value)}\``;
|
|
208
203
|
}
|
|
209
204
|
if (value === null) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/String.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["value", "serialize", "parts"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/general",
|
|
3
|
-
"version": "0.16.0-alpha.0-
|
|
3
|
+
"version": "0.16.0-alpha.0-20250815-ac9fd6eb0",
|
|
4
4
|
"description": "Non-Matter support for Matter.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@noble/curves": "^1.9.5"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@matter/testing": "0.16.0-alpha.0-
|
|
39
|
+
"@matter/testing": "0.16.0-alpha.0-20250815-ac9fd6eb0"
|
|
40
40
|
},
|
|
41
41
|
"files": [
|
|
42
42
|
"dist/**/*",
|
package/src/codec/DerCodec.ts
CHANGED
|
@@ -54,7 +54,7 @@ export const DerObject = (objectId: string, content: any = {}) => ({
|
|
|
54
54
|
[DerKey.ObjectId]: ObjectId(objectId),
|
|
55
55
|
...content,
|
|
56
56
|
});
|
|
57
|
-
export const DerBitString = (data:
|
|
57
|
+
export const DerBitString = (data: Bytes, padding = 0) => ({
|
|
58
58
|
[DerKey.TagId]: DerType.BitString as number,
|
|
59
59
|
[DerKey.Bytes]: data,
|
|
60
60
|
[DerKey.BitsPadding]: padding,
|
|
@@ -63,7 +63,7 @@ export const ContextTagged = (tagId: number, value?: any) => ({
|
|
|
63
63
|
[DerKey.TagId]: tagId | DerClass.ContextSpecific | CONSTRUCTED,
|
|
64
64
|
[DerKey.Bytes]: value === undefined ? new Uint8Array(0) : DerCodec.encode(value),
|
|
65
65
|
});
|
|
66
|
-
export const ContextTaggedBytes = (tagId: number, value:
|
|
66
|
+
export const ContextTaggedBytes = (tagId: number, value: Bytes) => ({
|
|
67
67
|
[DerKey.TagId]: tagId | DerClass.ContextSpecific,
|
|
68
68
|
[DerKey.Bytes]: value,
|
|
69
69
|
});
|
|
@@ -71,19 +71,17 @@ export const DatatypeOverride = (type: DerType, value: any) => ({
|
|
|
71
71
|
[DerKey.TypeOverride]: type,
|
|
72
72
|
[DerKey.RawData]: value,
|
|
73
73
|
});
|
|
74
|
-
export const RawBytes = (bytes:
|
|
74
|
+
export const RawBytes = (bytes: Bytes) => ({
|
|
75
75
|
[DerKey.Bytes]: bytes,
|
|
76
76
|
});
|
|
77
|
-
export const DerBigUint = (number:
|
|
77
|
+
export const DerBigUint = (number: Bytes) => {
|
|
78
78
|
// We don't need bigint support currently, but we can translate here if we ever do
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
number = new Uint8Array(number);
|
|
82
|
-
}
|
|
80
|
+
const numberData = Bytes.of(number);
|
|
83
81
|
|
|
84
82
|
// Ensure value does not encode as negative
|
|
85
|
-
if (
|
|
86
|
-
number = Bytes.concat(new Uint8Array([0]),
|
|
83
|
+
if (numberData[0] & 0x80) {
|
|
84
|
+
number = Bytes.concat(new Uint8Array([0]), numberData);
|
|
87
85
|
}
|
|
88
86
|
|
|
89
87
|
return {
|
|
@@ -94,16 +92,16 @@ export const DerBigUint = (number: Uint8Array | ArrayBuffer) => {
|
|
|
94
92
|
|
|
95
93
|
export type DerNode = {
|
|
96
94
|
[DerKey.TagId]: number;
|
|
97
|
-
[DerKey.Bytes]:
|
|
95
|
+
[DerKey.Bytes]: Bytes;
|
|
98
96
|
[DerKey.Elements]?: DerNode[];
|
|
99
97
|
[DerKey.BitsPadding]?: number;
|
|
100
98
|
};
|
|
101
99
|
|
|
102
100
|
export class DerCodec {
|
|
103
|
-
static encode(value: unknown):
|
|
101
|
+
static encode(value: unknown): Bytes {
|
|
104
102
|
if (Array.isArray(value)) {
|
|
105
103
|
return this.#encodeArray(value);
|
|
106
|
-
} else if (value
|
|
104
|
+
} else if (Bytes.isBytes(value)) {
|
|
107
105
|
return this.#encodeOctetString(value);
|
|
108
106
|
} else if (value instanceof Date) {
|
|
109
107
|
return this.#encodeDate(value);
|
|
@@ -124,17 +122,15 @@ export class DerCodec {
|
|
|
124
122
|
if (bitsPadding !== undefined && typeof bitsPadding !== "number") {
|
|
125
123
|
throw new DerError("Bits padding is not a numeric byte value");
|
|
126
124
|
}
|
|
127
|
-
if (bytes === undefined || !
|
|
125
|
+
if (bytes === undefined || !Bytes.isBytes(bytes)) {
|
|
128
126
|
throw new DerError("DER bytes is not a byte array");
|
|
129
127
|
}
|
|
130
128
|
return this.#encodeAsn1(
|
|
131
129
|
tagId,
|
|
132
|
-
bitsPadding === undefined
|
|
133
|
-
? (bytes as Uint8Array)
|
|
134
|
-
: Bytes.concat(Uint8Array.of(bitsPadding), bytes as Uint8Array),
|
|
130
|
+
bitsPadding === undefined ? bytes : Bytes.concat(Uint8Array.of(bitsPadding), Bytes.of(bytes)),
|
|
135
131
|
);
|
|
136
132
|
} else if (value[DerKey.TypeOverride] !== undefined && value[DerKey.RawData] !== undefined) {
|
|
137
|
-
if (value[DerKey.TypeOverride] === DerType.Integer && value[DerKey.RawData]
|
|
133
|
+
if (value[DerKey.TypeOverride] === DerType.Integer && Bytes.isBytes(value[DerKey.RawData])) {
|
|
138
134
|
return this.#encodeInteger(value[DerKey.RawData]);
|
|
139
135
|
} else if (
|
|
140
136
|
value[DerKey.TypeOverride] === DerType.BitString &&
|
|
@@ -156,11 +152,11 @@ export class DerCodec {
|
|
|
156
152
|
}
|
|
157
153
|
} else if (
|
|
158
154
|
value[DerKey.Bytes] !== undefined &&
|
|
159
|
-
value[DerKey.Bytes]
|
|
155
|
+
Bytes.isBytes(value[DerKey.Bytes]) &&
|
|
160
156
|
Object.keys(value).length === 1
|
|
161
157
|
) {
|
|
162
158
|
// Raw Data
|
|
163
|
-
return value[DerKey.Bytes];
|
|
159
|
+
return Bytes.of(value[DerKey.Bytes]);
|
|
164
160
|
} else if (value[DerKey.TypeOverride] === undefined && value[DerKey.Bytes] === undefined) {
|
|
165
161
|
return this.#encodeObject(value);
|
|
166
162
|
} else {
|
|
@@ -171,7 +167,7 @@ export class DerCodec {
|
|
|
171
167
|
}
|
|
172
168
|
}
|
|
173
169
|
|
|
174
|
-
static decode(data:
|
|
170
|
+
static decode(data: Bytes): DerNode {
|
|
175
171
|
return this.#decodeRec(new DataReader(data));
|
|
176
172
|
}
|
|
177
173
|
|
|
@@ -187,10 +183,10 @@ export class DerCodec {
|
|
|
187
183
|
throw new DerError(`Expected integer but DER tag is ${DerType[value[DerKey.TagId]]}`);
|
|
188
184
|
}
|
|
189
185
|
|
|
190
|
-
|
|
191
|
-
if (!ArrayBuffer.isView(bytes)) {
|
|
186
|
+
if (!Bytes.isBytes(value[DerKey.Bytes])) {
|
|
192
187
|
throw new DerError("Incorrect DER object type");
|
|
193
188
|
}
|
|
189
|
+
const bytes = Bytes.of(value[DerKey.Bytes]);
|
|
194
190
|
|
|
195
191
|
// The common case
|
|
196
192
|
if (bytes.length === byteLength) {
|
|
@@ -244,12 +240,12 @@ export class DerCodec {
|
|
|
244
240
|
return this.#encodeAsn1(DerType.Set | CONSTRUCTED, Bytes.concat(...array.map(element => this.encode(element))));
|
|
245
241
|
}
|
|
246
242
|
|
|
247
|
-
static #encodeOctetString(value:
|
|
243
|
+
static #encodeOctetString(value: Bytes) {
|
|
248
244
|
return this.#encodeAsn1(DerType.OctetString, value);
|
|
249
245
|
}
|
|
250
246
|
|
|
251
247
|
static #encodeObject(object: any) {
|
|
252
|
-
const attributes = new Array<
|
|
248
|
+
const attributes = new Array<Bytes>();
|
|
253
249
|
for (const key in object) {
|
|
254
250
|
attributes.push(this.encode(object[key]));
|
|
255
251
|
}
|
|
@@ -275,14 +271,9 @@ export class DerCodec {
|
|
|
275
271
|
return this.#encodeAsn1(DerType.IA5String, Bytes.fromString(value));
|
|
276
272
|
}
|
|
277
273
|
|
|
278
|
-
static #encodeInteger(value: number | bigint |
|
|
279
|
-
const
|
|
280
|
-
|
|
281
|
-
if (isByteArray) {
|
|
282
|
-
valueBytes = value;
|
|
283
|
-
} else {
|
|
284
|
-
valueBytes = Bytes.fromHex(toHex(value));
|
|
285
|
-
}
|
|
274
|
+
static #encodeInteger(value: number | bigint | Bytes) {
|
|
275
|
+
const valueBytes = Bytes.isBytes(value) ? value : Bytes.fromHex(toHex(value));
|
|
276
|
+
|
|
286
277
|
const byteArray = Bytes.concat(new Uint8Array(1), valueBytes);
|
|
287
278
|
const dataView = Bytes.dataViewOf(byteArray);
|
|
288
279
|
let start = 0;
|
|
@@ -290,9 +281,9 @@ export class DerCodec {
|
|
|
290
281
|
if (dataView.getUint8(start) !== 0) break;
|
|
291
282
|
if (dataView.getUint8(start + 1) >= 0x80) break;
|
|
292
283
|
start++;
|
|
293
|
-
if (start === byteArray.
|
|
284
|
+
if (start === byteArray.byteLength - 1) break;
|
|
294
285
|
}
|
|
295
|
-
return this.#encodeAsn1(DerType.Integer, byteArray.slice(start));
|
|
286
|
+
return this.#encodeAsn1(DerType.Integer, start === 0 ? byteArray : Bytes.of(byteArray).slice(start));
|
|
296
287
|
}
|
|
297
288
|
|
|
298
289
|
static #encodeBitString(value: number) {
|
|
@@ -320,14 +311,16 @@ export class DerCodec {
|
|
|
320
311
|
return byteArray.slice(start);
|
|
321
312
|
}
|
|
322
313
|
|
|
323
|
-
static #encodeAsn1(tag: number, data:
|
|
324
|
-
return Bytes.concat(Uint8Array.of(tag), this.#encodeLengthBytes(data.
|
|
314
|
+
static #encodeAsn1(tag: number, data: Bytes) {
|
|
315
|
+
return Bytes.concat(Uint8Array.of(tag), this.#encodeLengthBytes(data.byteLength), data);
|
|
325
316
|
}
|
|
326
317
|
|
|
327
318
|
static #decodeRec(reader: DataReader): DerNode {
|
|
328
319
|
const { tag, bytes } = this.#decodeAsn1(reader);
|
|
329
|
-
if (tag === DerType.BitString)
|
|
330
|
-
|
|
320
|
+
if (tag === DerType.BitString) {
|
|
321
|
+
const data = Bytes.of(bytes);
|
|
322
|
+
return { [DerKey.TagId]: tag, [DerKey.Bytes]: data.slice(1), [DerKey.BitsPadding]: data[0] };
|
|
323
|
+
}
|
|
331
324
|
if ((tag & CONSTRUCTED) === 0) return { [DerKey.TagId]: tag, [DerKey.Bytes]: bytes };
|
|
332
325
|
const elementsReader = new DataReader(bytes);
|
|
333
326
|
const elements: DerNode[] = [];
|
|
@@ -337,7 +330,7 @@ export class DerCodec {
|
|
|
337
330
|
return { [DerKey.TagId]: tag, [DerKey.Bytes]: bytes, [DerKey.Elements]: elements };
|
|
338
331
|
}
|
|
339
332
|
|
|
340
|
-
static #decodeAsn1(reader: DataReader): { tag: number; bytes:
|
|
333
|
+
static #decodeAsn1(reader: DataReader): { tag: number; bytes: Bytes } {
|
|
341
334
|
const tag = reader.readUInt8();
|
|
342
335
|
let length = reader.readUInt8();
|
|
343
336
|
if ((length & 0x80) !== 0) {
|
package/src/codec/DerTypes.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { Bytes } from "#util/Bytes.js";
|
|
7
8
|
import {
|
|
8
9
|
ContextTagged,
|
|
9
10
|
ContextTaggedBytes,
|
|
@@ -17,7 +18,7 @@ import {
|
|
|
17
18
|
} from "../codec/DerCodec.js";
|
|
18
19
|
|
|
19
20
|
export namespace X962 {
|
|
20
|
-
export const PublicKeyEcPrime256v1 = (key:
|
|
21
|
+
export const PublicKeyEcPrime256v1 = (key: Bytes) => ({
|
|
21
22
|
type: {
|
|
22
23
|
algorithm: PublicKeyAlgorithmEcPublicKey /* EC Public Key */,
|
|
23
24
|
curve: PublicKeyAlgorithmEcPublicKeyP256 /* Curve P256_V1 */,
|
|
@@ -32,9 +33,9 @@ export namespace X962 {
|
|
|
32
33
|
export const SHA256_CMS = DerObject("608648016503040201"); // 2.16.840.1.101.3.4.2.1
|
|
33
34
|
|
|
34
35
|
export namespace X509 {
|
|
35
|
-
export const SubjectKeyIdentifier = (identifier:
|
|
36
|
+
export const SubjectKeyIdentifier = (identifier: Bytes) =>
|
|
36
37
|
DerObject("551d0e", { value: DerCodec.encode(identifier) });
|
|
37
|
-
export const AuthorityKeyIdentifier = (identifier:
|
|
38
|
+
export const AuthorityKeyIdentifier = (identifier: Bytes) =>
|
|
38
39
|
DerObject("551d23", { value: DerCodec.encode({ id: ContextTaggedBytes(0, identifier) }) });
|
|
39
40
|
export const BasicConstraints = (constraints: any) => {
|
|
40
41
|
const toEncode = { ...constraints };
|
package/src/codec/DnsCodec.ts
CHANGED
|
@@ -95,8 +95,8 @@ export type DnsMessage = {
|
|
|
95
95
|
};
|
|
96
96
|
|
|
97
97
|
export type DnsMessagePartiallyPreEncoded = Omit<DnsMessage, "answers" | "additionalRecords"> & {
|
|
98
|
-
answers: (DnsRecord<any> |
|
|
99
|
-
additionalRecords: (DnsRecord<any> |
|
|
98
|
+
answers: (DnsRecord<any> | Bytes)[];
|
|
99
|
+
additionalRecords: (DnsRecord<any> | Bytes)[];
|
|
100
100
|
};
|
|
101
101
|
|
|
102
102
|
export enum DnsMessageType {
|
|
@@ -122,7 +122,7 @@ export enum DnsRecordClass {
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
export class DnsCodec {
|
|
125
|
-
static decode(message:
|
|
125
|
+
static decode(message: Bytes): DnsMessage | undefined {
|
|
126
126
|
try {
|
|
127
127
|
const reader = new DataReader(message);
|
|
128
128
|
const transactionId = reader.readUInt16();
|
|
@@ -153,7 +153,7 @@ export class DnsCodec {
|
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
static decodeQuery(reader: DataReader<Endian.Big>, message:
|
|
156
|
+
static decodeQuery(reader: DataReader<Endian.Big>, message: Bytes): DnsQuery {
|
|
157
157
|
const name = this.decodeQName(reader, message);
|
|
158
158
|
const recordType = reader.readUInt16();
|
|
159
159
|
const classInt = reader.readUInt16();
|
|
@@ -162,7 +162,7 @@ export class DnsCodec {
|
|
|
162
162
|
return { name, recordType, recordClass, uniCastResponse };
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
-
static decodeRecord(reader: DataReader<Endian.Big>, message:
|
|
165
|
+
static decodeRecord(reader: DataReader<Endian.Big>, message: Bytes): DnsRecord<any> {
|
|
166
166
|
const name = this.decodeQName(reader, message);
|
|
167
167
|
const recordType = reader.readUInt16();
|
|
168
168
|
const classInt = reader.readUInt16();
|
|
@@ -175,7 +175,7 @@ export class DnsCodec {
|
|
|
175
175
|
return { name, recordType, recordClass, ttl, value, flushCache };
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
static decodeQName(reader: DataReader<Endian.Big>, message:
|
|
178
|
+
static decodeQName(reader: DataReader<Endian.Big>, message: Bytes, visited = new Set<number>()): string {
|
|
179
179
|
if (visited.has(reader.offset)) {
|
|
180
180
|
throw new UnexpectedDataError(`QNAME pointer loop detected. Index ${reader.offset} visited twice.`);
|
|
181
181
|
}
|
|
@@ -192,7 +192,7 @@ export class DnsCodec {
|
|
|
192
192
|
}
|
|
193
193
|
// Compressed Qname
|
|
194
194
|
const indexInMessage = reader.readUInt8() | ((itemLength & 0x3f) << 8);
|
|
195
|
-
if (indexInMessage >=
|
|
195
|
+
if (indexInMessage >= messageReader.length) {
|
|
196
196
|
throw new UnexpectedDataError("Invalid compressed QNAME pointer pointing to out of bounds index.");
|
|
197
197
|
}
|
|
198
198
|
messageReader.offset = indexInMessage;
|
|
@@ -207,7 +207,7 @@ export class DnsCodec {
|
|
|
207
207
|
return qNameItems.join(".");
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
private static decodeRecordValue(valueBytes:
|
|
210
|
+
private static decodeRecordValue(valueBytes: Bytes, recordType: DnsRecordType, message: Bytes) {
|
|
211
211
|
switch (recordType) {
|
|
212
212
|
case DnsRecordType.PTR:
|
|
213
213
|
return this.decodeQName(new DataReader(valueBytes), message);
|
|
@@ -225,7 +225,7 @@ export class DnsCodec {
|
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
static decodeSrvRecord(valueBytes:
|
|
228
|
+
static decodeSrvRecord(valueBytes: Bytes, message: Bytes): SrvRecordValue {
|
|
229
229
|
const reader = new DataReader(valueBytes);
|
|
230
230
|
const priority = reader.readUInt16();
|
|
231
231
|
const weight = reader.readUInt16();
|
|
@@ -234,11 +234,11 @@ export class DnsCodec {
|
|
|
234
234
|
return { priority, weight, port, target };
|
|
235
235
|
}
|
|
236
236
|
|
|
237
|
-
static decodeTxtRecord(valueBytes:
|
|
237
|
+
static decodeTxtRecord(valueBytes: Bytes): string[] {
|
|
238
238
|
const reader = new DataReader(valueBytes);
|
|
239
239
|
const result = new Array<string>();
|
|
240
240
|
let bytesRead = 0;
|
|
241
|
-
while (bytesRead < valueBytes.
|
|
241
|
+
while (bytesRead < valueBytes.byteLength) {
|
|
242
242
|
const length = reader.readUInt8();
|
|
243
243
|
result.push(reader.readUtf8String(length));
|
|
244
244
|
bytesRead += length + 1;
|
|
@@ -246,12 +246,12 @@ export class DnsCodec {
|
|
|
246
246
|
return result;
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
-
static decodeAaaaRecord(valueBytes:
|
|
249
|
+
static decodeAaaaRecord(valueBytes: Bytes): string {
|
|
250
250
|
const reader = new DataReader(valueBytes);
|
|
251
251
|
return ipv6BytesToString(reader.readByteArray(16));
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
-
static decodeARecord(valueBytes:
|
|
254
|
+
static decodeARecord(valueBytes: Bytes): string {
|
|
255
255
|
const reader = new DataReader(valueBytes);
|
|
256
256
|
return ipv4BytesToString(reader.readByteArray(4));
|
|
257
257
|
}
|
|
@@ -263,7 +263,7 @@ export class DnsCodec {
|
|
|
263
263
|
answers = [],
|
|
264
264
|
authorities = [],
|
|
265
265
|
additionalRecords = [],
|
|
266
|
-
}: Partial<DnsMessagePartiallyPreEncoded>):
|
|
266
|
+
}: Partial<DnsMessagePartiallyPreEncoded>): Bytes {
|
|
267
267
|
if (messageType === undefined) throw new InternalError("Message type must be specified!");
|
|
268
268
|
if (queries.length > 0 && messageType !== DnsMessageType.Query && messageType !== DnsMessageType.TruncatedQuery)
|
|
269
269
|
throw new InternalError("Queries can only be included in query messages!");
|
|
@@ -282,7 +282,7 @@ export class DnsCodec {
|
|
|
282
282
|
writer.writeUInt16(recordClass | (uniCastResponse ? 0x8000 : 0));
|
|
283
283
|
});
|
|
284
284
|
[...answers, ...authorities, ...additionalRecords].forEach(record => {
|
|
285
|
-
if (record
|
|
285
|
+
if (Bytes.isBytes(record)) {
|
|
286
286
|
writer.writeByteArray(record);
|
|
287
287
|
} else {
|
|
288
288
|
writer.writeByteArray(this.encodeRecord(record));
|
|
@@ -291,7 +291,7 @@ export class DnsCodec {
|
|
|
291
291
|
return writer.toByteArray();
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
-
static encodeRecord(record: DnsRecord<any>):
|
|
294
|
+
static encodeRecord(record: DnsRecord<any>): Bytes {
|
|
295
295
|
const { name, recordType, recordClass, ttl, value, flushCache = false } = record;
|
|
296
296
|
|
|
297
297
|
const writer = new DataWriter();
|
|
@@ -300,12 +300,12 @@ export class DnsCodec {
|
|
|
300
300
|
writer.writeUInt16(recordClass | (flushCache ? 0x8000 : 0));
|
|
301
301
|
writer.writeUInt32(ttl);
|
|
302
302
|
const encodedValue = this.encodeRecordValue(value, recordType);
|
|
303
|
-
writer.writeUInt16(encodedValue.
|
|
303
|
+
writer.writeUInt16(encodedValue.byteLength);
|
|
304
304
|
writer.writeByteArray(encodedValue);
|
|
305
305
|
return writer.toByteArray();
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
-
private static encodeRecordValue(value: any, recordType: DnsRecordType):
|
|
308
|
+
private static encodeRecordValue(value: any, recordType: DnsRecordType): Bytes {
|
|
309
309
|
switch (recordType) {
|
|
310
310
|
case DnsRecordType.PTR:
|
|
311
311
|
return this.encodeQName(value as string);
|
|
@@ -318,7 +318,7 @@ export class DnsCodec {
|
|
|
318
318
|
case DnsRecordType.A:
|
|
319
319
|
return this.encodeARecord(value as string);
|
|
320
320
|
default:
|
|
321
|
-
if (value
|
|
321
|
+
if (Bytes.isBytes(value)) return value;
|
|
322
322
|
throw new UnexpectedDataError(`Unsupported record type ${recordType}`);
|
|
323
323
|
}
|
|
324
324
|
}
|
|
@@ -337,7 +337,7 @@ export class DnsCodec {
|
|
|
337
337
|
const writer = new DataWriter();
|
|
338
338
|
entries.forEach(entry => {
|
|
339
339
|
const entryData = Bytes.fromString(entry);
|
|
340
|
-
writer.writeUInt8(entryData.
|
|
340
|
+
writer.writeUInt8(entryData.byteLength);
|
|
341
341
|
writer.writeByteArray(entryData);
|
|
342
342
|
});
|
|
343
343
|
return writer.toByteArray();
|
|
@@ -358,7 +358,7 @@ export class DnsCodec {
|
|
|
358
358
|
// TODO: Implement compression
|
|
359
359
|
qname.split(".").forEach(label => {
|
|
360
360
|
const labelData = Bytes.fromString(label);
|
|
361
|
-
writer.writeUInt8(labelData.
|
|
361
|
+
writer.writeUInt8(labelData.byteLength);
|
|
362
362
|
writer.writeByteArray(labelData);
|
|
363
363
|
});
|
|
364
364
|
}
|
package/src/crypto/Crypto.ts
CHANGED
|
@@ -50,64 +50,54 @@ export abstract class Crypto {
|
|
|
50
50
|
/**
|
|
51
51
|
* Encrypt using AES-CCM with constants limited to those required by Matter.
|
|
52
52
|
*/
|
|
53
|
-
abstract encrypt(key:
|
|
53
|
+
abstract encrypt(key: Bytes, data: Bytes, nonce: Bytes, aad?: Bytes): Bytes;
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
56
|
* Decrypt using AES-CCM with constants limited to those required by Matter.
|
|
57
57
|
*/
|
|
58
|
-
abstract decrypt(key:
|
|
58
|
+
abstract decrypt(key: Bytes, data: Bytes, nonce: Bytes, aad?: Bytes): Bytes;
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* Create a random buffer from the most cryptographically-appropriate source available.
|
|
62
62
|
*/
|
|
63
|
-
abstract randomBytes(length: number):
|
|
63
|
+
abstract randomBytes(length: number): Bytes;
|
|
64
64
|
|
|
65
65
|
/**
|
|
66
66
|
* Compute the SHA-256 hash of a buffer.
|
|
67
67
|
*/
|
|
68
|
-
abstract computeSha256(data:
|
|
68
|
+
abstract computeSha256(data: Bytes | Bytes[]): MaybePromise<Bytes>;
|
|
69
69
|
|
|
70
70
|
/**
|
|
71
71
|
* Create a key from a secret using PBKDF2.
|
|
72
72
|
*/
|
|
73
|
-
abstract createPbkdf2Key(
|
|
74
|
-
secret: Uint8Array,
|
|
75
|
-
salt: Uint8Array,
|
|
76
|
-
iteration: number,
|
|
77
|
-
keyLength: number,
|
|
78
|
-
): MaybePromise<Uint8Array>;
|
|
73
|
+
abstract createPbkdf2Key(secret: Bytes, salt: Bytes, iteration: number, keyLength: number): MaybePromise<Bytes>;
|
|
79
74
|
|
|
80
75
|
/**
|
|
81
76
|
* Create a key from a secret using HKDF.
|
|
82
77
|
*/
|
|
83
|
-
abstract createHkdfKey(
|
|
84
|
-
secret: Uint8Array,
|
|
85
|
-
salt: Uint8Array,
|
|
86
|
-
info: Uint8Array,
|
|
87
|
-
length?: number,
|
|
88
|
-
): MaybePromise<Uint8Array>;
|
|
78
|
+
abstract createHkdfKey(secret: Bytes, salt: Bytes, info: Bytes, length?: number): MaybePromise<Bytes>;
|
|
89
79
|
|
|
90
80
|
/**
|
|
91
81
|
* Create an HMAC signature.
|
|
92
82
|
*/
|
|
93
|
-
abstract signHmac(key:
|
|
83
|
+
abstract signHmac(key: Bytes, data: Bytes): MaybePromise<Bytes>;
|
|
94
84
|
|
|
95
85
|
/**
|
|
96
86
|
* Create an ECDSA signature.
|
|
97
87
|
*/
|
|
98
88
|
abstract signEcdsa(
|
|
99
89
|
privateKey: JsonWebKey,
|
|
100
|
-
data:
|
|
90
|
+
data: Bytes | Bytes[],
|
|
101
91
|
dsaEncoding?: CryptoDsaEncoding,
|
|
102
|
-
): MaybePromise<
|
|
92
|
+
): MaybePromise<Bytes>;
|
|
103
93
|
|
|
104
94
|
/**
|
|
105
95
|
* Authenticate an ECDSA signature.
|
|
106
96
|
*/
|
|
107
97
|
abstract verifyEcdsa(
|
|
108
98
|
publicKey: JsonWebKey,
|
|
109
|
-
data:
|
|
110
|
-
signature:
|
|
99
|
+
data: Bytes,
|
|
100
|
+
signature: Bytes,
|
|
111
101
|
dsaEncoding?: CryptoDsaEncoding,
|
|
112
102
|
): MaybePromise<void>;
|
|
113
103
|
|
|
@@ -119,22 +109,22 @@ export abstract class Crypto {
|
|
|
119
109
|
/**
|
|
120
110
|
* Compute the shared secret for a Diffie-Hellman exchange.
|
|
121
111
|
*/
|
|
122
|
-
abstract generateDhSecret(key: PrivateKey, peerKey: PublicKey): MaybePromise<
|
|
112
|
+
abstract generateDhSecret(key: PrivateKey, peerKey: PublicKey): MaybePromise<Bytes>;
|
|
123
113
|
|
|
124
114
|
get randomUint8() {
|
|
125
|
-
return this.randomBytes(1)[0];
|
|
115
|
+
return Bytes.of(this.randomBytes(1))[0];
|
|
126
116
|
}
|
|
127
117
|
|
|
128
118
|
get randomUint16() {
|
|
129
|
-
return
|
|
119
|
+
return Bytes.dataViewOf(this.randomBytes(2)).getUint16(0);
|
|
130
120
|
}
|
|
131
121
|
|
|
132
122
|
get randomUint32() {
|
|
133
|
-
return
|
|
123
|
+
return Bytes.dataViewOf(this.randomBytes(4)).getUint32(0);
|
|
134
124
|
}
|
|
135
125
|
|
|
136
126
|
get randomBigUint64() {
|
|
137
|
-
return
|
|
127
|
+
return Bytes.dataViewOf(this.randomBytes(8)).getBigUint64(0);
|
|
138
128
|
}
|
|
139
129
|
|
|
140
130
|
randomBigInt(size: number, maxValue?: bigint) {
|