@matter/protocol 0.15.0-alpha.0-20250612-ddd428561 → 0.15.0-alpha.0-20250614-b9829e223
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/events/OccurrenceManager.d.ts +1 -0
- package/dist/cjs/events/OccurrenceManager.d.ts.map +1 -1
- package/dist/cjs/events/OccurrenceManager.js +14 -8
- package/dist/cjs/events/OccurrenceManager.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/interaction/FabricAccessControl.js +1 -1
- package/dist/cjs/interaction/FabricAccessControl.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/MdnsScanner.d.ts +1 -1
- package/dist/cjs/mdns/MdnsScanner.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsScanner.js +2 -6
- package/dist/cjs/mdns/MdnsScanner.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/events/OccurrenceManager.d.ts +1 -0
- package/dist/esm/events/OccurrenceManager.d.ts.map +1 -1
- package/dist/esm/events/OccurrenceManager.js +14 -8
- package/dist/esm/events/OccurrenceManager.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/interaction/FabricAccessControl.js +1 -1
- package/dist/esm/interaction/FabricAccessControl.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/MdnsScanner.d.ts +1 -1
- package/dist/esm/mdns/MdnsScanner.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsScanner.js +2 -6
- package/dist/esm/mdns/MdnsScanner.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/events/OccurrenceManager.ts +16 -9
- 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/interaction/FabricAccessControl.ts +1 -1
- package/src/mdns/MdnsBroadcaster.ts +11 -4
- package/src/mdns/MdnsScanner.ts +2 -6
- 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
|
@@ -25,23 +25,31 @@ import {
|
|
|
25
25
|
} from "./CertificateManager.js";
|
|
26
26
|
const logger = Logger.get("CertificateAuthority");
|
|
27
27
|
class CertificateAuthority {
|
|
28
|
+
#certs;
|
|
28
29
|
#rootCertId = BigInt(0);
|
|
29
30
|
#rootKeyPair;
|
|
30
31
|
#rootKeyIdentifier;
|
|
31
32
|
#rootCertBytes;
|
|
32
33
|
#nextCertificateId = BigInt(1);
|
|
33
34
|
#construction;
|
|
35
|
+
get certs() {
|
|
36
|
+
return this.#certs;
|
|
37
|
+
}
|
|
34
38
|
get construction() {
|
|
35
39
|
return this.#construction;
|
|
36
40
|
}
|
|
37
|
-
static async create(options) {
|
|
38
|
-
return asyncNew(CertificateAuthority, options);
|
|
41
|
+
static async create(crypto, options) {
|
|
42
|
+
return asyncNew(CertificateAuthority, crypto, options);
|
|
39
43
|
}
|
|
40
|
-
constructor(options) {
|
|
44
|
+
constructor(crypto, options) {
|
|
45
|
+
this.#certs = new CertificateManager(crypto);
|
|
41
46
|
this.#construction = Construction(this, async () => {
|
|
42
47
|
const certValues = options instanceof StorageContext ? await options.values() : options ?? {};
|
|
43
|
-
this.#rootKeyPair = await
|
|
44
|
-
this.#rootKeyIdentifier = (await
|
|
48
|
+
this.#rootKeyPair = await this.#certs.crypto.createKeyPair();
|
|
49
|
+
this.#rootKeyIdentifier = (await this.#certs.crypto.computeSha256(this.#rootKeyPair.publicKey)).slice(
|
|
50
|
+
0,
|
|
51
|
+
20
|
|
52
|
+
);
|
|
45
53
|
this.#rootCertBytes = await this.#generateRootCert();
|
|
46
54
|
if ((typeof certValues.rootCertId === "number" || typeof certValues.rootCertId === "bigint") && (ArrayBuffer.isView(certValues.rootKeyPair) || typeof certValues.rootKeyPair === "object") && ArrayBuffer.isView(certValues.rootKeyIdentifier) && ArrayBuffer.isView(certValues.rootCertBytes) && (typeof certValues.nextCertificateId === "number" || typeof certValues.nextCertificateId === "bigint")) {
|
|
47
55
|
this.#rootCertId = BigInt(certValues.rootCertId);
|
|
@@ -66,7 +74,7 @@ class CertificateAuthority {
|
|
|
66
74
|
}
|
|
67
75
|
static [Environmental.create](env) {
|
|
68
76
|
const storage = env.get(StorageManager).createContext("certificates");
|
|
69
|
-
const instance = new CertificateAuthority(storage);
|
|
77
|
+
const instance = new CertificateAuthority(env.get(Crypto), storage);
|
|
70
78
|
env.set(CertificateAuthority, instance);
|
|
71
79
|
return instance;
|
|
72
80
|
}
|
|
@@ -104,9 +112,9 @@ class CertificateAuthority {
|
|
|
104
112
|
authorityKeyIdentifier: this.#initializedRootKeyIdentifier
|
|
105
113
|
}
|
|
106
114
|
};
|
|
107
|
-
const signature = await
|
|
115
|
+
const signature = await this.#certs.crypto.signEcdsa(
|
|
108
116
|
this.#initializedRootKeyPair,
|
|
109
|
-
|
|
117
|
+
this.#certs.rootCertToAsn1(unsignedCertificate)
|
|
110
118
|
);
|
|
111
119
|
return TlvRootCertificate.encode({ ...unsignedCertificate, signature });
|
|
112
120
|
}
|
|
@@ -129,13 +137,13 @@ class CertificateAuthority {
|
|
|
129
137
|
digitalSignature: true
|
|
130
138
|
},
|
|
131
139
|
extendedKeyUsage: [2, 1],
|
|
132
|
-
subjectKeyIdentifier: (await
|
|
140
|
+
subjectKeyIdentifier: (await this.#certs.crypto.computeSha256(publicKey)).slice(0, 20),
|
|
133
141
|
authorityKeyIdentifier: this.#initializedRootKeyIdentifier
|
|
134
142
|
}
|
|
135
143
|
};
|
|
136
|
-
const signature = await
|
|
144
|
+
const signature = await this.#certs.crypto.signEcdsa(
|
|
137
145
|
this.#initializedRootKeyPair,
|
|
138
|
-
|
|
146
|
+
this.#certs.nodeOperationalCertToAsn1(unsignedCertificate)
|
|
139
147
|
);
|
|
140
148
|
return TlvOperationalCertificate.encode({ ...unsignedCertificate, signature });
|
|
141
149
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/certificate/CertificateAuthority.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EAEI;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP;AAAA,EACI;AAAA,EAGA;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AAEP,MAAM,SAAS,OAAO,IAAI,sBAAsB;AAMzC,MAAM,qBAAqB;AAAA,EAC9B,cAAc,OAAO,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA,qBAAqB,OAAO,CAAC;AAAA,EAC7B;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,aAAa,OAAO,SAA+D;AAC/
|
|
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 { Key, MatterError } from "#general";
|
|
6
|
+
import { Crypto, Key, MatterError } from "#general";
|
|
7
7
|
import { BitFlag, CaseAuthenticatedTag, FabricId, NodeId, TypeFromPartialBitSchema, TypeFromSchema, VendorId } from "#types";
|
|
8
8
|
export declare class CertificateError extends MatterError {
|
|
9
9
|
}
|
|
@@ -540,36 +540,39 @@ export type OperationalCertificate = TypeFromSchema<typeof TlvOperationalCertifi
|
|
|
540
540
|
export type Unsigned<Type> = {
|
|
541
541
|
[Property in keyof Type as Exclude<Property, "signature">]: Type[Property];
|
|
542
542
|
};
|
|
543
|
-
export declare
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
543
|
+
export declare class CertificateManager {
|
|
544
|
+
#private;
|
|
545
|
+
constructor(crypto: Crypto);
|
|
546
|
+
get crypto(): Crypto;
|
|
547
|
+
rootCertToAsn1(cert: Unsigned<RootCertificate>): Uint8Array<ArrayBufferLike>;
|
|
548
|
+
intermediateCaCertToAsn1(cert: Unsigned<IntermediateCertificate>): Uint8Array<ArrayBufferLike>;
|
|
549
|
+
nodeOperationalCertToAsn1(cert: Unsigned<OperationalCertificate>): Uint8Array<ArrayBufferLike>;
|
|
550
|
+
deviceAttestationCertToAsn1(cert: Unsigned<DeviceAttestationCertificate>, key: Key): Promise<Uint8Array<ArrayBufferLike>>;
|
|
551
|
+
productAttestationIntermediateCertToAsn1(cert: Unsigned<ProductAttestationIntermediateCertificate>, key: Key): Promise<Uint8Array<ArrayBufferLike>>;
|
|
552
|
+
productAttestationAuthorityCertToAsn1(cert: Unsigned<ProductAttestationAuthorityCertificate>, key: Key): Promise<Uint8Array<ArrayBufferLike>>;
|
|
553
|
+
certificationDeclarationToAsn1(eContent: Uint8Array, subjectKeyIdentifier: Uint8Array, privateKey: JsonWebKey): Promise<Uint8Array<ArrayBufferLike>>;
|
|
551
554
|
/**
|
|
552
555
|
* Validate general requirements a Matter certificate fields must fulfill.
|
|
553
556
|
* Rules for this are listed in @see {@link MatterSpecification.v12.Core} §6.5.x
|
|
554
557
|
*/
|
|
555
|
-
|
|
558
|
+
validateGeneralCertificateFields(cert: RootCertificate | OperationalCertificate | IntermediateCertificate): void;
|
|
556
559
|
/**
|
|
557
560
|
* Verify requirements a Matter Root certificate must fulfill.
|
|
558
561
|
* Rules for this are listed in @see {@link MatterSpecification.v12.Core} §6.5.x
|
|
559
562
|
*/
|
|
560
|
-
|
|
563
|
+
verifyRootCertificate(rootCert: RootCertificate): Promise<void>;
|
|
561
564
|
/**
|
|
562
565
|
* Verify requirements a Matter Node Operational certificate must fulfill.
|
|
563
566
|
* Rules for this are listed in @see {@link MatterSpecification.v12.Core} §6.5.x
|
|
564
567
|
*/
|
|
565
|
-
|
|
568
|
+
verifyNodeOperationalCertificate(nocCert: OperationalCertificate, rootCert: RootCertificate, icaCert?: IntermediateCertificate): Promise<void>;
|
|
566
569
|
/**
|
|
567
570
|
* Verify requirements a Matter Intermediate CA certificate must fulfill.
|
|
568
571
|
* Rules for this are listed in @see {@link MatterSpecification.v12.Core} §6.5.x
|
|
569
572
|
*/
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
+
verifyIntermediateCaCertificate(rootCert: RootCertificate, icaCert: IntermediateCertificate): Promise<void>;
|
|
574
|
+
createCertificateSigningRequest(key: Key): Promise<Uint8Array<ArrayBufferLike>>;
|
|
575
|
+
getPublicKeyFromCsr(csr: Uint8Array): Promise<Uint8Array<ArrayBufferLike>>;
|
|
573
576
|
}
|
|
574
577
|
export {};
|
|
575
578
|
//# sourceMappingURL=CertificateManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CertificateManager.d.ts","sourceRoot":"","sources":["../../../src/certificate/CertificateManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"CertificateManager.d.ts","sourceRoot":"","sources":["../../../src/certificate/CertificateManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -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": "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",
|
|
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)
|