@matter/general 0.16.0-alpha.0-20251207-37e501b18 → 0.16.0-alpha.0-20251210-206ca2db7
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/NodeJsStyleCrypto.d.ts +60 -3
- package/dist/cjs/crypto/NodeJsStyleCrypto.d.ts.map +1 -1
- package/dist/cjs/crypto/NodeJsStyleCrypto.js.map +1 -1
- package/dist/cjs/environment/Environment.js +1 -1
- package/dist/cjs/environment/Environmental.js +1 -1
- package/dist/cjs/environment/Environmental.js.map +1 -1
- package/dist/cjs/environment/RuntimeService.js +1 -1
- package/dist/cjs/log/DiagnosticPresentation.js +3 -3
- package/dist/cjs/log/DiagnosticPresentation.js.map +1 -1
- package/dist/cjs/log/NodeJsStyleInspectable.js +1 -1
- package/dist/cjs/log/NodeJsStyleInspectable.js.map +1 -1
- package/dist/cjs/net/udp/UdpMulticastServer.js +1 -1
- package/dist/cjs/polyfills/disposable.js +2 -2
- package/dist/cjs/polyfills/disposable.js.map +1 -1
- package/dist/cjs/polyfills/metadata.js +1 -1
- package/dist/cjs/polyfills/metadata.js.map +1 -1
- package/dist/cjs/time/StandardTime.js +1 -1
- package/dist/cjs/transaction/Resource.js +1 -1
- package/dist/cjs/transaction/Resource.js.map +1 -1
- package/dist/cjs/transaction/Tx.js +1 -1
- package/dist/cjs/util/Cancelable.d.ts +1 -1
- package/dist/cjs/util/Cancelable.js +1 -1
- package/dist/cjs/util/Construction.js +2 -2
- package/dist/cjs/util/Construction.js.map +1 -1
- package/dist/cjs/util/Decorator.js +1 -1
- package/dist/cjs/util/Decorator.js.map +1 -1
- package/dist/cjs/util/DeepEqual.js +1 -1
- package/dist/cjs/util/DeepEqual.js.map +1 -1
- package/dist/cjs/util/Lifetime.js +1 -1
- package/dist/cjs/util/Lifetime.js.map +1 -1
- package/dist/cjs/util/Observable.js +2 -2
- package/dist/cjs/util/Observable.js.map +1 -1
- package/dist/cjs/util/serialize.js +1 -1
- package/dist/cjs/util/serialize.js.map +1 -1
- package/dist/esm/crypto/NodeJsStyleCrypto.d.ts +60 -3
- package/dist/esm/crypto/NodeJsStyleCrypto.d.ts.map +1 -1
- package/dist/esm/crypto/NodeJsStyleCrypto.js.map +1 -1
- package/dist/esm/environment/Environment.js +1 -1
- package/dist/esm/environment/Environmental.js +1 -1
- package/dist/esm/environment/Environmental.js.map +1 -1
- package/dist/esm/environment/RuntimeService.js +1 -1
- package/dist/esm/log/DiagnosticPresentation.js +3 -3
- package/dist/esm/log/DiagnosticPresentation.js.map +1 -1
- package/dist/esm/log/NodeJsStyleInspectable.js +1 -1
- package/dist/esm/log/NodeJsStyleInspectable.js.map +1 -1
- package/dist/esm/net/udp/UdpMulticastServer.js +1 -1
- package/dist/esm/polyfills/disposable.js +2 -2
- package/dist/esm/polyfills/disposable.js.map +1 -1
- package/dist/esm/polyfills/metadata.js +1 -1
- package/dist/esm/polyfills/metadata.js.map +1 -1
- package/dist/esm/time/StandardTime.js +1 -1
- package/dist/esm/transaction/Resource.js +1 -1
- package/dist/esm/transaction/Resource.js.map +1 -1
- package/dist/esm/transaction/Tx.js +1 -1
- package/dist/esm/util/Cancelable.d.ts +1 -1
- package/dist/esm/util/Cancelable.js +1 -1
- package/dist/esm/util/Construction.js +2 -2
- package/dist/esm/util/Construction.js.map +1 -1
- package/dist/esm/util/Decorator.js +1 -1
- package/dist/esm/util/Decorator.js.map +1 -1
- package/dist/esm/util/DeepEqual.js +1 -1
- package/dist/esm/util/DeepEqual.js.map +1 -1
- package/dist/esm/util/Lifetime.js +1 -1
- package/dist/esm/util/Lifetime.js.map +1 -1
- package/dist/esm/util/Observable.js +2 -2
- package/dist/esm/util/Observable.js.map +1 -1
- package/dist/esm/util/serialize.js +1 -1
- package/dist/esm/util/serialize.js.map +1 -1
- package/package.json +2 -2
- package/src/crypto/NodeJsStyleCrypto.ts +98 -6
- package/src/util/Cancelable.ts +1 -1
- package/src/util/Observable.ts +1 -1
|
@@ -8,7 +8,6 @@ import { ImplementationError } from "#MatterError.js";
|
|
|
8
8
|
import { Bytes } from "#util/Bytes.js";
|
|
9
9
|
import { asError } from "#util/Error.js";
|
|
10
10
|
import { MaybePromise } from "#util/Promises.js";
|
|
11
|
-
import { Identity } from "#util/Type.js";
|
|
12
11
|
import {
|
|
13
12
|
Crypto,
|
|
14
13
|
CRYPTO_AUTH_TAG_LENGTH,
|
|
@@ -23,16 +22,109 @@ import { CryptoDecryptError, CryptoVerifyError } from "./CryptoError.js";
|
|
|
23
22
|
import { EcdsaSignature } from "./EcdsaSignature.js";
|
|
24
23
|
import { PrivateKey, PublicKey } from "./Key.js";
|
|
25
24
|
|
|
26
|
-
// Note that this is a type-only import, not a runtime dependency.
|
|
27
|
-
import type * as NodeJsCryptoApi from "node:crypto";
|
|
28
|
-
|
|
29
25
|
// Ensure we don't reference global crypto accidentally
|
|
30
26
|
declare const crypto: never;
|
|
31
27
|
|
|
32
28
|
/**
|
|
33
29
|
* A crypto API implemented in the style of Node.js.
|
|
30
|
+
*
|
|
31
|
+
* This defines the limited subset of the Node API that we use and nothing more.
|
|
34
32
|
*/
|
|
35
|
-
export interface NodeJsCryptoApiLike
|
|
33
|
+
export interface NodeJsCryptoApiLike {
|
|
34
|
+
createCipheriv(
|
|
35
|
+
algorithm: "aes-128-ccm",
|
|
36
|
+
key: NodeJsCryptoApiLike.BinaryLike,
|
|
37
|
+
iv: NodeJsCryptoApiLike.BinaryLike,
|
|
38
|
+
options: NodeJsCryptoApiLike.CipherCcmOptions,
|
|
39
|
+
): NodeJsCryptoApiLike.CipherCcm;
|
|
40
|
+
|
|
41
|
+
createDecipheriv(
|
|
42
|
+
algorithm: "aes-128-ccm",
|
|
43
|
+
key: NodeJsCryptoApiLike.BinaryLike,
|
|
44
|
+
iv: NodeJsCryptoApiLike.BinaryLike,
|
|
45
|
+
options: NodeJsCryptoApiLike.CipherCcmOptions,
|
|
46
|
+
): NodeJsCryptoApiLike.DecipherCcm;
|
|
47
|
+
|
|
48
|
+
randomBytes(count: number): NodeJsCryptoApiLike.BinaryLike;
|
|
49
|
+
|
|
50
|
+
createECDH(crv: string): NodeJsCryptoApiLike.Ecdh;
|
|
51
|
+
|
|
52
|
+
createHash(algo: string): NodeJsCryptoApiLike.Hash;
|
|
53
|
+
|
|
54
|
+
pbkdf2(
|
|
55
|
+
password: NodeJsCryptoApiLike.BinaryLike,
|
|
56
|
+
salt: NodeJsCryptoApiLike.BinaryLike,
|
|
57
|
+
iterations: number,
|
|
58
|
+
keylen: number,
|
|
59
|
+
digest: string,
|
|
60
|
+
callback: (err: Error | null, derivedKey: NodeJsCryptoApiLike.BinaryLike) => void,
|
|
61
|
+
): void;
|
|
62
|
+
|
|
63
|
+
hkdf(
|
|
64
|
+
digest: string,
|
|
65
|
+
irm: NodeJsCryptoApiLike.BinaryLike,
|
|
66
|
+
salt: NodeJsCryptoApiLike.BinaryLike,
|
|
67
|
+
info: NodeJsCryptoApiLike.BinaryLike,
|
|
68
|
+
keylen: number,
|
|
69
|
+
callback: (err: Error | null, derivedKey: ArrayBuffer) => void,
|
|
70
|
+
): void;
|
|
71
|
+
|
|
72
|
+
createHmac(algo: string, key: NodeJsCryptoApiLike.BinaryLike): NodeJsCryptoApiLike.Hash;
|
|
73
|
+
|
|
74
|
+
createSign(algo: string): NodeJsCryptoApiLike.Sign;
|
|
75
|
+
|
|
76
|
+
createVerify(algo: string): NodeJsCryptoApiLike.Verify;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export namespace NodeJsCryptoApiLike {
|
|
80
|
+
export type CipherKey = {
|
|
81
|
+
key: any; // Definitely typed is wrong here, should be JsonWebKey
|
|
82
|
+
format: "jwk";
|
|
83
|
+
type: "pkcs8" | "spki";
|
|
84
|
+
dsaEncoding: "ieee-p1363";
|
|
85
|
+
};
|
|
86
|
+
export type BinaryLike = Uint8Array<ArrayBufferLike>;
|
|
87
|
+
export interface CipherCcmOptions {
|
|
88
|
+
authTagLength: number;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface CipherCcm {
|
|
92
|
+
update(data: BinaryLike): BinaryLike;
|
|
93
|
+
final(): BinaryLike;
|
|
94
|
+
setAAD(buffer: BinaryLike, options: { plaintextLength: number }): this;
|
|
95
|
+
getAuthTag(): BinaryLike;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export interface DecipherCcm {
|
|
99
|
+
update(data: BinaryLike): BinaryLike;
|
|
100
|
+
final(): BinaryLike;
|
|
101
|
+
setAAD(buffer: BinaryLike, options: { plaintextLength: number }): this;
|
|
102
|
+
setAuthTag(data: BinaryLike): this;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface Ecdh {
|
|
106
|
+
generateKeys(): BinaryLike;
|
|
107
|
+
getPublicKey(): BinaryLike;
|
|
108
|
+
getPrivateKey(): BinaryLike;
|
|
109
|
+
setPrivateKey(key: BinaryLike): void;
|
|
110
|
+
computeSecret(data: BinaryLike): BinaryLike;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export interface Hash {
|
|
114
|
+
update(data: BinaryLike): this;
|
|
115
|
+
digest(): BinaryLike;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export interface Sign {
|
|
119
|
+
update(data: BinaryLike): this;
|
|
120
|
+
sign(key: CipherKey): Uint8Array<ArrayBuffer>;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export interface Verify {
|
|
124
|
+
update(data: BinaryLike): this;
|
|
125
|
+
verify(key: CipherKey, signature: BinaryLike): boolean;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
36
128
|
|
|
37
129
|
/**
|
|
38
130
|
* A crypto implementation that uses the Node.js crypto API.
|
|
@@ -107,7 +199,7 @@ export class NodeJsStyleCrypto extends Crypto {
|
|
|
107
199
|
};
|
|
108
200
|
}
|
|
109
201
|
|
|
110
|
-
async #hashAsyncIteratorData(hasher:
|
|
202
|
+
async #hashAsyncIteratorData(hasher: NodeJsCryptoApiLike.Hash, iteratorFunc: () => Promise<IteratorResult<Bytes>>) {
|
|
111
203
|
while (true) {
|
|
112
204
|
const { value, done } = await iteratorFunc();
|
|
113
205
|
if (value === undefined || done) break;
|
package/src/util/Cancelable.ts
CHANGED
|
@@ -94,7 +94,7 @@ export class CancelablePromise<T = void> implements Promise<T>, Cancelable {
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
|
-
* Implement
|
|
97
|
+
* Implement cancellation. This is only invoked if the promise has not resolved.
|
|
98
98
|
*
|
|
99
99
|
* Throwing causes the promise to reject with the error thrown. The default implementation rethrows {@link reason}.
|
|
100
100
|
*
|
package/src/util/Observable.ts
CHANGED