@matter/protocol 0.15.0-alpha.0-20250616-4b3754906 → 0.15.0-alpha.0-20250619-df2264f15
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.map +1 -1
- package/dist/cjs/certificate/AttestationCertificateManager.js +26 -22
- package/dist/cjs/certificate/AttestationCertificateManager.js.map +1 -1
- package/dist/cjs/certificate/CertificateAuthority.d.ts +1 -2
- package/dist/cjs/certificate/CertificateAuthority.d.ts.map +1 -1
- package/dist/cjs/certificate/CertificateAuthority.js +22 -29
- package/dist/cjs/certificate/CertificateAuthority.js.map +1 -1
- package/dist/cjs/certificate/DeviceCertification.d.ts.map +1 -1
- package/dist/cjs/certificate/DeviceCertification.js +2 -6
- package/dist/cjs/certificate/DeviceCertification.js.map +1 -1
- package/dist/cjs/certificate/index.d.ts +7 -2
- package/dist/cjs/certificate/index.d.ts.map +1 -1
- package/dist/cjs/certificate/index.js +14 -2
- package/dist/cjs/certificate/index.js.map +1 -1
- package/dist/cjs/certificate/kinds/AttestationCertificates.d.ts +34 -0
- package/dist/cjs/certificate/kinds/AttestationCertificates.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/AttestationCertificates.js +64 -0
- package/dist/cjs/certificate/kinds/AttestationCertificates.js.map +6 -0
- package/dist/cjs/certificate/kinds/CertificationDeclaration.d.ts +23 -0
- package/dist/cjs/certificate/kinds/CertificationDeclaration.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/CertificationDeclaration.js +86 -0
- package/dist/cjs/certificate/kinds/CertificationDeclaration.js.map +6 -0
- package/dist/cjs/certificate/kinds/Icac.d.ts +29 -0
- package/dist/cjs/certificate/kinds/Icac.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/Icac.js +138 -0
- package/dist/cjs/certificate/kinds/Icac.js.map +6 -0
- package/dist/cjs/certificate/kinds/Noc.d.ts +27 -0
- package/dist/cjs/certificate/kinds/Noc.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/Noc.js +148 -0
- package/dist/cjs/certificate/kinds/Noc.js.map +6 -0
- package/dist/cjs/certificate/kinds/OperationalBase.d.ts +24 -0
- package/dist/cjs/certificate/kinds/OperationalBase.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/OperationalBase.js +68 -0
- package/dist/cjs/certificate/kinds/OperationalBase.js.map +6 -0
- package/dist/cjs/certificate/kinds/Rcac.d.ts +25 -0
- package/dist/cjs/certificate/kinds/Rcac.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/Rcac.js +119 -0
- package/dist/cjs/certificate/kinds/Rcac.js.map +6 -0
- package/dist/cjs/certificate/kinds/X509Base.d.ts +92 -0
- package/dist/cjs/certificate/kinds/X509Base.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/X509Base.js +344 -0
- package/dist/cjs/certificate/kinds/X509Base.js.map +6 -0
- package/dist/cjs/certificate/kinds/common.d.ts +18 -0
- package/dist/cjs/certificate/kinds/common.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/common.js +42 -0
- package/dist/cjs/certificate/kinds/common.js.map +6 -0
- package/dist/cjs/certificate/kinds/definitions/asn.d.ts +25 -0
- package/dist/cjs/certificate/kinds/definitions/asn.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/definitions/asn.js +83 -0
- package/dist/cjs/certificate/kinds/definitions/asn.js.map +6 -0
- package/dist/cjs/certificate/kinds/definitions/attestation.d.ts +44 -0
- package/dist/cjs/certificate/kinds/definitions/attestation.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/definitions/attestation.js +22 -0
- package/dist/cjs/certificate/kinds/definitions/attestation.js.map +6 -0
- package/dist/cjs/certificate/kinds/definitions/base.d.ts +52 -0
- package/dist/cjs/certificate/kinds/definitions/base.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/definitions/base.js +43 -0
- package/dist/cjs/certificate/kinds/definitions/base.js.map +6 -0
- package/dist/cjs/certificate/kinds/definitions/certification-declaration.d.ts +18 -0
- package/dist/cjs/certificate/kinds/definitions/certification-declaration.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/definitions/certification-declaration.js +50 -0
- package/dist/cjs/certificate/kinds/definitions/certification-declaration.js.map +6 -0
- package/dist/cjs/certificate/kinds/definitions/operational.d.ts +368 -0
- package/dist/cjs/certificate/kinds/definitions/operational.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/definitions/operational.js +149 -0
- package/dist/cjs/certificate/kinds/definitions/operational.js.map +6 -0
- package/dist/cjs/certificate/kinds/index.d.ts +12 -0
- package/dist/cjs/certificate/kinds/index.d.ts.map +1 -0
- package/dist/cjs/certificate/kinds/index.js +29 -0
- package/dist/cjs/certificate/kinds/index.js.map +6 -0
- package/dist/cjs/fabric/Fabric.d.ts +1 -2
- package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
- package/dist/cjs/fabric/Fabric.js +28 -31
- package/dist/cjs/fabric/Fabric.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.js +2 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
- package/dist/cjs/session/case/CaseClient.js +3 -3
- 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 +2 -2
- package/dist/cjs/session/case/CaseServer.js.map +1 -1
- package/dist/esm/certificate/AttestationCertificateManager.d.ts.map +1 -1
- package/dist/esm/certificate/AttestationCertificateManager.js +20 -16
- package/dist/esm/certificate/AttestationCertificateManager.js.map +1 -1
- package/dist/esm/certificate/CertificateAuthority.d.ts +1 -2
- package/dist/esm/certificate/CertificateAuthority.d.ts.map +1 -1
- package/dist/esm/certificate/CertificateAuthority.js +18 -30
- package/dist/esm/certificate/CertificateAuthority.js.map +1 -1
- package/dist/esm/certificate/DeviceCertification.d.ts.map +1 -1
- package/dist/esm/certificate/DeviceCertification.js +2 -6
- package/dist/esm/certificate/DeviceCertification.js.map +1 -1
- package/dist/esm/certificate/index.d.ts +7 -2
- package/dist/esm/certificate/index.d.ts.map +1 -1
- package/dist/esm/certificate/index.js +10 -2
- package/dist/esm/certificate/index.js.map +1 -1
- package/dist/esm/certificate/kinds/AttestationCertificates.d.ts +34 -0
- package/dist/esm/certificate/kinds/AttestationCertificates.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/AttestationCertificates.js +44 -0
- package/dist/esm/certificate/kinds/AttestationCertificates.js.map +6 -0
- package/dist/esm/certificate/kinds/CertificationDeclaration.d.ts +23 -0
- package/dist/esm/certificate/kinds/CertificationDeclaration.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/CertificationDeclaration.js +66 -0
- package/dist/esm/certificate/kinds/CertificationDeclaration.js.map +6 -0
- package/dist/esm/certificate/kinds/Icac.d.ts +29 -0
- package/dist/esm/certificate/kinds/Icac.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/Icac.js +118 -0
- package/dist/esm/certificate/kinds/Icac.js.map +6 -0
- package/dist/esm/certificate/kinds/Noc.d.ts +27 -0
- package/dist/esm/certificate/kinds/Noc.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/Noc.js +128 -0
- package/dist/esm/certificate/kinds/Noc.js.map +6 -0
- package/dist/esm/certificate/kinds/OperationalBase.d.ts +24 -0
- package/dist/esm/certificate/kinds/OperationalBase.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/OperationalBase.js +48 -0
- package/dist/esm/certificate/kinds/OperationalBase.js.map +6 -0
- package/dist/esm/certificate/kinds/Rcac.d.ts +25 -0
- package/dist/esm/certificate/kinds/Rcac.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/Rcac.js +99 -0
- package/dist/esm/certificate/kinds/Rcac.js.map +6 -0
- package/dist/esm/certificate/kinds/X509Base.d.ts +92 -0
- package/dist/esm/certificate/kinds/X509Base.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/X509Base.js +347 -0
- package/dist/esm/certificate/kinds/X509Base.js.map +6 -0
- package/dist/esm/certificate/kinds/common.d.ts +18 -0
- package/dist/esm/certificate/kinds/common.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/common.js +22 -0
- package/dist/esm/certificate/kinds/common.js.map +6 -0
- package/dist/esm/certificate/kinds/definitions/asn.d.ts +25 -0
- package/dist/esm/certificate/kinds/definitions/asn.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/definitions/asn.js +63 -0
- package/dist/esm/certificate/kinds/definitions/asn.js.map +6 -0
- package/dist/esm/certificate/kinds/definitions/attestation.d.ts +44 -0
- package/dist/esm/certificate/kinds/definitions/attestation.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/definitions/attestation.js +6 -0
- package/dist/esm/certificate/kinds/definitions/attestation.js.map +6 -0
- package/dist/esm/certificate/kinds/definitions/base.d.ts +52 -0
- package/dist/esm/certificate/kinds/definitions/base.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/definitions/base.js +23 -0
- package/dist/esm/certificate/kinds/definitions/base.js.map +6 -0
- package/dist/esm/certificate/kinds/definitions/certification-declaration.d.ts +18 -0
- package/dist/esm/certificate/kinds/definitions/certification-declaration.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/definitions/certification-declaration.js +41 -0
- package/dist/esm/certificate/kinds/definitions/certification-declaration.js.map +6 -0
- package/dist/esm/certificate/kinds/definitions/operational.d.ts +368 -0
- package/dist/esm/certificate/kinds/definitions/operational.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/definitions/operational.js +148 -0
- package/dist/esm/certificate/kinds/definitions/operational.js.map +6 -0
- package/dist/esm/certificate/kinds/index.d.ts +12 -0
- package/dist/esm/certificate/kinds/index.d.ts.map +1 -0
- package/dist/esm/certificate/kinds/index.js +12 -0
- package/dist/esm/certificate/kinds/index.js.map +6 -0
- package/dist/esm/fabric/Fabric.d.ts +1 -2
- package/dist/esm/fabric/Fabric.d.ts.map +1 -1
- package/dist/esm/fabric/Fabric.js +28 -36
- package/dist/esm/fabric/Fabric.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.js +2 -1
- package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
- package/dist/esm/session/case/CaseClient.js +3 -3
- 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 +2 -2
- package/dist/esm/session/case/CaseServer.js.map +1 -1
- package/package.json +6 -6
- package/src/certificate/AttestationCertificateManager.ts +20 -16
- package/src/certificate/CertificateAuthority.ts +18 -35
- package/src/certificate/DeviceCertification.ts +2 -6
- package/src/certificate/index.ts +7 -2
- package/src/certificate/kinds/AttestationCertificates.ts +48 -0
- package/src/certificate/kinds/CertificationDeclaration.ts +91 -0
- package/src/certificate/kinds/Icac.ts +156 -0
- package/src/certificate/kinds/Noc.ts +164 -0
- package/src/certificate/kinds/OperationalBase.ts +72 -0
- package/src/certificate/kinds/Rcac.ts +126 -0
- package/src/certificate/kinds/X509Base.ts +380 -0
- package/src/certificate/kinds/common.ts +24 -0
- package/src/certificate/kinds/definitions/asn.ts +97 -0
- package/src/certificate/kinds/definitions/attestation.ts +46 -0
- package/src/certificate/kinds/definitions/base.ts +43 -0
- package/src/certificate/kinds/definitions/certification-declaration.ts +38 -0
- package/src/certificate/kinds/definitions/operational.ts +179 -0
- package/src/certificate/kinds/index.ts +12 -0
- package/src/fabric/Fabric.ts +28 -40
- package/src/peer/ControllerCommissioningFlow.ts +2 -1
- package/src/session/case/CaseClient.ts +3 -3
- package/src/session/case/CaseServer.ts +2 -2
- package/dist/cjs/certificate/CertificateManager.d.ts +0 -578
- package/dist/cjs/certificate/CertificateManager.d.ts.map +0 -1
- package/dist/cjs/certificate/CertificateManager.js +0 -843
- package/dist/cjs/certificate/CertificateManager.js.map +0 -6
- package/dist/cjs/certificate/CertificationDeclarationManager.d.ts +0 -11
- package/dist/cjs/certificate/CertificationDeclarationManager.d.ts.map +0 -1
- package/dist/cjs/certificate/CertificationDeclarationManager.js +0 -54
- package/dist/cjs/certificate/CertificationDeclarationManager.js.map +0 -6
- package/dist/esm/certificate/CertificateManager.d.ts +0 -578
- package/dist/esm/certificate/CertificateManager.d.ts.map +0 -1
- package/dist/esm/certificate/CertificateManager.js +0 -870
- package/dist/esm/certificate/CertificateManager.js.map +0 -6
- package/dist/esm/certificate/CertificationDeclarationManager.d.ts +0 -11
- package/dist/esm/certificate/CertificationDeclarationManager.d.ts.map +0 -1
- package/dist/esm/certificate/CertificationDeclarationManager.js +0 -34
- package/dist/esm/certificate/CertificationDeclarationManager.js.map +0 -6
- package/src/certificate/CertificateManager.ts +0 -1176
- package/src/certificate/CertificationDeclarationManager.ts +0 -52
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttestationCertificateManager.d.ts","sourceRoot":"","sources":["../../../src/certificate/AttestationCertificateManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAS,MAAM,EAAE,UAAU,EAAe,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"AttestationCertificateManager.d.ts","sourceRoot":"","sources":["../../../src/certificate/AttestationCertificateManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAS,MAAM,EAAE,UAAU,EAAe,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAwBlC,qBAAa,6BAA6B;;IACtC,OAAO,CAAC,SAAS,CAAa;gBAgBlB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU;WAQvF,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAMtD,UAAU;IAIJ,SAAS,CAAC,SAAS,EAAE,MAAM;;;;YAWnB,eAAe;YAmCf,eAAe;IAmCvB,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;CAkCpF"}
|
|
@@ -22,8 +22,9 @@ __export(AttestationCertificateManager_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(AttestationCertificateManager_exports);
|
|
24
24
|
var import_general = require("#general");
|
|
25
|
-
var import_CertificateManager = require("./CertificateManager.js");
|
|
26
25
|
var import_ChipPAAuthorities = require("./ChipPAAuthorities.js");
|
|
26
|
+
var import_AttestationCertificates = require("./kinds/AttestationCertificates.js");
|
|
27
|
+
var import_asn = require("./kinds/definitions/asn.js");
|
|
27
28
|
/**
|
|
28
29
|
* @license
|
|
29
30
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -45,7 +46,7 @@ class AttestationCertificateManager {
|
|
|
45
46
|
#paaKeyPair = (0, import_general.PrivateKey)(import_ChipPAAuthorities.TestCert_PAA_NoVID_PrivateKey, {
|
|
46
47
|
publicKey: import_ChipPAAuthorities.TestCert_PAA_NoVID_PublicKey
|
|
47
48
|
});
|
|
48
|
-
#
|
|
49
|
+
#crypto;
|
|
49
50
|
#vendorId;
|
|
50
51
|
#paiKeyPair;
|
|
51
52
|
#paiKeyIdentifier;
|
|
@@ -54,7 +55,7 @@ class AttestationCertificateManager {
|
|
|
54
55
|
#paiCertBytes;
|
|
55
56
|
#nextCertificateId = 2;
|
|
56
57
|
constructor(crypto, vendorId, paiKeyPair, paiKeyIdentifier) {
|
|
57
|
-
this.#
|
|
58
|
+
this.#crypto = crypto;
|
|
58
59
|
this.#vendorId = vendorId;
|
|
59
60
|
this.#paiKeyPair = paiKeyPair;
|
|
60
61
|
this.#paiKeyIdentifier = paiKeyIdentifier;
|
|
@@ -69,7 +70,7 @@ class AttestationCertificateManager {
|
|
|
69
70
|
return this.#paiCertBytes;
|
|
70
71
|
}
|
|
71
72
|
async getDACert(productId) {
|
|
72
|
-
const dacKeyPair = await this.#
|
|
73
|
+
const dacKeyPair = await this.#crypto.createKeyPair();
|
|
73
74
|
return {
|
|
74
75
|
keyPair: dacKeyPair,
|
|
75
76
|
dac: await this.generateDaCert(dacKeyPair.publicKey, this.#vendorId, productId)
|
|
@@ -78,9 +79,9 @@ class AttestationCertificateManager {
|
|
|
78
79
|
// Method unused for now because we use the official Matter Test PAA, but is functional
|
|
79
80
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
80
81
|
// @ts-ignore
|
|
81
|
-
generatePAACert(vendorId) {
|
|
82
|
+
async generatePAACert(vendorId) {
|
|
82
83
|
const now = import_general.Time.get().now();
|
|
83
|
-
const
|
|
84
|
+
const cert = new import_AttestationCertificates.Paa({
|
|
84
85
|
serialNumber: import_general.Bytes.fromHex((0, import_general.toHex)(this.paaCertId)),
|
|
85
86
|
signatureAlgorithm: 1,
|
|
86
87
|
publicKeyAlgorithm: 1,
|
|
@@ -89,8 +90,8 @@ class AttestationCertificateManager {
|
|
|
89
90
|
commonName: getPaaCommonName(),
|
|
90
91
|
vendorId
|
|
91
92
|
},
|
|
92
|
-
notBefore: (0,
|
|
93
|
-
notAfter: (0,
|
|
93
|
+
notBefore: (0, import_asn.jsToMatterDate)(now, -1),
|
|
94
|
+
notAfter: (0, import_asn.jsToMatterDate)(now, 10),
|
|
94
95
|
subject: {
|
|
95
96
|
commonName: getPaaCommonName(),
|
|
96
97
|
vendorId
|
|
@@ -108,12 +109,13 @@ class AttestationCertificateManager {
|
|
|
108
109
|
subjectKeyIdentifier: this.#paaKeyIdentifier,
|
|
109
110
|
authorityKeyIdentifier: this.#paaKeyIdentifier
|
|
110
111
|
}
|
|
111
|
-
};
|
|
112
|
-
|
|
112
|
+
});
|
|
113
|
+
await cert.sign(this.#crypto, this.#paaKeyPair);
|
|
114
|
+
return cert.asSignedAsn1();
|
|
113
115
|
}
|
|
114
|
-
generatePAICert(vendorId, productId) {
|
|
116
|
+
async generatePAICert(vendorId, productId) {
|
|
115
117
|
const now = import_general.Time.get().now();
|
|
116
|
-
const
|
|
118
|
+
const cert = new import_AttestationCertificates.Pai({
|
|
117
119
|
serialNumber: import_general.Bytes.fromHex((0, import_general.toHex)(this.#paiCertId)),
|
|
118
120
|
signatureAlgorithm: 1,
|
|
119
121
|
publicKeyAlgorithm: 1,
|
|
@@ -121,8 +123,8 @@ class AttestationCertificateManager {
|
|
|
121
123
|
issuer: {
|
|
122
124
|
commonName: getPaaCommonName()
|
|
123
125
|
},
|
|
124
|
-
notBefore: (0,
|
|
125
|
-
notAfter: (0,
|
|
126
|
+
notBefore: (0, import_asn.jsToMatterDate)(now, -1),
|
|
127
|
+
notAfter: (0, import_asn.jsToMatterDate)(now, 10),
|
|
126
128
|
subject: {
|
|
127
129
|
commonName: getPaiCommonName(vendorId, productId),
|
|
128
130
|
vendorId,
|
|
@@ -141,19 +143,20 @@ class AttestationCertificateManager {
|
|
|
141
143
|
subjectKeyIdentifier: this.#paiKeyIdentifier,
|
|
142
144
|
authorityKeyIdentifier: this.#paaKeyIdentifier
|
|
143
145
|
}
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
+
});
|
|
147
|
+
await cert.sign(this.#crypto, this.#paaKeyPair);
|
|
148
|
+
return cert.asSignedAsn1();
|
|
146
149
|
}
|
|
147
150
|
async generateDaCert(publicKey, vendorId, productId) {
|
|
148
151
|
const now = import_general.Time.get().now();
|
|
149
152
|
const certId = this.#nextCertificateId++;
|
|
150
|
-
const
|
|
153
|
+
const cert = new import_AttestationCertificates.Dac({
|
|
151
154
|
serialNumber: import_general.Bytes.fromHex((0, import_general.toHex)(certId)),
|
|
152
155
|
signatureAlgorithm: 1,
|
|
153
156
|
publicKeyAlgorithm: 1,
|
|
154
157
|
ellipticCurveIdentifier: 1,
|
|
155
|
-
notBefore: (0,
|
|
156
|
-
notAfter: (0,
|
|
158
|
+
notBefore: (0, import_asn.jsToMatterDate)(now, -1),
|
|
159
|
+
notAfter: (0, import_asn.jsToMatterDate)(now, 10),
|
|
157
160
|
issuer: {
|
|
158
161
|
commonName: getPaiCommonName(vendorId),
|
|
159
162
|
vendorId
|
|
@@ -171,11 +174,12 @@ class AttestationCertificateManager {
|
|
|
171
174
|
keyUsage: {
|
|
172
175
|
digitalSignature: true
|
|
173
176
|
},
|
|
174
|
-
subjectKeyIdentifier: (await this.#
|
|
177
|
+
subjectKeyIdentifier: (await this.#crypto.computeSha256(publicKey)).slice(0, 20),
|
|
175
178
|
authorityKeyIdentifier: this.#paiKeyIdentifier
|
|
176
179
|
}
|
|
177
|
-
};
|
|
178
|
-
|
|
180
|
+
});
|
|
181
|
+
await cert.sign(this.#crypto, this.#paiKeyPair);
|
|
182
|
+
return cert.asSignedAsn1();
|
|
179
183
|
}
|
|
180
184
|
}
|
|
181
185
|
//# sourceMappingURL=AttestationCertificateManager.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/certificate/AttestationCertificateManager.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAuD;AAEvD
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -5,14 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { BinaryKeyPair, Construction, Crypto, Environment, Environmental, StorageContext } from "#general";
|
|
7
7
|
import { CaseAuthenticatedTag, FabricId, NodeId } from "#types";
|
|
8
|
-
import { CertificateManager } from "./CertificateManager.js";
|
|
9
8
|
/**
|
|
10
9
|
* Manages the root key pair for a fabric owned by a local node.
|
|
11
10
|
* TODO: Add support for (optional) ICACs
|
|
12
11
|
*/
|
|
13
12
|
export declare class CertificateAuthority {
|
|
14
13
|
#private;
|
|
15
|
-
get
|
|
14
|
+
get crypto(): Crypto;
|
|
16
15
|
get construction(): Construction<CertificateAuthority>;
|
|
17
16
|
static create(crypto: Crypto, options?: StorageContext | CertificateAuthority.Configuration): Promise<CertificateAuthority>;
|
|
18
17
|
constructor(crypto: Crypto, options?: StorageContext | CertificateAuthority.Configuration);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CertificateAuthority.d.ts","sourceRoot":"","sources":["../../../src/certificate/CertificateAuthority.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,aAAa,EAEb,YAAY,EACZ,MAAM,EACN,WAAW,EACX,aAAa,EAIb,cAAc,EAKjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"CertificateAuthority.d.ts","sourceRoot":"","sources":["../../../src/certificate/CertificateAuthority.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,aAAa,EAEb,YAAY,EACZ,MAAM,EACN,WAAW,EACX,aAAa,EAIb,cAAc,EAKjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOhE;;;GAGG;AACH,qBAAa,oBAAoB;;IAS7B,IAAI,MAAM,WAET;IAED,IAAI,YAAY,uCAEf;WAEY,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,oBAAoB,CAAC,aAAa;gBAIrF,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,oBAAoB,CAAC,aAAa;IAwCzF,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAO9C,IAAI,QAAQ,gCAEX;IAED,IAAI,MAAM,IAAI,oBAAoB,CAAC,aAAa,CAQ/C;IA4BK,WAAW,CACb,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,CAAC,EAAE,oBAAoB,EAAE;CAyCrD;AAED,yBAAiB,oBAAoB,CAAC;IAClC,KAAY,aAAa,GAAG;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,aAAa,CAAC;QAC3B,iBAAiB,EAAE,UAAU,CAAC;QAC9B,aAAa,EAAE,UAAU,CAAC;QAC1B,iBAAiB,EAAE,MAAM,CAAC;KAC7B,CAAC;CACL"}
|
|
@@ -22,7 +22,9 @@ __export(CertificateAuthority_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(CertificateAuthority_exports);
|
|
24
24
|
var import_general = require("#general");
|
|
25
|
-
var
|
|
25
|
+
var import_asn = require("./kinds/definitions/asn.js");
|
|
26
|
+
var import_Noc = require("./kinds/Noc.js");
|
|
27
|
+
var import_Rcac = require("./kinds/Rcac.js");
|
|
26
28
|
/**
|
|
27
29
|
* @license
|
|
28
30
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -30,15 +32,15 @@ var import_CertificateManager = require("./CertificateManager.js");
|
|
|
30
32
|
*/
|
|
31
33
|
const logger = import_general.Logger.get("CertificateAuthority");
|
|
32
34
|
class CertificateAuthority {
|
|
33
|
-
#
|
|
35
|
+
#crypto;
|
|
34
36
|
#rootCertId = BigInt(0);
|
|
35
37
|
#rootKeyPair;
|
|
36
38
|
#rootKeyIdentifier;
|
|
37
39
|
#rootCertBytes;
|
|
38
40
|
#nextCertificateId = BigInt(1);
|
|
39
41
|
#construction;
|
|
40
|
-
get
|
|
41
|
-
return this.#
|
|
42
|
+
get crypto() {
|
|
43
|
+
return this.#crypto;
|
|
42
44
|
}
|
|
43
45
|
get construction() {
|
|
44
46
|
return this.#construction;
|
|
@@ -47,14 +49,11 @@ class CertificateAuthority {
|
|
|
47
49
|
return (0, import_general.asyncNew)(CertificateAuthority, crypto, options);
|
|
48
50
|
}
|
|
49
51
|
constructor(crypto, options) {
|
|
50
|
-
this.#
|
|
52
|
+
this.#crypto = crypto;
|
|
51
53
|
this.#construction = (0, import_general.Construction)(this, async () => {
|
|
52
54
|
const certValues = options instanceof import_general.StorageContext ? await options.values() : options ?? {};
|
|
53
|
-
this.#rootKeyPair = await this.#
|
|
54
|
-
this.#rootKeyIdentifier = (await this.#
|
|
55
|
-
0,
|
|
56
|
-
20
|
|
57
|
-
);
|
|
55
|
+
this.#rootKeyPair = await this.#crypto.createKeyPair();
|
|
56
|
+
this.#rootKeyIdentifier = (await this.#crypto.computeSha256(this.#rootKeyPair.publicKey)).slice(0, 20);
|
|
58
57
|
this.#rootCertBytes = await this.#generateRootCert();
|
|
59
58
|
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")) {
|
|
60
59
|
this.#rootCertId = BigInt(certValues.rootCertId);
|
|
@@ -97,14 +96,14 @@ class CertificateAuthority {
|
|
|
97
96
|
}
|
|
98
97
|
async #generateRootCert() {
|
|
99
98
|
const now = import_general.Time.get().now();
|
|
100
|
-
const
|
|
99
|
+
const cert = new import_Rcac.Rcac({
|
|
101
100
|
serialNumber: import_general.Bytes.fromHex((0, import_general.toHex)(this.#rootCertId)),
|
|
102
101
|
signatureAlgorithm: 1,
|
|
103
102
|
publicKeyAlgorithm: 1,
|
|
104
103
|
ellipticCurveIdentifier: 1,
|
|
105
104
|
issuer: { rcacId: this.#rootCertId },
|
|
106
|
-
notBefore: (0,
|
|
107
|
-
notAfter: (0,
|
|
105
|
+
notBefore: (0, import_asn.jsToMatterDate)(now, -1),
|
|
106
|
+
notAfter: (0, import_asn.jsToMatterDate)(now, 10),
|
|
108
107
|
subject: { rcacId: this.#rootCertId },
|
|
109
108
|
ellipticCurvePublicKey: this.#initializedRootKeyPair.publicKey,
|
|
110
109
|
extensions: {
|
|
@@ -116,24 +115,21 @@ class CertificateAuthority {
|
|
|
116
115
|
subjectKeyIdentifier: this.#initializedRootKeyIdentifier,
|
|
117
116
|
authorityKeyIdentifier: this.#initializedRootKeyIdentifier
|
|
118
117
|
}
|
|
119
|
-
};
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
this.#certs.rootCertToAsn1(unsignedCertificate)
|
|
123
|
-
);
|
|
124
|
-
return import_CertificateManager.TlvRootCertificate.encode({ ...unsignedCertificate, signature });
|
|
118
|
+
});
|
|
119
|
+
await cert.sign(this.#crypto, this.#initializedRootKeyPair);
|
|
120
|
+
return cert.asSignedTlv();
|
|
125
121
|
}
|
|
126
122
|
async generateNoc(publicKey, fabricId, nodeId, caseAuthenticatedTags) {
|
|
127
123
|
const now = import_general.Time.get().now();
|
|
128
124
|
const certId = this.#nextCertificateId++;
|
|
129
|
-
const
|
|
125
|
+
const cert = new import_Noc.Noc({
|
|
130
126
|
serialNumber: import_general.Bytes.fromHex((0, import_general.toHex)(certId)),
|
|
131
127
|
signatureAlgorithm: 1,
|
|
132
128
|
publicKeyAlgorithm: 1,
|
|
133
129
|
ellipticCurveIdentifier: 1,
|
|
134
130
|
issuer: { rcacId: this.#rootCertId },
|
|
135
|
-
notBefore: (0,
|
|
136
|
-
notAfter: (0,
|
|
131
|
+
notBefore: (0, import_asn.jsToMatterDate)(now, -1),
|
|
132
|
+
notAfter: (0, import_asn.jsToMatterDate)(now, 10),
|
|
137
133
|
subject: { fabricId, nodeId, caseAuthenticatedTags },
|
|
138
134
|
ellipticCurvePublicKey: publicKey,
|
|
139
135
|
extensions: {
|
|
@@ -142,15 +138,12 @@ class CertificateAuthority {
|
|
|
142
138
|
digitalSignature: true
|
|
143
139
|
},
|
|
144
140
|
extendedKeyUsage: [2, 1],
|
|
145
|
-
subjectKeyIdentifier: (await this.#
|
|
141
|
+
subjectKeyIdentifier: (await this.#crypto.computeSha256(publicKey)).slice(0, 20),
|
|
146
142
|
authorityKeyIdentifier: this.#initializedRootKeyIdentifier
|
|
147
143
|
}
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
this.#certs.nodeOperationalCertToAsn1(unsignedCertificate)
|
|
152
|
-
);
|
|
153
|
-
return import_CertificateManager.TlvOperationalCertificate.encode({ ...unsignedCertificate, signature });
|
|
144
|
+
});
|
|
145
|
+
await cert.sign(this.#crypto, this.#initializedRootKeyPair);
|
|
146
|
+
return cert.asSignedTlv();
|
|
154
147
|
}
|
|
155
148
|
get #initializedRootKeyPair() {
|
|
156
149
|
if (this.#rootKeyPair === void 0) {
|
|
@@ -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,qBAeO;AAEP,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceCertification.d.ts","sourceRoot":"","sources":["../../../src/certificate/DeviceCertification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"DeviceCertification.d.ts","sourceRoot":"","sources":["../../../src/certificate/DeviceCertification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,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;AAG5C;;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;IAoC3F,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"}
|
|
@@ -21,9 +21,9 @@ __export(DeviceCertification_exports, {
|
|
|
21
21
|
DeviceCertification: () => DeviceCertification
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(DeviceCertification_exports);
|
|
24
|
+
var import_CertificationDeclaration = require("#certificate/kinds/CertificationDeclaration.js");
|
|
24
25
|
var import_general = require("#general");
|
|
25
26
|
var import_AttestationCertificateManager = require("./AttestationCertificateManager.js");
|
|
26
|
-
var import_CertificationDeclarationManager = require("./CertificationDeclarationManager.js");
|
|
27
27
|
/**
|
|
28
28
|
* @license
|
|
29
29
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -66,11 +66,7 @@ class DeviceCertification {
|
|
|
66
66
|
privateKey: (0, import_general.PrivateKey)(dacKeyPair.privateKey),
|
|
67
67
|
certificate: dac,
|
|
68
68
|
intermediateCertificate: await paa.getPAICert(),
|
|
69
|
-
declaration: await
|
|
70
|
-
crypto,
|
|
71
|
-
product.vendorId,
|
|
72
|
-
product.productId
|
|
73
|
-
)
|
|
69
|
+
declaration: await import_CertificationDeclaration.CertificationDeclaration.generate(crypto, product.vendorId, product.productId)
|
|
74
70
|
};
|
|
75
71
|
};
|
|
76
72
|
}
|
|
@@ -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,qBAAqF;AAGrF,2CAA8C;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,sCAAyC;AACzC,qBAAqF;AAGrF,2CAA8C;AAV9C;AAAA;AAAA;AAAA;AAAA;AAeO,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,mCAAoB,kEAAkE;AAAA,QACpG;AAEA,cAAM,MAAM,MAAM,mEAA8B,OAAO,QAAQ,QAAQ,QAAQ;AAC/E,cAAM,EAAE,SAAS,YAAY,IAAI,IAAI,MAAM,IAAI,UAAU,QAAQ,SAAS;AAE1E,eAAO;AAAA,UACH,gBAAY,2BAAW,WAAW,UAAU;AAAA,UAC5C,aAAa;AAAA,UACb,yBAAyB,MAAM,IAAI,WAAW;AAAA,UAC9C,aAAa,MAAM,yDAAyB,SAAS,QAAQ,QAAQ,UAAU,QAAQ,SAAS;AAAA,QACpG;AAAA,MACJ;AAAA,IACJ;AAEA,SAAK,oBAAgB,6BAAa,MAAM,YAAY;AAChD,YAAMA,UAAS,MAAM,eAAe;AAEpC,WAAK,cACDA,QAAO,sBAAsB,iBAAa,2BAAWA,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
|
}
|
|
@@ -5,8 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export * from "./AttestationCertificateManager.js";
|
|
7
7
|
export * from "./CertificateAuthority.js";
|
|
8
|
-
export * from "./CertificateManager.js";
|
|
9
|
-
export * from "./CertificationDeclarationManager.js";
|
|
10
8
|
export * from "./ChipPAAuthorities.js";
|
|
11
9
|
export * from "./DeviceCertification.js";
|
|
10
|
+
export * from "./kinds/AttestationCertificates.js";
|
|
11
|
+
export * from "./kinds/CertificationDeclaration.js";
|
|
12
|
+
export { CertificateError } from "./kinds/common.js";
|
|
13
|
+
export * from "./kinds/Icac.js";
|
|
14
|
+
export * from "./kinds/Noc.js";
|
|
15
|
+
export * from "./kinds/Rcac.js";
|
|
16
|
+
export * from "./kinds/X509Base.js";
|
|
12
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/certificate/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/certificate/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,oCAAoC,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
|
|
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
6
10
|
var __copyProps = (to, from, except, desc) => {
|
|
7
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
12
|
for (let key of __getOwnPropNames(from))
|
|
@@ -14,13 +18,21 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
14
18
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
20
|
var certificate_exports = {};
|
|
21
|
+
__export(certificate_exports, {
|
|
22
|
+
CertificateError: () => import_common.CertificateError
|
|
23
|
+
});
|
|
17
24
|
module.exports = __toCommonJS(certificate_exports);
|
|
18
25
|
__reExport(certificate_exports, require("./AttestationCertificateManager.js"), module.exports);
|
|
19
26
|
__reExport(certificate_exports, require("./CertificateAuthority.js"), module.exports);
|
|
20
|
-
__reExport(certificate_exports, require("./CertificateManager.js"), module.exports);
|
|
21
|
-
__reExport(certificate_exports, require("./CertificationDeclarationManager.js"), module.exports);
|
|
22
27
|
__reExport(certificate_exports, require("./ChipPAAuthorities.js"), module.exports);
|
|
23
28
|
__reExport(certificate_exports, require("./DeviceCertification.js"), module.exports);
|
|
29
|
+
__reExport(certificate_exports, require("./kinds/AttestationCertificates.js"), module.exports);
|
|
30
|
+
__reExport(certificate_exports, require("./kinds/CertificationDeclaration.js"), module.exports);
|
|
31
|
+
var import_common = require("./kinds/common.js");
|
|
32
|
+
__reExport(certificate_exports, require("./kinds/Icac.js"), module.exports);
|
|
33
|
+
__reExport(certificate_exports, require("./kinds/Noc.js"), module.exports);
|
|
34
|
+
__reExport(certificate_exports, require("./kinds/Rcac.js"), module.exports);
|
|
35
|
+
__reExport(certificate_exports, require("./kinds/X509Base.js"), module.exports);
|
|
24
36
|
/**
|
|
25
37
|
* @license
|
|
26
38
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/certificate/index.ts"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,gCAAc,+CANd;AAOA,gCAAc,sCAPd;AAQA,gCAAc,mCARd;AASA,gCAAc,qCATd;AAUA,gCAAc,+CAVd;AAWA,gCAAc,gDAXd;AAYA,oBAAiC;AACjC,gCAAc,4BAbd;AAcA,gCAAc,2BAdd;AAeA,gCAAc,4BAfd;AAgBA,gCAAc,gCAhBd;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Crypto } from "#general";
|
|
7
|
+
import { AttestationCertificate } from "./definitions/attestation.js";
|
|
8
|
+
import { X509Certificate } from "./definitions/base.js";
|
|
9
|
+
import { X509Base } from "./X509Base.js";
|
|
10
|
+
/**
|
|
11
|
+
* Base class for Attestation Certificates (PAA, PAI, DAC).
|
|
12
|
+
*/
|
|
13
|
+
export declare abstract class AttestationBaseCertificate<CT extends X509Certificate> extends X509Base<CT> {
|
|
14
|
+
/**
|
|
15
|
+
* Sign the certificate using the provided crypto and key.
|
|
16
|
+
* If the certificate is already signed, it throws a CertificateError.
|
|
17
|
+
*/
|
|
18
|
+
sign(crypto: Crypto, key: JsonWebKey): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Returns the signed certificate in ASN.1 DER format.
|
|
21
|
+
* If the certificate is not signed, it throws a CertificateError.
|
|
22
|
+
*/
|
|
23
|
+
asSignedAsn1(): Uint8Array<ArrayBufferLike>;
|
|
24
|
+
}
|
|
25
|
+
/** PAA (Product Attestation Authority) Certificate. */
|
|
26
|
+
export declare class Paa extends AttestationBaseCertificate<AttestationCertificate.Paa> {
|
|
27
|
+
}
|
|
28
|
+
/** PAI (Product Attestation Intermediate) Certificate. */
|
|
29
|
+
export declare class Pai extends AttestationBaseCertificate<AttestationCertificate.Pai> {
|
|
30
|
+
}
|
|
31
|
+
/** DAC (Device Attestation Certificate) Certificate. */
|
|
32
|
+
export declare class Dac extends AttestationBaseCertificate<AttestationCertificate.Dac> {
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=AttestationCertificates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttestationCertificates.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/AttestationCertificates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAgC,MAAM,UAAU,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;GAEG;AACH,8BAAsB,0BAA0B,CAAC,EAAE,SAAS,eAAe,CAAE,SAAQ,QAAQ,CAAC,EAAE,CAAC;IAC7F;;;OAGG;IACY,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU;IAInD;;;OAGG;IACH,YAAY,IAAI,UAAU,CAAC,eAAe,CAAC;CAU9C;AAED,uDAAuD;AACvD,qBAAa,GAAI,SAAQ,0BAA0B,CAAC,sBAAsB,CAAC,GAAG,CAAC;CAAG;AAElF,0DAA0D;AAC1D,qBAAa,GAAI,SAAQ,0BAA0B,CAAC,sBAAsB,CAAC,GAAG,CAAC;CAAG;AAElF,wDAAwD;AACxD,qBAAa,GAAI,SAAQ,0BAA0B,CAAC,sBAAsB,CAAC,GAAG,CAAC;CAAG"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var AttestationCertificates_exports = {};
|
|
20
|
+
__export(AttestationCertificates_exports, {
|
|
21
|
+
AttestationBaseCertificate: () => AttestationBaseCertificate,
|
|
22
|
+
Dac: () => Dac,
|
|
23
|
+
Paa: () => Paa,
|
|
24
|
+
Pai: () => Pai
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(AttestationCertificates_exports);
|
|
27
|
+
var import_general = require("#general");
|
|
28
|
+
var import_common = require("./common.js");
|
|
29
|
+
var import_X509Base = require("./X509Base.js");
|
|
30
|
+
/**
|
|
31
|
+
* @license
|
|
32
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
33
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
34
|
+
*/
|
|
35
|
+
class AttestationBaseCertificate extends import_X509Base.X509Base {
|
|
36
|
+
/**
|
|
37
|
+
* Sign the certificate using the provided crypto and key.
|
|
38
|
+
* If the certificate is already signed, it throws a CertificateError.
|
|
39
|
+
*/
|
|
40
|
+
async sign(crypto, key) {
|
|
41
|
+
this.signature = await crypto.signEcdsa(key, this.asUnsignedAsn1(), "der");
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Returns the signed certificate in ASN.1 DER format.
|
|
45
|
+
* If the certificate is not signed, it throws a CertificateError.
|
|
46
|
+
*/
|
|
47
|
+
asSignedAsn1() {
|
|
48
|
+
const certificate = this.genericBuildAsn1Structure(this.cert);
|
|
49
|
+
const certBytes = import_general.DerCodec.encode({
|
|
50
|
+
certificate,
|
|
51
|
+
signAlgorithm: import_general.X962.EcdsaWithSHA256,
|
|
52
|
+
signature: (0, import_general.DerBitString)(this.signature)
|
|
53
|
+
});
|
|
54
|
+
(0, import_common.assertCertificateDerSize)(certBytes);
|
|
55
|
+
return certBytes;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
class Paa extends AttestationBaseCertificate {
|
|
59
|
+
}
|
|
60
|
+
class Pai extends AttestationBaseCertificate {
|
|
61
|
+
}
|
|
62
|
+
class Dac extends AttestationBaseCertificate {
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=AttestationCertificates.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/certificate/kinds/AttestationCertificates.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAqD;AACrD,oBAAyC;AAGzC,sBAAyB;AAVzB;AAAA;AAAA;AAAA;AAAA;AAeO,MAAe,mCAA+D,yBAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAK9F,MAAe,KAAK,QAAgB,KAAiB;AACjD,SAAK,YAAY,MAAM,OAAO,UAAU,KAAK,KAAK,eAAe,GAAG,KAAK;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAA4C;AACxC,UAAM,cAAc,KAAK,0BAA0B,KAAK,IAAI;AAC5D,UAAM,YAAY,wBAAS,OAAO;AAAA,MAC9B;AAAA,MACA,eAAe,oBAAK;AAAA,MACpB,eAAW,6BAAa,KAAK,SAAS;AAAA,IAC1C,CAAC;AACD,gDAAyB,SAAS;AAClC,WAAO;AAAA,EACX;AACJ;AAGO,MAAM,YAAY,2BAAuD;AAAC;AAG1E,MAAM,YAAY,2BAAuD;AAAC;AAG1E,MAAM,YAAY,2BAAuD;AAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Crypto } from "#general";
|
|
7
|
+
import { TypeFromBitmapSchema, VendorId } from "#types";
|
|
8
|
+
import { CertificationDeclaration as CertificationDeclarationDef } from "./definitions/certification-declaration.js";
|
|
9
|
+
/** A Matter Certification Declaration */
|
|
10
|
+
export declare class CertificationDeclaration {
|
|
11
|
+
#private;
|
|
12
|
+
/**
|
|
13
|
+
* Generator which is the main usage for the class from outside.
|
|
14
|
+
* It constructs the class with the relevant details and returns a signed ASN.1 DER version of the CD.
|
|
15
|
+
*/
|
|
16
|
+
static generate(crypto: Crypto, vendorId: VendorId, productId: number, provisional?: boolean): Promise<Uint8Array<ArrayBufferLike>>;
|
|
17
|
+
constructor(content: TypeFromBitmapSchema<typeof CertificationDeclarationDef.TlvDc>, subjectKeyIdentifier: Uint8Array);
|
|
18
|
+
/**
|
|
19
|
+
* Returns the signed certificate in ASN.1 DER format.
|
|
20
|
+
*/
|
|
21
|
+
asSignedAsn1(crypto: Crypto, privateKey: JsonWebKey): Promise<Uint8Array<ArrayBufferLike>>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=CertificationDeclaration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CertificationDeclaration.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/CertificationDeclaration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAA6B,MAAM,EAAiD,MAAM,UAAU,CAAC;AAC5G,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAExD,OAAO,EAAE,wBAAwB,IAAI,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAwBrH,yCAAyC;AACzC,qBAAa,wBAAwB;;IAIjC;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,UAAQ;gBAoBtF,OAAO,EAAE,oBAAoB,CAAC,OAAO,2BAA2B,CAAC,KAAK,CAAC,EACvE,oBAAoB,EAAE,UAAU;IAMpC;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;CAmB5D"}
|