@matter/general 0.14.1-alpha.0-20250606-a9bcd03f9 → 0.15.0-alpha.0-20250612-ddd428561
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 +12 -17
- package/dist/cjs/codec/DerCodec.d.ts.map +1 -1
- package/dist/cjs/codec/DerCodec.js +90 -51
- package/dist/cjs/codec/DerCodec.js.map +1 -1
- package/dist/cjs/codec/DerTypes.js +1 -1
- package/dist/cjs/codec/DnsCodec.d.ts +5 -5
- package/dist/cjs/crypto/Crypto.d.ts +111 -62
- package/dist/cjs/crypto/Crypto.d.ts.map +1 -1
- package/dist/cjs/crypto/Crypto.js +92 -31
- package/dist/cjs/crypto/Crypto.js.map +1 -1
- package/dist/cjs/crypto/CryptoError.d.ts +32 -0
- package/dist/cjs/crypto/CryptoError.d.ts.map +1 -0
- package/dist/cjs/crypto/CryptoError.js +44 -0
- package/dist/cjs/crypto/CryptoError.js.map +6 -0
- package/dist/cjs/crypto/Key.d.ts +2 -2
- package/dist/cjs/crypto/Key.d.ts.map +1 -1
- package/dist/cjs/crypto/Key.js +15 -16
- package/dist/cjs/crypto/Key.js.map +1 -1
- package/dist/cjs/crypto/Spake2p.js +5 -5
- package/dist/cjs/crypto/Spake2p.js.map +1 -1
- package/dist/cjs/crypto/StandardCrypto.d.ts +33 -0
- package/dist/cjs/crypto/StandardCrypto.d.ts.map +1 -0
- package/dist/cjs/crypto/StandardCrypto.js +208 -0
- package/dist/cjs/crypto/StandardCrypto.js.map +6 -0
- package/dist/cjs/crypto/aes/Aes.d.ts +21 -0
- package/dist/cjs/crypto/aes/Aes.d.ts.map +1 -0
- package/dist/cjs/crypto/aes/Aes.js +132 -0
- package/dist/cjs/crypto/aes/Aes.js.map +6 -0
- package/dist/cjs/crypto/aes/Ccm.d.ts +71 -0
- package/dist/cjs/crypto/aes/Ccm.d.ts.map +1 -0
- package/dist/cjs/crypto/aes/Ccm.js +194 -0
- package/dist/cjs/crypto/aes/Ccm.js.map +6 -0
- package/dist/cjs/crypto/aes/WordArray.d.ts +30 -0
- package/dist/cjs/crypto/aes/WordArray.d.ts.map +1 -0
- package/dist/cjs/crypto/aes/WordArray.js +91 -0
- package/dist/cjs/crypto/aes/WordArray.js.map +6 -0
- package/dist/cjs/crypto/index.d.ts +3 -0
- package/dist/cjs/crypto/index.d.ts.map +1 -1
- package/dist/cjs/crypto/index.js +3 -0
- package/dist/cjs/crypto/index.js.map +1 -1
- package/dist/cjs/crypto/nonentropic.d.ts +16 -0
- package/dist/cjs/crypto/nonentropic.d.ts.map +1 -0
- package/dist/cjs/crypto/nonentropic.js +70 -0
- package/dist/cjs/crypto/nonentropic.js.map +6 -0
- package/dist/cjs/environment/Environment.d.ts.map +1 -1
- package/dist/cjs/environment/Environment.js +1 -5
- package/dist/cjs/environment/Environment.js.map +1 -1
- package/dist/cjs/environment/RuntimeService.d.ts +2 -4
- package/dist/cjs/environment/RuntimeService.d.ts.map +1 -1
- package/dist/cjs/environment/RuntimeService.js +4 -4
- package/dist/cjs/environment/RuntimeService.js.map +1 -1
- package/dist/cjs/environment/VariableService.d.ts.map +1 -1
- package/dist/cjs/environment/VariableService.js +1 -0
- package/dist/cjs/environment/VariableService.js.map +1 -1
- package/dist/cjs/log/LogFormat.js +17 -11
- package/dist/cjs/log/LogFormat.js.map +1 -1
- package/dist/cjs/net/Network.d.ts +0 -1
- package/dist/cjs/net/Network.d.ts.map +1 -1
- package/dist/cjs/net/Network.js +0 -4
- package/dist/cjs/net/Network.js.map +1 -1
- package/dist/cjs/time/Time.d.ts.map +1 -1
- package/dist/cjs/time/Time.js +2 -2
- package/dist/cjs/time/Time.js.map +1 -1
- package/dist/cjs/util/Bytes.d.ts +6 -0
- package/dist/cjs/util/Bytes.d.ts.map +1 -1
- package/dist/cjs/util/Bytes.js +15 -1
- package/dist/cjs/util/Bytes.js.map +1 -1
- package/dist/cjs/util/DataWriter.d.ts +1 -1
- package/dist/cjs/util/DataWriter.js +2 -2
- package/dist/cjs/util/DataWriter.js.map +1 -1
- package/dist/cjs/util/DeepCopy.js +1 -1
- package/dist/cjs/util/DeepCopy.js.map +1 -1
- package/dist/cjs/util/GeneratedClass.d.ts +3 -3
- package/dist/cjs/util/GeneratedClass.d.ts.map +1 -1
- package/dist/cjs/util/GeneratedClass.js +99 -73
- package/dist/cjs/util/GeneratedClass.js.map +2 -2
- package/dist/cjs/util/Number.d.ts +0 -1
- package/dist/cjs/util/Number.d.ts.map +1 -1
- package/dist/cjs/util/Number.js +0 -4
- package/dist/cjs/util/Number.js.map +1 -1
- package/dist/esm/codec/DerCodec.d.ts +12 -17
- package/dist/esm/codec/DerCodec.d.ts.map +1 -1
- package/dist/esm/codec/DerCodec.js +90 -51
- package/dist/esm/codec/DerCodec.js.map +1 -1
- package/dist/esm/codec/DerTypes.js +2 -2
- package/dist/esm/codec/DnsCodec.d.ts +5 -5
- package/dist/esm/crypto/Crypto.d.ts +111 -62
- package/dist/esm/crypto/Crypto.d.ts.map +1 -1
- package/dist/esm/crypto/Crypto.js +93 -32
- package/dist/esm/crypto/Crypto.js.map +1 -1
- package/dist/esm/crypto/CryptoError.d.ts +32 -0
- package/dist/esm/crypto/CryptoError.d.ts.map +1 -0
- package/dist/esm/crypto/CryptoError.js +24 -0
- package/dist/esm/crypto/CryptoError.js.map +6 -0
- package/dist/esm/crypto/Key.d.ts +2 -2
- package/dist/esm/crypto/Key.d.ts.map +1 -1
- package/dist/esm/crypto/Key.js +15 -16
- package/dist/esm/crypto/Key.js.map +1 -1
- package/dist/esm/crypto/Spake2p.js +5 -5
- package/dist/esm/crypto/Spake2p.js.map +1 -1
- package/dist/esm/crypto/StandardCrypto.d.ts +33 -0
- package/dist/esm/crypto/StandardCrypto.d.ts.map +1 -0
- package/dist/esm/crypto/StandardCrypto.js +188 -0
- package/dist/esm/crypto/StandardCrypto.js.map +6 -0
- package/dist/esm/crypto/aes/Aes.d.ts +21 -0
- package/dist/esm/crypto/aes/Aes.d.ts.map +1 -0
- package/dist/esm/crypto/aes/Aes.js +112 -0
- package/dist/esm/crypto/aes/Aes.js.map +6 -0
- package/dist/esm/crypto/aes/Ccm.d.ts +71 -0
- package/dist/esm/crypto/aes/Ccm.d.ts.map +1 -0
- package/dist/esm/crypto/aes/Ccm.js +174 -0
- package/dist/esm/crypto/aes/Ccm.js.map +6 -0
- package/dist/esm/crypto/aes/WordArray.d.ts +30 -0
- package/dist/esm/crypto/aes/WordArray.d.ts.map +1 -0
- package/dist/esm/crypto/aes/WordArray.js +71 -0
- package/dist/esm/crypto/aes/WordArray.js.map +6 -0
- package/dist/esm/crypto/index.d.ts +3 -0
- package/dist/esm/crypto/index.d.ts.map +1 -1
- package/dist/esm/crypto/index.js +3 -0
- package/dist/esm/crypto/index.js.map +1 -1
- package/dist/esm/crypto/nonentropic.d.ts +16 -0
- package/dist/esm/crypto/nonentropic.d.ts.map +1 -0
- package/dist/esm/crypto/nonentropic.js +50 -0
- package/dist/esm/crypto/nonentropic.js.map +6 -0
- package/dist/esm/environment/Environment.d.ts.map +1 -1
- package/dist/esm/environment/Environment.js +1 -5
- package/dist/esm/environment/Environment.js.map +1 -1
- package/dist/esm/environment/RuntimeService.d.ts +2 -4
- package/dist/esm/environment/RuntimeService.d.ts.map +1 -1
- package/dist/esm/environment/RuntimeService.js +4 -4
- package/dist/esm/environment/RuntimeService.js.map +1 -1
- package/dist/esm/environment/VariableService.d.ts.map +1 -1
- package/dist/esm/environment/VariableService.js +1 -0
- package/dist/esm/environment/VariableService.js.map +1 -1
- package/dist/esm/log/LogFormat.js +17 -11
- package/dist/esm/log/LogFormat.js.map +1 -1
- package/dist/esm/net/Network.d.ts +0 -1
- package/dist/esm/net/Network.d.ts.map +1 -1
- package/dist/esm/net/Network.js +1 -5
- package/dist/esm/net/Network.js.map +1 -1
- package/dist/esm/time/Time.d.ts.map +1 -1
- package/dist/esm/time/Time.js +2 -2
- package/dist/esm/time/Time.js.map +1 -1
- package/dist/esm/util/Bytes.d.ts +6 -0
- package/dist/esm/util/Bytes.d.ts.map +1 -1
- package/dist/esm/util/Bytes.js +15 -1
- package/dist/esm/util/Bytes.js.map +1 -1
- package/dist/esm/util/DataWriter.d.ts +1 -1
- package/dist/esm/util/DataWriter.js +3 -3
- package/dist/esm/util/DataWriter.js.map +1 -1
- package/dist/esm/util/DeepCopy.js +1 -1
- package/dist/esm/util/DeepCopy.js.map +1 -1
- package/dist/esm/util/GeneratedClass.d.ts +3 -3
- package/dist/esm/util/GeneratedClass.d.ts.map +1 -1
- package/dist/esm/util/GeneratedClass.js +97 -71
- package/dist/esm/util/GeneratedClass.js.map +2 -2
- package/dist/esm/util/Number.d.ts +0 -1
- package/dist/esm/util/Number.d.ts.map +1 -1
- package/dist/esm/util/Number.js +0 -4
- package/dist/esm/util/Number.js.map +1 -1
- package/package.json +3 -3
- package/src/codec/DerCodec.ts +106 -52
- package/src/codec/DerTypes.ts +2 -2
- package/src/crypto/Crypto.ts +196 -76
- package/src/crypto/CryptoError.ts +32 -0
- package/src/crypto/Key.ts +17 -18
- package/src/crypto/Spake2p.ts +5 -5
- package/src/crypto/StandardCrypto.ts +252 -0
- package/src/crypto/aes/Aes.ts +210 -0
- package/src/crypto/aes/Ccm.ts +350 -0
- package/src/crypto/aes/README.md +4 -0
- package/src/crypto/aes/WordArray.ts +105 -0
- package/src/crypto/index.ts +3 -0
- package/src/crypto/nonentropic.ts +65 -0
- package/src/environment/Environment.ts +1 -6
- package/src/environment/RuntimeService.ts +5 -5
- package/src/environment/VariableService.ts +1 -0
- package/src/log/LogFormat.ts +19 -11
- package/src/net/Network.ts +1 -7
- package/src/time/Time.ts +4 -4
- package/src/util/Bytes.ts +19 -0
- package/src/util/DataWriter.ts +3 -3
- package/src/util/DeepCopy.ts +2 -2
- package/src/util/GeneratedClass.ts +161 -102
- package/src/util/Number.ts +0 -4
|
@@ -53,7 +53,7 @@ const DerObject = (objectId, content = {}) => ({
|
|
|
53
53
|
["_objectId" /* ObjectId */]: ObjectId(objectId),
|
|
54
54
|
...content
|
|
55
55
|
});
|
|
56
|
-
const
|
|
56
|
+
const DerBitString = (data, padding = 0) => ({
|
|
57
57
|
["_tag" /* TagId */]: 3 /* BitString */,
|
|
58
58
|
["_bytes" /* Bytes */]: data,
|
|
59
59
|
["_padding" /* BitsPadding */]: padding
|
|
@@ -73,20 +73,32 @@ const DatatypeOverride = (type, value) => ({
|
|
|
73
73
|
const RawBytes = (bytes) => ({
|
|
74
74
|
["_bytes" /* Bytes */]: bytes
|
|
75
75
|
});
|
|
76
|
+
const DerBigUint = (number) => {
|
|
77
|
+
if (!ArrayBuffer.isView(number)) {
|
|
78
|
+
number = new Uint8Array(number);
|
|
79
|
+
}
|
|
80
|
+
if (number[0] & 128) {
|
|
81
|
+
number = Bytes.concat(new Uint8Array([0]), number);
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
["_tag" /* TagId */]: 2 /* Integer */,
|
|
85
|
+
["_bytes" /* Bytes */]: number
|
|
86
|
+
};
|
|
87
|
+
};
|
|
76
88
|
class DerCodec {
|
|
77
89
|
static encode(value) {
|
|
78
90
|
if (Array.isArray(value)) {
|
|
79
|
-
return this
|
|
91
|
+
return this.#encodeArray(value);
|
|
80
92
|
} else if (value instanceof Uint8Array) {
|
|
81
|
-
return this
|
|
93
|
+
return this.#encodeOctetString(value);
|
|
82
94
|
} else if (value instanceof Date) {
|
|
83
|
-
return this
|
|
95
|
+
return this.#encodeDate(value);
|
|
84
96
|
} else if (typeof value === "string") {
|
|
85
|
-
return this
|
|
97
|
+
return this.#encodeString(value);
|
|
86
98
|
} else if (typeof value === "number" || typeof value === "bigint") {
|
|
87
|
-
return this
|
|
99
|
+
return this.#encodeInteger(value);
|
|
88
100
|
} else if (typeof value === "boolean") {
|
|
89
|
-
return this
|
|
101
|
+
return this.#encodeBoolean(value);
|
|
90
102
|
} else if (value === void 0) {
|
|
91
103
|
return new Uint8Array(0);
|
|
92
104
|
} else if (isObject(value)) {
|
|
@@ -101,81 +113,110 @@ class DerCodec {
|
|
|
101
113
|
if (bytes === void 0 || !ArrayBuffer.isView(bytes)) {
|
|
102
114
|
throw new DerError("DER bytes is not a byte array");
|
|
103
115
|
}
|
|
104
|
-
return this
|
|
116
|
+
return this.#encodeAsn1(
|
|
105
117
|
tagId,
|
|
106
118
|
bitsPadding === void 0 ? bytes : Bytes.concat(Uint8Array.of(bitsPadding), bytes)
|
|
107
119
|
);
|
|
108
120
|
} else if (value["_type" /* TypeOverride */] !== void 0 && value["_raw" /* RawData */] !== void 0) {
|
|
109
121
|
if (value["_type" /* TypeOverride */] === 2 /* Integer */ && value["_raw" /* RawData */] instanceof Uint8Array) {
|
|
110
|
-
return this
|
|
122
|
+
return this.#encodeInteger(value["_raw" /* RawData */]);
|
|
111
123
|
} else if (value["_type" /* TypeOverride */] === 3 /* BitString */ && typeof value["_raw" /* RawData */] === "number") {
|
|
112
|
-
return this
|
|
124
|
+
return this.#encodeBitString(value["_raw" /* RawData */]);
|
|
113
125
|
} else if (value["_type" /* TypeOverride */] === 19 /* PrintableString */ && typeof value["_raw" /* RawData */] === "string") {
|
|
114
|
-
return this
|
|
126
|
+
return this.#encodePrintableString(value["_raw" /* RawData */]);
|
|
115
127
|
} else if (value["_type" /* TypeOverride */] === 22 /* IA5String */ && typeof value["_raw" /* RawData */] === "string") {
|
|
116
|
-
return this
|
|
128
|
+
return this.#encodeIA5String(value["_raw" /* RawData */]);
|
|
117
129
|
} else {
|
|
118
|
-
throw new
|
|
130
|
+
throw new DerError(`Unsupported override type ${value["_type" /* TypeOverride */]}`);
|
|
119
131
|
}
|
|
120
132
|
} else if (value["_bytes" /* Bytes */] !== void 0 && value["_bytes" /* Bytes */] instanceof Uint8Array && Object.keys(value).length === 1) {
|
|
121
133
|
return value["_bytes" /* Bytes */];
|
|
122
134
|
} else if (value["_type" /* TypeOverride */] === void 0 && value["_bytes" /* Bytes */] === void 0) {
|
|
123
|
-
return this
|
|
135
|
+
return this.#encodeObject(value);
|
|
124
136
|
} else {
|
|
125
|
-
throw new
|
|
137
|
+
throw new DerError(`Unsupported object type ${typeof value}`);
|
|
126
138
|
}
|
|
127
139
|
} else {
|
|
128
|
-
throw new
|
|
140
|
+
throw new DerError(`Unsupported type ${typeof value}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
static decode(data) {
|
|
144
|
+
return this.#decodeRec(new DataReader(data));
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Extract a large integer value to a byte array with a specific number of bytes.
|
|
148
|
+
*/
|
|
149
|
+
static decodeBigUint(value, byteLength) {
|
|
150
|
+
if (value === void 0) {
|
|
151
|
+
throw new DerError("Missing number in DER object");
|
|
152
|
+
}
|
|
153
|
+
if (value["_tag" /* TagId */] !== 2 /* Integer */) {
|
|
154
|
+
throw new DerError(`Expected integer but DER tag is ${DerType[value["_tag" /* TagId */]]}`);
|
|
129
155
|
}
|
|
156
|
+
const bytes = value["_bytes" /* Bytes */];
|
|
157
|
+
if (!ArrayBuffer.isView(bytes)) {
|
|
158
|
+
throw new DerError("Incorrect DER object type");
|
|
159
|
+
}
|
|
160
|
+
if (bytes.length === byteLength) {
|
|
161
|
+
return bytes;
|
|
162
|
+
}
|
|
163
|
+
if (bytes.length === byteLength + 1 && !bytes[0]) {
|
|
164
|
+
return bytes.slice(1);
|
|
165
|
+
}
|
|
166
|
+
if (bytes.length < byteLength) {
|
|
167
|
+
return Bytes.concat(new Uint8Array(byteLength - bytes.length), bytes);
|
|
168
|
+
}
|
|
169
|
+
throw new DerError("Encoded integer contains too many bytes");
|
|
130
170
|
}
|
|
131
|
-
static encodeDate(date) {
|
|
171
|
+
static #encodeDate(date) {
|
|
132
172
|
if (date.getFullYear() > 2049) {
|
|
133
|
-
return this
|
|
173
|
+
return this.#encodeAsn1(
|
|
134
174
|
24 /* GeneralizedTime */,
|
|
135
175
|
Bytes.fromString(
|
|
136
176
|
date.toISOString().replace(/[-:.T]/g, "").slice(0, 14) + "Z"
|
|
137
177
|
)
|
|
138
178
|
);
|
|
139
|
-
} else
|
|
140
|
-
return this
|
|
179
|
+
} else {
|
|
180
|
+
return this.#encodeAsn1(
|
|
141
181
|
23 /* UtcDate */,
|
|
142
182
|
Bytes.fromString(
|
|
143
183
|
date.toISOString().replace(/[-:.T]/g, "").slice(2, 14) + "Z"
|
|
144
184
|
)
|
|
145
185
|
);
|
|
186
|
+
}
|
|
146
187
|
}
|
|
147
|
-
static encodeBoolean(bool) {
|
|
148
|
-
return this
|
|
188
|
+
static #encodeBoolean(bool) {
|
|
189
|
+
return this.#encodeAsn1(1 /* Boolean */, Uint8Array.of(bool ? 255 : 0));
|
|
149
190
|
}
|
|
150
|
-
static encodeArray(array) {
|
|
151
|
-
return this
|
|
191
|
+
static #encodeArray(array) {
|
|
192
|
+
return this.#encodeAsn1(17 /* Set */ | CONSTRUCTED, Bytes.concat(...array.map((element) => this.encode(element))));
|
|
152
193
|
}
|
|
153
|
-
static encodeOctetString(value) {
|
|
154
|
-
return this
|
|
194
|
+
static #encodeOctetString(value) {
|
|
195
|
+
return this.#encodeAsn1(4 /* OctetString */, value);
|
|
155
196
|
}
|
|
156
|
-
static encodeObject(object) {
|
|
197
|
+
static #encodeObject(object) {
|
|
157
198
|
const attributes = new Array();
|
|
158
199
|
for (const key in object) {
|
|
159
200
|
attributes.push(this.encode(object[key]));
|
|
160
201
|
}
|
|
161
|
-
return this
|
|
202
|
+
return this.#encodeAsn1(16 /* Sequence */ | CONSTRUCTED, Bytes.concat(...attributes));
|
|
162
203
|
}
|
|
163
|
-
static encodeString(value) {
|
|
164
|
-
return this
|
|
204
|
+
static #encodeString(value) {
|
|
205
|
+
return this.#encodeAsn1(12 /* UTF8String */, Bytes.fromString(value));
|
|
165
206
|
}
|
|
166
|
-
static encodePrintableString(value) {
|
|
207
|
+
static #encodePrintableString(value) {
|
|
167
208
|
if (!/^[a-z0-9 '()+,\-./:=?]*$/i.test(value)) {
|
|
168
|
-
throw new
|
|
209
|
+
throw new DerError(`String ${value} is not a printable string.`);
|
|
169
210
|
}
|
|
170
|
-
return this
|
|
211
|
+
return this.#encodeAsn1(19 /* PrintableString */, Bytes.fromString(value));
|
|
171
212
|
}
|
|
172
|
-
static encodeIA5String(value) {
|
|
213
|
+
static #encodeIA5String(value) {
|
|
173
214
|
if (!/^[\x00-\x7F]*$/.test(value)) {
|
|
174
|
-
throw new
|
|
215
|
+
throw new DerError(`String ${value} is not an IA5 string.`);
|
|
175
216
|
}
|
|
176
|
-
return this
|
|
217
|
+
return this.#encodeAsn1(22 /* IA5String */, Bytes.fromString(value));
|
|
177
218
|
}
|
|
178
|
-
static encodeInteger(value) {
|
|
219
|
+
static #encodeInteger(value) {
|
|
179
220
|
const isByteArray = ArrayBuffer.isView(value);
|
|
180
221
|
let valueBytes;
|
|
181
222
|
if (isByteArray) {
|
|
@@ -192,15 +233,15 @@ class DerCodec {
|
|
|
192
233
|
start++;
|
|
193
234
|
if (start === byteArray.length - 1) break;
|
|
194
235
|
}
|
|
195
|
-
return this
|
|
236
|
+
return this.#encodeAsn1(2 /* Integer */, byteArray.slice(start));
|
|
196
237
|
}
|
|
197
|
-
static encodeBitString(value) {
|
|
238
|
+
static #encodeBitString(value) {
|
|
198
239
|
const reversedBits = value.toString(2).padStart(8, "0");
|
|
199
240
|
const unusedBits = reversedBits.indexOf("1");
|
|
200
241
|
const bitByteArray = Uint8Array.of(parseInt(reversedBits.split("").reverse().join(""), 2));
|
|
201
|
-
return this.encode(
|
|
242
|
+
return this.encode(DerBitString(bitByteArray, unusedBits === -1 ? 8 : unusedBits));
|
|
202
243
|
}
|
|
203
|
-
static encodeLengthBytes(value) {
|
|
244
|
+
static #encodeLengthBytes(value) {
|
|
204
245
|
const byteArray = new Uint8Array(5);
|
|
205
246
|
const dataView = Bytes.dataViewOf(byteArray);
|
|
206
247
|
dataView.setUint32(1, value);
|
|
@@ -217,25 +258,22 @@ class DerCodec {
|
|
|
217
258
|
}
|
|
218
259
|
return byteArray.slice(start);
|
|
219
260
|
}
|
|
220
|
-
static encodeAsn1(tag, data) {
|
|
221
|
-
return Bytes.concat(Uint8Array.of(tag), this
|
|
222
|
-
}
|
|
223
|
-
static decode(data) {
|
|
224
|
-
return this.decodeRec(new DataReader(data));
|
|
261
|
+
static #encodeAsn1(tag, data) {
|
|
262
|
+
return Bytes.concat(Uint8Array.of(tag), this.#encodeLengthBytes(data.length), data);
|
|
225
263
|
}
|
|
226
|
-
static decodeRec(reader) {
|
|
227
|
-
const { tag, bytes } = this
|
|
264
|
+
static #decodeRec(reader) {
|
|
265
|
+
const { tag, bytes } = this.#decodeAsn1(reader);
|
|
228
266
|
if (tag === 3 /* BitString */)
|
|
229
267
|
return { ["_tag" /* TagId */]: tag, ["_bytes" /* Bytes */]: bytes.slice(1), ["_padding" /* BitsPadding */]: bytes[0] };
|
|
230
268
|
if ((tag & CONSTRUCTED) === 0) return { ["_tag" /* TagId */]: tag, ["_bytes" /* Bytes */]: bytes };
|
|
231
269
|
const elementsReader = new DataReader(bytes);
|
|
232
270
|
const elements = [];
|
|
233
271
|
while (elementsReader.remainingBytesCount > 0) {
|
|
234
|
-
elements.push(this
|
|
272
|
+
elements.push(this.#decodeRec(elementsReader));
|
|
235
273
|
}
|
|
236
274
|
return { ["_tag" /* TagId */]: tag, ["_bytes" /* Bytes */]: bytes, ["_elements" /* Elements */]: elements };
|
|
237
275
|
}
|
|
238
|
-
static decodeAsn1(reader) {
|
|
276
|
+
static #decodeAsn1(reader) {
|
|
239
277
|
const tag = reader.readUInt8();
|
|
240
278
|
let length = reader.readUInt8();
|
|
241
279
|
if ((length & 128) !== 0) {
|
|
@@ -251,10 +289,11 @@ class DerCodec {
|
|
|
251
289
|
}
|
|
252
290
|
}
|
|
253
291
|
export {
|
|
254
|
-
BitByteArray,
|
|
255
292
|
ContextTagged,
|
|
256
293
|
ContextTaggedBytes,
|
|
257
294
|
DatatypeOverride,
|
|
295
|
+
DerBigUint,
|
|
296
|
+
DerBitString,
|
|
258
297
|
DerCodec,
|
|
259
298
|
DerError,
|
|
260
299
|
DerKey,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/codec/DerCodec.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,2BAA2B;AACpC,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAC3B,SAAS,aAAa;AACtB,SAAS,gBAAgB;AAElB,IAAK,SAAL,kBAAKA,YAAL;AACH,EAAAA,QAAA,cAAW;AACX,EAAAA,QAAA,WAAQ;AACR,EAAAA,QAAA,WAAQ;AACR,EAAAA,QAAA,cAAW;AACX,EAAAA,QAAA,iBAAc;AACd,EAAAA,QAAA,kBAAe;AACf,EAAAA,QAAA,aAAU;AAPF,SAAAA;AAAA,GAAA;AAUL,MAAM,iBAAiB,oBAAoB;AAAC;AAE5C,IAAK,UAAL,kBAAKC,aAAL;AACH,EAAAA,kBAAA,aAAU,KAAV;AACA,EAAAA,kBAAA,aAAU,KAAV;AACA,EAAAA,kBAAA,eAAY,KAAZ;AACA,EAAAA,kBAAA,iBAAc,KAAd;AACA,EAAAA,kBAAA,UAAO,KAAP;AACA,EAAAA,kBAAA,sBAAmB,KAAnB;AACA,EAAAA,kBAAA,gBAAa,MAAb;AACA,EAAAA,kBAAA,cAAW,MAAX;AACA,EAAAA,kBAAA,SAAM,MAAN;AACA,EAAAA,kBAAA,qBAAkB,MAAlB;AACA,EAAAA,kBAAA,eAAY,MAAZ;AACA,EAAAA,kBAAA,eAAY,MAAZ;AACA,EAAAA,kBAAA,aAAU,MAAV;AACA,EAAAA,kBAAA,qBAAkB,MAAlB;AAdQ,SAAAA;AAAA,GAAA;AAiBZ,MAAM,cAAc;AAEpB,IAAW,WAAX,kBAAWC,cAAX;AACI,EAAAA,oBAAA,eAAY,KAAZ;AACA,EAAAA,oBAAA,iBAAc,MAAd;AACA,EAAAA,oBAAA,qBAAkB,OAAlB;AACA,EAAAA,oBAAA,aAAU,OAAV;AAJO,SAAAA;AAAA,GAAA;AAMJ,MAAM,WAAW,CAAC,cAAsB;AAAA,EAC3C,CAAC,kBAAY,GAAG;AAAA,EAChB,CAAC,oBAAY,GAAG,MAAM,QAAQ,QAAQ;AAC1C;AACO,MAAM,YAAY,CAAC,UAAkB,UAAe,CAAC,OAAO;AAAA,EAC/D,CAAC,0BAAe,GAAG,SAAS,QAAQ;AAAA,EACpC,GAAG;AACP;AACO,MAAM,eAAe,CAAC,MAAkB,UAAU,OAAO;AAAA,EAC5D,CAAC,kBAAY,GAAG;AAAA,EAChB,CAAC,oBAAY,GAAG;AAAA,EAChB,CAAC,4BAAkB,GAAG;AAC1B;AACO,MAAM,gBAAgB,CAAC,OAAe,WAAiB;AAAA,EAC1D,CAAC,kBAAY,GAAG,QAAQ,4BAA2B;AAAA,EACnD,CAAC,oBAAY,GAAG,UAAU,SAAY,IAAI,WAAW,CAAC,IAAI,SAAS,OAAO,KAAK;AACnF;AACO,MAAM,qBAAqB,CAAC,OAAe,WAAuB;AAAA,EACrE,CAAC,kBAAY,GAAG,QAAQ;AAAA,EACxB,CAAC,oBAAY,GAAG;AACpB;AACO,MAAM,mBAAmB,CAAC,MAAe,WAAgB;AAAA,EAC5D,CAAC,0BAAmB,GAAG;AAAA,EACvB,CAAC,oBAAc,GAAG;AACtB;AACO,MAAM,WAAW,CAAC,WAAuB;AAAA,EAC5C,CAAC,oBAAY,GAAG;AACpB;AASO,MAAM,SAAS;AAAA,EAClB,OAAO,OAAO,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["DerKey", "DerType", "DerClass"]
|
|
6
6
|
}
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import {
|
|
7
|
-
BitByteArray,
|
|
8
7
|
ContextTagged,
|
|
9
8
|
ContextTaggedBytes,
|
|
10
9
|
DatatypeOverride,
|
|
10
|
+
DerBitString,
|
|
11
11
|
DerCodec,
|
|
12
12
|
DerError,
|
|
13
13
|
DerObject,
|
|
@@ -21,7 +21,7 @@ var X962;
|
|
|
21
21
|
algorithm: ObjectId("2A8648CE3D0201"),
|
|
22
22
|
curve: ObjectId("2A8648CE3D030107")
|
|
23
23
|
},
|
|
24
|
-
bytes:
|
|
24
|
+
bytes: DerBitString(key)
|
|
25
25
|
});
|
|
26
26
|
X9622.EcdsaWithSHA256 = DerObject("2A8648CE3D040302");
|
|
27
27
|
})(X962 || (X962 = {}));
|
|
@@ -80,10 +80,10 @@ export declare class DnsCodec {
|
|
|
80
80
|
static encode({ messageType, transactionId, queries, answers, authorities, additionalRecords, }: Partial<DnsMessagePartiallyPreEncoded>): Uint8Array;
|
|
81
81
|
static encodeRecord(record: DnsRecord<any>): Uint8Array;
|
|
82
82
|
private static encodeRecordValue;
|
|
83
|
-
static encodeARecord(ip: string): Uint8Array<
|
|
84
|
-
static encodeAaaaRecord(ip: string): Uint8Array<
|
|
85
|
-
static encodeTxtRecord(entries: string[]): Uint8Array<
|
|
86
|
-
static encodeSrvRecord({ priority, weight, port, target }: SrvRecordValue): Uint8Array<
|
|
87
|
-
static encodeQName(qname: string): Uint8Array<
|
|
83
|
+
static encodeARecord(ip: string): Uint8Array<ArrayBuffer>;
|
|
84
|
+
static encodeAaaaRecord(ip: string): Uint8Array<ArrayBuffer>;
|
|
85
|
+
static encodeTxtRecord(entries: string[]): Uint8Array<ArrayBuffer>;
|
|
86
|
+
static encodeSrvRecord({ priority, weight, port, target }: SrvRecordValue): Uint8Array<ArrayBuffer>;
|
|
87
|
+
static encodeQName(qname: string): Uint8Array<ArrayBuffer>;
|
|
88
88
|
}
|
|
89
89
|
//# sourceMappingURL=DnsCodec.d.ts.map
|
|
@@ -6,8 +6,7 @@
|
|
|
6
6
|
import { MaybePromise } from "#util/Promises.js";
|
|
7
7
|
import * as mod from "@noble/curves/abstract/modular";
|
|
8
8
|
import * as utils from "@noble/curves/abstract/utils";
|
|
9
|
-
import {
|
|
10
|
-
import { PrivateKey } from "./Key.js";
|
|
9
|
+
import { PrivateKey, PublicKey } from "./Key.js";
|
|
11
10
|
export declare const ec: {
|
|
12
11
|
mod(a: bigint, b: bigint): bigint;
|
|
13
12
|
pow(num: bigint, power: bigint, modulo: bigint): bigint;
|
|
@@ -21,11 +20,14 @@ export declare const ec: {
|
|
|
21
20
|
FpDiv<T>(Fp: mod.IField<T>, lhs: T, rhs: T | bigint): T;
|
|
22
21
|
FpLegendre<T>(Fp: mod.IField<T>, n: T): -1 | 0 | 1;
|
|
23
22
|
FpIsSquare<T>(Fp: mod.IField<T>, n: T): boolean;
|
|
24
|
-
nLength(n: bigint, nBitLength?: number):
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
nLength(n: bigint, nBitLength?: number): mod.NLength;
|
|
24
|
+
Field(ORDER: bigint, bitLenOrOpts?: number | Partial<{
|
|
25
|
+
sqrt: (n: bigint) => bigint;
|
|
26
|
+
isLE: boolean;
|
|
27
|
+
BITS: number;
|
|
28
|
+
}>, isLE?: boolean, opts?: {
|
|
29
|
+
sqrt?: (n: bigint) => bigint;
|
|
30
|
+
}): Readonly<mod.IField<bigint> & Required<Pick<mod.IField<bigint>, "isOdd">>>;
|
|
29
31
|
FpSqrtOdd<T>(Fp: mod.IField<T>, elm: T): T;
|
|
30
32
|
FpSqrtEven<T>(Fp: mod.IField<T>, elm: T): T;
|
|
31
33
|
hashToPrivateScalar(hash: string | Uint8Array, groupOrder: bigint, isLE?: boolean): bigint;
|
|
@@ -33,22 +35,16 @@ export declare const ec: {
|
|
|
33
35
|
getMinHashLength(fieldOrder: bigint): number;
|
|
34
36
|
mapHashToField(key: Uint8Array, fieldOrder: bigint, isLE?: boolean): Uint8Array;
|
|
35
37
|
isNegativeLE: (num: bigint, modulo: bigint) => boolean;
|
|
36
|
-
isBytes(a: unknown): a is Uint8Array;
|
|
37
|
-
abytes(item: unknown): void;
|
|
38
38
|
abool(title: string, value: boolean): void;
|
|
39
39
|
numberToHexUnpadded(num: number | bigint): string;
|
|
40
40
|
hexToNumber(hex: string): bigint;
|
|
41
|
-
bytesToHex(bytes: Uint8Array): string;
|
|
42
|
-
hexToBytes(hex: string): Uint8Array;
|
|
43
41
|
bytesToNumberBE(bytes: Uint8Array): bigint;
|
|
44
42
|
bytesToNumberLE(bytes: Uint8Array): bigint;
|
|
45
43
|
numberToBytesBE(n: number | bigint, len: number): Uint8Array;
|
|
46
44
|
numberToBytesLE(n: number | bigint, len: number): Uint8Array;
|
|
47
45
|
numberToVarBytesBE(n: number | bigint): Uint8Array;
|
|
48
46
|
ensureBytes(title: string, hex: utils.Hex, expectedLength?: number): Uint8Array;
|
|
49
|
-
concatBytes(...arrays: Uint8Array[]): Uint8Array;
|
|
50
47
|
equalBytes(a: Uint8Array, b: Uint8Array): boolean;
|
|
51
|
-
utf8ToBytes(str: string): Uint8Array;
|
|
52
48
|
inRange(n: bigint, min: bigint, max: bigint): boolean;
|
|
53
49
|
aInRange(title: string, n: bigint, min: bigint, max: bigint): void;
|
|
54
50
|
bitLen(n: bigint): number;
|
|
@@ -56,7 +52,18 @@ export declare const ec: {
|
|
|
56
52
|
bitSet(n: bigint, pos: number, value: boolean): bigint;
|
|
57
53
|
createHmacDrbg<T>(hashLen: number, qByteLen: number, hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array): (seed: Uint8Array, predicate: (v: Uint8Array) => T | undefined) => T;
|
|
58
54
|
validateObject<T extends Record<string, any>>(object: T, validators: { [K in keyof T]?: "string" | "bigint" | "boolean" | "function" | "hash" | "stringOrUint8Array" | "isSafeInteger" | "array" | "field" | undefined; }, optValidators?: { [K in keyof T]?: "string" | "bigint" | "boolean" | "function" | "hash" | "stringOrUint8Array" | "isSafeInteger" | "array" | "field" | undefined; }): T;
|
|
55
|
+
isHash(val: utils.CHash): boolean;
|
|
56
|
+
_validateObject(object: Record<string, any>, fields: Record<string, string>, optFields?: Record<string, string>): void;
|
|
59
57
|
memoized<T extends object, R, O extends any[]>(fn: (arg: T, ...args: O) => R): (arg: T, ...args: O) => R;
|
|
58
|
+
abytes: typeof utils.abytes;
|
|
59
|
+
anumber: typeof utils.anumber;
|
|
60
|
+
bytesToHex: typeof utils.bytesToHex;
|
|
61
|
+
bytesToUtf8: typeof utils.bytesToUtf8;
|
|
62
|
+
concatBytes: typeof utils.concatBytes;
|
|
63
|
+
hexToBytes: typeof utils.hexToBytes;
|
|
64
|
+
isBytes: typeof utils.isBytes;
|
|
65
|
+
randomBytes: typeof utils.randomBytes;
|
|
66
|
+
utf8ToBytes: typeof utils.utf8ToBytes;
|
|
60
67
|
bitMask: (n: number) => bigint;
|
|
61
68
|
notImplemented: () => never;
|
|
62
69
|
p256: import("@noble/curves/_shortw_utils").CurveFnWithCreate;
|
|
@@ -69,54 +76,96 @@ export declare const CRYPTO_EC_KEY_BYTES = 32;
|
|
|
69
76
|
export declare const CRYPTO_AUTH_TAG_LENGTH = 16;
|
|
70
77
|
export declare const CRYPTO_SYMMETRIC_KEY_LENGTH = 16;
|
|
71
78
|
export type CryptoDsaEncoding = "ieee-p1363" | "der";
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
79
|
+
/**
|
|
80
|
+
* These are the cryptographic primitives required to implement the Matter protocol.
|
|
81
|
+
*
|
|
82
|
+
* We provide a platform-independent implementation that uses Web Crypto via {@link crypto.subtle} and a JS-based
|
|
83
|
+
* AES-CCM implementation.
|
|
84
|
+
*
|
|
85
|
+
* If your platform does not fully implement Web Crypto, or offers a native implementation of AES-CCM, you can replace
|
|
86
|
+
* {@link Crypto.get} to expose a different implementation.
|
|
87
|
+
*
|
|
88
|
+
* WARNING: The standard implementation is unaudited. See relevant warnings in StandardCrypto.ts.
|
|
89
|
+
*/
|
|
90
|
+
export interface Crypto {
|
|
91
|
+
/**
|
|
92
|
+
* The name used in log messages.
|
|
93
|
+
*/
|
|
94
|
+
implementationName: string;
|
|
95
|
+
/**
|
|
96
|
+
* Encrypt using AES-CCM with constants limited to those required by Matter.
|
|
97
|
+
*/
|
|
98
|
+
encrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array;
|
|
99
|
+
/**
|
|
100
|
+
* Decrypt using AES-CCM with constants limited to those required by Matter.
|
|
101
|
+
*/
|
|
102
|
+
decrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array;
|
|
103
|
+
/**
|
|
104
|
+
* Obtain random bytes from the most cryptographically-appropriate source available.
|
|
105
|
+
*/
|
|
106
|
+
getRandomData(length: number): Uint8Array;
|
|
107
|
+
/**
|
|
108
|
+
* Compute the SHA-256 hash of a buffer.
|
|
109
|
+
*/
|
|
110
|
+
computeSha256(data: Uint8Array | Uint8Array[]): MaybePromise<Uint8Array>;
|
|
111
|
+
/**
|
|
112
|
+
* Create a key from a secret using PBKDF2.
|
|
113
|
+
*/
|
|
114
|
+
createPbkdf2Key(secret: Uint8Array, salt: Uint8Array, iteration: number, keyLength: number): MaybePromise<Uint8Array>;
|
|
115
|
+
/**
|
|
116
|
+
* Create a key from a secret using HKDF.
|
|
117
|
+
*/
|
|
118
|
+
createHkdfKey(secret: Uint8Array, salt: Uint8Array, info: Uint8Array, length?: number): MaybePromise<Uint8Array>;
|
|
119
|
+
/**
|
|
120
|
+
* Create an HMAC signature.
|
|
121
|
+
*/
|
|
122
|
+
signHmac(key: Uint8Array, data: Uint8Array): MaybePromise<Uint8Array>;
|
|
123
|
+
/**
|
|
124
|
+
* Create an ECDSA signature.
|
|
125
|
+
*/
|
|
126
|
+
signEcdsa(privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): MaybePromise<Uint8Array>;
|
|
127
|
+
/**
|
|
128
|
+
* Authenticate an ECDSA signature.
|
|
129
|
+
*/
|
|
130
|
+
verifyEcdsa(publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): MaybePromise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Create a general-purpose EC key.
|
|
133
|
+
*/
|
|
134
|
+
createKeyPair(): MaybePromise<PrivateKey>;
|
|
135
|
+
/**
|
|
136
|
+
* Compute the shared secret for a Diffie-Hellman exchange.
|
|
137
|
+
*/
|
|
138
|
+
generateDhSecret(key: PrivateKey, peerKey: PublicKey): MaybePromise<Uint8Array>;
|
|
121
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Crypto support functions.
|
|
142
|
+
*/
|
|
143
|
+
export declare const Crypto: {
|
|
144
|
+
/**
|
|
145
|
+
* The default crypto implementation.
|
|
146
|
+
*/
|
|
147
|
+
readonly default: Crypto;
|
|
148
|
+
get provider(): undefined | (() => Crypto);
|
|
149
|
+
/**
|
|
150
|
+
* Set the default crypto provider.
|
|
151
|
+
*/
|
|
152
|
+
set provider(provider: () => Crypto);
|
|
153
|
+
readonly implementationName: string;
|
|
154
|
+
encrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array<ArrayBufferLike>;
|
|
155
|
+
decrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array<ArrayBufferLike>;
|
|
156
|
+
getRandomData(length: number): Uint8Array<ArrayBufferLike>;
|
|
157
|
+
getRandom(): Uint8Array<ArrayBufferLike>;
|
|
158
|
+
getRandomUInt16(): number;
|
|
159
|
+
getRandomUInt32(): number;
|
|
160
|
+
getRandomBigUInt64(): bigint;
|
|
161
|
+
getRandomBigInt(size: number, maxValue?: bigint): bigint;
|
|
162
|
+
computeSha256(data: Uint8Array | Uint8Array[]): MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
163
|
+
createPbkdf2Key(secret: Uint8Array, salt: Uint8Array, iteration: number, keyLength: number): MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
164
|
+
createHkdfKey(secret: Uint8Array, salt: Uint8Array, info: Uint8Array, length?: number): MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
165
|
+
signHmac(key: Uint8Array, data: Uint8Array): MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
166
|
+
signEcdsa(privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
167
|
+
verifyEcdsa(publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): MaybePromise<void>;
|
|
168
|
+
createKeyPair(): MaybePromise<PrivateKey>;
|
|
169
|
+
generateDhSecret(key: PrivateKey, peerKey: PublicKey): MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
170
|
+
};
|
|
122
171
|
//# sourceMappingURL=Crypto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/Crypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/Crypto.ts"],"names":[],"mappings":"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"}
|