@matter/general 0.11.5 → 0.11.6
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.js +1 -1
- package/dist/cjs/codec/DerCodec.js.map +1 -1
- package/dist/cjs/codec/DnsCodec.d.ts +14 -12
- package/dist/cjs/codec/DnsCodec.d.ts.map +1 -1
- package/dist/cjs/codec/DnsCodec.js +15 -3
- package/dist/cjs/codec/DnsCodec.js.map +1 -1
- package/dist/cjs/util/DataReader.d.ts +6 -8
- package/dist/cjs/util/DataReader.d.ts.map +1 -1
- package/dist/cjs/util/DataReader.js +35 -31
- package/dist/cjs/util/DataReader.js.map +1 -1
- package/dist/esm/codec/DerCodec.js +1 -1
- package/dist/esm/codec/DerCodec.js.map +1 -1
- package/dist/esm/codec/DnsCodec.d.ts +14 -12
- package/dist/esm/codec/DnsCodec.d.ts.map +1 -1
- package/dist/esm/codec/DnsCodec.js +15 -3
- package/dist/esm/codec/DnsCodec.js.map +1 -1
- package/dist/esm/util/DataReader.d.ts +6 -8
- package/dist/esm/util/DataReader.d.ts.map +1 -1
- package/dist/esm/util/DataReader.js +35 -31
- package/dist/esm/util/DataReader.js.map +1 -1
- package/package.json +3 -3
- package/src/codec/DerCodec.ts +1 -1
- package/src/codec/DnsCodec.ts +29 -14
- package/src/util/DataReader.ts +37 -34
|
@@ -263,7 +263,7 @@ class DerCodec {
|
|
|
263
263
|
if ((tag & CONSTRUCTED) === 0) return { ["_tag" /* TagId */]: tag, ["_bytes" /* Bytes */]: bytes };
|
|
264
264
|
const elementsReader = new import_DataReader.DataReader(bytes, import_Bytes.Endian.Big);
|
|
265
265
|
const elements = [];
|
|
266
|
-
while (elementsReader.
|
|
266
|
+
while (elementsReader.remainingBytesCount > 0) {
|
|
267
267
|
elements.push(this.decodeRec(elementsReader));
|
|
268
268
|
}
|
|
269
269
|
return { ["_tag" /* TagId */]: tag, ["_bytes" /* Bytes */]: bytes, ["_elements" /* Elements */]: elements };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/codec/DerCodec.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["DerKey", "DerType", "DerClass"]
|
|
6
6
|
}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* Copyright 2022-2024 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Endian } from "../util/Bytes.js";
|
|
7
|
+
import { DataReader } from "../util/DataReader.js";
|
|
6
8
|
/**
|
|
7
9
|
* The maximum MDNS message size to usually fit into one UDP network MTU packet. Data are split into multiple messages
|
|
8
10
|
* when needed.
|
|
@@ -66,21 +68,21 @@ export declare enum DnsRecordClass {
|
|
|
66
68
|
}
|
|
67
69
|
export declare class DnsCodec {
|
|
68
70
|
static decode(message: Uint8Array): DnsMessage | undefined;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
static decodeQuery(reader: DataReader<Endian.Big>, message: Uint8Array): DnsQuery;
|
|
72
|
+
static decodeRecord(reader: DataReader<Endian.Big>, message: Uint8Array): DnsRecord<any>;
|
|
73
|
+
static decodeQName(reader: DataReader<Endian.Big>, message: Uint8Array, visited?: Set<number>): string;
|
|
72
74
|
private static decodeRecordValue;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
static decodeSrvRecord(valueBytes: Uint8Array, message: Uint8Array): SrvRecordValue;
|
|
76
|
+
static decodeTxtRecord(valueBytes: Uint8Array): string[];
|
|
77
|
+
static decodeAaaaRecord(valueBytes: Uint8Array): string;
|
|
78
|
+
static decodeARecord(valueBytes: Uint8Array): string;
|
|
77
79
|
static encode({ messageType, transactionId, queries, answers, authorities, additionalRecords, }: Partial<DnsMessagePartiallyPreEncoded>): Uint8Array;
|
|
78
80
|
static encodeRecord(record: DnsRecord<any>): Uint8Array;
|
|
79
81
|
private static encodeRecordValue;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
static encodeARecord(ip: string): Uint8Array;
|
|
83
|
+
static encodeAaaaRecord(ip: string): Uint8Array;
|
|
84
|
+
static encodeTxtRecord(entries: string[]): Uint8Array;
|
|
85
|
+
static encodeSrvRecord({ priority, weight, port, target }: SrvRecordValue): Uint8Array;
|
|
86
|
+
static encodeQName(qname: string): Uint8Array;
|
|
85
87
|
}
|
|
86
88
|
//# sourceMappingURL=DnsCodec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnsCodec.d.ts","sourceRoot":"","sources":["../../../src/codec/DnsCodec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"DnsCodec.d.ts","sourceRoot":"","sources":["../../../src/codec/DnsCodec.ts"],"names":[],"mappings":"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"}
|
|
@@ -154,17 +154,29 @@ class DnsCodec {
|
|
|
154
154
|
const value = this.decodeRecordValue(valueBytes, recordType, message);
|
|
155
155
|
return { name, recordType, recordClass, ttl, value, flushCache };
|
|
156
156
|
}
|
|
157
|
-
static decodeQName(reader, message) {
|
|
157
|
+
static decodeQName(reader, message, visited = /* @__PURE__ */ new Set()) {
|
|
158
|
+
if (visited.has(reader.offset)) {
|
|
159
|
+
throw new import_MatterError.UnexpectedDataError(`QNAME pointer loop detected. Index ${reader.offset} visited twice.`);
|
|
160
|
+
}
|
|
161
|
+
visited.add(reader.offset);
|
|
158
162
|
const messageReader = new import_DataReader.DataReader(message, import_Bytes.Endian.Big);
|
|
159
163
|
const qNameItems = new Array();
|
|
160
164
|
while (true) {
|
|
161
165
|
const itemLength = reader.readUInt8();
|
|
162
166
|
if (itemLength === 0) break;
|
|
163
167
|
if ((itemLength & 192) !== 0) {
|
|
168
|
+
if (reader.remainingBytesCount < 1) {
|
|
169
|
+
throw new import_MatterError.UnexpectedDataError("QNAME pointer exceeds remaining bytes.");
|
|
170
|
+
}
|
|
164
171
|
const indexInMessage = reader.readUInt8() | (itemLength & 63) << 8;
|
|
165
|
-
|
|
166
|
-
|
|
172
|
+
if (indexInMessage >= message.length) {
|
|
173
|
+
throw new import_MatterError.UnexpectedDataError("Invalid compressed QNAME pointer pointing to out of bounds index.");
|
|
174
|
+
}
|
|
175
|
+
messageReader.offset = indexInMessage;
|
|
176
|
+
qNameItems.push(this.decodeQName(messageReader, message, visited));
|
|
167
177
|
break;
|
|
178
|
+
} else if (reader.remainingBytesCount < itemLength + 1) {
|
|
179
|
+
throw new import_MatterError.UnexpectedDataError(`QNAME item length ${itemLength} exceeds remaining bytes.`);
|
|
168
180
|
}
|
|
169
181
|
qNameItems.push(reader.readUtf8String(itemLength));
|
|
170
182
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/codec/DnsCodec.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["DnsMessageType", "DnsRecordType", "DnsRecordClass"]
|
|
6
6
|
}
|
|
@@ -6,10 +6,7 @@
|
|
|
6
6
|
import { Endian } from "./Bytes.js";
|
|
7
7
|
/** Reader that auto-increments its offset after each read. */
|
|
8
8
|
export declare class DataReader<E extends Endian> {
|
|
9
|
-
private
|
|
10
|
-
private readonly littleEndian;
|
|
11
|
-
private readonly dataView;
|
|
12
|
-
private offset;
|
|
9
|
+
#private;
|
|
13
10
|
constructor(buffer: Uint8Array, endian: E);
|
|
14
11
|
readUInt8(): number;
|
|
15
12
|
readUInt16(): number;
|
|
@@ -23,10 +20,11 @@ export declare class DataReader<E extends Endian> {
|
|
|
23
20
|
readDouble(): number;
|
|
24
21
|
readUtf8String(length: number): string;
|
|
25
22
|
readByteArray(length: number): Uint8Array;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
get remainingBytesCount(): number;
|
|
24
|
+
get remainingBytes(): Uint8Array;
|
|
25
|
+
get length(): number;
|
|
26
|
+
set offset(offset: number);
|
|
27
|
+
get offset(): number;
|
|
30
28
|
private getOffsetAndAdvance;
|
|
31
29
|
}
|
|
32
30
|
//# sourceMappingURL=DataReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataReader.d.ts","sourceRoot":"","sources":["../../../src/util/DataReader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAS,MAAM,EAAE,MAAM,YAAY,CAAC;AAE3C,8DAA8D;AAC9D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM
|
|
1
|
+
{"version":3,"file":"DataReader.d.ts","sourceRoot":"","sources":["../../../src/util/DataReader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAS,MAAM,EAAE,MAAM,YAAY,CAAC;AAE3C,8DAA8D;AAC9D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM;;gBAMxB,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAMzC,SAAS;IAIT,UAAU;IAIV,UAAU;IAIV,UAAU;IAIV,QAAQ;IAIR,SAAS;IAIT,SAAS;IAIT,SAAS;IAIT,SAAS;IAIT,UAAU;IAIV,cAAc,CAAC,MAAM,EAAE,MAAM;IAK7B,aAAa,CAAC,MAAM,EAAE,MAAM;IAK5B,IAAI,mBAAmB,WAEtB;IAED,IAAI,cAAc,eAEjB;IAED,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAKxB;IAED,IAAI,MAAM,IAPS,MAAM,CASxB;IAED,OAAO,CAAC,mBAAmB;CAQ9B"}
|
|
@@ -28,72 +28,76 @@ var import_Bytes = require("./Bytes.js");
|
|
|
28
28
|
* SPDX-License-Identifier: Apache-2.0
|
|
29
29
|
*/
|
|
30
30
|
class DataReader {
|
|
31
|
+
#littleEndian;
|
|
32
|
+
#dataView;
|
|
33
|
+
#buffer;
|
|
34
|
+
#offset = 0;
|
|
31
35
|
constructor(buffer, endian) {
|
|
32
|
-
this
|
|
33
|
-
this
|
|
34
|
-
this
|
|
36
|
+
this.#buffer = buffer;
|
|
37
|
+
this.#dataView = import_Bytes.Bytes.dataViewOf(this.#buffer);
|
|
38
|
+
this.#littleEndian = endian === import_Bytes.Endian.Little;
|
|
35
39
|
}
|
|
36
|
-
littleEndian;
|
|
37
|
-
dataView;
|
|
38
|
-
offset = 0;
|
|
39
40
|
readUInt8() {
|
|
40
|
-
return this
|
|
41
|
+
return this.#dataView.getUint8(this.getOffsetAndAdvance(1));
|
|
41
42
|
}
|
|
42
43
|
readUInt16() {
|
|
43
|
-
return this
|
|
44
|
+
return this.#dataView.getUint16(this.getOffsetAndAdvance(2), this.#littleEndian);
|
|
44
45
|
}
|
|
45
46
|
readUInt32() {
|
|
46
|
-
return this
|
|
47
|
+
return this.#dataView.getUint32(this.getOffsetAndAdvance(4), this.#littleEndian);
|
|
47
48
|
}
|
|
48
49
|
readUInt64() {
|
|
49
|
-
return this
|
|
50
|
+
return this.#dataView.getBigUint64(this.getOffsetAndAdvance(8), this.#littleEndian);
|
|
50
51
|
}
|
|
51
52
|
readInt8() {
|
|
52
|
-
return this
|
|
53
|
+
return this.#dataView.getInt8(this.getOffsetAndAdvance(1));
|
|
53
54
|
}
|
|
54
55
|
readInt16() {
|
|
55
|
-
return this
|
|
56
|
+
return this.#dataView.getInt16(this.getOffsetAndAdvance(2), this.#littleEndian);
|
|
56
57
|
}
|
|
57
58
|
readInt32() {
|
|
58
|
-
return this
|
|
59
|
+
return this.#dataView.getInt32(this.getOffsetAndAdvance(4), this.#littleEndian);
|
|
59
60
|
}
|
|
60
61
|
readInt64() {
|
|
61
|
-
return this
|
|
62
|
+
return this.#dataView.getBigInt64(this.getOffsetAndAdvance(8), this.#littleEndian);
|
|
62
63
|
}
|
|
63
64
|
readFloat() {
|
|
64
|
-
return this
|
|
65
|
+
return this.#dataView.getFloat32(this.getOffsetAndAdvance(4), this.#littleEndian);
|
|
65
66
|
}
|
|
66
67
|
readDouble() {
|
|
67
|
-
return this
|
|
68
|
+
return this.#dataView.getFloat64(this.getOffsetAndAdvance(8), this.#littleEndian);
|
|
68
69
|
}
|
|
69
70
|
readUtf8String(length) {
|
|
70
71
|
const offset = this.getOffsetAndAdvance(length);
|
|
71
|
-
return new TextDecoder().decode(this
|
|
72
|
+
return new TextDecoder().decode(this.#buffer.subarray(offset, offset + length));
|
|
72
73
|
}
|
|
73
74
|
readByteArray(length) {
|
|
74
75
|
const offset = this.getOffsetAndAdvance(length);
|
|
75
|
-
return this
|
|
76
|
+
return this.#buffer.subarray(offset, offset + length);
|
|
76
77
|
}
|
|
77
|
-
|
|
78
|
-
return this
|
|
78
|
+
get remainingBytesCount() {
|
|
79
|
+
return this.#dataView.byteLength - this.#offset;
|
|
79
80
|
}
|
|
80
|
-
|
|
81
|
-
return this
|
|
81
|
+
get remainingBytes() {
|
|
82
|
+
return this.#buffer.subarray(this.#offset);
|
|
82
83
|
}
|
|
83
|
-
|
|
84
|
-
return this
|
|
84
|
+
get length() {
|
|
85
|
+
return this.#dataView.byteLength;
|
|
85
86
|
}
|
|
86
|
-
|
|
87
|
-
if (offset > this
|
|
87
|
+
set offset(offset) {
|
|
88
|
+
if (offset > this.#dataView.byteLength) {
|
|
88
89
|
throw new Error(`Offset ${offset} is out of bounds.`);
|
|
89
90
|
}
|
|
90
|
-
this
|
|
91
|
+
this.#offset = offset;
|
|
92
|
+
}
|
|
93
|
+
get offset() {
|
|
94
|
+
return this.#offset;
|
|
91
95
|
}
|
|
92
96
|
getOffsetAndAdvance(size) {
|
|
93
|
-
const result = this
|
|
94
|
-
this
|
|
95
|
-
if (this
|
|
96
|
-
this
|
|
97
|
+
const result = this.#offset;
|
|
98
|
+
this.#offset += size;
|
|
99
|
+
if (this.#offset > this.#dataView.byteLength) {
|
|
100
|
+
this.#offset = this.#dataView.byteLength;
|
|
97
101
|
}
|
|
98
102
|
return result;
|
|
99
103
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/DataReader.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,mBAA8B;AAN9B;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,WAA6B;AAAA,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,mBAA8B;AAN9B;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,WAA6B;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACT,UAAU;AAAA,EAEV,YAAY,QAAoB,QAAW;AACvC,SAAK,UAAU;AACf,SAAK,YAAY,mBAAM,WAAW,KAAK,OAAO;AAC9C,SAAK,gBAAgB,WAAW,oBAAO;AAAA,EAC3C;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,SAAS,KAAK,oBAAoB,CAAC,CAAC;AAAA,EAC9D;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,UAAU,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACnF;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,UAAU,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACnF;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,aAAa,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACtF;AAAA,EAEA,WAAW;AACP,WAAO,KAAK,UAAU,QAAQ,KAAK,oBAAoB,CAAC,CAAC;AAAA,EAC7D;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,SAAS,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EAClF;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,SAAS,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EAClF;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,YAAY,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACrF;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,WAAW,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACpF;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,WAAW,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACpF;AAAA,EAEA,eAAe,QAAgB;AAC3B,UAAM,SAAS,KAAK,oBAAoB,MAAM;AAC9C,WAAO,IAAI,YAAY,EAAE,OAAO,KAAK,QAAQ,SAAS,QAAQ,SAAS,MAAM,CAAC;AAAA,EAClF;AAAA,EAEA,cAAc,QAAgB;AAC1B,UAAM,SAAS,KAAK,oBAAoB,MAAM;AAC9C,WAAO,KAAK,QAAQ,SAAS,QAAQ,SAAS,MAAM;AAAA,EACxD;AAAA,EAEA,IAAI,sBAAsB;AACtB,WAAO,KAAK,UAAU,aAAa,KAAK;AAAA,EAC5C;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,QAAQ,SAAS,KAAK,OAAO;AAAA,EAC7C;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEA,IAAI,OAAO,QAAgB;AACvB,QAAI,SAAS,KAAK,UAAU,YAAY;AACpC,YAAM,IAAI,MAAM,UAAU,MAAM,oBAAoB;AAAA,IACxD;AACA,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEQ,oBAAoB,MAAc;AACtC,UAAM,SAAS,KAAK;AACpB,SAAK,WAAW;AAChB,QAAI,KAAK,UAAU,KAAK,UAAU,YAAY;AAC1C,WAAK,UAAU,KAAK,UAAU;AAAA,IAClC;AACA,WAAO;AAAA,EACX;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -230,7 +230,7 @@ class DerCodec {
|
|
|
230
230
|
if ((tag & CONSTRUCTED) === 0) return { ["_tag" /* TagId */]: tag, ["_bytes" /* Bytes */]: bytes };
|
|
231
231
|
const elementsReader = new DataReader(bytes, Endian.Big);
|
|
232
232
|
const elements = [];
|
|
233
|
-
while (elementsReader.
|
|
233
|
+
while (elementsReader.remainingBytesCount > 0) {
|
|
234
234
|
elements.push(this.decodeRec(elementsReader));
|
|
235
235
|
}
|
|
236
236
|
return { ["_tag" /* TagId */]: tag, ["_bytes" /* Bytes */]: bytes, ["_elements" /* Elements */]: elements };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/codec/DerCodec.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["DerKey", "DerType", "DerClass"]
|
|
6
6
|
}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
* Copyright 2022-2024 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Endian } from "../util/Bytes.js";
|
|
7
|
+
import { DataReader } from "../util/DataReader.js";
|
|
6
8
|
/**
|
|
7
9
|
* The maximum MDNS message size to usually fit into one UDP network MTU packet. Data are split into multiple messages
|
|
8
10
|
* when needed.
|
|
@@ -66,21 +68,21 @@ export declare enum DnsRecordClass {
|
|
|
66
68
|
}
|
|
67
69
|
export declare class DnsCodec {
|
|
68
70
|
static decode(message: Uint8Array): DnsMessage | undefined;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
static decodeQuery(reader: DataReader<Endian.Big>, message: Uint8Array): DnsQuery;
|
|
72
|
+
static decodeRecord(reader: DataReader<Endian.Big>, message: Uint8Array): DnsRecord<any>;
|
|
73
|
+
static decodeQName(reader: DataReader<Endian.Big>, message: Uint8Array, visited?: Set<number>): string;
|
|
72
74
|
private static decodeRecordValue;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
static decodeSrvRecord(valueBytes: Uint8Array, message: Uint8Array): SrvRecordValue;
|
|
76
|
+
static decodeTxtRecord(valueBytes: Uint8Array): string[];
|
|
77
|
+
static decodeAaaaRecord(valueBytes: Uint8Array): string;
|
|
78
|
+
static decodeARecord(valueBytes: Uint8Array): string;
|
|
77
79
|
static encode({ messageType, transactionId, queries, answers, authorities, additionalRecords, }: Partial<DnsMessagePartiallyPreEncoded>): Uint8Array;
|
|
78
80
|
static encodeRecord(record: DnsRecord<any>): Uint8Array;
|
|
79
81
|
private static encodeRecordValue;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
82
|
+
static encodeARecord(ip: string): Uint8Array;
|
|
83
|
+
static encodeAaaaRecord(ip: string): Uint8Array;
|
|
84
|
+
static encodeTxtRecord(entries: string[]): Uint8Array;
|
|
85
|
+
static encodeSrvRecord({ priority, weight, port, target }: SrvRecordValue): Uint8Array;
|
|
86
|
+
static encodeQName(qname: string): Uint8Array;
|
|
85
87
|
}
|
|
86
88
|
//# sourceMappingURL=DnsCodec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnsCodec.d.ts","sourceRoot":"","sources":["../../../src/codec/DnsCodec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"DnsCodec.d.ts","sourceRoot":"","sources":["../../../src/codec/DnsCodec.ts"],"names":[],"mappings":"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"}
|
|
@@ -122,17 +122,29 @@ class DnsCodec {
|
|
|
122
122
|
const value = this.decodeRecordValue(valueBytes, recordType, message);
|
|
123
123
|
return { name, recordType, recordClass, ttl, value, flushCache };
|
|
124
124
|
}
|
|
125
|
-
static decodeQName(reader, message) {
|
|
125
|
+
static decodeQName(reader, message, visited = /* @__PURE__ */ new Set()) {
|
|
126
|
+
if (visited.has(reader.offset)) {
|
|
127
|
+
throw new UnexpectedDataError(`QNAME pointer loop detected. Index ${reader.offset} visited twice.`);
|
|
128
|
+
}
|
|
129
|
+
visited.add(reader.offset);
|
|
126
130
|
const messageReader = new DataReader(message, Endian.Big);
|
|
127
131
|
const qNameItems = new Array();
|
|
128
132
|
while (true) {
|
|
129
133
|
const itemLength = reader.readUInt8();
|
|
130
134
|
if (itemLength === 0) break;
|
|
131
135
|
if ((itemLength & 192) !== 0) {
|
|
136
|
+
if (reader.remainingBytesCount < 1) {
|
|
137
|
+
throw new UnexpectedDataError("QNAME pointer exceeds remaining bytes.");
|
|
138
|
+
}
|
|
132
139
|
const indexInMessage = reader.readUInt8() | (itemLength & 63) << 8;
|
|
133
|
-
|
|
134
|
-
|
|
140
|
+
if (indexInMessage >= message.length) {
|
|
141
|
+
throw new UnexpectedDataError("Invalid compressed QNAME pointer pointing to out of bounds index.");
|
|
142
|
+
}
|
|
143
|
+
messageReader.offset = indexInMessage;
|
|
144
|
+
qNameItems.push(this.decodeQName(messageReader, message, visited));
|
|
135
145
|
break;
|
|
146
|
+
} else if (reader.remainingBytesCount < itemLength + 1) {
|
|
147
|
+
throw new UnexpectedDataError(`QNAME item length ${itemLength} exceeds remaining bytes.`);
|
|
136
148
|
}
|
|
137
149
|
qNameItems.push(reader.readUtf8String(itemLength));
|
|
138
150
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/codec/DnsCodec.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["DnsMessageType", "DnsRecordType", "DnsRecordClass"]
|
|
6
6
|
}
|
|
@@ -6,10 +6,7 @@
|
|
|
6
6
|
import { Endian } from "./Bytes.js";
|
|
7
7
|
/** Reader that auto-increments its offset after each read. */
|
|
8
8
|
export declare class DataReader<E extends Endian> {
|
|
9
|
-
private
|
|
10
|
-
private readonly littleEndian;
|
|
11
|
-
private readonly dataView;
|
|
12
|
-
private offset;
|
|
9
|
+
#private;
|
|
13
10
|
constructor(buffer: Uint8Array, endian: E);
|
|
14
11
|
readUInt8(): number;
|
|
15
12
|
readUInt16(): number;
|
|
@@ -23,10 +20,11 @@ export declare class DataReader<E extends Endian> {
|
|
|
23
20
|
readDouble(): number;
|
|
24
21
|
readUtf8String(length: number): string;
|
|
25
22
|
readByteArray(length: number): Uint8Array;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
get remainingBytesCount(): number;
|
|
24
|
+
get remainingBytes(): Uint8Array;
|
|
25
|
+
get length(): number;
|
|
26
|
+
set offset(offset: number);
|
|
27
|
+
get offset(): number;
|
|
30
28
|
private getOffsetAndAdvance;
|
|
31
29
|
}
|
|
32
30
|
//# sourceMappingURL=DataReader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataReader.d.ts","sourceRoot":"","sources":["../../../src/util/DataReader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAS,MAAM,EAAE,MAAM,YAAY,CAAC;AAE3C,8DAA8D;AAC9D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM
|
|
1
|
+
{"version":3,"file":"DataReader.d.ts","sourceRoot":"","sources":["../../../src/util/DataReader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAS,MAAM,EAAE,MAAM,YAAY,CAAC;AAE3C,8DAA8D;AAC9D,qBAAa,UAAU,CAAC,CAAC,SAAS,MAAM;;gBAMxB,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAMzC,SAAS;IAIT,UAAU;IAIV,UAAU;IAIV,UAAU;IAIV,QAAQ;IAIR,SAAS;IAIT,SAAS;IAIT,SAAS;IAIT,SAAS;IAIT,UAAU;IAIV,cAAc,CAAC,MAAM,EAAE,MAAM;IAK7B,aAAa,CAAC,MAAM,EAAE,MAAM;IAK5B,IAAI,mBAAmB,WAEtB;IAED,IAAI,cAAc,eAEjB;IAED,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAKxB;IAED,IAAI,MAAM,IAPS,MAAM,CASxB;IAED,OAAO,CAAC,mBAAmB;CAQ9B"}
|
|
@@ -5,72 +5,76 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Bytes, Endian } from "./Bytes.js";
|
|
7
7
|
class DataReader {
|
|
8
|
+
#littleEndian;
|
|
9
|
+
#dataView;
|
|
10
|
+
#buffer;
|
|
11
|
+
#offset = 0;
|
|
8
12
|
constructor(buffer, endian) {
|
|
9
|
-
this
|
|
10
|
-
this
|
|
11
|
-
this
|
|
13
|
+
this.#buffer = buffer;
|
|
14
|
+
this.#dataView = Bytes.dataViewOf(this.#buffer);
|
|
15
|
+
this.#littleEndian = endian === Endian.Little;
|
|
12
16
|
}
|
|
13
|
-
littleEndian;
|
|
14
|
-
dataView;
|
|
15
|
-
offset = 0;
|
|
16
17
|
readUInt8() {
|
|
17
|
-
return this
|
|
18
|
+
return this.#dataView.getUint8(this.getOffsetAndAdvance(1));
|
|
18
19
|
}
|
|
19
20
|
readUInt16() {
|
|
20
|
-
return this
|
|
21
|
+
return this.#dataView.getUint16(this.getOffsetAndAdvance(2), this.#littleEndian);
|
|
21
22
|
}
|
|
22
23
|
readUInt32() {
|
|
23
|
-
return this
|
|
24
|
+
return this.#dataView.getUint32(this.getOffsetAndAdvance(4), this.#littleEndian);
|
|
24
25
|
}
|
|
25
26
|
readUInt64() {
|
|
26
|
-
return this
|
|
27
|
+
return this.#dataView.getBigUint64(this.getOffsetAndAdvance(8), this.#littleEndian);
|
|
27
28
|
}
|
|
28
29
|
readInt8() {
|
|
29
|
-
return this
|
|
30
|
+
return this.#dataView.getInt8(this.getOffsetAndAdvance(1));
|
|
30
31
|
}
|
|
31
32
|
readInt16() {
|
|
32
|
-
return this
|
|
33
|
+
return this.#dataView.getInt16(this.getOffsetAndAdvance(2), this.#littleEndian);
|
|
33
34
|
}
|
|
34
35
|
readInt32() {
|
|
35
|
-
return this
|
|
36
|
+
return this.#dataView.getInt32(this.getOffsetAndAdvance(4), this.#littleEndian);
|
|
36
37
|
}
|
|
37
38
|
readInt64() {
|
|
38
|
-
return this
|
|
39
|
+
return this.#dataView.getBigInt64(this.getOffsetAndAdvance(8), this.#littleEndian);
|
|
39
40
|
}
|
|
40
41
|
readFloat() {
|
|
41
|
-
return this
|
|
42
|
+
return this.#dataView.getFloat32(this.getOffsetAndAdvance(4), this.#littleEndian);
|
|
42
43
|
}
|
|
43
44
|
readDouble() {
|
|
44
|
-
return this
|
|
45
|
+
return this.#dataView.getFloat64(this.getOffsetAndAdvance(8), this.#littleEndian);
|
|
45
46
|
}
|
|
46
47
|
readUtf8String(length) {
|
|
47
48
|
const offset = this.getOffsetAndAdvance(length);
|
|
48
|
-
return new TextDecoder().decode(this
|
|
49
|
+
return new TextDecoder().decode(this.#buffer.subarray(offset, offset + length));
|
|
49
50
|
}
|
|
50
51
|
readByteArray(length) {
|
|
51
52
|
const offset = this.getOffsetAndAdvance(length);
|
|
52
|
-
return this
|
|
53
|
+
return this.#buffer.subarray(offset, offset + length);
|
|
53
54
|
}
|
|
54
|
-
|
|
55
|
-
return this
|
|
55
|
+
get remainingBytesCount() {
|
|
56
|
+
return this.#dataView.byteLength - this.#offset;
|
|
56
57
|
}
|
|
57
|
-
|
|
58
|
-
return this
|
|
58
|
+
get remainingBytes() {
|
|
59
|
+
return this.#buffer.subarray(this.#offset);
|
|
59
60
|
}
|
|
60
|
-
|
|
61
|
-
return this
|
|
61
|
+
get length() {
|
|
62
|
+
return this.#dataView.byteLength;
|
|
62
63
|
}
|
|
63
|
-
|
|
64
|
-
if (offset > this
|
|
64
|
+
set offset(offset) {
|
|
65
|
+
if (offset > this.#dataView.byteLength) {
|
|
65
66
|
throw new Error(`Offset ${offset} is out of bounds.`);
|
|
66
67
|
}
|
|
67
|
-
this
|
|
68
|
+
this.#offset = offset;
|
|
69
|
+
}
|
|
70
|
+
get offset() {
|
|
71
|
+
return this.#offset;
|
|
68
72
|
}
|
|
69
73
|
getOffsetAndAdvance(size) {
|
|
70
|
-
const result = this
|
|
71
|
-
this
|
|
72
|
-
if (this
|
|
73
|
-
this
|
|
74
|
+
const result = this.#offset;
|
|
75
|
+
this.#offset += size;
|
|
76
|
+
if (this.#offset > this.#dataView.byteLength) {
|
|
77
|
+
this.#offset = this.#dataView.byteLength;
|
|
74
78
|
}
|
|
75
79
|
return result;
|
|
76
80
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/DataReader.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,cAAc;AAGvB,MAAM,WAA6B;AAAA,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,cAAc;AAGvB,MAAM,WAA6B;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACT,UAAU;AAAA,EAEV,YAAY,QAAoB,QAAW;AACvC,SAAK,UAAU;AACf,SAAK,YAAY,MAAM,WAAW,KAAK,OAAO;AAC9C,SAAK,gBAAgB,WAAW,OAAO;AAAA,EAC3C;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,SAAS,KAAK,oBAAoB,CAAC,CAAC;AAAA,EAC9D;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,UAAU,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACnF;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,UAAU,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACnF;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,aAAa,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACtF;AAAA,EAEA,WAAW;AACP,WAAO,KAAK,UAAU,QAAQ,KAAK,oBAAoB,CAAC,CAAC;AAAA,EAC7D;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,SAAS,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EAClF;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,SAAS,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EAClF;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,YAAY,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACrF;AAAA,EAEA,YAAY;AACR,WAAO,KAAK,UAAU,WAAW,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACpF;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,UAAU,WAAW,KAAK,oBAAoB,CAAC,GAAG,KAAK,aAAa;AAAA,EACpF;AAAA,EAEA,eAAe,QAAgB;AAC3B,UAAM,SAAS,KAAK,oBAAoB,MAAM;AAC9C,WAAO,IAAI,YAAY,EAAE,OAAO,KAAK,QAAQ,SAAS,QAAQ,SAAS,MAAM,CAAC;AAAA,EAClF;AAAA,EAEA,cAAc,QAAgB;AAC1B,UAAM,SAAS,KAAK,oBAAoB,MAAM;AAC9C,WAAO,KAAK,QAAQ,SAAS,QAAQ,SAAS,MAAM;AAAA,EACxD;AAAA,EAEA,IAAI,sBAAsB;AACtB,WAAO,KAAK,UAAU,aAAa,KAAK;AAAA,EAC5C;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,QAAQ,SAAS,KAAK,OAAO;AAAA,EAC7C;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEA,IAAI,OAAO,QAAgB;AACvB,QAAI,SAAS,KAAK,UAAU,YAAY;AACpC,YAAM,IAAI,MAAM,UAAU,MAAM,oBAAoB;AAAA,IACxD;AACA,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEQ,oBAAoB,MAAc;AACtC,UAAM,SAAS,KAAK;AACpB,SAAK,WAAW;AAChB,QAAI,KAAK,UAAU,KAAK,UAAU,YAAY;AAC1C,WAAK,UAAU,KAAK,UAAU;AAAA,IAClC;AACA,WAAO;AAAA,EACX;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/general",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.6",
|
|
4
4
|
"description": "Non-Matter support for Matter.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"embed-examples": "embedme **/README.md"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@noble/curves": "^1.
|
|
36
|
+
"@noble/curves": "^1.7.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@matter/testing": "0.11.
|
|
39
|
+
"@matter/testing": "0.11.6"
|
|
40
40
|
},
|
|
41
41
|
"files": [
|
|
42
42
|
"dist/**/*",
|
package/src/codec/DerCodec.ts
CHANGED
|
@@ -277,7 +277,7 @@ export class DerCodec {
|
|
|
277
277
|
if ((tag & CONSTRUCTED) === 0) return { [DerKey.TagId]: tag, [DerKey.Bytes]: bytes };
|
|
278
278
|
const elementsReader = new DataReader(bytes, Endian.Big);
|
|
279
279
|
const elements: DerNode[] = [];
|
|
280
|
-
while (elementsReader.
|
|
280
|
+
while (elementsReader.remainingBytesCount > 0) {
|
|
281
281
|
elements.push(this.decodeRec(elementsReader));
|
|
282
282
|
}
|
|
283
283
|
return { [DerKey.TagId]: tag, [DerKey.Bytes]: bytes, [DerKey.Elements]: elements };
|
package/src/codec/DnsCodec.ts
CHANGED
|
@@ -153,7 +153,7 @@ export class DnsCodec {
|
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
static decodeQuery(reader: DataReader<Endian.Big>, message: Uint8Array): 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
|
-
|
|
165
|
+
static decodeRecord(reader: DataReader<Endian.Big>, message: Uint8Array): DnsRecord<any> {
|
|
166
166
|
const name = this.decodeQName(reader, message);
|
|
167
167
|
const recordType = reader.readUInt16();
|
|
168
168
|
const classInt = reader.readUInt16();
|
|
@@ -175,18 +175,32 @@ export class DnsCodec {
|
|
|
175
175
|
return { name, recordType, recordClass, ttl, value, flushCache };
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
|
|
178
|
+
static decodeQName(reader: DataReader<Endian.Big>, message: Uint8Array, visited = new Set<number>()): string {
|
|
179
|
+
if (visited.has(reader.offset)) {
|
|
180
|
+
throw new UnexpectedDataError(`QNAME pointer loop detected. Index ${reader.offset} visited twice.`);
|
|
181
|
+
}
|
|
182
|
+
visited.add(reader.offset);
|
|
183
|
+
|
|
179
184
|
const messageReader = new DataReader(message, Endian.Big);
|
|
180
185
|
const qNameItems = new Array<string>();
|
|
181
186
|
while (true) {
|
|
182
187
|
const itemLength = reader.readUInt8();
|
|
183
188
|
if (itemLength === 0) break;
|
|
184
189
|
if ((itemLength & 0xc0) !== 0) {
|
|
190
|
+
if (reader.remainingBytesCount < 1) {
|
|
191
|
+
throw new UnexpectedDataError("QNAME pointer exceeds remaining bytes.");
|
|
192
|
+
}
|
|
185
193
|
// Compressed Qname
|
|
186
194
|
const indexInMessage = reader.readUInt8() | ((itemLength & 0x3f) << 8);
|
|
187
|
-
|
|
188
|
-
|
|
195
|
+
if (indexInMessage >= message.length) {
|
|
196
|
+
throw new UnexpectedDataError("Invalid compressed QNAME pointer pointing to out of bounds index.");
|
|
197
|
+
}
|
|
198
|
+
messageReader.offset = indexInMessage;
|
|
199
|
+
qNameItems.push(this.decodeQName(messageReader, message, visited));
|
|
189
200
|
break;
|
|
201
|
+
} else if (reader.remainingBytesCount < itemLength + 1) {
|
|
202
|
+
// There needs to be a string end 0x00 at the end, so + 1
|
|
203
|
+
throw new UnexpectedDataError(`QNAME item length ${itemLength} exceeds remaining bytes.`);
|
|
190
204
|
}
|
|
191
205
|
qNameItems.push(reader.readUtf8String(itemLength));
|
|
192
206
|
}
|
|
@@ -211,7 +225,7 @@ export class DnsCodec {
|
|
|
211
225
|
}
|
|
212
226
|
}
|
|
213
227
|
|
|
214
|
-
|
|
228
|
+
static decodeSrvRecord(valueBytes: Uint8Array, message: Uint8Array): SrvRecordValue {
|
|
215
229
|
const reader = new DataReader(valueBytes, Endian.Big);
|
|
216
230
|
const priority = reader.readUInt16();
|
|
217
231
|
const weight = reader.readUInt16();
|
|
@@ -220,7 +234,7 @@ export class DnsCodec {
|
|
|
220
234
|
return { priority, weight, port, target };
|
|
221
235
|
}
|
|
222
236
|
|
|
223
|
-
|
|
237
|
+
static decodeTxtRecord(valueBytes: Uint8Array): string[] {
|
|
224
238
|
const reader = new DataReader(valueBytes, Endian.Big);
|
|
225
239
|
const result = new Array<string>();
|
|
226
240
|
let bytesRead = 0;
|
|
@@ -232,7 +246,7 @@ export class DnsCodec {
|
|
|
232
246
|
return result;
|
|
233
247
|
}
|
|
234
248
|
|
|
235
|
-
|
|
249
|
+
static decodeAaaaRecord(valueBytes: Uint8Array): string {
|
|
236
250
|
const reader = new DataReader(valueBytes, Endian.Big);
|
|
237
251
|
const ipItems = new Array<string>();
|
|
238
252
|
for (let i = 0; i < 8; i++) {
|
|
@@ -258,7 +272,7 @@ export class DnsCodec {
|
|
|
258
272
|
return ipItems.join(":");
|
|
259
273
|
}
|
|
260
274
|
|
|
261
|
-
|
|
275
|
+
static decodeARecord(valueBytes: Uint8Array): string {
|
|
262
276
|
const reader = new DataReader(valueBytes, Endian.Big);
|
|
263
277
|
const ipItems = new Array<string>();
|
|
264
278
|
for (let i = 0; i < 4; i++) {
|
|
@@ -334,7 +348,7 @@ export class DnsCodec {
|
|
|
334
348
|
}
|
|
335
349
|
}
|
|
336
350
|
|
|
337
|
-
|
|
351
|
+
static encodeARecord(ip: string) {
|
|
338
352
|
if (!isIPv4(ip)) throw new UnexpectedDataError(`Invalid A Record value: ${ip}`);
|
|
339
353
|
const writer = new DataWriter(Endian.Big);
|
|
340
354
|
ip.split(".").forEach(part => {
|
|
@@ -343,7 +357,7 @@ export class DnsCodec {
|
|
|
343
357
|
return writer.toByteArray();
|
|
344
358
|
}
|
|
345
359
|
|
|
346
|
-
|
|
360
|
+
static encodeAaaaRecord(ip: string) {
|
|
347
361
|
if (!isIPv6(ip)) throw new UnexpectedDataError(`Invalid AAAA Record value: ${ip}`);
|
|
348
362
|
const writer = new DataWriter(Endian.Big);
|
|
349
363
|
const parts = ip.split(":");
|
|
@@ -359,7 +373,7 @@ export class DnsCodec {
|
|
|
359
373
|
return writer.toByteArray();
|
|
360
374
|
}
|
|
361
375
|
|
|
362
|
-
|
|
376
|
+
static encodeTxtRecord(entries: string[]) {
|
|
363
377
|
const writer = new DataWriter(Endian.Big);
|
|
364
378
|
entries.forEach(entry => {
|
|
365
379
|
const entryData = Bytes.fromString(entry);
|
|
@@ -369,7 +383,7 @@ export class DnsCodec {
|
|
|
369
383
|
return writer.toByteArray();
|
|
370
384
|
}
|
|
371
385
|
|
|
372
|
-
|
|
386
|
+
static encodeSrvRecord({ priority, weight, port, target }: SrvRecordValue) {
|
|
373
387
|
const writer = new DataWriter(Endian.Big);
|
|
374
388
|
writer.writeUInt16(priority);
|
|
375
389
|
writer.writeUInt16(weight);
|
|
@@ -378,9 +392,10 @@ export class DnsCodec {
|
|
|
378
392
|
return writer.toByteArray();
|
|
379
393
|
}
|
|
380
394
|
|
|
381
|
-
|
|
395
|
+
static encodeQName(qname: string) {
|
|
382
396
|
const writer = new DataWriter(Endian.Big);
|
|
383
397
|
if (qname.length > 0) {
|
|
398
|
+
// TODO: Implement compression
|
|
384
399
|
qname.split(".").forEach(label => {
|
|
385
400
|
const labelData = Bytes.fromString(label);
|
|
386
401
|
writer.writeUInt8(labelData.length);
|
package/src/util/DataReader.ts
CHANGED
|
@@ -8,92 +8,95 @@ import { Bytes, Endian } from "./Bytes.js";
|
|
|
8
8
|
|
|
9
9
|
/** Reader that auto-increments its offset after each read. */
|
|
10
10
|
export class DataReader<E extends Endian> {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
readonly #littleEndian: boolean;
|
|
12
|
+
readonly #dataView: DataView;
|
|
13
|
+
readonly #buffer: Uint8Array;
|
|
14
|
+
#offset = 0;
|
|
14
15
|
|
|
15
|
-
constructor(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.dataView = Bytes.dataViewOf(buffer);
|
|
20
|
-
this.littleEndian = endian === Endian.Little;
|
|
16
|
+
constructor(buffer: Uint8Array, endian: E) {
|
|
17
|
+
this.#buffer = buffer;
|
|
18
|
+
this.#dataView = Bytes.dataViewOf(this.#buffer);
|
|
19
|
+
this.#littleEndian = endian === Endian.Little;
|
|
21
20
|
}
|
|
22
21
|
|
|
23
22
|
readUInt8() {
|
|
24
|
-
return this
|
|
23
|
+
return this.#dataView.getUint8(this.getOffsetAndAdvance(1));
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
readUInt16() {
|
|
28
|
-
return this
|
|
27
|
+
return this.#dataView.getUint16(this.getOffsetAndAdvance(2), this.#littleEndian);
|
|
29
28
|
}
|
|
30
29
|
|
|
31
30
|
readUInt32() {
|
|
32
|
-
return this
|
|
31
|
+
return this.#dataView.getUint32(this.getOffsetAndAdvance(4), this.#littleEndian);
|
|
33
32
|
}
|
|
34
33
|
|
|
35
34
|
readUInt64() {
|
|
36
|
-
return this
|
|
35
|
+
return this.#dataView.getBigUint64(this.getOffsetAndAdvance(8), this.#littleEndian);
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
readInt8() {
|
|
40
|
-
return this
|
|
39
|
+
return this.#dataView.getInt8(this.getOffsetAndAdvance(1));
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
readInt16() {
|
|
44
|
-
return this
|
|
43
|
+
return this.#dataView.getInt16(this.getOffsetAndAdvance(2), this.#littleEndian);
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
readInt32() {
|
|
48
|
-
return this
|
|
47
|
+
return this.#dataView.getInt32(this.getOffsetAndAdvance(4), this.#littleEndian);
|
|
49
48
|
}
|
|
50
49
|
|
|
51
50
|
readInt64() {
|
|
52
|
-
return this
|
|
51
|
+
return this.#dataView.getBigInt64(this.getOffsetAndAdvance(8), this.#littleEndian);
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
readFloat() {
|
|
56
|
-
return this
|
|
55
|
+
return this.#dataView.getFloat32(this.getOffsetAndAdvance(4), this.#littleEndian);
|
|
57
56
|
}
|
|
58
57
|
|
|
59
58
|
readDouble() {
|
|
60
|
-
return this
|
|
59
|
+
return this.#dataView.getFloat64(this.getOffsetAndAdvance(8), this.#littleEndian);
|
|
61
60
|
}
|
|
62
61
|
|
|
63
62
|
readUtf8String(length: number) {
|
|
64
63
|
const offset = this.getOffsetAndAdvance(length);
|
|
65
|
-
return new TextDecoder().decode(this
|
|
64
|
+
return new TextDecoder().decode(this.#buffer.subarray(offset, offset + length));
|
|
66
65
|
}
|
|
67
66
|
|
|
68
67
|
readByteArray(length: number) {
|
|
69
68
|
const offset = this.getOffsetAndAdvance(length);
|
|
70
|
-
return this
|
|
69
|
+
return this.#buffer.subarray(offset, offset + length);
|
|
71
70
|
}
|
|
72
71
|
|
|
73
|
-
|
|
74
|
-
return this
|
|
72
|
+
get remainingBytesCount() {
|
|
73
|
+
return this.#dataView.byteLength - this.#offset;
|
|
75
74
|
}
|
|
76
75
|
|
|
77
|
-
|
|
78
|
-
return this
|
|
76
|
+
get remainingBytes() {
|
|
77
|
+
return this.#buffer.subarray(this.#offset);
|
|
79
78
|
}
|
|
80
79
|
|
|
81
|
-
|
|
82
|
-
return this
|
|
80
|
+
get length() {
|
|
81
|
+
return this.#dataView.byteLength;
|
|
83
82
|
}
|
|
84
83
|
|
|
85
|
-
|
|
86
|
-
if (offset > this
|
|
84
|
+
set offset(offset: number) {
|
|
85
|
+
if (offset > this.#dataView.byteLength) {
|
|
87
86
|
throw new Error(`Offset ${offset} is out of bounds.`);
|
|
88
87
|
}
|
|
89
|
-
this
|
|
88
|
+
this.#offset = offset;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
get offset() {
|
|
92
|
+
return this.#offset;
|
|
90
93
|
}
|
|
91
94
|
|
|
92
95
|
private getOffsetAndAdvance(size: number) {
|
|
93
|
-
const result = this
|
|
94
|
-
this
|
|
95
|
-
if (this
|
|
96
|
-
this
|
|
96
|
+
const result = this.#offset;
|
|
97
|
+
this.#offset += size;
|
|
98
|
+
if (this.#offset > this.#dataView.byteLength) {
|
|
99
|
+
this.#offset = this.#dataView.byteLength;
|
|
97
100
|
}
|
|
98
101
|
return result;
|
|
99
102
|
}
|