@matter/protocol 0.15.0-alpha.0-20250613-a55f991d4 → 0.15.0-alpha.0-20250616-4b3754906
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/certificate/AttestationCertificateManager.d.ts +3 -3
- package/dist/cjs/certificate/AttestationCertificateManager.d.ts.map +1 -1
- package/dist/cjs/certificate/AttestationCertificateManager.js +12 -10
- package/dist/cjs/certificate/AttestationCertificateManager.js.map +1 -1
- package/dist/cjs/certificate/CertificateAuthority.d.ts +5 -3
- package/dist/cjs/certificate/CertificateAuthority.d.ts.map +1 -1
- package/dist/cjs/certificate/CertificateAuthority.js +19 -11
- package/dist/cjs/certificate/CertificateAuthority.js.map +1 -1
- package/dist/cjs/certificate/CertificateManager.d.ts +18 -15
- package/dist/cjs/certificate/CertificateManager.d.ts.map +1 -1
- package/dist/cjs/certificate/CertificateManager.js +92 -83
- package/dist/cjs/certificate/CertificateManager.js.map +2 -2
- package/dist/cjs/certificate/CertificationDeclarationManager.d.ts +7 -1
- package/dist/cjs/certificate/CertificationDeclarationManager.d.ts.map +1 -1
- package/dist/cjs/certificate/CertificationDeclarationManager.js +2 -2
- package/dist/cjs/certificate/CertificationDeclarationManager.js.map +1 -1
- package/dist/cjs/certificate/DeviceCertification.d.ts +2 -2
- package/dist/cjs/certificate/DeviceCertification.d.ts.map +1 -1
- package/dist/cjs/certificate/DeviceCertification.js +10 -4
- package/dist/cjs/certificate/DeviceCertification.js.map +1 -1
- package/dist/cjs/common/FailsafeContext.js +1 -1
- package/dist/cjs/common/FailsafeContext.js.map +1 -1
- package/dist/cjs/fabric/Fabric.d.ts +6 -4
- package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
- package/dist/cjs/fabric/Fabric.js +33 -20
- package/dist/cjs/fabric/Fabric.js.map +1 -1
- package/dist/cjs/fabric/FabricAuthority.d.ts +1 -1
- package/dist/cjs/fabric/FabricAuthority.d.ts.map +1 -1
- package/dist/cjs/fabric/FabricAuthority.js +7 -7
- package/dist/cjs/fabric/FabricAuthority.js.map +1 -1
- package/dist/cjs/fabric/FabricManager.d.ts +3 -2
- package/dist/cjs/fabric/FabricManager.d.ts.map +1 -1
- package/dist/cjs/fabric/FabricManager.js +8 -3
- package/dist/cjs/fabric/FabricManager.js.map +1 -1
- package/dist/cjs/fabric/TestFabric.d.ts.map +1 -1
- package/dist/cjs/fabric/TestFabric.js +15 -19
- package/dist/cjs/fabric/TestFabric.js.map +1 -1
- package/dist/cjs/groups/FabricGroups.d.ts.map +1 -1
- package/dist/cjs/groups/FabricGroups.js +11 -7
- package/dist/cjs/groups/FabricGroups.js.map +1 -1
- package/dist/cjs/groups/KeySets.d.ts +2 -2
- package/dist/cjs/groups/KeySets.d.ts.map +1 -1
- package/dist/cjs/groups/KeySets.js +2 -2
- package/dist/cjs/groups/KeySets.js.map +1 -1
- package/dist/cjs/groups/MessagingState.d.ts +2 -2
- package/dist/cjs/groups/MessagingState.d.ts.map +1 -1
- package/dist/cjs/groups/MessagingState.js +4 -2
- package/dist/cjs/groups/MessagingState.js.map +1 -1
- package/dist/cjs/mdns/MdnsBroadcaster.d.ts +3 -3
- package/dist/cjs/mdns/MdnsBroadcaster.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsBroadcaster.js +7 -4
- package/dist/cjs/mdns/MdnsBroadcaster.js.map +1 -1
- package/dist/cjs/mdns/MdnsService.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsService.js +2 -1
- package/dist/cjs/mdns/MdnsService.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.js +1 -1
- package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.js +3 -4
- package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
- package/dist/cjs/protocol/DeviceCommissioner.js +1 -1
- package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.d.ts +4 -2
- package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +11 -6
- package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
- package/dist/cjs/protocol/MessageCounter.d.ts +4 -4
- package/dist/cjs/protocol/MessageCounter.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageCounter.js +7 -6
- package/dist/cjs/protocol/MessageCounter.js.map +1 -1
- package/dist/cjs/session/GroupSession.d.ts.map +1 -1
- package/dist/cjs/session/GroupSession.js +7 -2
- package/dist/cjs/session/GroupSession.js.map +1 -1
- package/dist/cjs/session/InsecureSession.d.ts +2 -0
- package/dist/cjs/session/InsecureSession.d.ts.map +1 -1
- package/dist/cjs/session/InsecureSession.js +2 -2
- package/dist/cjs/session/InsecureSession.js.map +1 -1
- package/dist/cjs/session/NodeSession.d.ts +3 -1
- package/dist/cjs/session/NodeSession.d.ts.map +1 -1
- package/dist/cjs/session/NodeSession.js +21 -13
- package/dist/cjs/session/NodeSession.js.map +1 -1
- package/dist/cjs/session/SessionManager.d.ts +1 -0
- package/dist/cjs/session/SessionManager.d.ts.map +1 -1
- package/dist/cjs/session/SessionManager.js +13 -3
- package/dist/cjs/session/SessionManager.js.map +1 -1
- package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
- package/dist/cjs/session/case/CaseClient.js +16 -15
- package/dist/cjs/session/case/CaseClient.js.map +1 -1
- package/dist/cjs/session/case/CaseServer.d.ts.map +1 -1
- package/dist/cjs/session/case/CaseServer.js +22 -18
- package/dist/cjs/session/case/CaseServer.js.map +1 -1
- package/dist/cjs/session/pase/PaseClient.d.ts +4 -4
- package/dist/cjs/session/pase/PaseClient.d.ts.map +1 -1
- package/dist/cjs/session/pase/PaseClient.js +11 -9
- package/dist/cjs/session/pase/PaseClient.js.map +1 -1
- package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/cjs/session/pase/PaseServer.js +6 -5
- package/dist/cjs/session/pase/PaseServer.js.map +1 -1
- package/dist/esm/certificate/AttestationCertificateManager.d.ts +3 -3
- package/dist/esm/certificate/AttestationCertificateManager.d.ts.map +1 -1
- package/dist/esm/certificate/AttestationCertificateManager.js +13 -11
- package/dist/esm/certificate/AttestationCertificateManager.js.map +1 -1
- package/dist/esm/certificate/CertificateAuthority.d.ts +5 -3
- package/dist/esm/certificate/CertificateAuthority.d.ts.map +1 -1
- package/dist/esm/certificate/CertificateAuthority.js +19 -11
- package/dist/esm/certificate/CertificateAuthority.js.map +1 -1
- package/dist/esm/certificate/CertificateManager.d.ts +18 -15
- package/dist/esm/certificate/CertificateManager.d.ts.map +1 -1
- package/dist/esm/certificate/CertificateManager.js +92 -84
- package/dist/esm/certificate/CertificateManager.js.map +2 -2
- package/dist/esm/certificate/CertificationDeclarationManager.d.ts +7 -1
- package/dist/esm/certificate/CertificationDeclarationManager.d.ts.map +1 -1
- package/dist/esm/certificate/CertificationDeclarationManager.js +2 -2
- package/dist/esm/certificate/CertificationDeclarationManager.js.map +1 -1
- package/dist/esm/certificate/DeviceCertification.d.ts +2 -2
- package/dist/esm/certificate/DeviceCertification.d.ts.map +1 -1
- package/dist/esm/certificate/DeviceCertification.js +11 -5
- package/dist/esm/certificate/DeviceCertification.js.map +1 -1
- package/dist/esm/common/FailsafeContext.js +1 -1
- package/dist/esm/common/FailsafeContext.js.map +1 -1
- package/dist/esm/fabric/Fabric.d.ts +6 -4
- package/dist/esm/fabric/Fabric.d.ts.map +1 -1
- package/dist/esm/fabric/Fabric.js +33 -21
- package/dist/esm/fabric/Fabric.js.map +1 -1
- package/dist/esm/fabric/FabricAuthority.d.ts +1 -1
- package/dist/esm/fabric/FabricAuthority.d.ts.map +1 -1
- package/dist/esm/fabric/FabricAuthority.js +8 -15
- package/dist/esm/fabric/FabricAuthority.js.map +1 -1
- package/dist/esm/fabric/FabricManager.d.ts +3 -2
- package/dist/esm/fabric/FabricManager.d.ts.map +1 -1
- package/dist/esm/fabric/FabricManager.js +9 -3
- package/dist/esm/fabric/FabricManager.js.map +1 -1
- package/dist/esm/fabric/TestFabric.d.ts.map +1 -1
- package/dist/esm/fabric/TestFabric.js +16 -20
- package/dist/esm/fabric/TestFabric.js.map +1 -1
- package/dist/esm/groups/FabricGroups.d.ts.map +1 -1
- package/dist/esm/groups/FabricGroups.js +12 -8
- package/dist/esm/groups/FabricGroups.js.map +1 -1
- package/dist/esm/groups/KeySets.d.ts +2 -2
- package/dist/esm/groups/KeySets.d.ts.map +1 -1
- package/dist/esm/groups/KeySets.js +3 -3
- package/dist/esm/groups/KeySets.js.map +1 -1
- package/dist/esm/groups/MessagingState.d.ts +2 -2
- package/dist/esm/groups/MessagingState.d.ts.map +1 -1
- package/dist/esm/groups/MessagingState.js +4 -2
- package/dist/esm/groups/MessagingState.js.map +1 -1
- package/dist/esm/mdns/MdnsBroadcaster.d.ts +3 -3
- package/dist/esm/mdns/MdnsBroadcaster.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsBroadcaster.js +7 -5
- package/dist/esm/mdns/MdnsBroadcaster.js.map +1 -1
- package/dist/esm/mdns/MdnsService.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsService.js +3 -1
- package/dist/esm/mdns/MdnsService.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.js +1 -1
- package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.js +3 -5
- package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
- package/dist/esm/protocol/DeviceCommissioner.js +1 -2
- package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.d.ts +4 -2
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +11 -6
- package/dist/esm/protocol/ExchangeManager.js.map +1 -1
- package/dist/esm/protocol/MessageCounter.d.ts +4 -4
- package/dist/esm/protocol/MessageCounter.d.ts.map +1 -1
- package/dist/esm/protocol/MessageCounter.js +8 -7
- package/dist/esm/protocol/MessageCounter.js.map +1 -1
- package/dist/esm/session/GroupSession.d.ts.map +1 -1
- package/dist/esm/session/GroupSession.js +7 -3
- package/dist/esm/session/GroupSession.js.map +1 -1
- package/dist/esm/session/InsecureSession.d.ts +2 -0
- package/dist/esm/session/InsecureSession.d.ts.map +1 -1
- package/dist/esm/session/InsecureSession.js +2 -2
- package/dist/esm/session/InsecureSession.js.map +1 -1
- package/dist/esm/session/NodeSession.d.ts +3 -1
- package/dist/esm/session/NodeSession.d.ts.map +1 -1
- package/dist/esm/session/NodeSession.js +22 -14
- package/dist/esm/session/NodeSession.js.map +1 -1
- package/dist/esm/session/SessionManager.d.ts +1 -0
- package/dist/esm/session/SessionManager.d.ts.map +1 -1
- package/dist/esm/session/SessionManager.js +13 -4
- package/dist/esm/session/SessionManager.js.map +1 -1
- package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
- package/dist/esm/session/case/CaseClient.js +17 -16
- package/dist/esm/session/case/CaseClient.js.map +1 -1
- package/dist/esm/session/case/CaseServer.d.ts.map +1 -1
- package/dist/esm/session/case/CaseServer.js +23 -19
- package/dist/esm/session/case/CaseServer.js.map +1 -1
- package/dist/esm/session/pase/PaseClient.d.ts +4 -4
- package/dist/esm/session/pase/PaseClient.d.ts.map +1 -1
- package/dist/esm/session/pase/PaseClient.js +12 -10
- package/dist/esm/session/pase/PaseClient.js.map +1 -1
- package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/esm/session/pase/PaseServer.js +6 -6
- package/dist/esm/session/pase/PaseServer.js.map +1 -1
- package/package.json +6 -6
- package/src/certificate/AttestationCertificateManager.ts +12 -10
- package/src/certificate/CertificateAuthority.ts +20 -11
- package/src/certificate/CertificateManager.ts +77 -72
- package/src/certificate/CertificationDeclarationManager.ts +3 -3
- package/src/certificate/DeviceCertification.ts +10 -4
- package/src/common/FailsafeContext.ts +1 -1
- package/src/fabric/Fabric.ts +36 -20
- package/src/fabric/FabricAuthority.ts +8 -16
- package/src/fabric/FabricManager.ts +10 -3
- package/src/fabric/TestFabric.ts +17 -22
- package/src/groups/FabricGroups.ts +20 -8
- package/src/groups/KeySets.ts +2 -2
- package/src/groups/MessagingState.ts +6 -3
- package/src/mdns/MdnsBroadcaster.ts +11 -4
- package/src/mdns/MdnsService.ts +3 -1
- package/src/peer/ControllerCommissioner.ts +1 -1
- package/src/peer/ControllerCommissioningFlow.ts +4 -6
- package/src/protocol/DeviceCommissioner.ts +1 -2
- package/src/protocol/ExchangeManager.ts +13 -6
- package/src/protocol/MessageCounter.ts +11 -3
- package/src/session/GroupSession.ts +7 -3
- package/src/session/InsecureSession.ts +4 -3
- package/src/session/NodeSession.ts +25 -14
- package/src/session/SessionManager.ts +14 -4
- package/src/session/case/CaseClient.ts +18 -16
- package/src/session/case/CaseServer.ts +22 -17
- package/src/session/pase/PaseClient.ts +11 -9
- package/src/session/pase/PaseServer.ts +6 -5
|
@@ -11,7 +11,6 @@ import {
|
|
|
11
11
|
} from "#certificate/CertificateManager.js";
|
|
12
12
|
import {
|
|
13
13
|
Bytes,
|
|
14
|
-
Crypto,
|
|
15
14
|
DataWriter,
|
|
16
15
|
Diagnostic,
|
|
17
16
|
Endian,
|
|
@@ -31,6 +30,7 @@ const COMPRESSED_FABRIC_ID_INFO = Bytes.fromString("CompressedFabric");
|
|
|
31
30
|
class PublicKeyError extends MatterError {
|
|
32
31
|
}
|
|
33
32
|
class Fabric {
|
|
33
|
+
#certs;
|
|
34
34
|
fabricIndex;
|
|
35
35
|
fabricId;
|
|
36
36
|
nodeId;
|
|
@@ -45,13 +45,17 @@ class Fabric {
|
|
|
45
45
|
operationalCert;
|
|
46
46
|
#keyPair;
|
|
47
47
|
#sessions = /* @__PURE__ */ new Set();
|
|
48
|
-
#
|
|
48
|
+
#groups;
|
|
49
49
|
#aclManager;
|
|
50
50
|
#label;
|
|
51
51
|
#removeCallbacks = new Array();
|
|
52
52
|
#persistCallback;
|
|
53
53
|
#storage;
|
|
54
|
-
constructor(config) {
|
|
54
|
+
constructor(certs, config) {
|
|
55
|
+
if (!(certs instanceof CertificateManager)) {
|
|
56
|
+
certs = new CertificateManager(certs);
|
|
57
|
+
}
|
|
58
|
+
this.#certs = certs;
|
|
55
59
|
this.fabricIndex = config.fabricIndex;
|
|
56
60
|
this.fabricId = config.fabricId;
|
|
57
61
|
this.nodeId = config.nodeId;
|
|
@@ -67,7 +71,10 @@ class Fabric {
|
|
|
67
71
|
this.#label = config.label;
|
|
68
72
|
this.#keyPair = PrivateKey(config.keyPair);
|
|
69
73
|
this.#aclManager = new FabricAccessControl(this);
|
|
70
|
-
this.#
|
|
74
|
+
this.#groups = new FabricGroups(this);
|
|
75
|
+
}
|
|
76
|
+
get crypto() {
|
|
77
|
+
return this.#certs.crypto;
|
|
71
78
|
}
|
|
72
79
|
get config() {
|
|
73
80
|
return {
|
|
@@ -102,13 +109,13 @@ class Fabric {
|
|
|
102
109
|
}
|
|
103
110
|
set storage(storage) {
|
|
104
111
|
this.#storage = storage;
|
|
105
|
-
this.#
|
|
112
|
+
this.#groups.storage = storage;
|
|
106
113
|
}
|
|
107
114
|
get storage() {
|
|
108
115
|
return this.#storage;
|
|
109
116
|
}
|
|
110
117
|
get groups() {
|
|
111
|
-
return this.#
|
|
118
|
+
return this.#groups;
|
|
112
119
|
}
|
|
113
120
|
get acl() {
|
|
114
121
|
return this.#aclManager;
|
|
@@ -117,16 +124,16 @@ class Fabric {
|
|
|
117
124
|
return this.#keyPair.publicKey;
|
|
118
125
|
}
|
|
119
126
|
sign(data) {
|
|
120
|
-
return
|
|
127
|
+
return this.#certs.crypto.signEcdsa(this.#keyPair, data);
|
|
121
128
|
}
|
|
122
129
|
async verifyCredentials(operationalCert, intermediateCACert) {
|
|
123
130
|
const rootCert = TlvRootCertificate.decode(this.rootCert);
|
|
124
131
|
const nocCert = TlvOperationalCertificate.decode(operationalCert);
|
|
125
132
|
const icaCert = intermediateCACert !== void 0 ? TlvIntermediateCertificate.decode(intermediateCACert) : void 0;
|
|
126
133
|
if (icaCert !== void 0) {
|
|
127
|
-
await
|
|
134
|
+
await this.#certs.verifyIntermediateCaCertificate(rootCert, icaCert);
|
|
128
135
|
}
|
|
129
|
-
await
|
|
136
|
+
await this.#certs.verifyNodeOperationalCertificate(nocCert, rootCert, icaCert);
|
|
130
137
|
}
|
|
131
138
|
matchesFabricIdAndRootPublicKey(fabricId, rootPublicKey) {
|
|
132
139
|
return this.fabricId === fabricId && Bytes.areEqual(this.rootPublicKey, rootPublicKey);
|
|
@@ -147,7 +154,10 @@ class Fabric {
|
|
|
147
154
|
* returns the time-wise valid operational keys for that groupId.
|
|
148
155
|
*/
|
|
149
156
|
async currentDestinationIdFor(nodeId, random) {
|
|
150
|
-
return await
|
|
157
|
+
return await this.#certs.crypto.signHmac(
|
|
158
|
+
this.groups.keySets.currentKeyForId(0).key,
|
|
159
|
+
this.#generateSalt(nodeId, random)
|
|
160
|
+
);
|
|
151
161
|
}
|
|
152
162
|
/**
|
|
153
163
|
* Returns the destination IDs for a given nodeId, random value and optional groupId. When groupId is provided, it
|
|
@@ -155,7 +165,7 @@ class Fabric {
|
|
|
155
165
|
*/
|
|
156
166
|
async destinationIdsFor(nodeId, random) {
|
|
157
167
|
const salt = this.#generateSalt(nodeId, random);
|
|
158
|
-
const destinationIds = this.groups.keySets.allKeysForId(0).map(({ key }) =>
|
|
168
|
+
const destinationIds = this.groups.keySets.allKeysForId(0).map(({ key }) => this.#certs.crypto.signHmac(key, salt));
|
|
159
169
|
return await Promise.all(destinationIds);
|
|
160
170
|
}
|
|
161
171
|
addSession(session) {
|
|
@@ -206,6 +216,7 @@ class Fabric {
|
|
|
206
216
|
}
|
|
207
217
|
}
|
|
208
218
|
class FabricBuilder {
|
|
219
|
+
#certs;
|
|
209
220
|
#keyPair;
|
|
210
221
|
#rootVendorId;
|
|
211
222
|
#rootCert;
|
|
@@ -218,11 +229,12 @@ class FabricBuilder {
|
|
|
218
229
|
#identityProtectionKey;
|
|
219
230
|
#fabricIndex;
|
|
220
231
|
#label = "";
|
|
221
|
-
constructor(key) {
|
|
232
|
+
constructor(crypto, key) {
|
|
233
|
+
this.#certs = new CertificateManager(crypto);
|
|
222
234
|
this.#keyPair = key;
|
|
223
235
|
}
|
|
224
|
-
static async create() {
|
|
225
|
-
return new FabricBuilder(await
|
|
236
|
+
static async create(crypto) {
|
|
237
|
+
return new FabricBuilder(crypto, await crypto.createKeyPair());
|
|
226
238
|
}
|
|
227
239
|
get publicKey() {
|
|
228
240
|
return this.#keyPair.publicKey;
|
|
@@ -231,11 +243,11 @@ class FabricBuilder {
|
|
|
231
243
|
return this.#fabricIndex;
|
|
232
244
|
}
|
|
233
245
|
createCertificateSigningRequest() {
|
|
234
|
-
return
|
|
246
|
+
return this.#certs.createCertificateSigningRequest(this.#keyPair);
|
|
235
247
|
}
|
|
236
248
|
async setRootCert(rootCert) {
|
|
237
249
|
const decodedRootCertificate = TlvRootCertificate.decode(rootCert);
|
|
238
|
-
await
|
|
250
|
+
await this.#certs.verifyRootCertificate(decodedRootCertificate);
|
|
239
251
|
this.#rootCert = rootCert;
|
|
240
252
|
this.#rootPublicKey = decodedRootCertificate.ellipticCurvePublicKey;
|
|
241
253
|
return this;
|
|
@@ -268,9 +280,9 @@ class FabricBuilder {
|
|
|
268
280
|
const nocCert = TlvOperationalCertificate.decode(operationalCert);
|
|
269
281
|
const icaCert = intermediateCACert !== void 0 ? TlvIntermediateCertificate.decode(intermediateCACert) : void 0;
|
|
270
282
|
if (icaCert !== void 0) {
|
|
271
|
-
await
|
|
283
|
+
await this.#certs.verifyIntermediateCaCertificate(rootCert, icaCert);
|
|
272
284
|
}
|
|
273
|
-
await
|
|
285
|
+
await this.#certs.verifyNodeOperationalCertificate(nocCert, rootCert, icaCert);
|
|
274
286
|
this.#operationalCert = operationalCert;
|
|
275
287
|
this.#intermediateCACert = intermediateCACert;
|
|
276
288
|
this.#fabricId = FabricId(fabricId);
|
|
@@ -331,13 +343,13 @@ class FabricBuilder {
|
|
|
331
343
|
this.#fabricIndex = fabricIndex;
|
|
332
344
|
const saltWriter = new DataWriter();
|
|
333
345
|
saltWriter.writeUInt64(this.#fabricId);
|
|
334
|
-
const operationalId = await
|
|
346
|
+
const operationalId = await this.#certs.crypto.createHkdfKey(
|
|
335
347
|
this.#rootPublicKey.slice(1),
|
|
336
348
|
saltWriter.toByteArray(),
|
|
337
349
|
COMPRESSED_FABRIC_ID_INFO,
|
|
338
350
|
8
|
|
339
351
|
);
|
|
340
|
-
return new Fabric({
|
|
352
|
+
return new Fabric(this.#certs, {
|
|
341
353
|
fabricIndex: this.#fabricIndex,
|
|
342
354
|
fabricId: this.#fabricId,
|
|
343
355
|
nodeId: this.#nodeId,
|
|
@@ -349,7 +361,7 @@ class FabricBuilder {
|
|
|
349
361
|
rootCert: this.#rootCert,
|
|
350
362
|
identityProtectionKey: this.#identityProtectionKey,
|
|
351
363
|
// Epoch Key
|
|
352
|
-
operationalIdentityProtectionKey: await
|
|
364
|
+
operationalIdentityProtectionKey: await this.#certs.crypto.createHkdfKey(
|
|
353
365
|
this.#identityProtectionKey,
|
|
354
366
|
operationalId,
|
|
355
367
|
GROUP_SECURITY_INFO
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fabric/Fabric.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EAEI;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -39,7 +39,7 @@ export declare const DEFAULT_FABRIC_ID: FabricId;
|
|
|
39
39
|
*/
|
|
40
40
|
export declare class FabricAuthority {
|
|
41
41
|
#private;
|
|
42
|
-
constructor(
|
|
42
|
+
constructor({ ca, fabrics, config }: FabricAuthorityContext);
|
|
43
43
|
/**
|
|
44
44
|
* Access the certificate authority.
|
|
45
45
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricAuthority.d.ts","sourceRoot":"","sources":["../../../src/fabric/FabricAuthority.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"FabricAuthority.d.ts","sourceRoot":"","sources":["../../../src/fabric/FabricAuthority.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAsC,WAAW,EAAE,aAAa,EAA+B,MAAM,UAAU,CAAC;AACvH,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,WAAW,EAAU,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvF,OAAO,EAAE,MAAM,EAAiB,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;GAEG;AACH,UAAU,4BAA4B;IAClC,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/C,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,oCAAqC,YAAW,4BAA4B;IACrF,IAAI,gBAAgB,IAAI,MAAM,CAE7B;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,EAAE,EAAE,oBAAoB,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,4BAA4B,CAAC;CACxC;AAED,eAAO,MAAM,uBAAuB,UAAmB,CAAC;AACxD,eAAO,MAAM,iBAAiB,UAAc,CAAC;AAE7C;;GAEG;AACH,qBAAa,eAAe;;gBAKZ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,sBAAsB;IAM3D;;OAEG;IACH,IAAI,EAAE,yBAEL;IAED;;OAEG;IACG,aAAa;IAcnB;;OAEG;IACH,IAAI,OAAO,aAEV;IAED;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM;IAI3B;;OAEG;IACG,YAAY;IA0ClB,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;CASjD"}
|
|
@@ -4,14 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { CertificateAuthority } from "#certificate/CertificateAuthority.js";
|
|
7
|
-
import {
|
|
8
|
-
Bytes,
|
|
9
|
-
Crypto,
|
|
10
|
-
CRYPTO_SYMMETRIC_KEY_LENGTH,
|
|
11
|
-
Environmental,
|
|
12
|
-
ImplementationError,
|
|
13
|
-
Logger
|
|
14
|
-
} from "#general";
|
|
7
|
+
import { Bytes, CRYPTO_SYMMETRIC_KEY_LENGTH, Environmental, ImplementationError, Logger } from "#general";
|
|
15
8
|
import { FabricId, NodeId, VendorId } from "#types";
|
|
16
9
|
import { FabricBuilder } from "./Fabric.js";
|
|
17
10
|
import { FabricManager } from "./FabricManager.js";
|
|
@@ -27,10 +20,10 @@ class FabricAuthority {
|
|
|
27
20
|
#ca;
|
|
28
21
|
#fabrics;
|
|
29
22
|
#config;
|
|
30
|
-
constructor(
|
|
31
|
-
this.#ca =
|
|
32
|
-
this.#fabrics =
|
|
33
|
-
this.#config =
|
|
23
|
+
constructor({ ca, fabrics, config }) {
|
|
24
|
+
this.#ca = ca;
|
|
25
|
+
this.#fabrics = fabrics;
|
|
26
|
+
this.#config = config;
|
|
34
27
|
}
|
|
35
28
|
/**
|
|
36
29
|
* Access the certificate authority.
|
|
@@ -67,14 +60,14 @@ class FabricAuthority {
|
|
|
67
60
|
* Create a new fabric under our control.
|
|
68
61
|
*/
|
|
69
62
|
async createFabric() {
|
|
70
|
-
const rootNodeId = NodeId.randomOperationalNodeId();
|
|
71
|
-
const ipkValue =
|
|
63
|
+
const rootNodeId = NodeId.randomOperationalNodeId(this.#fabrics.crypto);
|
|
64
|
+
const ipkValue = this.#fabrics.crypto.randomBytes(CRYPTO_SYMMETRIC_KEY_LENGTH);
|
|
72
65
|
let vendorId = this.#config.adminVendorId;
|
|
73
66
|
if (vendorId === void 0) {
|
|
74
67
|
vendorId = DEFAULT_ADMIN_VENDOR_ID;
|
|
75
68
|
logger.warn(`Using test vendor ID 0x${vendorId.toString(16)} for controller fabric`);
|
|
76
69
|
}
|
|
77
|
-
const fabricBuilder = await FabricBuilder.create();
|
|
70
|
+
const fabricBuilder = await FabricBuilder.create(this.#fabrics.crypto);
|
|
78
71
|
await fabricBuilder.setRootCert(this.#ca.rootCert);
|
|
79
72
|
fabricBuilder.setRootNodeId(rootNodeId).setIdentityProtectionKey(ipkValue).setRootVendorId(this.#config.adminVendorId ?? DEFAULT_ADMIN_VENDOR_ID).setLabel(this.#config.adminFabricLabel);
|
|
80
73
|
await fabricBuilder.setOperationalCert(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fabric/FabricAuthority.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,4BAA4B;AACrC
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Construction, Environment, Environmental, Key, MatterError, MaybePromise, Observable, StorageContext } from "#general";
|
|
6
|
+
import { Construction, Crypto, Environment, Environmental, Key, MatterError, MaybePromise, Observable, StorageContext } from "#general";
|
|
7
7
|
import { PeerAddress } from "#peer/PeerAddress.js";
|
|
8
8
|
import { FabricIndex } from "#types";
|
|
9
9
|
import { Fabric } from "./Fabric.js";
|
|
@@ -19,7 +19,8 @@ export declare enum FabricAction {
|
|
|
19
19
|
}
|
|
20
20
|
export declare class FabricManager {
|
|
21
21
|
#private;
|
|
22
|
-
constructor(storage?: StorageContext);
|
|
22
|
+
constructor(crypto: Crypto, storage?: StorageContext);
|
|
23
|
+
get crypto(): Crypto;
|
|
23
24
|
get construction(): Construction<FabricManager>;
|
|
24
25
|
[Construction.construct](): Promise<void>;
|
|
25
26
|
static [Environmental.create](env: Environment): FabricManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricManager.d.ts","sourceRoot":"","sources":["../../../src/fabric/FabricManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEH,YAAY,EACZ,WAAW,EACX,aAAa,EAEb,GAAG,EACH,WAAW,EAEX,YAAY,EACZ,UAAU,EACV,cAAc,EAEjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qDAAqD;AACrD,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AACvD,qBAAa,oBAAqB,SAAQ,WAAW;CAAG;AAExD,oBAAY,YAAY;IACpB,KAAK,IAAA;IACL,OAAO,IAAA;IACP,OAAO,IAAA;CACV;AAED,qBAAa,aAAa;;
|
|
1
|
+
{"version":3,"file":"FabricManager.d.ts","sourceRoot":"","sources":["../../../src/fabric/FabricManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEH,YAAY,EACZ,MAAM,EACN,WAAW,EACX,aAAa,EAEb,GAAG,EACH,WAAW,EAEX,YAAY,EACZ,UAAU,EACV,cAAc,EAEjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qDAAqD;AACrD,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AACvD,qBAAa,oBAAqB,SAAQ,WAAW;CAAG;AAExD,oBAAY,YAAY;IACpB,KAAK,IAAA;IACL,OAAO,IAAA;IACP,OAAO,IAAA;CACV;AAED,qBAAa,aAAa;;gBAcV,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;IA4BpD,IAAI,MAAM,WAET;IAED,IAAI,YAAY,gCAEf;IAEK,CAAC,YAAY,CAAC,SAAS,CAAC;IAI9B,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C,IAAI,MAAM;;;;;MAET;IAEK,KAAK;IAOX,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAOtC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAWtC,mBAAmB;IAanB,cAAc,IAAI,YAAY,CAAC,IAAI,CAAC;IAmBpC,SAAS,CAAC,MAAM,EAAE,MAAM;IA+BlB,YAAY,CAAC,WAAW,EAAE,WAAW;IAgB3C,CAAC,MAAM,CAAC,QAAQ,CAAC;IAMjB,IAAI,OAAO,aAIV;IAED,IAAI,MAAM,WAET;IAED,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO;IAI3C,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC;IAIlC,2BAA2B,CAAC,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU;IAaxF,aAAa,CAAC,OAAO,EAAE,GAAG;IAW1B,WAAW,CAAC,KAAK,EAAE,WAAW;IAMxB,YAAY,CAAC,MAAM,EAAE,MAAM;IAgB3B,YAAY,CAAC,WAAW,EAAE,WAAW;CAS9C"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import {
|
|
7
7
|
Bytes,
|
|
8
8
|
Construction,
|
|
9
|
+
Crypto,
|
|
9
10
|
Environmental,
|
|
10
11
|
ImplementationError,
|
|
11
12
|
MatterError,
|
|
@@ -27,6 +28,7 @@ var FabricAction = /* @__PURE__ */ ((FabricAction2) => {
|
|
|
27
28
|
return FabricAction2;
|
|
28
29
|
})(FabricAction || {});
|
|
29
30
|
class FabricManager {
|
|
31
|
+
#crypto;
|
|
30
32
|
#nextFabricIndex = 1;
|
|
31
33
|
#fabrics = /* @__PURE__ */ new Map();
|
|
32
34
|
#initializationDone = false;
|
|
@@ -38,7 +40,8 @@ class FabricManager {
|
|
|
38
40
|
failsafeClosed: Observable()
|
|
39
41
|
};
|
|
40
42
|
#construction;
|
|
41
|
-
constructor(storage) {
|
|
43
|
+
constructor(crypto, storage) {
|
|
44
|
+
this.#crypto = crypto;
|
|
42
45
|
this.#storage = storage;
|
|
43
46
|
let construct;
|
|
44
47
|
if (this.#storage === void 0) {
|
|
@@ -51,7 +54,7 @@ class FabricManager {
|
|
|
51
54
|
}
|
|
52
55
|
const fabrics = await this.#storage.get("fabrics", []);
|
|
53
56
|
for (const fabricConfig of fabrics) {
|
|
54
|
-
this.#addFabric(new Fabric(fabricConfig));
|
|
57
|
+
this.#addFabric(new Fabric(crypto, fabricConfig));
|
|
55
58
|
}
|
|
56
59
|
this.#nextFabricIndex = await this.#storage.get("nextFabricIndex", this.#nextFabricIndex);
|
|
57
60
|
this.#initializationDone = true;
|
|
@@ -59,6 +62,9 @@ class FabricManager {
|
|
|
59
62
|
}
|
|
60
63
|
this.#construction = Construction(this, construct);
|
|
61
64
|
}
|
|
65
|
+
get crypto() {
|
|
66
|
+
return this.#crypto;
|
|
67
|
+
}
|
|
62
68
|
get construction() {
|
|
63
69
|
return this.#construction;
|
|
64
70
|
}
|
|
@@ -66,7 +72,7 @@ class FabricManager {
|
|
|
66
72
|
await this.construction;
|
|
67
73
|
}
|
|
68
74
|
static [Environmental.create](env) {
|
|
69
|
-
const instance = new FabricManager(env.get(StorageManager).createContext("fabrics"));
|
|
75
|
+
const instance = new FabricManager(env.get(Crypto), env.get(StorageManager).createContext("fabrics"));
|
|
70
76
|
env.set(FabricManager, instance);
|
|
71
77
|
return instance;
|
|
72
78
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fabric/FabricManager.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AAEP,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AAGhB,MAAM,4BAA4B,YAAY;AAAC;AAC/C,MAAM,6BAA6B,YAAY;AAAC;AAEhD,IAAK,eAAL,kBAAKA,kBAAL;AACH,EAAAA,4BAAA;AACA,EAAAA,4BAAA;AACA,EAAAA,4BAAA;AAHQ,SAAAA;AAAA,GAAA;AAML,MAAM,cAAc;AAAA,EACvB,mBAAmB;AAAA,EACV,WAAW,oBAAI,IAAyB;AAAA,EACjD,sBAAsB;AAAA,EACtB;AAAA,EACA,UAAU;AAAA,IACN,OAAO,WAA6B;AAAA,IACpC,SAAS,WAA6B;AAAA,IACtC,SAAS,WAA6B;AAAA,IACtC,gBAAgB,WAAe;AAAA,EACnC;AAAA,EACA;AAAA,EAEA,YAAY,SAA0B;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["FabricAction"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestFabric.d.ts","sourceRoot":"","sources":["../../../src/fabric/TestFabric.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,UAAU,CAAC,OAAY,yCAIhE;AAED,yBAAiB,UAAU,CAAC;IACxB;;;;;;OAMG;IACH,SAAsB,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAE,OAAY,
|
|
1
|
+
{"version":3,"file":"TestFabric.d.ts","sourceRoot":"","sources":["../../../src/fabric/TestFabric.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE,UAAU,CAAC,OAAY,yCAIhE;AAED,yBAAiB,UAAU,CAAC;IACxB;;;;;;OAMG;IACH,SAAsB,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAE,OAAY,4BA4B/D;IAED,UAAiB,OAAO;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,aAAa,CAAC;KAC3B;CACJ"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { CertificateAuthority } from "#certificate/CertificateAuthority.js";
|
|
7
|
-
import { ImplementationError,
|
|
7
|
+
import { ImplementationError, MockCrypto } from "#general";
|
|
8
8
|
import { FabricIndex, VendorId } from "#types";
|
|
9
9
|
import { FabricAuthority } from "./FabricAuthority.js";
|
|
10
10
|
import { FabricManager } from "./FabricManager.js";
|
|
@@ -21,29 +21,25 @@ async function TestFabric(options = {}) {
|
|
|
21
21
|
index = 1;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
24
|
+
if (index < 1 || index > 254) {
|
|
25
|
+
throw new ImplementationError("Test fabric indexes must be in the range 1-254");
|
|
26
|
+
}
|
|
27
|
+
if (!fabrics) {
|
|
28
|
+
fabrics = new FabricManager(MockCrypto(index));
|
|
29
|
+
}
|
|
30
|
+
const authority = new FabricAuthority({
|
|
31
|
+
ca: await CertificateAuthority.create(fabrics.crypto),
|
|
32
|
+
config: {
|
|
33
|
+
adminFabricLabel: `mock-fabric-${index}`,
|
|
34
|
+
adminVendorId: VendorId(65521),
|
|
35
|
+
fabricIndex: FabricIndex(index)
|
|
36
|
+
},
|
|
37
|
+
fabrics
|
|
37
38
|
});
|
|
39
|
+
return authority;
|
|
38
40
|
}
|
|
39
41
|
TestFabric2.Authority = Authority;
|
|
40
42
|
})(TestFabric || (TestFabric = {}));
|
|
41
|
-
async function forFabric(index, actor) {
|
|
42
|
-
if (index < 1 || index > 254) {
|
|
43
|
-
throw new ImplementationError("Test fabric indexes must be in the range 1-254");
|
|
44
|
-
}
|
|
45
|
-
return nonentropic(index, actor);
|
|
46
|
-
}
|
|
47
43
|
export {
|
|
48
44
|
TestFabric
|
|
49
45
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fabric/TestFabric.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,4BAA4B;AACrC,SAAS,qBAAqB,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,4BAA4B;AACrC,SAAS,qBAAqB,kBAAkB;AAChD,SAAS,aAAa,gBAAgB;AACtC,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAS9B,eAAsB,WAAW,UAA8B,CAAC,GAAG;AAC/D,QAAM,YAAY,MAAM,WAAW,UAAU,OAAO;AAEpD,SAAO,UAAU,aAAa;AAClC;AAAA,CAEO,CAAUA,gBAAV;AAQH,iBAAsB,UAAU,EAAE,OAAO,QAAQ,IAAa,CAAC,GAAG;AAC9D,QAAI,UAAU,QAAW;AACrB,UAAI,SAAS;AACT,gBAAQ,QAAQ,oBAAoB;AAAA,MACxC,OAAO;AACH,gBAAQ;AAAA,MACZ;AAAA,IACJ;AAEA,QAAI,QAAQ,KAAK,QAAQ,KAAK;AAC1B,YAAM,IAAI,oBAAoB,gDAAgD;AAAA,IAClF;AAEA,QAAI,CAAC,SAAS;AACV,gBAAU,IAAI,cAAc,WAAW,KAAK,CAAC;AAAA,IACjD;AAEA,UAAM,YAAY,IAAI,gBAAgB;AAAA,MAClC,IAAI,MAAM,qBAAqB,OAAO,QAAQ,MAAM;AAAA,MACpD,QAAQ;AAAA,QACJ,kBAAkB,eAAe,KAAK;AAAA,QACtC,eAAe,SAAS,KAAM;AAAA,QAC9B,aAAa,YAAY,KAAK;AAAA,MAClC;AAAA,MACA;AAAA,IACJ,CAAC;AAED,WAAO;AAAA,EACX;AA5BA,EAAAA,YAAsB;AAAA,GART;",
|
|
5
5
|
"names": ["TestFabric"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricGroups.d.ts","sourceRoot":"","sources":["../../../src/groups/FabricGroups.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"FabricGroups.d.ts","sourceRoot":"","sources":["../../../src/groups/FabricGroups.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAyC,cAAc,EAAE,MAAM,UAAU,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGjC,eAAO,MAAM,mBAAmB,6BAAoC,CAAC;AAErE;;GAEG;AACH,qBAAa,YAAY;;gBAQT,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;IA6BpD,IAAI,OAAO,CAAC,OAAO,EAAE,cAAc,EAElC;IAED,0DAA0D;IAC1D,IAAI,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAExC;IAED,IAAI,SAAS,IAAI,cAAc,CAE9B;IAED,kFAAkF;IAClF,IAAI,QAAQ;;;SAEX;IAED,IAAI,aAAa,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAE7C;IAED,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAE1C;IAED,IAAI,SAAS,oDAEZ;IAED,kBAAkB,CAAC,OAAO,EAAE,OAAO;;;;;;IAInC,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;IAI7C,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAgB7C;;;OAGG;IACG,kBAAkB,CAAC,WAAW,EAAE,WAAW;IA0CjD,6EAA6E;IACvE,iBAAiB,CAAC,aAAa,EAAE,MAAM;CAoBhD"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Bytes,
|
|
6
|
+
import { Bytes, InternalError, MatterFlowError } from "#general";
|
|
7
7
|
import { KeySets } from "#groups/KeySets.js";
|
|
8
8
|
import { MessagingState } from "#groups/MessagingState.js";
|
|
9
9
|
import { Groups } from "./Groups.js";
|
|
@@ -17,7 +17,7 @@ class FabricGroups {
|
|
|
17
17
|
constructor(fabric, storage) {
|
|
18
18
|
this.#fabric = fabric;
|
|
19
19
|
this.#groups = new Groups(fabric, this.#keySets);
|
|
20
|
-
this.#messagingState = new MessagingState(storage);
|
|
20
|
+
this.#messagingState = new MessagingState(fabric.crypto, storage);
|
|
21
21
|
this.#keySets.add({
|
|
22
22
|
groupKeySetId: 0,
|
|
23
23
|
epochKey0: fabric.identityProtectionKey,
|
|
@@ -96,17 +96,21 @@ class FabricGroups {
|
|
|
96
96
|
}
|
|
97
97
|
await this.#cleanUpCounters(groupKeySetId);
|
|
98
98
|
const operationalId = this.#fabric.operationalId;
|
|
99
|
-
const operationalEpochKey0 = await
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
const operationalEpochKey0 = await this.#fabric.crypto.createHkdfKey(
|
|
100
|
+
epochKey0,
|
|
101
|
+
operationalId,
|
|
102
|
+
GROUP_SECURITY_INFO
|
|
103
|
+
);
|
|
104
|
+
const operationalEpochKey1 = epochKey1 !== null ? await this.#fabric.crypto.createHkdfKey(epochKey1, operationalId, GROUP_SECURITY_INFO) : null;
|
|
105
|
+
const operationalEpochKey2 = epochKey2 !== null ? await this.#fabric.crypto.createHkdfKey(epochKey2, operationalId, GROUP_SECURITY_INFO) : null;
|
|
102
106
|
this.#keySets.add({
|
|
103
107
|
...groupKeySet,
|
|
104
108
|
operationalEpochKey0,
|
|
105
|
-
groupSessionId0: await this.#keySets.sessionIdFromKey(operationalEpochKey0),
|
|
109
|
+
groupSessionId0: await this.#keySets.sessionIdFromKey(this.#fabric.crypto, operationalEpochKey0),
|
|
106
110
|
operationalEpochKey1,
|
|
107
|
-
groupSessionId1: operationalEpochKey1 !== null ? await this.#keySets.sessionIdFromKey(operationalEpochKey1) : null,
|
|
111
|
+
groupSessionId1: operationalEpochKey1 !== null ? await this.#keySets.sessionIdFromKey(this.#fabric.crypto, operationalEpochKey1) : null,
|
|
108
112
|
operationalEpochKey2,
|
|
109
|
-
groupSessionId2: operationalEpochKey2 !== null ? await this.#keySets.sessionIdFromKey(operationalEpochKey2) : null
|
|
113
|
+
groupSessionId2: operationalEpochKey2 !== null ? await this.#keySets.sessionIdFromKey(this.#fabric.crypto, operationalEpochKey2) : null
|
|
110
114
|
});
|
|
111
115
|
}
|
|
112
116
|
/** Removes a group key set by its id and cleans up the counters and data. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/groups/FabricGroups.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAmB,OAAO,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import type { GroupKeyManagement } from "#clusters/group-key-management";
|
|
7
|
-
import { BasicSet } from "#general";
|
|
7
|
+
import { BasicSet, Crypto } from "#general";
|
|
8
8
|
export declare const GROUP_KEY_INFO: Uint8Array<ArrayBufferLike>;
|
|
9
9
|
export declare class KeySets<T extends OperationalKeySet> extends BasicSet<T> {
|
|
10
10
|
#private;
|
|
@@ -49,7 +49,7 @@ export declare class KeySets<T extends OperationalKeySet> extends BasicSet<T> {
|
|
|
49
49
|
groupKeyMulticastPolicy: GroupKeyManagement.GroupKeyMulticastPolicy | undefined;
|
|
50
50
|
} | undefined;
|
|
51
51
|
/** Calculates a group session id based on the operational group key. */
|
|
52
|
-
sessionIdFromKey(operationalGroupKey: Uint8Array): Promise<number>;
|
|
52
|
+
sessionIdFromKey(crypto: Crypto, operationalGroupKey: Uint8Array): Promise<number>;
|
|
53
53
|
}
|
|
54
54
|
export type GroupKeySet = GroupKeyManagement.GroupKeySet;
|
|
55
55
|
/** Enhanced structure of GroupKeySet to include operational data for easier operational processing. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeySets.d.ts","sourceRoot":"","sources":["../../../src/groups/KeySets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"KeySets.d.ts","sourceRoot":"","sources":["../../../src/groups/KeySets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAS,MAAM,EAA0D,MAAM,UAAU,CAAC;AAE3G,eAAO,MAAM,cAAc,6BAAmC,CAAC;AAE/D,qBAAa,OAAO,CAAC,CAAC,SAAS,iBAAiB,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;;IAIjE,IAAI,QAAQ;kBAFqC,MAAM;aAAO,UAAU;SAIvE;IAEQ,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAMlB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAQ7E,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI3D;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM;aAKY,UAAU;oBAAc,MAAM;mBAAa,MAAM,GAAG,MAAM;;IA8BnG;;;OAGG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM;aAlCS,UAAU;oBAAc,MAAM;mBAAa,MAAM,GAAG,MAAM;;IA+DnG;;;OAGG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM;;;;;;;;;;;IA6BnC,wEAAwE;IAClE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU;CAsCzE;AAED,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC;AAEzD,uGAAuG;AACvG,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAC1C,oBAAoB,EAAE,UAAU,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oBAAoB,EAAE,UAAU,GAAG,IAAI,CAAC;IACxC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oBAAoB,EAAE,UAAU,GAAG,IAAI,CAAC;IACxC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { BasicSet, Bytes,
|
|
6
|
+
import { BasicSet, Bytes, DataReader, ImplementationError, MatterFlowError, Time } from "#general";
|
|
7
7
|
const GROUP_KEY_INFO = Bytes.fromString("GroupKeyHash");
|
|
8
8
|
class KeySets extends BasicSet {
|
|
9
9
|
/** Operational enhanced structure for fast access based on the group session id. */
|
|
@@ -120,8 +120,8 @@ class KeySets extends BasicSet {
|
|
|
120
120
|
};
|
|
121
121
|
}
|
|
122
122
|
/** Calculates a group session id based on the operational group key. */
|
|
123
|
-
async sessionIdFromKey(operationalGroupKey) {
|
|
124
|
-
const groupKeyHash = await
|
|
123
|
+
async sessionIdFromKey(crypto, operationalGroupKey) {
|
|
124
|
+
const groupKeyHash = await crypto.createHkdfKey(operationalGroupKey, new Uint8Array(), GROUP_KEY_INFO, 2);
|
|
125
125
|
return new DataReader(groupKeyHash).readUInt16();
|
|
126
126
|
}
|
|
127
127
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/groups/KeySets.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,UAAU,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|