@matter/general 0.16.0-alpha.0-20250810-5c91a95d2 → 0.16.0-alpha.0-20250814-484abe647
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/crypto/Key.d.ts +7 -0
- package/dist/cjs/crypto/Key.d.ts.map +1 -1
- package/dist/cjs/crypto/Key.js +9 -4
- package/dist/cjs/crypto/Key.js.map +1 -1
- package/dist/cjs/crypto/StandardCrypto.d.ts +5 -1
- package/dist/cjs/crypto/StandardCrypto.d.ts.map +1 -1
- package/dist/cjs/crypto/StandardCrypto.js +45 -31
- package/dist/cjs/crypto/StandardCrypto.js.map +2 -2
- package/dist/cjs/crypto/WebCrypto.d.ts +12 -0
- package/dist/cjs/crypto/WebCrypto.d.ts.map +1 -0
- package/dist/cjs/crypto/WebCrypto.js +22 -0
- package/dist/cjs/crypto/WebCrypto.js.map +6 -0
- package/dist/cjs/crypto/index.d.ts +1 -0
- package/dist/cjs/crypto/index.d.ts.map +1 -1
- package/dist/cjs/crypto/index.js +1 -0
- package/dist/cjs/crypto/index.js.map +1 -1
- package/dist/cjs/net/RetrySchedule.js +1 -1
- package/dist/cjs/net/RetrySchedule.js.map +1 -1
- package/dist/cjs/util/Bytes.d.ts +1 -0
- package/dist/cjs/util/Bytes.d.ts.map +1 -1
- package/dist/cjs/util/Bytes.js +10 -0
- package/dist/cjs/util/Bytes.js.map +1 -1
- package/dist/esm/crypto/Key.d.ts +7 -0
- package/dist/esm/crypto/Key.d.ts.map +1 -1
- package/dist/esm/crypto/Key.js +9 -4
- package/dist/esm/crypto/Key.js.map +1 -1
- package/dist/esm/crypto/StandardCrypto.d.ts +5 -1
- package/dist/esm/crypto/StandardCrypto.d.ts.map +1 -1
- package/dist/esm/crypto/StandardCrypto.js +45 -31
- package/dist/esm/crypto/StandardCrypto.js.map +2 -2
- package/dist/esm/crypto/WebCrypto.d.ts +12 -0
- package/dist/esm/crypto/WebCrypto.d.ts.map +1 -0
- package/dist/esm/crypto/WebCrypto.js +6 -0
- package/dist/esm/crypto/WebCrypto.js.map +6 -0
- package/dist/esm/crypto/index.d.ts +1 -0
- package/dist/esm/crypto/index.d.ts.map +1 -1
- package/dist/esm/crypto/index.js +1 -0
- package/dist/esm/crypto/index.js.map +1 -1
- package/dist/esm/net/RetrySchedule.js +1 -1
- package/dist/esm/net/RetrySchedule.js.map +1 -1
- package/dist/esm/util/Bytes.d.ts +1 -0
- package/dist/esm/util/Bytes.d.ts.map +1 -1
- package/dist/esm/util/Bytes.js +10 -0
- package/dist/esm/util/Bytes.js.map +1 -1
- package/package.json +2 -2
- package/src/crypto/Key.ts +14 -3
- package/src/crypto/StandardCrypto.ts +59 -45
- package/src/crypto/WebCrypto.ts +11 -0
- package/src/crypto/index.ts +1 -0
- package/src/net/RetrySchedule.ts +1 -1
- package/src/util/Bytes.ts +12 -0
package/dist/cjs/crypto/Key.d.ts
CHANGED
|
@@ -143,6 +143,7 @@ export interface PrivateKey extends PublicKey {
|
|
|
143
143
|
privateKey: Uint8Array;
|
|
144
144
|
keyPair: BinaryKeyPair;
|
|
145
145
|
keyPairBits: BinaryKeyPair;
|
|
146
|
+
sharedSecretFor(peerKey: PublicKey): Uint8Array;
|
|
146
147
|
}
|
|
147
148
|
/**
|
|
148
149
|
* Symmetric key.
|
|
@@ -168,4 +169,10 @@ export declare function PublicKey(publicKey: Uint8Array, options?: Partial<Key>)
|
|
|
168
169
|
* Symmetric key factory.
|
|
169
170
|
*/
|
|
170
171
|
export declare function SymmetricKey(privateKey: Uint8Array, options?: Partial<Key>): Key;
|
|
172
|
+
/**
|
|
173
|
+
* Diffie-Hellman shared secret computation.
|
|
174
|
+
*
|
|
175
|
+
* We provide this for platforms without a native implementation.
|
|
176
|
+
*/
|
|
177
|
+
export declare function sharedSecretFor(this: PrivateKey, peerKey: PublicKey): Uint8Array;
|
|
171
178
|
//# sourceMappingURL=Key.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/crypto/Key.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/crypto/Key.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/crypto/Key.js
CHANGED
|
@@ -23,7 +23,8 @@ __export(Key_exports, {
|
|
|
23
23
|
KeyType: () => KeyType,
|
|
24
24
|
PrivateKey: () => PrivateKey,
|
|
25
25
|
PublicKey: () => PublicKey,
|
|
26
|
-
SymmetricKey: () => SymmetricKey
|
|
26
|
+
SymmetricKey: () => SymmetricKey,
|
|
27
|
+
sharedSecretFor: () => sharedSecretFor
|
|
27
28
|
});
|
|
28
29
|
module.exports = __toCommonJS(Key_exports);
|
|
29
30
|
var import_Base64Codec = require("../codec/Base64Codec.js");
|
|
@@ -39,7 +40,7 @@ var import_CryptoError = require("./CryptoError.js");
|
|
|
39
40
|
*/
|
|
40
41
|
const {
|
|
41
42
|
numberToBytesBE,
|
|
42
|
-
p256: {
|
|
43
|
+
p256: { Point, getSharedSecret }
|
|
43
44
|
} = import_Crypto.ec;
|
|
44
45
|
const JWK_KEYS = [
|
|
45
46
|
"crv",
|
|
@@ -307,7 +308,7 @@ function Key(properties) {
|
|
|
307
308
|
default:
|
|
308
309
|
throw new import_CryptoError.KeyInputError(`Unsupported elliptic curve ${crv}`);
|
|
309
310
|
}
|
|
310
|
-
const ecKey =
|
|
311
|
+
const ecKey = Point.fromPrivateKey(that.privateKey);
|
|
311
312
|
that.xBits = numberToBytesBE(ecKey.x, keyLength);
|
|
312
313
|
that.yBits = numberToBytesBE(ecKey.y, keyLength);
|
|
313
314
|
}
|
|
@@ -335,7 +336,8 @@ function PrivateKey(privateKey, options) {
|
|
|
335
336
|
type: "EC" /* EC */,
|
|
336
337
|
privateKey: priv,
|
|
337
338
|
publicKey: pub,
|
|
338
|
-
...options
|
|
339
|
+
...options,
|
|
340
|
+
sharedSecretFor
|
|
339
341
|
});
|
|
340
342
|
}
|
|
341
343
|
function PublicKey(publicKey, options) {
|
|
@@ -352,4 +354,7 @@ function SymmetricKey(privateKey, options) {
|
|
|
352
354
|
...options
|
|
353
355
|
});
|
|
354
356
|
}
|
|
357
|
+
function sharedSecretFor(peerKey) {
|
|
358
|
+
return getSharedSecret(this.privateBits, peerKey.publicBits);
|
|
359
|
+
}
|
|
355
360
|
//# sourceMappingURL=Key.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/crypto/Key.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAAuB;AACvB,sBAA2C;AAC3C,yBAAiD;AACjD,mBAAsB;AACtB,oBAAmB;AACnB,yBAA8B;AAX9B;AAAA;AAAA;AAAA;AAAA;AAaA,MAAM;AAAA,EACF;AAAA,EACA,MAAM,EAAE,gBAAgB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["KeyType", "CurveType", "Asn1ObjectID", "Translators", "publicBits", "Aliases", "Base64Codecs", "AssertedAliases"]
|
|
6
6
|
}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { Crypto, CryptoDsaEncoding } from "./Crypto.js";
|
|
8
8
|
import { PrivateKey, PublicKey } from "./Key.js";
|
|
9
|
+
import { WebCrypto } from "./WebCrypto.js";
|
|
9
10
|
/**
|
|
10
11
|
* A {@link Crypto} implementation that uses only JS standards.
|
|
11
12
|
*
|
|
@@ -18,7 +19,8 @@ import { PrivateKey, PublicKey } from "./Key.js";
|
|
|
18
19
|
export declare class StandardCrypto extends Crypto {
|
|
19
20
|
#private;
|
|
20
21
|
implementationName: string;
|
|
21
|
-
constructor(
|
|
22
|
+
constructor(crypto?: WebCrypto);
|
|
23
|
+
protected get subtle(): SubtleCrypto;
|
|
22
24
|
static provider(): StandardCrypto;
|
|
23
25
|
randomBytes(length: number): Uint8Array;
|
|
24
26
|
encrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, associatedData?: Uint8Array): Uint8Array<ArrayBufferLike>;
|
|
@@ -30,6 +32,8 @@ export declare class StandardCrypto extends Crypto {
|
|
|
30
32
|
signEcdsa(key: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): Promise<Uint8Array<ArrayBuffer>>;
|
|
31
33
|
verifyEcdsa(key: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): Promise<void>;
|
|
32
34
|
createKeyPair(): Promise<PrivateKey>;
|
|
35
|
+
protected generateJwk(): Promise<JsonWebKey>;
|
|
33
36
|
generateDhSecret(key: PrivateKey, peerKey: PublicKey): Promise<Uint8Array<ArrayBuffer>>;
|
|
37
|
+
protected importKey(format: KeyFormat, keyData: JsonWebKey | BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
|
|
34
38
|
}
|
|
35
39
|
//# sourceMappingURL=StandardCrypto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StandardCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/StandardCrypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,MAAM,EAA+B,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAA2B,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"StandardCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/StandardCrypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,MAAM,EAA+B,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAA2B,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAuB3C;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,MAAM;;IACtC,kBAAkB,SAAQ;gBAId,MAAM,GAAE,SAA6B;IAYjD,SAAS,KAAK,MAAM,iBAEnB;IAED,MAAM,CAAC,QAAQ;IAIf,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAMvC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,UAAU;IAKzF,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,UAAU;IAKnF,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE;IAO/C,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAe1F,aAAa,CACf,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,MAAM,GAAE,MAAoC;IAgB1C,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;IAK7C,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,EAAE,WAAW,CAAC,EAAE,iBAAiB;IA+B3F,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,iBAAiB;IA2BrG,aAAa;cAaH,WAAW;IAkBrB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS;cAmC1C,SAAS,CACrB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,GAAG,YAAY,EAClC,SAAS,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,EAC/G,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;CAQzC"}
|
|
@@ -41,6 +41,7 @@ const SIGNATURE_ALGORITHM = {
|
|
|
41
41
|
namedCurve: "P-256",
|
|
42
42
|
hash: { name: "SHA-256" }
|
|
43
43
|
};
|
|
44
|
+
const requiredCryptoMethods = ["getRandomValues"];
|
|
44
45
|
const requiredSubtleMethods = [
|
|
45
46
|
"digest",
|
|
46
47
|
"deriveBits",
|
|
@@ -52,28 +53,25 @@ const requiredSubtleMethods = [
|
|
|
52
53
|
];
|
|
53
54
|
class StandardCrypto extends import_Crypto.Crypto {
|
|
54
55
|
implementationName = "JS";
|
|
56
|
+
#crypto;
|
|
55
57
|
#subtle;
|
|
56
|
-
constructor(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
const missingMethods = requiredSubtleMethods.filter((name) => typeof subtle[name] !== "function");
|
|
63
|
-
if (missingMethods.length) {
|
|
64
|
-
throw new import_MatterError.ImplementationError(
|
|
65
|
-
`SubtleCrypto implementation is missing required method${missingMethods.length === 1 ? "" : "s"} ${(0, import_String.describeList)("and", ...missingMethods)}`
|
|
66
|
-
);
|
|
67
|
-
}
|
|
58
|
+
constructor(crypto = globalThis.crypto) {
|
|
59
|
+
const { subtle } = crypto;
|
|
60
|
+
assertInterface("crypto", crypto, requiredCryptoMethods);
|
|
61
|
+
assertInterface("crypto.subtle", subtle, requiredSubtleMethods);
|
|
68
62
|
super();
|
|
63
|
+
this.#crypto = crypto;
|
|
69
64
|
this.#subtle = subtle;
|
|
70
65
|
}
|
|
66
|
+
get subtle() {
|
|
67
|
+
return this.#subtle;
|
|
68
|
+
}
|
|
71
69
|
static provider() {
|
|
72
70
|
return new StandardCrypto();
|
|
73
71
|
}
|
|
74
72
|
randomBytes(length) {
|
|
75
73
|
const result = new Uint8Array(length);
|
|
76
|
-
crypto.getRandomValues(result);
|
|
74
|
+
this.#crypto.getRandomValues(result);
|
|
77
75
|
return result;
|
|
78
76
|
}
|
|
79
77
|
encrypt(key, data, nonce, associatedData) {
|
|
@@ -91,7 +89,7 @@ class StandardCrypto extends import_Crypto.Crypto {
|
|
|
91
89
|
return new Uint8Array(await this.#subtle.digest("SHA-256", buffer));
|
|
92
90
|
}
|
|
93
91
|
async createPbkdf2Key(secret, salt, iteration, keyLength) {
|
|
94
|
-
const key = await this
|
|
92
|
+
const key = await this.importKey("raw", secret, "PBKDF2", false, ["deriveBits"]);
|
|
95
93
|
const bits = await this.#subtle.deriveBits(
|
|
96
94
|
{
|
|
97
95
|
name: "PBKDF2",
|
|
@@ -105,7 +103,7 @@ class StandardCrypto extends import_Crypto.Crypto {
|
|
|
105
103
|
return new Uint8Array(bits);
|
|
106
104
|
}
|
|
107
105
|
async createHkdfKey(secret, salt, info, length = import_Crypto.CRYPTO_SYMMETRIC_KEY_LENGTH) {
|
|
108
|
-
const key = await this
|
|
106
|
+
const key = await this.importKey("raw", secret, "HKDF", false, ["deriveBits"]);
|
|
109
107
|
const bits = await this.#subtle.deriveBits(
|
|
110
108
|
{
|
|
111
109
|
name: "HKDF",
|
|
@@ -119,7 +117,7 @@ class StandardCrypto extends import_Crypto.Crypto {
|
|
|
119
117
|
return new Uint8Array(bits);
|
|
120
118
|
}
|
|
121
119
|
async signHmac(secret, data) {
|
|
122
|
-
const key = await this
|
|
120
|
+
const key = await this.importKey("raw", secret, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
|
|
123
121
|
return new Uint8Array(await this.#subtle.sign("HMAC", key, data));
|
|
124
122
|
}
|
|
125
123
|
async signEcdsa(key, data, dsaEncoding) {
|
|
@@ -137,7 +135,7 @@ class StandardCrypto extends import_Crypto.Crypto {
|
|
|
137
135
|
// Required by some subtle implementations to sign
|
|
138
136
|
key_ops: ["sign"]
|
|
139
137
|
};
|
|
140
|
-
const subtleKey = await this
|
|
138
|
+
const subtleKey = await this.importKey("jwk", key, SIGNATURE_ALGORITHM, false, ["sign"]);
|
|
141
139
|
const ieeeP1363 = await this.#subtle.sign(SIGNATURE_ALGORITHM, subtleKey, data);
|
|
142
140
|
if (dsaEncoding !== "der") return new Uint8Array(ieeeP1363);
|
|
143
141
|
const bytesPerComponent = ieeeP1363.byteLength / 2;
|
|
@@ -149,7 +147,7 @@ class StandardCrypto extends import_Crypto.Crypto {
|
|
|
149
147
|
async verifyEcdsa(key, data, signature, dsaEncoding) {
|
|
150
148
|
const { crv, kty, x, y } = key;
|
|
151
149
|
key = { crv, kty, x, y };
|
|
152
|
-
const subtleKey = await this
|
|
150
|
+
const subtleKey = await this.importKey("jwk", key, SIGNATURE_ALGORITHM, false, ["verify"]);
|
|
153
151
|
if (dsaEncoding === "der") {
|
|
154
152
|
try {
|
|
155
153
|
const decoded = import_DerCodec.DerCodec.decode(signature);
|
|
@@ -167,6 +165,16 @@ class StandardCrypto extends import_Crypto.Crypto {
|
|
|
167
165
|
}
|
|
168
166
|
}
|
|
169
167
|
async createKeyPair() {
|
|
168
|
+
const key = await this.generateJwk();
|
|
169
|
+
return (0, import_Key.Key)({
|
|
170
|
+
kty: import_Key.KeyType.EC,
|
|
171
|
+
crv: import_Key.CurveType.p256,
|
|
172
|
+
d: key.d,
|
|
173
|
+
x: key.x,
|
|
174
|
+
y: key.y
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
async generateJwk() {
|
|
170
178
|
const subtleKey = await this.#subtle.generateKey(
|
|
171
179
|
{
|
|
172
180
|
// We must specify either ECDH or ECDSA to get an EC key but we may use the key for either (but not for
|
|
@@ -178,17 +186,10 @@ class StandardCrypto extends import_Crypto.Crypto {
|
|
|
178
186
|
// We must also specify usage but will drop this on export
|
|
179
187
|
["deriveKey"]
|
|
180
188
|
);
|
|
181
|
-
|
|
182
|
-
return (0, import_Key.Key)({
|
|
183
|
-
kty: import_Key.KeyType.EC,
|
|
184
|
-
crv: import_Key.CurveType.p256,
|
|
185
|
-
d: key.d,
|
|
186
|
-
x: key.x,
|
|
187
|
-
y: key.y
|
|
188
|
-
});
|
|
189
|
+
return await this.#subtle.exportKey("jwk", subtleKey.privateKey);
|
|
189
190
|
}
|
|
190
191
|
async generateDhSecret(key, peerKey) {
|
|
191
|
-
const subtleKey = await this
|
|
192
|
+
const subtleKey = await this.importKey(
|
|
192
193
|
"jwk",
|
|
193
194
|
key,
|
|
194
195
|
{
|
|
@@ -198,7 +199,7 @@ class StandardCrypto extends import_Crypto.Crypto {
|
|
|
198
199
|
false,
|
|
199
200
|
["deriveBits"]
|
|
200
201
|
);
|
|
201
|
-
const subtlePeerKey = await this
|
|
202
|
+
const subtlePeerKey = await this.importKey(
|
|
202
203
|
"jwk",
|
|
203
204
|
peerKey,
|
|
204
205
|
{
|
|
@@ -218,15 +219,28 @@ class StandardCrypto extends import_Crypto.Crypto {
|
|
|
218
219
|
);
|
|
219
220
|
return new Uint8Array(secret);
|
|
220
221
|
}
|
|
221
|
-
async
|
|
222
|
+
async importKey(format, keyData, algorithm, extractable, keyUsages) {
|
|
222
223
|
try {
|
|
223
|
-
return await this.#subtle.importKey(
|
|
224
|
+
return await this.#subtle.importKey(format, keyData, algorithm, extractable, keyUsages);
|
|
224
225
|
} catch (cause) {
|
|
225
226
|
throw new import_CryptoError.KeyInputError("Invalid key", { cause });
|
|
226
227
|
}
|
|
227
228
|
}
|
|
228
229
|
}
|
|
230
|
+
function assertInterface(name, object, requiredMethods) {
|
|
231
|
+
if (typeof object !== "object" || object === null) {
|
|
232
|
+
throw new import_MatterError.ImplementationError(
|
|
233
|
+
`The ${name} implementation passed to StandardCrypto is invalid (received ${typeof object})`
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
const missingMethods = requiredMethods.filter((name2) => typeof object[name2] !== "function");
|
|
237
|
+
if (missingMethods.length) {
|
|
238
|
+
throw new import_MatterError.ImplementationError(
|
|
239
|
+
`The ${name} implementation passed to StandardCrypto is missing required method${missingMethods.length === 1 ? "" : "s"} ${(0, import_String.describeList)("and", ...missingMethods)}`
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
229
243
|
if ("crypto" in globalThis && globalThis.crypto?.subtle) {
|
|
230
|
-
import_Environment.Environment.default.set(import_Crypto.Crypto, new StandardCrypto(
|
|
244
|
+
import_Environment.Environment.default.set(import_Crypto.Crypto, new StandardCrypto());
|
|
231
245
|
}
|
|
232
246
|
//# sourceMappingURL=StandardCrypto.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/crypto/StandardCrypto.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAA+C;AAC/C,yBAA4B;AAC5B,yBAAoC;AACpC,mBAAsB;AACtB,oBAA6B;AAC7B,iBAAoB;AACpB,oBAAuE;AACvE,yBAAiD;AACjD,iBAA+D;AAf/D;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,sBAA+C;AAC/C,yBAA4B;AAC5B,yBAAoC;AACpC,mBAAsB;AACtB,oBAA6B;AAC7B,iBAAoB;AACpB,oBAAuE;AACvE,yBAAiD;AACjD,iBAA+D;AAf/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBA,MAAM,sBAAmC;AAAA,EACrC,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,MAAM,EAAE,MAAM,UAAU;AAC5B;AAEA,MAAM,wBAAgD,CAAC,iBAAiB;AAExE,MAAM,wBAAmD;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAWO,MAAM,uBAAuB,qBAAO;AAAA,EACvC,qBAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EAEA,YAAY,SAAoB,WAAW,QAAQ;AAC/C,UAAM,EAAE,OAAO,IAAI;AAEnB,oBAAgB,UAAU,QAAQ,qBAAqB;AACvD,oBAAgB,iBAAiB,QAAQ,qBAAqB;AAE9D,UAAM;AAEN,SAAK,UAAU;AACf,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAc,SAAS;AACnB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO,WAAW;AACd,WAAO,IAAI,eAAe;AAAA,EAC9B;AAAA,EAEA,YAAY,QAA4B;AACpC,UAAM,SAAS,IAAI,WAAW,MAAM;AACpC,SAAK,QAAQ,gBAAgB,MAAM;AACnC,WAAO;AAAA,EACX;AAAA,EAEA,QAAQ,KAAiB,MAAkB,OAAmB,gBAA6B;AACvF,UAAM,UAAM,gBAAI,GAAG;AACnB,WAAO,IAAI,QAAQ,EAAE,IAAI,MAAM,OAAO,OAAO,eAAe,CAAC;AAAA,EACjE;AAAA,EAEA,QAAQ,KAAiB,MAAkB,OAAmB,gBAA6B;AACvF,UAAM,UAAM,gBAAI,GAAG;AACnB,WAAO,IAAI,QAAQ,EAAE,IAAI,MAAM,OAAO,OAAO,eAAe,CAAC;AAAA,EACjE;AAAA,EAEA,MAAM,cAAc,QAAmC;AACnD,QAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,eAAS,mBAAM,OAAO,GAAG,MAAM;AAAA,IACnC;AACA,WAAO,IAAI,WAAW,MAAM,KAAK,QAAQ,OAAO,WAAW,MAAM,CAAC;AAAA,EACtE;AAAA,EAEA,MAAM,gBAAgB,QAAoB,MAAkB,WAAmB,WAAmB;AAC9F,UAAM,MAAM,MAAM,KAAK,UAAU,OAAO,QAAQ,UAAU,OAAO,CAAC,YAAY,CAAC;AAC/E,UAAM,OAAO,MAAM,KAAK,QAAQ;AAAA,MAC5B;AAAA,QACI,MAAM;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACA,YAAY;AAAA,MAChB;AAAA,MACA;AAAA,MACA,YAAY;AAAA,IAChB;AACA,WAAO,IAAI,WAAW,IAAI;AAAA,EAC9B;AAAA,EAEA,MAAM,cACF,QACA,MACA,MACA,SAAiB,2CACnB;AACE,UAAM,MAAM,MAAM,KAAK,UAAU,OAAO,QAAQ,QAAQ,OAAO,CAAC,YAAY,CAAC;AAC7E,UAAM,OAAO,MAAM,KAAK,QAAQ;AAAA,MAC5B;AAAA,QACI,MAAM;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACJ;AAAA,MACA;AAAA,MACA,IAAI;AAAA,IACR;AACA,WAAO,IAAI,WAAW,IAAI;AAAA,EAC9B;AAAA,EAEA,MAAM,SAAS,QAAoB,MAAkB;AACjD,UAAM,MAAM,MAAM,KAAK,UAAU,OAAO,QAAQ,EAAE,MAAM,QAAQ,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;AAClG,WAAO,IAAI,WAAW,MAAM,KAAK,QAAQ,KAAK,QAAQ,KAAK,IAAI,CAAC;AAAA,EACpE;AAAA,EAEA,MAAM,UAAU,KAAiB,MAAiC,aAAiC;AAC/F,QAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,aAAO,mBAAM,OAAO,GAAG,IAAI;AAAA,IAC/B;AAEA,UAAM,EAAE,KAAK,KAAK,GAAG,GAAG,EAAE,IAAI;AAE9B,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK;AAAA;AAAA,MACL,SAAS,CAAC,MAAM;AAAA,IACpB;AAEA,UAAM,YAAY,MAAM,KAAK,UAAU,OAAO,KAAK,qBAAqB,OAAO,CAAC,MAAM,CAAC;AAEvF,UAAM,YAAY,MAAM,KAAK,QAAQ,KAAK,qBAAqB,WAAW,IAAI;AAE9E,QAAI,gBAAgB,MAAO,QAAO,IAAI,WAAW,SAAS;AAE1D,UAAM,oBAAoB,UAAU,aAAa;AAEjD,WAAO,yBAAS,OAAO;AAAA,MACnB,OAAG,4BAAW,UAAU,MAAM,GAAG,iBAAiB,CAAC;AAAA,MACnD,OAAG,4BAAW,UAAU,MAAM,iBAAiB,CAAC;AAAA,IACpD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,YAAY,KAAiB,MAAkB,WAAuB,aAAiC;AACzG,UAAM,EAAE,KAAK,KAAK,GAAG,EAAE,IAAI;AAC3B,UAAM,EAAE,KAAK,KAAK,GAAG,EAAE;AACvB,UAAM,YAAY,MAAM,KAAK,UAAU,OAAO,KAAK,qBAAqB,OAAO,CAAC,QAAQ,CAAC;AAEzF,QAAI,gBAAgB,OAAO;AACvB,UAAI;AACA,cAAM,UAAU,yBAAS,OAAO,SAAS;AAEzC,cAAM,IAAI,yBAAS,cAAc,SAAS,YAAY,CAAC,GAAG,EAAE;AAC5D,cAAM,IAAI,yBAAS,cAAc,SAAS,YAAY,CAAC,GAAG,EAAE;AAE5D,oBAAY,mBAAM,OAAO,GAAG,CAAC;AAAA,MACjC,SAAS,OAAO;AACZ,iCAAS,OAAO,KAAK;AAErB,cAAM,IAAI,qCAAkB,yBAAyB,EAAE,MAAM,CAAC;AAAA,MAClE;AAAA,IACJ;AAEA,UAAM,WAAW,MAAM,KAAK,QAAQ,OAAO,qBAAqB,WAAW,WAAW,IAAI;AAE1F,QAAI,CAAC,UAAU;AACX,YAAM,IAAI,qCAAkB,+BAA+B;AAAA,IAC/D;AAAA,EACJ;AAAA,EAEA,MAAM,gBAAgB;AAClB,UAAM,MAAM,MAAM,KAAK,YAAY;AAGnC,eAAO,gBAAI;AAAA,MACP,KAAK,mBAAQ;AAAA,MACb,KAAK,qBAAU;AAAA,MACf,GAAG,IAAI;AAAA,MACP,GAAG,IAAI;AAAA,MACP,GAAG,IAAI;AAAA,IACX,CAAC;AAAA,EACL;AAAA,EAEA,MAAgB,cAAc;AAC1B,UAAM,YAAY,MAAM,KAAK,QAAQ;AAAA,MACjC;AAAA;AAAA;AAAA,QAGI,MAAM;AAAA,QACN,YAAY;AAAA,MAChB;AAAA,MACA;AAAA;AAAA,MAGA,CAAC,WAAW;AAAA,IAChB;AAGA,WAAO,MAAM,KAAK,QAAQ,UAAU,OAAO,UAAU,UAAU;AAAA,EACnE;AAAA,EAEA,MAAM,iBAAiB,KAAiB,SAAoB;AACxD,UAAM,YAAY,MAAM,KAAK;AAAA,MACzB;AAAA,MACA;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,YAAY;AAAA,MAChB;AAAA,MACA;AAAA,MACA,CAAC,YAAY;AAAA,IACjB;AAEA,UAAM,gBAAgB,MAAM,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,YAAY;AAAA,MAChB;AAAA,MACA;AAAA,MACA,CAAC;AAAA,IACL;AAEA,UAAM,SAAS,MAAM,KAAK,QAAQ;AAAA,MAC9B;AAAA,QACI,MAAM;AAAA,QACN,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAEA,WAAO,IAAI,WAAW,MAAM;AAAA,EAChC;AAAA,EAEA,MAAgB,UACZ,QACA,SACA,WACA,aACA,WACF;AACE,QAAI;AACA,aAAO,MAAM,KAAK,QAAQ,UAAU,QAAe,SAAgB,WAAW,aAAa,SAAS;AAAA,IACxG,SAAS,OAAO;AACZ,YAAM,IAAI,iCAAc,eAAe,EAAE,MAAM,CAAC;AAAA,IACpD;AAAA,EACJ;AACJ;AAEA,SAAS,gBAA8B,MAAc,QAAW,iBAAuC;AACnG,MAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AAC/C,UAAM,IAAI;AAAA,MACN,OAAO,IAAI,iEAAiE,OAAO,MAAM;AAAA,IAC7F;AAAA,EACJ;AAEA,QAAM,iBAAiB,gBAAgB,OAAO,CAAAA,UAAQ,OAAO,OAAOA,KAAI,MAAM,UAAU;AACxF,MAAI,eAAe,QAAQ;AACvB,UAAM,IAAI;AAAA,MACN,OAAO,IAAI,sEAAsE,eAAe,WAAW,IAAI,KAAK,GAAG,QAAI,4BAAa,OAAO,GAAG,cAAc,CAAC;AAAA,IACrK;AAAA,EACJ;AACJ;AAIA,IAAI,YAAY,cAAc,WAAW,QAAQ,QAAQ;AACrD,iCAAY,QAAQ,IAAI,sBAAQ,IAAI,eAAe,CAAC;AACxD;",
|
|
5
|
+
"names": ["name"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Our "Crypto" interface masks the standard web crypto "Crypto" type provided by typescript. Make an alias to work
|
|
8
|
+
* around this.
|
|
9
|
+
*/
|
|
10
|
+
export interface WebCrypto extends Crypto {
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=WebCrypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/WebCrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,MAAM;CAAG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var WebCrypto_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(WebCrypto_exports);
|
|
17
|
+
/**
|
|
18
|
+
* @license
|
|
19
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
20
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
21
|
+
*/
|
|
22
|
+
//# sourceMappingURL=WebCrypto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
|
package/dist/cjs/crypto/index.js
CHANGED
|
@@ -22,6 +22,7 @@ __reExport(crypto_exports, require("./Key.js"), module.exports);
|
|
|
22
22
|
__reExport(crypto_exports, require("./MockCrypto.js"), module.exports);
|
|
23
23
|
__reExport(crypto_exports, require("./Spake2p.js"), module.exports);
|
|
24
24
|
__reExport(crypto_exports, require("./StandardCrypto.js"), module.exports);
|
|
25
|
+
__reExport(crypto_exports, require("./WebCrypto.js"), module.exports);
|
|
25
26
|
/**
|
|
26
27
|
* @license
|
|
27
28
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/crypto/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,2BAAc,wBANd;AAOA,2BAAc,iCAPd;AAQA,2BAAc,6BARd;AASA,2BAAc,qBATd;AAUA,2BAAc,4BAVd;AAWA,2BAAc,yBAXd;AAYA,2BAAc,gCAZd;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,2BAAc,wBANd;AAOA,2BAAc,iCAPd;AAQA,2BAAc,6BARd;AASA,2BAAc,qBATd;AAUA,2BAAc,4BAVd;AAWA,2BAAc,yBAXd;AAYA,2BAAc,gCAZd;AAaA,2BAAc,2BAbd;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -53,7 +53,7 @@ class RetrySchedule {
|
|
|
53
53
|
while ((timeout === void 0 || timeSoFar < timeout) && (maximumCount === void 0 || maximumCount > count)) {
|
|
54
54
|
count++;
|
|
55
55
|
const maxJitter = jitterFactor * baseInterval;
|
|
56
|
-
const jitter = Math.floor(
|
|
56
|
+
const jitter = Math.floor(maxJitter * this.#crypto.randomUint32 / Math.pow(2, 32));
|
|
57
57
|
let interval = baseInterval + jitter;
|
|
58
58
|
if (timeout !== void 0 && timeSoFar + interval > timeout) {
|
|
59
59
|
interval = timeout - timeSoFar;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/net/RetrySchedule.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,cAAc;AAAA,EACvB;AAAA,EACS;AAAA,EAET,YAAY,QAAgB,QAAqC;AAC7D,SAAK,UAAU;AACf,SAAK,SAAS;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,EAAE,OAAO,QAAQ,IAAI;AACjB,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,IACpB,IAAI,KAAK;AAET,QAAI,QAAQ;AACZ,QAAI,eAAe;AACnB,QAAI,YAAY;AAEhB,YAAQ,YAAY,UAAa,YAAY,aAAa,iBAAiB,UAAa,eAAe,QAAQ;AAC3G;AACA,YAAM,YAAY,eAAe;AACjC,YAAM,SAAS,KAAK,MAAO,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,cAAc;AAAA,EACvB;AAAA,EACS;AAAA,EAET,YAAY,QAAgB,QAAqC;AAC7D,SAAK,UAAU;AACf,SAAK,SAAS;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,EAAE,OAAO,QAAQ,IAAI;AACjB,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,MACf,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,IACpB,IAAI,KAAK;AAET,QAAI,QAAQ;AACZ,QAAI,eAAe;AACnB,QAAI,YAAY;AAEhB,YAAQ,YAAY,UAAa,YAAY,aAAa,iBAAiB,UAAa,eAAe,QAAQ;AAC3G;AACA,YAAM,YAAY,eAAe;AACjC,YAAM,SAAS,KAAK,MAAO,YAAY,KAAK,QAAQ,eAAgB,KAAK,IAAI,GAAG,EAAE,CAAC;AACnF,UAAI,WAAW,eAAe;AAE9B,UAAI,YAAY,UAAa,YAAY,WAAW,SAAS;AACzD,mBAAW,UAAU;AAAA,MACzB;AACA,UAAI,oBAAoB,UAAa,WAAW,iBAAiB;AAC7D,mBAAW;AAAA,MACf;AAEA,YAAM;AACN,mBAAa;AAEb,sBAAgB;AAAA,IACpB;AAAA,EACJ;AACJ;AAAA,CAEO,CAAUA,mBAAV;AAqDI,WAAS,cAAc,UAAyB,QAAwB;AAC3E,WAAO;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACP;AAAA,EACJ;AALO,EAAAA,eAAS;AAAA,GArDH;",
|
|
5
5
|
"names": ["RetrySchedule"]
|
|
6
6
|
}
|
package/dist/cjs/util/Bytes.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export declare namespace Bytes {
|
|
|
21
21
|
function toBase64(array: Uint8Array): string;
|
|
22
22
|
function dataViewOf(array: Uint8Array): DataView<ArrayBufferLike>;
|
|
23
23
|
function areEqual(array1: Uint8Array, array2: Uint8Array): boolean;
|
|
24
|
+
function of(source: BufferSource): Uint8Array<ArrayBuffer>;
|
|
24
25
|
function fromHex(hexString: string): Uint8Array<ArrayBuffer>;
|
|
25
26
|
function fromBase64(base64String: string): Uint8Array<ArrayBuffer>;
|
|
26
27
|
function fromString(string: string): Uint8Array<ArrayBufferLike>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bytes.d.ts","sourceRoot":"","sources":["../../../src/util/Bytes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,oBAAY,MAAM;IACd,MAAM,IAAA;IACN,GAAG,IAAA;CACN;AAED;;;;GAIG;AACH,wBAAgB,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,2BAYrE;AAED;;GAEG;AACH,yBAAiB,KAAK,CAAC;IACnB,SAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,UAKtC;IAED,SAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,UAIzC;IAED,SAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,6BAE3C;IAED,SAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,WAG9D;IAED,SAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,2BAMxC;IAED,SAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,2BAQ9C;IAED,SAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,+BAExC;IAED,SAAgB,MAAM,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAU1D;IAED,SAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,UAoBzC;CACJ"}
|
|
1
|
+
{"version":3,"file":"Bytes.d.ts","sourceRoot":"","sources":["../../../src/util/Bytes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,oBAAY,MAAM;IACd,MAAM,IAAA;IACN,GAAG,IAAA;CACN;AAED;;;;GAIG;AACH,wBAAgB,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,2BAYrE;AAED;;GAEG;AACH,yBAAiB,KAAK,CAAC;IACnB,SAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,UAKtC;IAED,SAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,UAIzC;IAED,SAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,6BAE3C;IAED,SAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,WAG9D;IAED,SAAgB,EAAE,CAAC,MAAM,EAAE,YAAY,2BAUtC;IAED,SAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,2BAMxC;IAED,SAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,2BAQ9C;IAED,SAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,+BAExC;IAED,SAAgB,MAAM,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAU1D;IAED,SAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,UAoBzC;CACJ"}
|
package/dist/cjs/util/Bytes.js
CHANGED
|
@@ -71,6 +71,16 @@ var Bytes;
|
|
|
71
71
|
return array1.every((value, index) => array2[index] === value);
|
|
72
72
|
}
|
|
73
73
|
Bytes2.areEqual = areEqual;
|
|
74
|
+
function of(source) {
|
|
75
|
+
if (source instanceof Uint8Array) {
|
|
76
|
+
return source;
|
|
77
|
+
}
|
|
78
|
+
if (ArrayBuffer.isView(source)) {
|
|
79
|
+
return new Uint8Array(source.buffer, source.byteLength, source.byteOffset);
|
|
80
|
+
}
|
|
81
|
+
return new Uint8Array(source);
|
|
82
|
+
}
|
|
83
|
+
Bytes2.of = of;
|
|
74
84
|
function fromHex(hexString) {
|
|
75
85
|
if (hexString.length === 0) return new Uint8Array(0);
|
|
76
86
|
if (hexString.length % 2 !== 0) throw new import_MatterError.UnexpectedDataError("Hex string should have an even length.");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/Bytes.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Endian", "Bytes"]
|
|
6
6
|
}
|
package/dist/esm/crypto/Key.d.ts
CHANGED
|
@@ -143,6 +143,7 @@ export interface PrivateKey extends PublicKey {
|
|
|
143
143
|
privateKey: Uint8Array;
|
|
144
144
|
keyPair: BinaryKeyPair;
|
|
145
145
|
keyPairBits: BinaryKeyPair;
|
|
146
|
+
sharedSecretFor(peerKey: PublicKey): Uint8Array;
|
|
146
147
|
}
|
|
147
148
|
/**
|
|
148
149
|
* Symmetric key.
|
|
@@ -168,4 +169,10 @@ export declare function PublicKey(publicKey: Uint8Array, options?: Partial<Key>)
|
|
|
168
169
|
* Symmetric key factory.
|
|
169
170
|
*/
|
|
170
171
|
export declare function SymmetricKey(privateKey: Uint8Array, options?: Partial<Key>): Key;
|
|
172
|
+
/**
|
|
173
|
+
* Diffie-Hellman shared secret computation.
|
|
174
|
+
*
|
|
175
|
+
* We provide this for platforms without a native implementation.
|
|
176
|
+
*/
|
|
177
|
+
export declare function sharedSecretFor(this: PrivateKey, peerKey: PublicKey): Uint8Array;
|
|
171
178
|
//# sourceMappingURL=Key.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/crypto/Key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkCH,oBAAY,OAAO;IACf,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,GAAG,QAAQ;CACd;AAED,oBAAY,SAAS;IACjB,IAAI,UAAU;IACd,IAAI,UAAU;IACd,IAAI,UAAU;CACjB;AAeD,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,UAAU,EAAE,UAAU,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,WAAW,GAAI,SAAQ,UAAU;IACnC;;OAEG;IACH,SAAS,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAEvB;;OAEG;IACH,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAE5B;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAEzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC3B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;OAGG;IACH,WAAW,CAAC,EAAE,aAAa,CAAC;IAE5B;;OAEG;IACH,SAAS,EAAE,UAAU,CAAC;IAEtB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,aAAa,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,GAAG;IAClC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,SAAS;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,WAAW,EAAE,UAAU,CAAC;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Key.d.ts","sourceRoot":"","sources":["../../../src/crypto/Key.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/crypto/Key.js
CHANGED
|
@@ -11,7 +11,7 @@ import { ec } from "./Crypto.js";
|
|
|
11
11
|
import { KeyInputError } from "./CryptoError.js";
|
|
12
12
|
const {
|
|
13
13
|
numberToBytesBE,
|
|
14
|
-
p256: {
|
|
14
|
+
p256: { Point, getSharedSecret }
|
|
15
15
|
} = ec;
|
|
16
16
|
const JWK_KEYS = [
|
|
17
17
|
"crv",
|
|
@@ -279,7 +279,7 @@ function Key(properties) {
|
|
|
279
279
|
default:
|
|
280
280
|
throw new KeyInputError(`Unsupported elliptic curve ${crv}`);
|
|
281
281
|
}
|
|
282
|
-
const ecKey =
|
|
282
|
+
const ecKey = Point.fromPrivateKey(that.privateKey);
|
|
283
283
|
that.xBits = numberToBytesBE(ecKey.x, keyLength);
|
|
284
284
|
that.yBits = numberToBytesBE(ecKey.y, keyLength);
|
|
285
285
|
}
|
|
@@ -307,7 +307,8 @@ function PrivateKey(privateKey, options) {
|
|
|
307
307
|
type: "EC" /* EC */,
|
|
308
308
|
privateKey: priv,
|
|
309
309
|
publicKey: pub,
|
|
310
|
-
...options
|
|
310
|
+
...options,
|
|
311
|
+
sharedSecretFor
|
|
311
312
|
});
|
|
312
313
|
}
|
|
313
314
|
function PublicKey(publicKey, options) {
|
|
@@ -324,12 +325,16 @@ function SymmetricKey(privateKey, options) {
|
|
|
324
325
|
...options
|
|
325
326
|
});
|
|
326
327
|
}
|
|
328
|
+
function sharedSecretFor(peerKey) {
|
|
329
|
+
return getSharedSecret(this.privateBits, peerKey.publicBits);
|
|
330
|
+
}
|
|
327
331
|
export {
|
|
328
332
|
CurveType,
|
|
329
333
|
Key,
|
|
330
334
|
KeyType,
|
|
331
335
|
PrivateKey,
|
|
332
336
|
PublicKey,
|
|
333
|
-
SymmetricKey
|
|
337
|
+
SymmetricKey,
|
|
338
|
+
sharedSecretFor
|
|
334
339
|
};
|
|
335
340
|
//# sourceMappingURL=Key.js.map
|