@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
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
Bytes,
|
|
8
8
|
ContextTagged,
|
|
9
9
|
ContextTaggedBytes,
|
|
10
|
-
Crypto,
|
|
11
10
|
DatatypeOverride,
|
|
12
11
|
DerBitString,
|
|
13
12
|
DerCodec,
|
|
@@ -418,51 +417,57 @@ function extensionsToAsn1(extensions) {
|
|
|
418
417
|
});
|
|
419
418
|
return asn;
|
|
420
419
|
}
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
420
|
+
function genericBuildAsn1Structure({
|
|
421
|
+
serialNumber,
|
|
422
|
+
notBefore,
|
|
423
|
+
notAfter,
|
|
424
|
+
issuer,
|
|
425
|
+
subject,
|
|
426
|
+
ellipticCurvePublicKey,
|
|
427
|
+
extensions
|
|
428
|
+
}) {
|
|
429
|
+
const {
|
|
430
|
+
basicConstraints: { isCa, pathLen }
|
|
431
|
+
} = extensions;
|
|
432
|
+
if (!isCa && pathLen !== void 0) {
|
|
433
|
+
throw new CertificateError("Path length must be undefined for non-CA certificates.");
|
|
429
434
|
}
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
subject: subjectOrIssuerToAsn1(subject),
|
|
456
|
-
publicKey: X962.PublicKeyEcPrime256v1(ellipticCurvePublicKey),
|
|
457
|
-
extensions: ContextTagged(3, extensionsToAsn1(extensions))
|
|
458
|
-
};
|
|
435
|
+
return {
|
|
436
|
+
version: ContextTagged(0, 2),
|
|
437
|
+
// v3
|
|
438
|
+
serialNumber: DatatypeOverride(DerType.Integer, serialNumber),
|
|
439
|
+
signatureAlgorithm: X962.EcdsaWithSHA256,
|
|
440
|
+
issuer: subjectOrIssuerToAsn1(issuer),
|
|
441
|
+
validity: {
|
|
442
|
+
notBefore: matterToJsDate(notBefore),
|
|
443
|
+
notAfter: matterToJsDate(notAfter)
|
|
444
|
+
},
|
|
445
|
+
subject: subjectOrIssuerToAsn1(subject),
|
|
446
|
+
publicKey: X962.PublicKeyEcPrime256v1(ellipticCurvePublicKey),
|
|
447
|
+
extensions: ContextTagged(3, extensionsToAsn1(extensions))
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
function genericCertToAsn1(cert) {
|
|
451
|
+
const certBytes = DerCodec.encode(genericBuildAsn1Structure(cert));
|
|
452
|
+
assertCertificateDerSize(certBytes);
|
|
453
|
+
return certBytes;
|
|
454
|
+
}
|
|
455
|
+
function assertCertificateDerSize(certBytes) {
|
|
456
|
+
if (certBytes.length > MAX_DER_CERTIFICATE_SIZE) {
|
|
457
|
+
throw new ImplementationError(
|
|
458
|
+
`Certificate to generate is too big: ${certBytes.length} bytes instead of max ${MAX_DER_CERTIFICATE_SIZE} bytes`
|
|
459
|
+
);
|
|
459
460
|
}
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
461
|
+
}
|
|
462
|
+
class CertificateManager {
|
|
463
|
+
#crypto;
|
|
464
|
+
constructor(crypto) {
|
|
465
|
+
this.#crypto = crypto;
|
|
466
|
+
}
|
|
467
|
+
get crypto() {
|
|
468
|
+
return this.#crypto;
|
|
464
469
|
}
|
|
465
|
-
|
|
470
|
+
rootCertToAsn1(cert) {
|
|
466
471
|
const {
|
|
467
472
|
extensions: {
|
|
468
473
|
basicConstraints: { isCa }
|
|
@@ -473,8 +478,7 @@ var CertificateManager;
|
|
|
473
478
|
}
|
|
474
479
|
return genericCertToAsn1(cert);
|
|
475
480
|
}
|
|
476
|
-
|
|
477
|
-
function intermediateCaCertToAsn1(cert) {
|
|
481
|
+
intermediateCaCertToAsn1(cert) {
|
|
478
482
|
const {
|
|
479
483
|
extensions: {
|
|
480
484
|
basicConstraints: { isCa }
|
|
@@ -485,8 +489,7 @@ var CertificateManager;
|
|
|
485
489
|
}
|
|
486
490
|
return genericCertToAsn1(cert);
|
|
487
491
|
}
|
|
488
|
-
|
|
489
|
-
function nodeOperationalCertToAsn1(cert) {
|
|
492
|
+
nodeOperationalCertToAsn1(cert) {
|
|
490
493
|
const {
|
|
491
494
|
issuer: { icacId, rcacId },
|
|
492
495
|
extensions: {
|
|
@@ -501,10 +504,9 @@ var CertificateManager;
|
|
|
501
504
|
}
|
|
502
505
|
return genericCertToAsn1(cert);
|
|
503
506
|
}
|
|
504
|
-
|
|
505
|
-
async function deviceAttestationCertToAsn1(cert, key) {
|
|
507
|
+
async deviceAttestationCertToAsn1(cert, key) {
|
|
506
508
|
const certificate = genericBuildAsn1Structure(cert);
|
|
507
|
-
const signature = await
|
|
509
|
+
const signature = await this.#crypto.signEcdsa(key, DerCodec.encode(certificate), "der");
|
|
508
510
|
const certBytes = DerCodec.encode({
|
|
509
511
|
certificate,
|
|
510
512
|
signAlgorithm: X962.EcdsaWithSHA256,
|
|
@@ -513,10 +515,9 @@ var CertificateManager;
|
|
|
513
515
|
assertCertificateDerSize(certBytes);
|
|
514
516
|
return certBytes;
|
|
515
517
|
}
|
|
516
|
-
|
|
517
|
-
async function productAttestationIntermediateCertToAsn1(cert, key) {
|
|
518
|
+
async productAttestationIntermediateCertToAsn1(cert, key) {
|
|
518
519
|
const certificate = genericBuildAsn1Structure(cert);
|
|
519
|
-
const signature = await
|
|
520
|
+
const signature = await this.#crypto.signEcdsa(key, DerCodec.encode(certificate), "der");
|
|
520
521
|
const certBytes = DerCodec.encode({
|
|
521
522
|
certificate,
|
|
522
523
|
signAlgorithm: X962.EcdsaWithSHA256,
|
|
@@ -525,19 +526,17 @@ var CertificateManager;
|
|
|
525
526
|
assertCertificateDerSize(certBytes);
|
|
526
527
|
return certBytes;
|
|
527
528
|
}
|
|
528
|
-
|
|
529
|
-
async function productAttestationAuthorityCertToAsn1(cert, key) {
|
|
529
|
+
async productAttestationAuthorityCertToAsn1(cert, key) {
|
|
530
530
|
const certificate = genericBuildAsn1Structure(cert);
|
|
531
531
|
const certBytes = DerCodec.encode({
|
|
532
532
|
certificate,
|
|
533
533
|
signAlgorithm: X962.EcdsaWithSHA256,
|
|
534
|
-
signature: DerBitString(await
|
|
534
|
+
signature: DerBitString(await this.#crypto.signEcdsa(key, DerCodec.encode(certificate), "der"))
|
|
535
535
|
});
|
|
536
536
|
assertCertificateDerSize(certBytes);
|
|
537
537
|
return certBytes;
|
|
538
538
|
}
|
|
539
|
-
|
|
540
|
-
async function certificationDeclarationToAsn1(eContent, subjectKeyIdentifier, privateKey) {
|
|
539
|
+
async certificationDeclarationToAsn1(eContent, subjectKeyIdentifier, privateKey) {
|
|
541
540
|
const certificate = {
|
|
542
541
|
version: 3,
|
|
543
542
|
digestAlgorithm: [SHA256_CMS],
|
|
@@ -548,7 +547,7 @@ var CertificateManager;
|
|
|
548
547
|
subjectKeyIdentifier: ContextTaggedBytes(0, subjectKeyIdentifier),
|
|
549
548
|
digestAlgorithm: SHA256_CMS,
|
|
550
549
|
signatureAlgorithm: X962.EcdsaWithSHA256,
|
|
551
|
-
signature: await
|
|
550
|
+
signature: await this.#crypto.signEcdsa(privateKey, eContent, "der")
|
|
552
551
|
}
|
|
553
552
|
]
|
|
554
553
|
};
|
|
@@ -556,8 +555,11 @@ var CertificateManager;
|
|
|
556
555
|
assertCertificateDerSize(certBytes);
|
|
557
556
|
return certBytes;
|
|
558
557
|
}
|
|
559
|
-
|
|
560
|
-
|
|
558
|
+
/**
|
|
559
|
+
* Validate general requirements a Matter certificate fields must fulfill.
|
|
560
|
+
* Rules for this are listed in @see {@link MatterSpecification.v12.Core} §6.5.x
|
|
561
|
+
*/
|
|
562
|
+
validateGeneralCertificateFields(cert) {
|
|
561
563
|
if (cert.serialNumber.length > 20)
|
|
562
564
|
throw new CertificateError(
|
|
563
565
|
`Serial number must not be longer then 20 octets. Current serial number has ${cert.serialNumber.length} octets.`
|
|
@@ -581,9 +583,12 @@ var CertificateManager;
|
|
|
581
583
|
logger.warn(`Certificate notBefore date is in the future: ${cert.notBefore * 1e3} vs ${Time.nowMs()}`);
|
|
582
584
|
}
|
|
583
585
|
}
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
586
|
+
/**
|
|
587
|
+
* Verify requirements a Matter Root certificate must fulfill.
|
|
588
|
+
* Rules for this are listed in @see {@link MatterSpecification.v12.Core} §6.5.x
|
|
589
|
+
*/
|
|
590
|
+
async verifyRootCertificate(rootCert) {
|
|
591
|
+
this.validateGeneralCertificateFields(rootCert);
|
|
587
592
|
if ("nodeId" in rootCert.subject) {
|
|
588
593
|
throw new CertificateError(`Root certificate must not contain a nodeId.`);
|
|
589
594
|
}
|
|
@@ -638,15 +643,18 @@ var CertificateManager;
|
|
|
638
643
|
`Root certificate authorityKeyIdentifier must be equal to subjectKeyIdentifier.`
|
|
639
644
|
);
|
|
640
645
|
}
|
|
641
|
-
await
|
|
646
|
+
await this.#crypto.verifyEcdsa(
|
|
642
647
|
PublicKey(rootCert.ellipticCurvePublicKey),
|
|
643
|
-
rootCertToAsn1(rootCert),
|
|
648
|
+
this.rootCertToAsn1(rootCert),
|
|
644
649
|
rootCert.signature
|
|
645
650
|
);
|
|
646
651
|
}
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
652
|
+
/**
|
|
653
|
+
* Verify requirements a Matter Node Operational certificate must fulfill.
|
|
654
|
+
* Rules for this are listed in @see {@link MatterSpecification.v12.Core} §6.5.x
|
|
655
|
+
*/
|
|
656
|
+
async verifyNodeOperationalCertificate(nocCert, rootCert, icaCert) {
|
|
657
|
+
this.validateGeneralCertificateFields(nocCert);
|
|
650
658
|
if (nocCert.subject.nodeId === void 0 || Array.isArray(nocCert.subject.nodeId)) {
|
|
651
659
|
throw new CertificateError(`Invalid nodeId in NoC certificate: ${Diagnostic.json(nocCert.subject.nodeId)}`);
|
|
652
660
|
}
|
|
@@ -717,15 +725,18 @@ var CertificateManager;
|
|
|
717
725
|
`Noc certificate authorityKeyIdentifier must be equal to Root/Ica subjectKeyIdentifier.`
|
|
718
726
|
);
|
|
719
727
|
}
|
|
720
|
-
await
|
|
728
|
+
await this.#crypto.verifyEcdsa(
|
|
721
729
|
PublicKey((icaCert ?? rootCert).ellipticCurvePublicKey),
|
|
722
|
-
nodeOperationalCertToAsn1(nocCert),
|
|
730
|
+
this.nodeOperationalCertToAsn1(nocCert),
|
|
723
731
|
nocCert.signature
|
|
724
732
|
);
|
|
725
733
|
}
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
734
|
+
/**
|
|
735
|
+
* Verify requirements a Matter Intermediate CA certificate must fulfill.
|
|
736
|
+
* Rules for this are listed in @see {@link MatterSpecification.v12.Core} §6.5.x
|
|
737
|
+
*/
|
|
738
|
+
async verifyIntermediateCaCertificate(rootCert, icaCert) {
|
|
739
|
+
this.validateGeneralCertificateFields(icaCert);
|
|
729
740
|
if ("nodeId" in icaCert.subject) {
|
|
730
741
|
throw new CertificateError(`Ica certificate must not contain a nodeId.`);
|
|
731
742
|
}
|
|
@@ -792,14 +803,13 @@ var CertificateManager;
|
|
|
792
803
|
`Ica certificate authorityKeyIdentifier must be equal to root cert subjectKeyIdentifier.`
|
|
793
804
|
);
|
|
794
805
|
}
|
|
795
|
-
await
|
|
806
|
+
await this.#crypto.verifyEcdsa(
|
|
796
807
|
PublicKey(rootCert.ellipticCurvePublicKey),
|
|
797
|
-
intermediateCaCertToAsn1(icaCert),
|
|
808
|
+
this.intermediateCaCertToAsn1(icaCert),
|
|
798
809
|
icaCert.signature
|
|
799
810
|
);
|
|
800
811
|
}
|
|
801
|
-
|
|
802
|
-
async function createCertificateSigningRequest(key) {
|
|
812
|
+
async createCertificateSigningRequest(key) {
|
|
803
813
|
const request = {
|
|
804
814
|
version: 0,
|
|
805
815
|
subject: { organization: X520.OrganisationName("CSR") },
|
|
@@ -809,11 +819,10 @@ var CertificateManager;
|
|
|
809
819
|
return DerCodec.encode({
|
|
810
820
|
request,
|
|
811
821
|
signAlgorithm: X962.EcdsaWithSHA256,
|
|
812
|
-
signature: DerBitString(await
|
|
822
|
+
signature: DerBitString(await this.#crypto.signEcdsa(key, DerCodec.encode(request), "der"))
|
|
813
823
|
});
|
|
814
824
|
}
|
|
815
|
-
|
|
816
|
-
async function getPublicKeyFromCsr(csr) {
|
|
825
|
+
async getPublicKeyFromCsr(csr) {
|
|
817
826
|
const { [DerKey.Elements]: rootElements } = DerCodec.decode(csr);
|
|
818
827
|
if (rootElements?.length !== 3) throw new CertificateError("Invalid CSR data");
|
|
819
828
|
const [requestNode, signAlgorithmNode, signatureNode] = rootElements;
|
|
@@ -831,7 +840,7 @@ var CertificateManager;
|
|
|
831
840
|
signAlgorithmNode[DerKey.Elements]?.[0]?.[DerKey.Bytes]
|
|
832
841
|
))
|
|
833
842
|
throw new CertificateError("Unsupported signature type");
|
|
834
|
-
await
|
|
843
|
+
await this.#crypto.verifyEcdsa(
|
|
835
844
|
PublicKey(publicKey),
|
|
836
845
|
DerCodec.encode(requestNode),
|
|
837
846
|
signatureNode[DerKey.Bytes],
|
|
@@ -839,8 +848,7 @@ var CertificateManager;
|
|
|
839
848
|
);
|
|
840
849
|
return publicKey;
|
|
841
850
|
}
|
|
842
|
-
|
|
843
|
-
})(CertificateManager || (CertificateManager = {}));
|
|
851
|
+
}
|
|
844
852
|
export {
|
|
845
853
|
CertificateError,
|
|
846
854
|
CertificateManager,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/certificate/CertificateManager.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIG;AAEP,MAAM,SAAS,OAAO,IAAI,oBAAoB;AAEvC,MAAM,yBAAyB,YAAY;AAAC;AAEnD,MAAM,SAAS,MAAM,KAAK,KAAK;AAC/B,MAAM,iBAAiB,QAAQ,KAAK,KAAK;AAMzC,MAAM,2BAA2B;AACjC,MAAM,2BAA2B;AAI1B,SAAS,eAAe,MAAc;AACzC,SAAO,SAAS,IAAI,KAAK,wBAAwB,IAAI,MAAM,OAAO,kBAAkB,GAAI;AAC5F;AAEO,SAAS,eAAe,MAAY,WAAW,GAAG;AACrD,SAAO,KAAK,QAAQ,MAAM,KAAK,sBAAsB,QAAQ,IACvD,IACA,KAAK,MAAM,KAAK,QAAQ,IAAI,GAAI,IAAI,iBAAiB,WAAW;AAC1E;AAEA,SAAS,aAAa,OAAwB;AAC1C,QAAM,YAAY,IAAI,WAAW,CAAC;AAClC,QAAM,WAAW,MAAM,WAAW,SAAS;AAC3C,WAAS,aAAa,GAAG,OAAO,UAAU,WAAW,QAAQ,OAAO,KAAK,CAAC;AAC1E,SAAO,MAAM,MAAM,SAAS,EAAE,YAAY;AAC9C;AAEA,SAAS,eAAe,OAAe;AACnC,QAAM,YAAY,IAAI,WAAW,CAAC;AAClC,QAAM,WAAW,MAAM,WAAW,SAAS;AAC3C,WAAS,UAAU,GAAG,KAAK;AAC3B,SAAO,MAAM,MAAM,SAAS,EAAE,YAAY;AAC9C;AAEA,SAAS,eAAe,OAAe;AACnC,QAAM,YAAY,IAAI,WAAW,CAAC;AAClC,QAAM,WAAW,MAAM,WAAW,SAAS;AAC3C,WAAS,UAAU,GAAG,KAAK;AAC3B,SAAO,MAAM,MAAM,SAAS,EAAE,YAAY;AAC9C;AAWA,MAAM,4BACF,CAAI,IAAY,mBAChB,CAAC,UAAa;AAAA,EACV,UAAU,qBAAqB,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI;AAAA,IAC/D,QAAQ,kBAAkB,cAAc,KAAY;AAAA,EACxD,CAAC;AACL;AAMJ,MAAM,6BACF,CAAI,IAAY,mBAChB,CAAC,UAAa;AAAA,EACV,UAAU,qBAAqB,GAAG,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI;AAAA,IAC/D,QAAQ,kBAAkB,cAAc,KAAY;AAAA,EACxD,CAAC;AACL;AAGG,MAAM,gBAAgB,0BAAkC,CAAC;AAGzD,MAAM,2BAA2B,0BAAkC,CAAC;AAGpE,MAAM,gBAAgB,0BAA2C,CAAC;AAGlE,MAAM,gBAAgB,0BAA2C,CAAC;AAGlE,MAAM,kBAAkB,0BAAoC,CAAC;AAG7D,MAAM,gBAAgB,0BAAkC,GAAG,cAAc;AAGzE,MAAM,kBAAkB,2BAAqC,GAAG,cAAc;AAG9E,MAAM,mBAAmB,2BAAmC,GAAG,cAAc;AAGpF,MAAM,sCAAsC;AAAA,EACxC,QAAQ,iBAAiB,IAAI,SAAS;AAAA,EACtC,mBAAmB,iBAAiB,IAAI,SAAS;AAAA,EACjD,QAAQ,iBAAiB,IAAI,SAAS;AAAA,EACtC,QAAQ,iBAAiB,IAAI,SAAS;AAAA,EACtC,UAAU,iBAAiB,IAAI,WAAW;AAAA,EAC1C,uBAAuB,yBAAyB,IAAI,yBAAyB,EAAE,WAAW,EAAE,CAAC;AACjG;AAMA,MAAM,4CAA4C,CAAI,iBAAoB;AACtE,QAAM,SAAS;AAAA;AAAA,IAEX,YAAY,iBAAiB,GAAG,SAAS;AAAA,IACzC,UAAU,iBAAiB,GAAG,SAAS;AAAA,IACvC,WAAW,iBAAiB,GAAG,SAAS;AAAA,IACxC,aAAa,iBAAiB,GAAG,SAAS;AAAA,IAC1C,cAAc,iBAAiB,GAAG,SAAS;AAAA,IAC3C,qBAAqB,iBAAiB,GAAG,SAAS;AAAA,IAClD,SAAS,iBAAiB,GAAG,SAAS;AAAA,IACtC,aAAa,iBAAiB,GAAG,SAAS;AAAA,IAC1C,OAAO,iBAAiB,GAAG,SAAS;AAAA,IACpC,MAAM,iBAAiB,IAAI,SAAS;AAAA,IACpC,WAAW,iBAAiB,IAAI,SAAS;AAAA,IACzC,UAAU,iBAAiB,IAAI,SAAS;AAAA,IACxC,cAAc,iBAAiB,IAAI,SAAS;AAAA,IAC5C,aAAa,iBAAiB,IAAI,SAAS;AAAA,IAC3C,WAAW,iBAAiB,IAAI,SAAS;AAAA,IACzC,iBAAiB,iBAAiB,IAAI,SAAS;AAAA;AAAA,IAG/C,GAAG;AAAA;AAAA,IAGH,cAAc,iBAAiB,KAAK,SAAS;AAAA,IAC7C,YAAY,iBAAiB,KAAK,SAAS;AAAA,IAC3C,aAAa,iBAAiB,KAAK,SAAS;AAAA,IAC5C,eAAe,iBAAiB,KAAK,SAAS;AAAA,IAC9C,gBAAgB,iBAAiB,KAAK,SAAS;AAAA,IAC/C,uBAAuB,iBAAiB,KAAK,SAAS;AAAA,IACtD,WAAW,iBAAiB,KAAK,SAAS;AAAA,IAC1C,eAAe,iBAAiB,KAAK,SAAS;AAAA,IAC9C,SAAS,iBAAiB,KAAK,SAAS;AAAA,IACxC,QAAQ,iBAAiB,KAAK,SAAS;AAAA,IACvC,aAAa,iBAAiB,KAAK,SAAS;AAAA,IAC5C,YAAY,iBAAiB,KAAK,SAAS;AAAA,IAC3C,gBAAgB,iBAAiB,KAAK,SAAS;AAAA,IAC/C,eAAe,iBAAiB,KAAK,SAAS;AAAA,IAC9C,aAAa,iBAAiB,KAAK,SAAS;AAAA,EAChD;AACA,SAAO,cAAc,MAAM;AAC/B;AAEA,MAAM,0BAA0B;AAAA,EAC5B,kBAAkB,QAAQ,CAAC;AAAA,EAC3B,gBAAgB,QAAQ,CAAC;AAAA,EACzB,iBAAiB,QAAQ,CAAC;AAAA,EAC1B,kBAAkB,QAAQ,CAAC;AAAA,EAC3B,cAAc,QAAQ,CAAC;AAAA,EACvB,aAAa,QAAQ,CAAC;AAAA,EACtB,SAAS,QAAQ,CAAC;AAAA,EAClB,cAAc,QAAQ,CAAC;AAAA,EACvB,cAAc,QAAQ,CAAC;AAC3B;AACA,MAAM,0BAA0B,aAAa,uBAAuB;AAYpE,MAAM,wBAAwB,CAAO,iBACjC;AAAA,EACI;AAAA,IACI,cAAc,SAAS,GAAG,cAAc,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC;AAAA,IAChE,oBAAoB,SAAS,GAAG,QAAQ;AAAA,IACxC,QAAQ;AAAA,MACJ;AAAA,MACA,0CAA6C;AAAA,QACzC,GAAG;AAAA,QACH,GAAI,cAAc,UAAU,CAAC;AAAA,MACjC,CAAM;AAAA,IACV;AAAA,IACA,WAAW,SAAS,GAAG,SAAS;AAAA,IAChC,UAAU,SAAS,GAAG,SAAS;AAAA,IAC/B,SAAS;AAAA,MACL;AAAA,MACA,0CAA6C;AAAA,QACzC,GAAG;AAAA,QACH,GAAI,cAAc,WAAW,CAAC;AAAA,MAClC,CAAM;AAAA,IACV;AAAA,IACA,oBAAoB,SAAS,GAAG,QAAQ;AAAA,IACxC,yBAAyB,SAAS,GAAG,QAAQ;AAAA,IAC7C,wBAAwB,SAAS,GAAG,aAAa;AAAA,IACjD,YAAY;AAAA,MACR;AAAA,MACA,cAAc;AAAA,QACV,kBAAkB;AAAA,UACd;AAAA,UACA,UAAU;AAAA,YACN,MAAM,SAAS,GAAG,UAAU;AAAA,YAC5B,SAAS,iBAAiB,GAAG,QAAQ;AAAA,UACzC,CAAC;AAAA,QACL;AAAA,QACA,UAAU,SAAS,GAAG,UAAU,WAAW,uBAAuB,CAAC;AAAA,QACnE,kBAAkB,iBAAiB,GAAG,SAAS,QAAQ,CAAC;AAAA,QACxD,sBAAsB,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,QACrE,wBAAwB,SAAS,GAAG,cAAc,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,QACvE,iBAAiB,yBAAyB,GAAG,aAAa;AAAA,MAC9D,CAAC;AAAA,IACL;AAAA,IACA,WAAW,SAAS,IAAI,aAAa;AAAA,EACzC;AAAA,EACA;AACJ;AAEG,MAAM,qBAAqB,sBAAsB;AAAA,EACpD,SAAS;AAAA,IACL,QAAQ,SAAS,IAAI,SAAS;AAAA,IAC9B,UAAU,iBAAiB,IAAI,WAAW;AAAA,EAC9C;AAAA,EACA,QAAQ;AACZ,CAAC;AAEM,MAAM,4BAA4B,sBAAsB;AAAA,EAC3D,SAAS;AAAA,IACL,QAAQ,SAAS,IAAI,SAAS;AAAA,IAC9B,UAAU,SAAS,IAAI,WAAW;AAAA,IAClC,uBAAuB,yBAAyB,IAAI,yBAAyB,EAAE,WAAW,EAAE,CAAC;AAAA,EACjG;AAAA,EACA,QAAQ;AACZ,CAAC;AAEM,MAAM,6BAA6B,sBAAsB;AAAA,EAC5D,SAAS;AAAA,IACL,QAAQ,SAAS,IAAI,SAAS;AAAA,IAC9B,UAAU,iBAAiB,IAAI,WAAW;AAAA,EAC9C;AAAA,EACA,QAAQ;AACZ,CAAC;AAED,MAAM,qBAAqB,sBAAsB;AA8D1C,MAAM,8BAA8B,UAAU;AAAA,EACjD,eAAe,SAAS,GAAG,SAAS;AAAA,EACpC,UAAU,SAAS,GAAG,WAAW;AAAA,EACjC,gBAAgB,SAAS,GAAG,SAAS,WAAW,EAAE,WAAW,GAAG,WAAW,IAAI,CAAC,CAAC;AAAA,EACjF,cAAc,SAAS,GAAG,SAAS;AAAA,EACnC,eAAe,SAAS,GAAG,UAAU,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,EAC1D,eAAe,SAAS,GAAG,QAAQ;AAAA,EACnC,qBAAqB,SAAS,GAAG,SAAS;AAAA,EAC1C,eAAe,SAAS,GAAG,SAAS;AAAA,EACpC,mBAAmB,SAAS,GAAG,QAAQ;AAAA,EACvC,mBAAmB,iBAAiB,GAAG,WAAW;AAAA,EAClD,oBAAoB,iBAAiB,IAAI,SAAS;AAAA,EAClD,mBAAmB;AAAA,IACf;AAAA,IACA,SAAS,cAAc,MAAM,EAAE,QAAQ,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,GAAG,CAAC;AAAA,EACjF;AACJ,CAAC;AAYD,SAAS,sBAAsB,MAAgC;AAC3D,QAAM,MAAM,CAAC;AACb,SAAO,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC3C,QAAI,UAAU,QAAW;AACrB;AAAA,IACJ;AACA,YAAQ,KAAK;AAAA,MACT,KAAK;AACD,YAAI,aAAa,KAAK,WAAW,KAAe;AAChD;AAAA,MACJ,KAAK;AACD,YAAI,WAAW,KAAK,QAAQ,KAAe;AAC3C;AAAA,MACJ,KAAK;AACD,YAAI,YAAY,KAAK,aAAa,KAAe;AACjD;AAAA,MACJ,KAAK;AACD,YAAI,cAAc,KAAK,YAAY,KAAe;AAClD;AAAA,MACJ,KAAK;AACD,YAAI,eAAe,KAAK,aAAa,KAAe;AACpD;AAAA,MACJ,KAAK;AACD,YAAI,sBAAsB,KAAK,oBAAoB,KAAe;AAClE;AAAA,MACJ,KAAK;AACD,YAAI,UAAU,KAAK,iBAAiB,KAAe;AACnD;AAAA,MACJ,KAAK;AACD,YAAI,cAAc,KAAK,uBAAuB,KAAe;AAC7D;AAAA,MACJ,KAAK;AACD,YAAI,QAAQ,KAAK,MAAM,KAAe;AACtC;AAAA,MACJ,KAAK;AACD,YAAI,OAAO,KAAK,KAAK,KAAe;AACpC;AAAA,MACJ,KAAK;AACD,YAAI,YAAY,KAAK,UAAU,KAAe;AAC9C;AAAA,MACJ,KAAK;AACD,YAAI,WAAW,KAAK,SAAS,KAAe;AAC5C;AAAA,MACJ,KAAK;AACD,YAAI,eAAe,KAAK,oBAAoB,KAAe;AAC3D;AAAA,MACJ,KAAK;AACD,YAAI,cAAc,KAAK,YAAY,KAAe;AAClD;AAAA,MACJ,KAAK;AACD,YAAI,YAAY,KAAK,UAAU,KAAe;AAC9C;AAAA,MACJ,KAAK;AACD,YAAI,kBAAkB,KAAK,gBAAgB,KAAe;AAC1D;AAAA,MACJ,KAAK;AACD,YAAI,SAAS,cAAc,KAAe;AAC1C;AAAA,MACJ,KAAK;AACD,YAAI,oBAAoB,yBAAyB,KAAe;AAChE;AAAA,MACJ,KAAK;AACD,YAAI,SAAS,cAAc,KAAwB;AACnD;AAAA,MACJ,KAAK;AACD,YAAI,SAAS,cAAc,KAAwB;AACnD;AAAA,MACJ,KAAK;AACD,YAAI,WAAW,gBAAgB,KAAiB;AAChD;AAAA,MACJ,KAAK;AAID,cAAM,wBAAwB;AAC9B,6BAAqB,mBAAmB,qBAAqB;AAE7D,cAAM,OAAO,sBAAsB,CAAC;AACpC,cAAM,OAAO,sBAAsB,CAAC;AACpC,cAAM,OAAO,sBAAsB,CAAC;AACpC,YAAI,SAAS,QAAW;AACpB,cAAI,wBAAwB,cAAc,IAAI;AAAA,QAClD;AACA,YAAI,SAAS,QAAW;AACpB,cAAI,wBAAwB,cAAc,IAAI;AAAA,QAClD;AACA,YAAI,SAAS,QAAW;AACpB,cAAI,wBAAwB,cAAc,IAAI;AAAA,QAClD;AACA;AAAA,MACJ,KAAK;AACD,YAAI,WAAW,gBAAgB,KAAiB;AAChD;AAAA,MACJ,KAAK;AACD,YAAI,YAAY,iBAAiB,KAAe;AAChD;AAAA,MACJ,KAAK;AACD,YAAI,eAAe,KAAK,WAAW,OAAiB,IAAI;AACxD;AAAA,MACJ,KAAK;AACD,YAAI,aAAa,KAAK,QAAQ,OAAiB,IAAI;AACnD;AAAA,MACJ,KAAK;AACD,YAAI,cAAc,KAAK,aAAa,OAAiB,IAAI;AACzD;AAAA,MACJ,KAAK;AACD,YAAI,gBAAgB,KAAK,YAAY,OAAiB,IAAI;AAC1D;AAAA,MACJ,KAAK;AACD,YAAI,iBAAiB,KAAK,aAAa,OAAiB,IAAI;AAC5D;AAAA,MACJ,KAAK;AACD,YAAI,wBAAwB,KAAK,oBAAoB,OAAiB,IAAI;AAC1E;AAAA,MACJ,KAAK;AACD,YAAI,YAAY,KAAK,iBAAiB,OAAiB,IAAI;AAC3D;AAAA,MACJ,KAAK;AACD,YAAI,gBAAgB,KAAK,uBAAuB,OAAiB,IAAI;AACrE;AAAA,MACJ,KAAK;AACD,YAAI,UAAU,KAAK,MAAM,OAAiB,IAAI;AAC9C;AAAA,MACJ,KAAK;AACD,YAAI,SAAS,KAAK,KAAK,OAAiB,IAAI;AAC5C;AAAA,MACJ,KAAK;AACD,YAAI,cAAc,KAAK,UAAU,OAAiB,IAAI;AACtD;AAAA,MACJ,KAAK;AACD,YAAI,aAAa,KAAK,SAAS,OAAiB,IAAI;AACpD;AAAA,MACJ,KAAK;AACD,YAAI,iBAAiB,KAAK,oBAAoB,OAAiB,IAAI;AACnE;AAAA,MACJ,KAAK;AACD,YAAI,gBAAgB,KAAK,YAAY,OAAiB,IAAI;AAC1D;AAAA,MACJ,KAAK;AACD,YAAI,cAAc,KAAK,UAAU,OAAiB,IAAI;AACtD;AAAA,IACR;AAAA,EACJ,CAAC;AACD,SAAO;AACX;AAEA,SAAS,iBAAiB,YAA2C;AACjE,QAAM,MAAM,CAAC;AACb,SAAO,QAAQ,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACjD,QAAI,UAAU,QAAW;AACrB;AAAA,IACJ;AACA,YAAQ,KAAK;AAAA,MACT,KAAK;AACD,YAAI,mBAAmB,KAAK,iBAAiB,KAAK;AAClD;AAAA,MACJ,KAAK;AACD,YAAI,WAAW,KAAK;AAAA,UAChB,wBAAwB,OAAO,KAAiE;AAAA,QACpG;AACA;AAAA,MACJ,KAAK;AACD,YAAI,mBAAmB,KAAK,iBAAiB,KAA6B;AAC1E;AAAA,MACJ,KAAK;AACD,YAAI,uBAAuB,KAAK,qBAAqB,KAAmB;AACxE;AAAA,MACJ,KAAK;AACD,YAAI,yBAAyB,KAAK,uBAAuB,KAAmB;AAC5E;AAAA,MACJ,KAAK;AACD,YAAI,kBAAkB,SAAS,MAAM,OAAO,GAAK,SAAsC,CAAC,CAAE,CAAC;AAC3F;AAAA,IACR;AAAA,EACJ,CAAC;AACD,SAAO;AACX;AAEA,SAAS,0BAA0B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAA8B;AAC1B,QAAM;AAAA,IACF,kBAAkB,EAAE,MAAM,QAAQ;AAAA,EACtC,IAAI;AACJ,MAAI,CAAC,QAAQ,YAAY,QAAW;AAChC,UAAM,IAAI,iBAAiB,wDAAwD;AAAA,EACvF;AACA,SAAO;AAAA,IACH,SAAS,cAAc,GAAG,CAAC;AAAA;AAAA,IAC3B,cAAc,iBAAiB,QAAQ,SAAS,YAAY;AAAA,IAC5D,oBAAoB,KAAK;AAAA,IACzB,QAAQ,sBAAsB,MAAM;AAAA,IACpC,UAAU;AAAA,MACN,WAAW,eAAe,SAAS;AAAA,MACnC,UAAU,eAAe,QAAQ;AAAA,IACrC;AAAA,IACA,SAAS,sBAAsB,OAAO;AAAA,IACtC,WAAW,KAAK,sBAAsB,sBAAsB;AAAA,IAC5D,YAAY,cAAc,GAAG,iBAAiB,UAAU,CAAC;AAAA,EAC7D;AACJ;AAEA,SAAS,kBAAkB,MAAiC;AACxD,QAAM,YAAY,SAAS,OAAO,0BAA0B,IAAI,CAAC;AACjE,2BAAyB,SAAS;AAClC,SAAO;AACX;AAEA,SAAS,yBAAyB,WAAuB;AACrD,MAAI,UAAU,SAAS,0BAA0B;AAC7C,UAAM,IAAI;AAAA,MACN,uCAAuC,UAAU,MAAM,yBAAyB,wBAAwB;AAAA,IAC5G;AAAA,EACJ;AACJ;AAEO,MAAM,mBAAmB;AAAA,EAC5B;AAAA,EAEA,YAAY,QAAgB;AACxB,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,eAAe,MAAiC;AAC5C,UAAM;AAAA,MACF,YAAY;AAAA,QACR,kBAAkB,EAAE,KAAK;AAAA,MAC7B;AAAA,IACJ,IAAI;AACJ,QAAI,CAAC,MAAM;AACP,YAAM,IAAI,iBAAiB,gCAAgC;AAAA,IAC/D;AACA,WAAO,kBAAkB,IAAI;AAAA,EACjC;AAAA,EAEA,yBAAyB,MAAyC;AAC9D,UAAM;AAAA,MACF,YAAY;AAAA,QACR,kBAAkB,EAAE,KAAK;AAAA,MAC7B;AAAA,IACJ,IAAI;AACJ,QAAI,CAAC,MAAM;AACP,YAAM,IAAI,iBAAiB,wCAAwC;AAAA,IACvE;AACA,WAAO,kBAAkB,IAAI;AAAA,EACjC;AAAA,EAEA,0BAA0B,MAAwC;AAC9D,UAAM;AAAA,MACF,QAAQ,EAAE,QAAQ,OAAO;AAAA,MACzB,YAAY;AAAA,QACR,kBAAkB,EAAE,KAAK;AAAA,MAC7B;AAAA,IACJ,IAAI;AACJ,QAAI,WAAW,UAAa,WAAW,QAAW;AAC9C,YAAM,IAAI,iBAAiB,wEAAwE;AAAA,IACvG;AACA,QAAI,MAAM;AACN,YAAM,IAAI,iBAAiB,gDAAgD;AAAA,IAC/E;AAEA,WAAO,kBAAkB,IAAI;AAAA,EACjC;AAAA,EAEA,MAAM,4BAA4B,MAA8C,KAAU;AACtF,UAAM,cAAc,0BAA0B,IAAI;AAClD,UAAM,YAAY,MAAM,KAAK,QAAQ,UAAU,KAAK,SAAS,OAAO,WAAW,GAAG,KAAK;AACvF,UAAM,YAAY,SAAS,OAAO;AAAA,MAC9B;AAAA,MACA,eAAe,KAAK;AAAA,MACpB,WAAW,aAAa,SAAS;AAAA,IACrC,CAAC;AACD,6BAAyB,SAAS;AAClC,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,yCACF,MACA,KACF;AACE,UAAM,cAAc,0BAA0B,IAAI;AAClD,UAAM,YAAY,MAAM,KAAK,QAAQ,UAAU,KAAK,SAAS,OAAO,WAAW,GAAG,KAAK;AACvF,UAAM,YAAY,SAAS,OAAO;AAAA,MAC9B;AAAA,MACA,eAAe,KAAK;AAAA,MACpB,WAAW,aAAa,SAAS;AAAA,IACrC,CAAC;AACD,6BAAyB,SAAS;AAClC,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,sCAAsC,MAAwD,KAAU;AAC1G,UAAM,cAAc,0BAA0B,IAAI;AAClD,UAAM,YAAY,SAAS,OAAO;AAAA,MAC9B;AAAA,MACA,eAAe,KAAK;AAAA,MACpB,WAAW,aAAa,MAAM,KAAK,QAAQ,UAAU,KAAK,SAAS,OAAO,WAAW,GAAG,KAAK,CAAC;AAAA,IAClG,CAAC;AACD,6BAAyB,SAAS;AAClC,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,+BACF,UACA,sBACA,YACF;AACE,UAAM,cAAc;AAAA,MAChB,SAAS;AAAA,MACT,iBAAiB,CAAC,UAAU;AAAA,MAC5B,kBAAkB,MAAM,KAAK,QAAQ;AAAA,MACrC,YAAY;AAAA,QACR;AAAA,UACI,SAAS;AAAA,UACT,sBAAsB,mBAAmB,GAAG,oBAAoB;AAAA,UAChE,iBAAiB;AAAA,UACjB,oBAAoB,KAAK;AAAA,UACzB,WAAW,MAAM,KAAK,QAAQ,UAAU,YAAY,UAAU,KAAK;AAAA,QACvE;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,YAAY,SAAS,OAAO,MAAM,WAAW,WAAW,CAAC;AAC/D,6BAAyB,SAAS;AAClC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iCAAiC,MAA0E;AACvG,QAAI,KAAK,aAAa,SAAS;AAC3B,YAAM,IAAI;AAAA,QACN,8EAA8E,KAAK,aAAa,MAAM;AAAA,MAC1G;AAEJ,QAAI,KAAK,uBAAuB,GAAG;AAE/B,YAAM,IAAI,iBAAiB,oCAAoC,KAAK,kBAAkB,EAAE;AAAA,IAC5F;AAEA,QAAI,KAAK,uBAAuB,GAAG;AAE/B,YAAM,IAAI,iBAAiB,qCAAqC,KAAK,kBAAkB,EAAE;AAAA,IAC7F;AAEA,QAAI,KAAK,4BAA4B,GAAG;AAEpC,YAAM,IAAI,iBAAiB,0CAA0C,KAAK,uBAAuB,EAAE;AAAA,IACvG;AAGA,QAAI,OAAO,KAAK,KAAK,OAAO,EAAE,SAAS,GAAG;AACtC,YAAM,IAAI,iBAAiB,wDAAwD;AAAA,IACvF;AACA,QAAI,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS,GAAG;AACrC,YAAM,IAAI,iBAAiB,uDAAuD;AAAA,IACtF;AAIA,QAAI,KAAK,YAAY,MAAO,KAAK,MAAM,GAAG;AACtC,aAAO,KAAK,gDAAgD,KAAK,YAAY,GAAI,OAAO,KAAK,MAAM,CAAC,EAAE;AAAA,IAI1G;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,sBAAsB,UAA2B;AACnD,SAAK,iCAAiC,QAAQ;AAG9C,QAAI,YAAY,SAAS,SAAS;AAC9B,YAAM,IAAI,iBAAiB,6CAA6C;AAAA,IAC5E;AAGA,QAAI,SAAS,QAAQ,aAAa,QAAW;AACzC,UAAI,MAAM,QAAQ,SAAS,QAAQ,QAAQ,GAAG;AAC1C,cAAM,IAAI;AAAA,UACN,wCAAwC,WAAW,KAAK,SAAS,QAAQ,QAAQ,CAAC;AAAA,QACtF;AAAA,MACJ;AAEA,UAAI,SAAS,QAAQ,aAAa,SAAS,CAAC,GAAG;AAC3C,cAAM,IAAI;AAAA,UACN,wCAAwC,WAAW,KAAK,SAAS,QAAQ,QAAQ,CAAC;AAAA,QACtF;AAAA,MACJ;AAAA,IACJ;AAGA,QAAI,YAAY,SAAS,SAAS;AAC9B,YAAM,IAAI,iBAAiB,8CAA8C;AAAA,IAC7E;AAGA,QAAI,SAAS,QAAQ,WAAW,UAAa,MAAM,QAAQ,SAAS,QAAQ,MAAM,GAAG;AACjF,YAAM,IAAI;AAAA,QACN,uCAAuC,WAAW,KAAK,SAAS,QAAQ,MAAM,CAAC;AAAA,MACnF;AAAA,IACJ;AAGA,QAAI,2BAA2B,SAAS,SAAS;AAC7C,YAAM,IAAI,iBAAiB,4DAA4D;AAAA,IAC3F;AAGA,QAAI,SAAS,WAAW,iBAAiB,SAAS,MAAM;AACpD,YAAM,IAAI,iBAAiB,8CAA8C;AAAA,IAC7E;AAIA,QACI,wBAAwB,OAAO,SAAS,WAAW,QAAQ,MAAM,MACjE,wBAAwB,OAAO,SAAS,WAAW,QAAQ,MAAM,IACnE;AACE,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAGA,QAAI,SAAS,WAAW,qBAAqB,QAAW;AACpD,YAAM,IAAI,iBAAiB,sDAAsD;AAAA,IACrF;AAGA,QAAI,SAAS,WAAW,yBAAyB,QAAW;AACxD,YAAM,IAAI,iBAAiB,sDAAsD;AAAA,IACrF;AACA,QAAI,SAAS,WAAW,qBAAqB,WAAW,IAAI;AACxD,YAAM,IAAI,iBAAiB,wDAAwD;AAAA,IACvF;AAGA,QAAI,SAAS,WAAW,2BAA2B,QAAW;AAC1D,YAAM,IAAI,iBAAiB,wDAAwD;AAAA,IACvF;AACA,QAAI,SAAS,WAAW,uBAAuB,WAAW,IAAI;AAC1D,YAAM,IAAI,iBAAiB,0DAA0D;AAAA,IACzF;AAGA,QAAI,CAAC,MAAM,SAAS,SAAS,WAAW,wBAAwB,SAAS,WAAW,oBAAoB,GAAG;AACvG,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,KAAK,QAAQ;AAAA,MACf,UAAU,SAAS,sBAAsB;AAAA,MACzC,KAAK,eAAe,QAAQ;AAAA,MAC5B,SAAS;AAAA,IACb;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,iCACF,SACA,UACA,SACF;AACE,SAAK,iCAAiC,OAAO;AAG7C,QAAI,QAAQ,QAAQ,WAAW,UAAa,MAAM,QAAQ,QAAQ,QAAQ,MAAM,GAAG;AAC/E,YAAM,IAAI,iBAAiB,sCAAsC,WAAW,KAAK,QAAQ,QAAQ,MAAM,CAAC,EAAE;AAAA,IAC9G;AAEA,QAAI,CAAC,OAAO,oBAAoB,QAAQ,QAAQ,MAAM,GAAG;AACrD,YAAM,IAAI,iBAAiB,sCAAsC,WAAW,KAAK,QAAQ,QAAQ,MAAM,CAAC,EAAE;AAAA,IAC9G;AAGA,QAAI,QAAQ,QAAQ,aAAa,UAAa,MAAM,QAAQ,QAAQ,QAAQ,QAAQ,GAAG;AACnF,YAAM,IAAI;AAAA,QACN,wCAAwC,WAAW,KAAK,QAAQ,QAAQ,QAAQ,CAAC;AAAA,MACrF;AAAA,IACJ;AAEA,QAAI,QAAQ,QAAQ,aAAa,SAAS,CAAC,GAAG;AAC1C,YAAM,IAAI;AAAA,QACN,wCAAwC,WAAW,KAAK,QAAQ,QAAQ,QAAQ,CAAC;AAAA,MACrF;AAAA,IACJ;AAGA,QAAI,YAAY,QAAQ,SAAS;AAC7B,YAAM,IAAI,iBAAiB,6CAA6C;AAAA,IAC5E;AAGA,QAAI,YAAY,QAAQ,SAAS;AAC7B,YAAM,IAAI,iBAAiB,6CAA6C;AAAA,IAC5E;AAGA,QAAI,QAAQ,QAAQ,0BAA0B,QAAW;AACrD,2BAAqB,mBAAmB,QAAQ,QAAQ,qBAAqB;AAAA,IACjF;AAKA,QAAI,SAAS,QAAQ,aAAa,UAAa,SAAS,QAAQ,aAAa,QAAQ,QAAQ,UAAU;AACnG,YAAM,IAAI;AAAA,QACN,sFAAsF,WAAW;AAAA,UAC7F,SAAS,QAAQ;AAAA,QACrB,CAAC,QAAQ,WAAW,KAAK,QAAQ,QAAQ,QAAQ,CAAC;AAAA,MACtD;AAAA,IACJ;AACA,QACI,YAAY,UACZ,QAAQ,QAAQ,aAAa,UAC7B,QAAQ,QAAQ,aAAa,QAAQ,QAAQ,UAC/C;AACE,YAAM,IAAI;AAAA,QACN,sFAAsF,WAAW;AAAA,UAC7F,QAAQ,QAAQ;AAAA,QACpB,CAAC,QAAQ,WAAW,KAAK,QAAQ,QAAQ,QAAQ,CAAC;AAAA,MACtD;AAAA,IACJ;AAGA,QAAI,QAAQ,WAAW,iBAAiB,MAAM;AAC1C,YAAM,IAAI,iBAAiB,iDAAiD;AAAA,IAChF;AAMA,QAAI,CAAC,QAAQ,WAAW,SAAS,kBAAkB;AAC/C,YAAM,IAAI,iBAAiB,6DAA6D;AAAA,IAC5F;AAGA,QACI,QAAQ,WAAW,qBAAqB,UACvC,CAAC,QAAQ,WAAW,iBAAiB,SAAS,CAAC,KAAK,CAAC,QAAQ,WAAW,iBAAiB,SAAS,CAAC,GACtG;AACE,YAAM,IAAI;AAAA,QACN,8EAA8E,WAAW,KAAK,QAAQ,WAAW,gBAAgB,CAAC;AAAA,MACtI;AAAA,IACJ;AAGA,QAAI,QAAQ,WAAW,yBAAyB,QAAW;AACvD,YAAM,IAAI,iBAAiB,qDAAqD;AAAA,IACpF;AACA,QAAI,QAAQ,WAAW,qBAAqB,WAAW,IAAI;AACvD,YAAM,IAAI,iBAAiB,uDAAuD;AAAA,IACtF;AAGA,QAAI,QAAQ,WAAW,2BAA2B,QAAW;AACzD,YAAM,IAAI,iBAAiB,uDAAuD;AAAA,IACtF;AACA,QAAI,QAAQ,WAAW,uBAAuB,WAAW,IAAI;AACzD,YAAM,IAAI,iBAAiB,yDAAyD;AAAA,IACxF;AAGA,QACI,CAAC,MAAM;AAAA,MACH,QAAQ,WAAW;AAAA,OAClB,WAAW,UAAU,WAAW;AAAA,IACrC,GACF;AACE,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,KAAK,QAAQ;AAAA,MACf,WAAW,WAAW,UAAU,sBAAsB;AAAA,MACtD,KAAK,0BAA0B,OAAO;AAAA,MACtC,QAAQ;AAAA,IACZ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,gCAAgC,UAA2B,SAAkC;AAC/F,SAAK,iCAAiC,OAAO;AAG7C,QAAI,YAAY,QAAQ,SAAS;AAC7B,YAAM,IAAI,iBAAiB,4CAA4C;AAAA,IAC3E;AAGA,QAAI,QAAQ,QAAQ,aAAa,QAAW;AACxC,UAAI,MAAM,QAAQ,QAAQ,QAAQ,QAAQ,GAAG;AACzC,cAAM,IAAI;AAAA,UACN,wCAAwC,WAAW,KAAK,QAAQ,QAAQ,QAAQ,CAAC;AAAA,QACrF;AAAA,MACJ;AAEA,UAAI,QAAQ,QAAQ,aAAa,SAAS,CAAC,GAAG;AAC1C,cAAM,IAAI;AAAA,UACN,wCAAwC,WAAW,KAAK,QAAQ,QAAQ,QAAQ,CAAC;AAAA,QACrF;AAAA,MACJ;AAAA,IACJ;AAGA,QAAI,QAAQ,QAAQ,WAAW,UAAa,MAAM,QAAQ,QAAQ,QAAQ,MAAM,GAAG;AAC/E,YAAM,IAAI,iBAAiB,sCAAsC,WAAW,KAAK,QAAQ,QAAQ,MAAM,CAAC,EAAE;AAAA,IAC9G;AAGA,QAAI,YAAY,QAAQ,SAAS;AAC7B,YAAM,IAAI,iBAAiB,6CAA6C;AAAA,IAC5E;AAGA,QAAI,2BAA2B,QAAQ,SAAS;AAC5C,YAAM,IAAI,iBAAiB,2DAA2D;AAAA,IAC1F;AAMA,QACI,SAAS,QAAQ,aAAa,UAC9B,QAAQ,QAAQ,aAAa,UAC7B,SAAS,QAAQ,aAAa,QAAQ,QAAQ,UAChD;AACE,YAAM,IAAI;AAAA,QACN,sFAAsF,WAAW;AAAA,UAC7F,SAAS,QAAQ;AAAA,QACrB,CAAC,QAAQ,WAAW,KAAK,QAAQ,QAAQ,QAAQ,CAAC;AAAA,MACtD;AAAA,IACJ;AAGA,QAAI,SAAS,QAAQ,WAAW,QAAQ,OAAO,QAAQ;AACnD,YAAM,IAAI;AAAA,QACN,kFAAkF,WAAW;AAAA,UACzF,SAAS,QAAQ;AAAA,QACrB,CAAC,QAAQ,WAAW,KAAK,QAAQ,OAAO,MAAM,CAAC;AAAA,MACnD;AAAA,IACJ;AAGA,QAAI,CAAC,QAAQ,WAAW,iBAAiB,MAAM;AAC3C,YAAM,IAAI,iBAAiB,6CAA6C;AAAA,IAC5E;AAIA,QACI,wBAAwB,OAAO,SAAS,WAAW,QAAQ,MAAM,MACjE,wBAAwB,OAAO,SAAS,WAAW,QAAQ,MAAM,IACnE;AACE,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAGA,QAAI,QAAQ,WAAW,qBAAqB,QAAW;AACnD,YAAM,IAAI,iBAAiB,qDAAqD;AAAA,IACpF;AAGA,QAAI,QAAQ,WAAW,yBAAyB,QAAW;AACvD,YAAM,IAAI,iBAAiB,qDAAqD;AAAA,IACpF;AACA,QAAI,QAAQ,WAAW,qBAAqB,WAAW,IAAI;AACvD,YAAM,IAAI,iBAAiB,uDAAuD;AAAA,IACtF;AAGA,QAAI,QAAQ,WAAW,2BAA2B,QAAW;AACzD,YAAM,IAAI,iBAAiB,uDAAuD;AAAA,IACtF;AACA,QAAI,QAAQ,WAAW,uBAAuB,WAAW,IAAI;AACzD,YAAM,IAAI,iBAAiB,yDAAyD;AAAA,IACxF;AAGA,QAAI,CAAC,MAAM,SAAS,QAAQ,WAAW,wBAAwB,SAAS,WAAW,oBAAoB,GAAG;AACtG,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,KAAK,QAAQ;AAAA,MACf,UAAU,SAAS,sBAAsB;AAAA,MACzC,KAAK,yBAAyB,OAAO;AAAA,MACrC,QAAQ;AAAA,IACZ;AAAA,EACJ;AAAA,EAEA,MAAM,gCAAgC,KAAU;AAC5C,UAAM,UAAU;AAAA,MACZ,SAAS;AAAA,MACT,SAAS,EAAE,cAAc,KAAK,iBAAiB,KAAK,EAAE;AAAA,MACtD,WAAW,KAAK,sBAAsB,IAAI,SAAS;AAAA,MACnD,gBAAgB,cAAc,CAAC;AAAA,IACnC;AAEA,WAAO,SAAS,OAAO;AAAA,MACnB;AAAA,MACA,eAAe,KAAK;AAAA,MACpB,WAAW,aAAa,MAAM,KAAK,QAAQ,UAAU,KAAK,SAAS,OAAO,OAAO,GAAG,KAAK,CAAC;AAAA,IAC9F,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,oBAAoB,KAAiB;AACvC,UAAM,EAAE,CAAC,OAAO,QAAQ,GAAG,aAAa,IAAI,SAAS,OAAO,GAAG;AAC/D,QAAI,cAAc,WAAW,EAAG,OAAM,IAAI,iBAAiB,kBAAkB;AAC7E,UAAM,CAAC,aAAa,mBAAmB,aAAa,IAAI;AAGxD,UAAM,EAAE,CAAC,OAAO,QAAQ,GAAG,gBAAgB,IAAI;AAC/C,QAAI,iBAAiB,WAAW,EAAG,OAAM,IAAI,iBAAiB,kBAAkB;AAChF,UAAM,CAAC,aAAa,cAAc,aAAa,IAAI;AACnD,UAAM,iBAAiB,YAAY,OAAO,KAAK,EAAE,CAAC;AAClD,QAAI,mBAAmB,EAAG,OAAM,IAAI,iBAAiB,8BAA8B,cAAc,EAAE;AAGnG,UAAM,EAAE,CAAC,OAAO,QAAQ,GAAG,kBAAkB,IAAI;AACjD,QAAI,mBAAmB,WAAW,EAAG,OAAM,IAAI,iBAAiB,kBAAkB;AAClF,UAAM,CAAC,oBAAoB,kBAAkB,IAAI;AAEjD,UAAM,YAAY,mBAAmB,OAAO,KAAK;AAGjD,QACI,kBAAkB,OAAO,QAAQ,IAAI,CAAC,IAAI,OAAO,KAAK,MAAM,UAC5D,CAAC,MAAM;AAAA,MACH,KAAK,gBAAgB,OAAO,QAAQ,EAAE,OAAO,KAAK;AAAA,MAClD,kBAAkB,OAAO,QAAQ,IAAI,CAAC,IAAI,OAAO,KAAK;AAAA,IAC1D;AAEA,YAAM,IAAI,iBAAiB,4BAA4B;AAC3D,UAAM,KAAK,QAAQ;AAAA,MACf,UAAU,SAAS;AAAA,MACnB,SAAS,OAAO,WAAW;AAAA,MAC3B,cAAc,OAAO,KAAK;AAAA,MAC1B;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AACJ;",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Crypto } from "#general";
|
|
1
7
|
import { VendorId } from "#types";
|
|
2
8
|
export declare class CertificationDeclarationManager {
|
|
3
|
-
static generate(vendorId: VendorId, productId: number, provisional?: boolean): Promise<Uint8Array<ArrayBufferLike>>;
|
|
9
|
+
static generate(crypto: Crypto, vendorId: VendorId, productId: number, provisional?: boolean): Promise<Uint8Array<ArrayBufferLike>>;
|
|
4
10
|
}
|
|
5
11
|
//# sourceMappingURL=CertificationDeclarationManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CertificationDeclarationManager.d.ts","sourceRoot":"","sources":["../../../src/certificate/CertificationDeclarationManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CertificationDeclarationManager.d.ts","sourceRoot":"","sources":["../../../src/certificate/CertificationDeclarationManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAS,MAAM,EAAc,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAyBlC,qBAAa,+BAA+B;IACxC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,UAAQ;CAmB7F"}
|
|
@@ -8,7 +8,7 @@ import { CertificateManager, TlvCertificationDeclaration } from "./CertificateMa
|
|
|
8
8
|
const TestCMS_SignerPrivateKey = Bytes.fromHex("AEF3484116E9481EC57BE0472DF41BF499064E5024AD869ECA5E889802D48075");
|
|
9
9
|
const TestCMS_SignerSubjectKeyIdentifier = Bytes.fromHex("62FA823359ACFAA9963E1CFA140ADDF504F37160");
|
|
10
10
|
class CertificationDeclarationManager {
|
|
11
|
-
static generate(vendorId, productId, provisional = false) {
|
|
11
|
+
static generate(crypto, vendorId, productId, provisional = false) {
|
|
12
12
|
const certificationElements = TlvCertificationDeclaration.encode({
|
|
13
13
|
formatVersion: 1,
|
|
14
14
|
vendorId,
|
|
@@ -21,7 +21,7 @@ class CertificationDeclarationManager {
|
|
|
21
21
|
certificationType: provisional ? 1 : 0
|
|
22
22
|
// 0 = Test, 1 = Provisional/In certification, 2 = official
|
|
23
23
|
});
|
|
24
|
-
return CertificateManager.certificationDeclarationToAsn1(
|
|
24
|
+
return new CertificateManager(crypto).certificationDeclarationToAsn1(
|
|
25
25
|
certificationElements,
|
|
26
26
|
TestCMS_SignerSubjectKeyIdentifier,
|
|
27
27
|
PrivateKey(TestCMS_SignerPrivateKey)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/certificate/CertificationDeclarationManager.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,OAAe,kBAAkB;AAE1C,SAAS,oBAAoB,mCAAmC;AAchE,MAAM,2BAA2B,MAAM,QAAQ,kEAAkE;AAQjH,MAAM,qCAAqC,MAAM,QAAQ,0CAA0C;AAE5F,MAAM,gCAAgC;AAAA,EACzC,OAAO,SAAS,QAAgB,UAAoB,WAAmB,cAAc,OAAO;AACxF,UAAM,wBAAwB,4BAA4B,OAAO;AAAA,MAC7D,eAAe;AAAA,MACf;AAAA,MACA,gBAAgB,CAAC,SAAS;AAAA,MAC1B,cAAc;AAAA,MACd,eAAe;AAAA,MACf,eAAe;AAAA,MACf,qBAAqB;AAAA,MACrB,eAAe;AAAA,MACf,mBAAmB,cAAc,IAAI;AAAA;AAAA,IACzC,CAAC;AAED,WAAO,IAAI,mBAAmB,MAAM,EAAE;AAAA,MAClC;AAAA,MACA;AAAA,MACA,WAAW,wBAAwB;AAAA,IACvC;AAAA,EACJ;AACJ;",
|
|
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, PrivateKey } from "#general";
|
|
6
|
+
import { Construction, Crypto, PrivateKey } from "#general";
|
|
7
7
|
import { NodeSession } from "#session/NodeSession.js";
|
|
8
8
|
import { ProductDescription } from "#types";
|
|
9
9
|
/**
|
|
@@ -15,7 +15,7 @@ export declare class DeviceCertification {
|
|
|
15
15
|
get certificate(): Uint8Array<ArrayBufferLike>;
|
|
16
16
|
get intermediateCertificate(): Uint8Array<ArrayBufferLike>;
|
|
17
17
|
get declaration(): Uint8Array<ArrayBufferLike>;
|
|
18
|
-
constructor(config?: DeviceCertification.Definition, product?: ProductDescription);
|
|
18
|
+
constructor(crypto: Crypto, config?: DeviceCertification.Definition, product?: ProductDescription);
|
|
19
19
|
sign(session: NodeSession, data: Uint8Array): Promise<Uint8Array<ArrayBufferLike>>;
|
|
20
20
|
}
|
|
21
21
|
export declare namespace DeviceCertification {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceCertification.d.ts","sourceRoot":"","sources":["../../../src/certificate/DeviceCertification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"DeviceCertification.d.ts","sourceRoot":"","sources":["../../../src/certificate/DeviceCertification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,EAAsC,UAAU,EAAE,MAAM,UAAU,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAI5C;;GAEG;AACH,qBAAa,mBAAmB;;IAQ5B,IAAI,YAAY,sCAEf;IAED,IAAI,WAAW,gCAEd;IAED,IAAI,uBAAuB,gCAE1B;IAED,IAAI,WAAW,gCAEd;gBAEW,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAwC3F,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU;CA6BpD;AAED,yBAAiB,mBAAmB,CAAC;IACjC,UAAiB,aAAa;QAC1B,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;QACpC,WAAW,EAAE,UAAU,CAAC;QACxB,uBAAuB,EAAE,UAAU,CAAC;QACpC,WAAW,EAAE,UAAU,CAAC;KAC3B;IAED,KAAY,UAAU,GAAG,aAAa,GAAG,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;CAC3E"}
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Construction,
|
|
6
|
+
import { Construction, ImplementationError, InternalError, PrivateKey } from "#general";
|
|
7
7
|
import { AttestationCertificateManager } from "./AttestationCertificateManager.js";
|
|
8
8
|
import { CertificationDeclarationManager } from "./CertificationDeclarationManager.js";
|
|
9
9
|
class DeviceCertification {
|
|
10
|
+
#crypto;
|
|
10
11
|
#privateKey;
|
|
11
12
|
#certificate;
|
|
12
13
|
#intermediateCertificate;
|
|
@@ -24,7 +25,8 @@ class DeviceCertification {
|
|
|
24
25
|
get declaration() {
|
|
25
26
|
return this.#assertInitialized().declaration;
|
|
26
27
|
}
|
|
27
|
-
constructor(config, product) {
|
|
28
|
+
constructor(crypto, config, product) {
|
|
29
|
+
this.#crypto = crypto;
|
|
28
30
|
let configProvider;
|
|
29
31
|
if (typeof config === "function") {
|
|
30
32
|
configProvider = config;
|
|
@@ -35,13 +37,17 @@ class DeviceCertification {
|
|
|
35
37
|
if (product === void 0) {
|
|
36
38
|
throw new ImplementationError(`Cannot generate device certification without product information`);
|
|
37
39
|
}
|
|
38
|
-
const paa = await AttestationCertificateManager.create(product.vendorId);
|
|
40
|
+
const paa = await AttestationCertificateManager.create(crypto, product.vendorId);
|
|
39
41
|
const { keyPair: dacKeyPair, dac } = await paa.getDACert(product.productId);
|
|
40
42
|
return {
|
|
41
43
|
privateKey: PrivateKey(dacKeyPair.privateKey),
|
|
42
44
|
certificate: dac,
|
|
43
45
|
intermediateCertificate: await paa.getPAICert(),
|
|
44
|
-
declaration: await CertificationDeclarationManager.generate(
|
|
46
|
+
declaration: await CertificationDeclarationManager.generate(
|
|
47
|
+
crypto,
|
|
48
|
+
product.vendorId,
|
|
49
|
+
product.productId
|
|
50
|
+
)
|
|
45
51
|
};
|
|
46
52
|
};
|
|
47
53
|
}
|
|
@@ -55,7 +61,7 @@ class DeviceCertification {
|
|
|
55
61
|
}
|
|
56
62
|
async sign(session, data) {
|
|
57
63
|
const { privateKey } = this.#assertInitialized();
|
|
58
|
-
const signature = await
|
|
64
|
+
const signature = await this.#crypto.signEcdsa(privateKey, [data, session.attestationChallengeKey]);
|
|
59
65
|
return signature;
|
|
60
66
|
}
|
|
61
67
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/certificate/DeviceCertification.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAsB,qBAAqB,eAAe,kBAAkB;AAGrF,SAAS,qCAAqC;AAC9C,SAAS,uCAAuC;AAKzC,MAAM,oBAAoB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACS;AAAA,EAET,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,mBAAmB,EAAE;AAAA,EACrC;AAAA,EAEA,IAAI,0BAA0B;AAC1B,WAAO,KAAK,mBAAmB,EAAE;AAAA,EACrC;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,mBAAmB,EAAE;AAAA,EACrC;AAAA,EAEA,YAAY,QAAgB,QAAyC,SAA8B;AAC/F,SAAK,UAAU;AACf,QAAI;AACJ,QAAI,OAAO,WAAW,YAAY;AAC9B,uBAAiB;AAAA,IACrB,WAAW,QAAQ;AACf,uBAAiB,MAAM;AAAA,IAC3B,OAAO;AACH,uBAAiB,YAAY;AACzB,YAAI,YAAY,QAAW;AACvB,gBAAM,IAAI,oBAAoB,kEAAkE;AAAA,QACpG;AAEA,cAAM,MAAM,MAAM,8BAA8B,OAAO,QAAQ,QAAQ,QAAQ;AAC/E,cAAM,EAAE,SAAS,YAAY,IAAI,IAAI,MAAM,IAAI,UAAU,QAAQ,SAAS;AAE1E,eAAO;AAAA,UACH,YAAY,WAAW,WAAW,UAAU;AAAA,UAC5C,aAAa;AAAA,UACb,yBAAyB,MAAM,IAAI,WAAW;AAAA,UAC9C,aAAa,MAAM,gCAAgC;AAAA,YAC/C;AAAA,YACA,QAAQ;AAAA,YACR,QAAQ;AAAA,UACZ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,SAAK,gBAAgB,aAAa,MAAM,YAAY;AAChD,YAAMA,UAAS,MAAM,eAAe;AAEpC,WAAK,cACDA,QAAO,sBAAsB,aAAa,WAAWA,QAAO,UAAU,IAAIA,QAAO;AACrF,WAAK,eAAeA,QAAO;AAC3B,WAAK,2BAA2BA,QAAO;AACvC,WAAK,eAAeA,QAAO;AAAA,IAC/B,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,KAAK,SAAsB,MAAkB;AAC/C,UAAM,EAAE,WAAW,IAAI,KAAK,mBAAmB;AAC/C,UAAM,YAAY,MAAM,KAAK,QAAQ,UAAU,YAAY,CAAC,MAAM,QAAQ,uBAAuB,CAAC;AAClG,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,qBAAqB;AACjB,SAAK,cAAc,OAAO;AAC1B,QACI,KAAK,iBAAiB,UACtB,KAAK,6BAA6B,UAClC,KAAK,iBAAiB,UACtB,KAAK,gBAAgB,QACvB;AACE,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AACA,WAAO;AAAA,MACH,aAAa,KAAK;AAAA,MAClB,yBAAyB,KAAK;AAAA,MAC9B,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK;AAAA,IACrB;AAAA,EACJ;AACJ;",
|
|
5
5
|
"names": ["config"]
|
|
6
6
|
}
|
|
@@ -34,7 +34,7 @@ class FailsafeContext {
|
|
|
34
34
|
this.#fabrics = options.fabrics;
|
|
35
35
|
this.#associatedFabric = options.associatedFabric;
|
|
36
36
|
this.#construction = Construction(this, async () => {
|
|
37
|
-
this.#fabricBuilder = await FabricBuilder.create();
|
|
37
|
+
this.#fabricBuilder = await FabricBuilder.create(this.#fabrics.crypto);
|
|
38
38
|
await Promise.resolve();
|
|
39
39
|
await this.storeEndpointState();
|
|
40
40
|
this.#failsafe = new FailsafeTimer(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/common/FailsafeContext.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,sBAAsB,QAAQ,uBAAiC;AACxE,SAAiB,qBAAqB;AAGtC,SAAS,eAAe,iCAAiC;AAEzD,MAAM,SAAS,OAAO,IAAI,iBAAiB;AAEpC,MAAM,6CAA6C,gBAAgB;AAAC;AAWpE,MAAe,gBAAgB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EAEf,gBAAgB,gBAA0B;AAAA,EAE1C,YAAY,SAAkC;AAC1C,UAAM,EAAE,qBAAqB,kBAAkB,6BAA6B,IAAI;AAEhF,SAAK,YAAY,QAAQ;AACzB,SAAK,WAAW,QAAQ;AACxB,SAAK,oBAAoB,QAAQ;AAEjC,SAAK,gBAAgB,aAAa,MAAM,YAAY;AAChD,WAAK,iBAAiB,MAAM,cAAc,OAAO;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,sBAAsB,QAAQ,uBAAiC;AACxE,SAAiB,qBAAqB;AAGtC,SAAS,eAAe,iCAAiC;AAEzD,MAAM,SAAS,OAAO,IAAI,iBAAiB;AAEpC,MAAM,6CAA6C,gBAAgB;AAAC;AAWpE,MAAe,gBAAgB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EAEf,gBAAgB,gBAA0B;AAAA,EAE1C,YAAY,SAAkC;AAC1C,UAAM,EAAE,qBAAqB,kBAAkB,6BAA6B,IAAI;AAEhF,SAAK,YAAY,QAAQ;AACzB,SAAK,WAAW,QAAQ;AACxB,SAAK,oBAAoB,QAAQ;AAEjC,SAAK,gBAAgB,aAAa,MAAM,YAAY;AAChD,WAAK,iBAAiB,MAAM,cAAc,OAAO,KAAK,SAAS,MAAM;AAErE,YAAM,QAAQ,QAAQ;AAEtB,YAAM,KAAK,mBAAmB;AAI9B,WAAK,YAAY,IAAI;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM,KAAK,iBAAiB;AAAA,MAChC;AACA,aAAO,MAAM,0BAA0B,mBAAmB,IAAI;AAAA,IAClE,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,OAAO,QAA4B,qBAA6B;AAClE,UAAM,KAAK;AACX,UAAM,KAAK,WAAW,MAAM,QAAQ,mBAAmB;AACvD,QAAI,sBAAsB,GAAG;AACzB,aAAO,MAAM,6BAA6B,mBAAmB,IAAI;AAAA,IACrE;AAAA,EACJ;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,mBAAmB;AACnB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,SAAS,aAAa;AAAA,EACtC;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,MAAM,qBAAqB;AAEvB,QAAI,KAAK,cAAc,QAAW;AAC9B,YAAM,IAAI,gBAAgB,qCAAqC;AAAA,IACnE;AACA,SAAK,UAAU,SAAS;AAExB,QAAI,KAAK,gBAAgB,QAAW;AAChC,YAAM,KAAK,SAAS,eAAe;AAAA,IACvC;AAEA,SAAK,YAAY;AAGjB,UAAM,KAAK,aAAa,KAAK;AAK7B,UAAM,KAAK,kBAAkB;AAE7B,UAAM,KAAK,MAAM;AAAA,EACrB;AAAA,EAEA,qBAAqB;AACjB,QAAI,KAAK,cAAc,OAAW,OAAM,IAAI,gBAAgB,qCAAqC;AACjG,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,qBAAqB;AACjB,WAAO,KAAK,SAAS,oBAAoB;AAAA,EAC7C;AAAA,EAEA,MAAM,UAAU,QAAgB;AAC5B,SAAK,SAAS,UAAU,MAAM;AAC9B,QAAI,KAAK,cAAc,QAAW;AAC9B,WAAK,oBAAoB,KAAK,UAAU,mBAAmB;AAAA,IAC/D;AACA,WAAO,OAAO;AAAA,EAClB;AAAA,EAEA,MAAM,aAAa,QAAgB;AAC/B,UAAM,KAAK,SAAS,aAAa,MAAM;AACvC,UAAM,KAAK,UAAU,iCAAiC,MAAM;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,gCAAgC,gBAAyB,WAAmB;AACxE,QAAI,KAAK,SAAS,cAAc,KAAK,SAAS,OAAO,GAAG;AACpD,YAAM,IAAI,gBAAgB,0BAA0B;AAAA,IACxD;AAEA,UAAM,SAAS,KAAK,SAAS,gCAAgC;AAC7D,SAAK,gBAAgB;AACrB,SAAK,gBAAgB;AACrB,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,oBAAoB;AACtB,UAAM,UAAU,KAAK,UAAU,eAAe;AAC9C,QAAI,SAAS;AACT,YAAM,QAAQ,MAAM,IAAI;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ;AACV,UAAM,KAAK;AACX,UAAM,KAAK,cAAc,MAAM,YAAY;AACvC,UAAI,KAAK,WAAW;AAChB,cAAM,KAAK,UAAU,MAAM;AAC3B,aAAK,YAAY;AACjB,cAAM,KAAK,SAAS;AAAA,MACxB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA;AAAA,EAGA,MAAM,YAAY,UAAsB;AACpC,UAAM,KAAK,SAAS,YAAY,QAAQ;AACxC,SAAK,eAAe;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,mBAAmB,UAAsB,WAAmC;AAC9E,QAAI,KAAK,qBAAqB,QAAW;AACrC,YAAM,IAAI,gBAAgB,8EAA8E;AAAA,IAC5G;AACA,SAAK,SAAS,8BAA8B,KAAK,gBAAgB;AACjE,UAAM,KAAK,SAAS,mBAAmB,UAAU,SAAS;AAC1D,WAAO,MAAM,KAAK,SAAS,MAAM,KAAK,iBAAiB,WAAW;AAAA,EACtE;AAAA;AAAA,EAGA,MAAM,YAAY,SAMf;AACC,UAAM,UAAU,KAAK;AAErB,UAAM,EAAE,UAAU,WAAW,eAAe,UAAU,iBAAiB,IAAI;AAG3E,QAAI,CAAC,OAAO,oBAAoB,gBAAgB,KAAK,CAAC,OAAO,uBAAuB,gBAAgB,GAAG;AACnG,UAAI;AACA,YAAI,qBAAqB,WAAW,OAAO,8BAA8B,gBAAgB,CAAC,MAAM,GAAG;AAC/F,gBAAM,IAAI,qCAAqC;AAAA,QACnD;AAAA,MACJ,SAAS,OAAO;AAEZ,YAAI,iBAAiB,mBAAmB,iBAAiB,qBAAqB;AAC1E,gBAAM,IAAI,qCAAqC;AAAA,QACnD,OAAO;AACH,gBAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,QAAQ,mBAAmB,UAAU,SAAS;AACpD,UAAM,wBAAwB,KAAK,SAAS,KAAK,YAAU,QAAQ,gBAAgB,MAAM,CAAC;AAE1F,QAAI,uBAAuB;AACvB,YAAM,IAAI;AAAA,QACN,kBAAkB,QAAQ,QAAQ,gBAAgB,QAAQ,MAAM;AAAA,MACpE;AAAA,IACJ;AAEA,WAAO,QACF,gBAAgB,aAAa,EAC7B,yBAAyB,QAAQ,EACjC,cAAc,gBAAgB,EAC9B,MAAM,KAAK,SAAS,oBAAoB,CAAC;AAAA,EAClD;AAAA,EAEA,MAAM,mBAAmB;AACrB,WAAO,KAAK,kDAAkD;AAE9D,UAAM,KAAK,MAAM;AAAA,EACrB;AAAA,EAEA,MAAgB,WAAW;AACvB,QAAI,KAAK,gBAAgB,UAAa,CAAC,KAAK,eAAe;AACvD,aAAO,MAAM,8BAA8B,KAAK,WAAW,EAAE;AAC7D,YAAM,KAAK,SAAS,aAAa,KAAK,WAAW;AAAA,IACrD;AAIA,UAAM,KAAK,kBAAkB;AAK7B,QAAI,SAA6B;AACjC,QAAI,KAAK,gBAAgB,QAAW;AAChC,YAAM,cAAc,KAAK;AACzB,UAAI,KAAK,SAAS,IAAI,WAAW,GAAG;AAChC,iBAAS,KAAK,SAAS,IAAI,WAAW;AACtC,cAAM,UAAU,KAAK,UAAU,kBAAkB,OAAO,UAAU,OAAO,UAAU,CAAC;AACpF,YAAI,YAAY,UAAa,QAAQ,UAAU;AAC3C,gBAAM,QAAQ,MAAM,KAAK;AAAA,QAC7B;AAAA,MACJ;AAAA,IACJ;AAIA,UAAM,KAAK,oBAAoB;AAK/B,QAAI,KAAK,iBAAiB,KAAK,qBAAqB,QAAW;AAE3D,YAAM,KAAK,cAAc,KAAK,gBAAgB;AAAA,IAClD;AAIA,QAAI,CAAC,KAAK,iBAAiB,WAAW,QAAW;AAC7C,YAAM,cAAc,KAAK;AACzB,UAAI,gBAAgB,UAAa,KAAK,SAAS,IAAI,WAAW,GAAG;AAC7D,cAAM,KAAK,aAAa,KAAK,SAAS,IAAI,WAAW,CAAC;AAAA,MAC1D;AAAA,IACJ;AAGA,UAAM,KAAK,kBAAkB;AAAA,EAKjC;AAAA,EAOA,MAAM,cAAc,QAAgB;AAChC,UAAM,KAAK,aAAa,MAAM;AAAA,EAClC;AAAA,EAMA,IAAI,WAAW;AACX,QAAI,KAAK,mBAAmB,QAAW;AACnC,YAAM,IAAI,6BAA6B,mBAAmB,yCAAyC;AAAA,IACvG;AACA,WAAO,KAAK;AAAA,EAChB;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { CertificateManager } from "#certificate/CertificateManager.js";
|
|
7
|
+
import { BinaryKeyPair, Crypto, Key, MatterError, MaybePromise, PrivateKey, StorageContext } from "#general";
|
|
7
8
|
import { FabricGroups } from "#groups/FabricGroups.js";
|
|
8
9
|
import { FabricAccessControl } from "#interaction/FabricAccessControl.js";
|
|
9
10
|
import { PeerAddress } from "#peer/PeerAddress.js";
|
|
@@ -33,7 +34,8 @@ export declare class Fabric {
|
|
|
33
34
|
readonly operationalIdentityProtectionKey: Uint8Array;
|
|
34
35
|
readonly intermediateCACert: Uint8Array | undefined;
|
|
35
36
|
readonly operationalCert: Uint8Array;
|
|
36
|
-
constructor(config: Fabric.Config);
|
|
37
|
+
constructor(certs: CertificateManager | Crypto, config: Fabric.Config);
|
|
38
|
+
get crypto(): Crypto;
|
|
37
39
|
get config(): Fabric.Config;
|
|
38
40
|
get label(): string;
|
|
39
41
|
setLabel(label: string): Promise<void>;
|
|
@@ -69,8 +71,8 @@ export declare class Fabric {
|
|
|
69
71
|
}
|
|
70
72
|
export declare class FabricBuilder {
|
|
71
73
|
#private;
|
|
72
|
-
constructor(key: PrivateKey);
|
|
73
|
-
static create(): Promise<FabricBuilder>;
|
|
74
|
+
constructor(crypto: Crypto, key: PrivateKey);
|
|
75
|
+
static create(crypto: Crypto): Promise<FabricBuilder>;
|
|
74
76
|
get publicKey(): Uint8Array<ArrayBufferLike>;
|
|
75
77
|
get fabricIndex(): FabricIndex | undefined;
|
|
76
78
|
createCertificateSigningRequest(): Promise<Uint8Array<ArrayBufferLike>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fabric.d.ts","sourceRoot":"","sources":["../../../src/fabric/Fabric.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Fabric.d.ts","sourceRoot":"","sources":["../../../src/fabric/Fabric.ts"],"names":[],"mappings":"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"}
|