@matter/protocol 0.15.0-alpha.0-20250617-f4d4cad23 → 0.15.0-alpha.0-20250620-16e218ed3
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/action/client/index.d.ts +1 -1
- package/dist/cjs/action/client/index.js +1 -1
- package/dist/cjs/action/errors.d.ts +12 -0
- package/dist/cjs/action/errors.d.ts.map +1 -1
- package/dist/cjs/action/errors.js +13 -1
- package/dist/cjs/action/errors.js.map +1 -1
- package/dist/cjs/action/protocols.d.ts +1 -1
- package/dist/cjs/action/protocols.js +1 -1
- package/dist/cjs/action/server/AttributeReadResponse.d.ts +1 -1
- package/dist/cjs/action/server/AttributeReadResponse.js +1 -1
- package/dist/cjs/action/server/AttributeSubscriptionResponse.d.ts +1 -1
- package/dist/cjs/action/server/AttributeSubscriptionResponse.js +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.d.ts +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.js +1 -1
- package/dist/cjs/action/server/CommandInvokeResponse.d.ts +1 -1
- package/dist/cjs/action/server/CommandInvokeResponse.js +1 -1
- package/dist/cjs/action/server/DataResponse.d.ts +1 -1
- package/dist/cjs/action/server/DataResponse.js +1 -1
- package/dist/cjs/action/server/EventReadResponse.d.ts +1 -1
- package/dist/cjs/action/server/EventReadResponse.js +1 -1
- package/dist/cjs/action/server/ServerInteraction.d.ts +1 -1
- package/dist/cjs/action/server/ServerInteraction.js +1 -1
- package/dist/cjs/action/server/index.d.ts +1 -1
- package/dist/cjs/action/server/index.js +1 -1
- 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/fabric/TestFabric.d.ts +1 -1
- package/dist/cjs/fabric/TestFabric.js +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/action/client/index.d.ts +1 -1
- package/dist/esm/action/client/index.js +1 -1
- package/dist/esm/action/errors.d.ts +12 -0
- package/dist/esm/action/errors.d.ts.map +1 -1
- package/dist/esm/action/errors.js +13 -1
- package/dist/esm/action/errors.js.map +1 -1
- package/dist/esm/action/protocols.d.ts +1 -1
- package/dist/esm/action/protocols.js +1 -1
- package/dist/esm/action/server/AttributeReadResponse.d.ts +1 -1
- package/dist/esm/action/server/AttributeReadResponse.js +1 -1
- package/dist/esm/action/server/AttributeSubscriptionResponse.d.ts +1 -1
- package/dist/esm/action/server/AttributeSubscriptionResponse.js +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.d.ts +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.js +1 -1
- package/dist/esm/action/server/CommandInvokeResponse.d.ts +1 -1
- package/dist/esm/action/server/CommandInvokeResponse.js +1 -1
- package/dist/esm/action/server/DataResponse.d.ts +1 -1
- package/dist/esm/action/server/DataResponse.js +1 -1
- package/dist/esm/action/server/EventReadResponse.d.ts +1 -1
- package/dist/esm/action/server/EventReadResponse.js +1 -1
- package/dist/esm/action/server/ServerInteraction.d.ts +1 -1
- package/dist/esm/action/server/ServerInteraction.js +1 -1
- package/dist/esm/action/server/index.d.ts +1 -1
- package/dist/esm/action/server/index.js +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/fabric/TestFabric.d.ts +1 -1
- package/dist/esm/fabric/TestFabric.js +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/action/client/index.ts +1 -1
- package/src/action/errors.ts +19 -1
- package/src/action/protocols.ts +1 -1
- package/src/action/server/AttributeReadResponse.ts +1 -1
- package/src/action/server/AttributeSubscriptionResponse.ts +1 -1
- package/src/action/server/AttributeWriteResponse.ts +1 -1
- package/src/action/server/CommandInvokeResponse.ts +1 -1
- package/src/action/server/DataResponse.ts +1 -1
- package/src/action/server/EventReadResponse.ts +1 -1
- package/src/action/server/ServerInteraction.ts +1 -1
- package/src/action/server/index.ts +1 -1
- 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/fabric/TestFabric.ts +1 -1
- 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
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import {
|
|
7
|
+
Bytes,
|
|
8
|
+
ContextTagged,
|
|
9
|
+
DatatypeOverride,
|
|
10
|
+
DerBitString,
|
|
11
|
+
DerCodec,
|
|
12
|
+
DerKey,
|
|
13
|
+
DerType,
|
|
14
|
+
PublicKey,
|
|
15
|
+
RawBytes,
|
|
16
|
+
X509,
|
|
17
|
+
X520,
|
|
18
|
+
X962
|
|
19
|
+
} from "#general";
|
|
20
|
+
import { CaseAuthenticatedTag } from "#types";
|
|
21
|
+
import { assertCertificateDerSize, CertificateError } from "./common.js";
|
|
22
|
+
import {
|
|
23
|
+
FabricId_Matter,
|
|
24
|
+
FirmwareSigningId_Matter,
|
|
25
|
+
IcacId_Matter,
|
|
26
|
+
matterToJsDate,
|
|
27
|
+
NocCat_Matter,
|
|
28
|
+
NodeId_Matter,
|
|
29
|
+
ProductId_Matter,
|
|
30
|
+
RcacId_Matter,
|
|
31
|
+
VendorId_Matter
|
|
32
|
+
} from "./definitions/asn.js";
|
|
33
|
+
import { ExtensionKeyUsageSchema } from "./definitions/base.js";
|
|
34
|
+
class X509Base {
|
|
35
|
+
#signature;
|
|
36
|
+
#cert;
|
|
37
|
+
constructor(cert) {
|
|
38
|
+
this.#cert = cert;
|
|
39
|
+
if ("signature" in cert) {
|
|
40
|
+
this.#signature = cert.signature;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
get cert() {
|
|
44
|
+
return this.#cert;
|
|
45
|
+
}
|
|
46
|
+
get isSigned() {
|
|
47
|
+
return this.#signature !== void 0;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get the signature of the certificate.
|
|
51
|
+
* If the certificate is not signed, it throws a CertificateError.
|
|
52
|
+
*/
|
|
53
|
+
get signature() {
|
|
54
|
+
if (this.#signature === void 0) {
|
|
55
|
+
throw new CertificateError("Certificate is not signed");
|
|
56
|
+
}
|
|
57
|
+
return this.#signature;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Set the signature of the certificate.
|
|
61
|
+
* If the certificate is already signed, it throws a CertificateError.
|
|
62
|
+
*/
|
|
63
|
+
set signature(signature) {
|
|
64
|
+
if (this.isSigned) {
|
|
65
|
+
throw new CertificateError("Certificate is already signed");
|
|
66
|
+
}
|
|
67
|
+
this.#signature = signature;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Sign the certificate using the provided crypto and key.
|
|
71
|
+
* It throws a CertificateError if the certificate is already signed.
|
|
72
|
+
*/
|
|
73
|
+
async sign(crypto, key) {
|
|
74
|
+
this.signature = await crypto.signEcdsa(key, this.asUnsignedAsn1());
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Convert the certificate to ASN.1 DER format without signature.
|
|
78
|
+
*/
|
|
79
|
+
asUnsignedAsn1() {
|
|
80
|
+
const certBytes = DerCodec.encode(this.genericBuildAsn1Structure(this.cert));
|
|
81
|
+
assertCertificateDerSize(certBytes);
|
|
82
|
+
return certBytes;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Convert the subject or issuer field of the certificate to ASN.1 DER format.
|
|
86
|
+
* Preserve order of keys from original subject and also copy potential custom elements
|
|
87
|
+
*/
|
|
88
|
+
#subjectOrIssuerToAsn1(data) {
|
|
89
|
+
const asn = {};
|
|
90
|
+
Object.entries(data).forEach(([key, value]) => {
|
|
91
|
+
if (value === void 0) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
switch (key) {
|
|
95
|
+
case "commonName":
|
|
96
|
+
asn.commonName = X520.CommonName(value);
|
|
97
|
+
break;
|
|
98
|
+
case "sureName":
|
|
99
|
+
asn.sureName = X520.SurName(value);
|
|
100
|
+
break;
|
|
101
|
+
case "serialNum":
|
|
102
|
+
asn.serialNum = X520.SerialNumber(value);
|
|
103
|
+
break;
|
|
104
|
+
case "countryName":
|
|
105
|
+
asn.countryName = X520.CountryName(value);
|
|
106
|
+
break;
|
|
107
|
+
case "localityName":
|
|
108
|
+
asn.localityName = X520.LocalityName(value);
|
|
109
|
+
break;
|
|
110
|
+
case "stateOrProvinceName":
|
|
111
|
+
asn.stateOrProvinceName = X520.StateOrProvinceName(value);
|
|
112
|
+
break;
|
|
113
|
+
case "orgName":
|
|
114
|
+
asn.orgName = X520.OrganisationName(value);
|
|
115
|
+
break;
|
|
116
|
+
case "orgUnitName":
|
|
117
|
+
asn.orgUnitName = X520.OrganizationalUnitName(value);
|
|
118
|
+
break;
|
|
119
|
+
case "title":
|
|
120
|
+
asn.title = X520.Title(value);
|
|
121
|
+
break;
|
|
122
|
+
case "name":
|
|
123
|
+
asn.name = X520.Name(value);
|
|
124
|
+
break;
|
|
125
|
+
case "givenName":
|
|
126
|
+
asn.givenName = X520.GivenName(value);
|
|
127
|
+
break;
|
|
128
|
+
case "initials":
|
|
129
|
+
asn.initials = X520.Initials(value);
|
|
130
|
+
break;
|
|
131
|
+
case "genQualifier":
|
|
132
|
+
asn.genQualifier = X520.GenerationQualifier(value);
|
|
133
|
+
break;
|
|
134
|
+
case "dnQualifier":
|
|
135
|
+
asn.dnQualifier = X520.DnQualifier(value);
|
|
136
|
+
break;
|
|
137
|
+
case "pseudonym":
|
|
138
|
+
asn.pseudonym = X520.Pseudonym(value);
|
|
139
|
+
break;
|
|
140
|
+
case "domainComponent":
|
|
141
|
+
asn.domainComponent = X520.DomainComponent(value);
|
|
142
|
+
break;
|
|
143
|
+
case "nodeId":
|
|
144
|
+
asn.nodeId = NodeId_Matter(value);
|
|
145
|
+
break;
|
|
146
|
+
case "firmwareSigningId":
|
|
147
|
+
asn.firmwareSigningId = FirmwareSigningId_Matter(value);
|
|
148
|
+
break;
|
|
149
|
+
case "icacId":
|
|
150
|
+
asn.icacId = IcacId_Matter(value);
|
|
151
|
+
break;
|
|
152
|
+
case "rcacId":
|
|
153
|
+
asn.rcacId = RcacId_Matter(value);
|
|
154
|
+
break;
|
|
155
|
+
case "fabricId":
|
|
156
|
+
asn.fabricId = FabricId_Matter(value);
|
|
157
|
+
break;
|
|
158
|
+
case "caseAuthenticatedTags":
|
|
159
|
+
const caseAuthenticatedTags = value;
|
|
160
|
+
CaseAuthenticatedTag.validateNocTagList(caseAuthenticatedTags);
|
|
161
|
+
const cat0 = caseAuthenticatedTags[0];
|
|
162
|
+
const cat1 = caseAuthenticatedTags[1];
|
|
163
|
+
const cat2 = caseAuthenticatedTags[2];
|
|
164
|
+
if (cat0 !== void 0) {
|
|
165
|
+
asn.caseAuthenticatedTag0 = NocCat_Matter(cat0);
|
|
166
|
+
}
|
|
167
|
+
if (cat1 !== void 0) {
|
|
168
|
+
asn.caseAuthenticatedTag1 = NocCat_Matter(cat1);
|
|
169
|
+
}
|
|
170
|
+
if (cat2 !== void 0) {
|
|
171
|
+
asn.caseAuthenticatedTag2 = NocCat_Matter(cat2);
|
|
172
|
+
}
|
|
173
|
+
break;
|
|
174
|
+
case "vendorId":
|
|
175
|
+
asn.vendorId = VendorId_Matter(value);
|
|
176
|
+
break;
|
|
177
|
+
case "productId":
|
|
178
|
+
asn.productId = ProductId_Matter(value);
|
|
179
|
+
break;
|
|
180
|
+
case "commonNamePs":
|
|
181
|
+
asn.commonNamePs = X520.CommonName(value, true);
|
|
182
|
+
break;
|
|
183
|
+
case "sureNamePs":
|
|
184
|
+
asn.sureNamePs = X520.SurName(value, true);
|
|
185
|
+
break;
|
|
186
|
+
case "serialNumPs":
|
|
187
|
+
asn.serialNumPs = X520.SerialNumber(value, true);
|
|
188
|
+
break;
|
|
189
|
+
case "countryNamePs":
|
|
190
|
+
asn.countryNamePs = X520.CountryName(value, true);
|
|
191
|
+
break;
|
|
192
|
+
case "localityNamePs":
|
|
193
|
+
asn.localityNamePs = X520.LocalityName(value, true);
|
|
194
|
+
break;
|
|
195
|
+
case "stateOrProvinceNamePs":
|
|
196
|
+
asn.stateOrProvinceNamePs = X520.StateOrProvinceName(value, true);
|
|
197
|
+
break;
|
|
198
|
+
case "orgNamePs":
|
|
199
|
+
asn.orgNamePs = X520.OrganisationName(value, true);
|
|
200
|
+
break;
|
|
201
|
+
case "orgUnitNamePs":
|
|
202
|
+
asn.orgUnitNamePs = X520.OrganizationalUnitName(value, true);
|
|
203
|
+
break;
|
|
204
|
+
case "titlePs":
|
|
205
|
+
asn.titlePs = X520.Title(value, true);
|
|
206
|
+
break;
|
|
207
|
+
case "namePs":
|
|
208
|
+
asn.namePs = X520.Name(value, true);
|
|
209
|
+
break;
|
|
210
|
+
case "givenNamePs":
|
|
211
|
+
asn.givenNamePs = X520.GivenName(value, true);
|
|
212
|
+
break;
|
|
213
|
+
case "initialsPs":
|
|
214
|
+
asn.initialsPs = X520.Initials(value, true);
|
|
215
|
+
break;
|
|
216
|
+
case "genQualifierPs":
|
|
217
|
+
asn.genQualifierPs = X520.GenerationQualifier(value, true);
|
|
218
|
+
break;
|
|
219
|
+
case "dnQualifierPs":
|
|
220
|
+
asn.dnQualifierPs = X520.DnQualifier(value, true);
|
|
221
|
+
break;
|
|
222
|
+
case "pseudonymPs":
|
|
223
|
+
asn.pseudonymPs = X520.Pseudonym(value, true);
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
return asn;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Convert the extensions of the certificate to ASN.1 DER format.
|
|
231
|
+
*/
|
|
232
|
+
#extensionsToAsn1(extensions) {
|
|
233
|
+
const asn = {};
|
|
234
|
+
Object.entries(extensions).forEach(([key, value]) => {
|
|
235
|
+
if (value === void 0) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
switch (key) {
|
|
239
|
+
case "basicConstraints":
|
|
240
|
+
asn.basicConstraints = X509.BasicConstraints(value);
|
|
241
|
+
break;
|
|
242
|
+
case "keyUsage":
|
|
243
|
+
asn.keyUsage = X509.KeyUsage(
|
|
244
|
+
ExtensionKeyUsageSchema.encode(
|
|
245
|
+
value
|
|
246
|
+
)
|
|
247
|
+
);
|
|
248
|
+
break;
|
|
249
|
+
case "extendedKeyUsage":
|
|
250
|
+
asn.extendedKeyUsage = X509.ExtendedKeyUsage(value);
|
|
251
|
+
break;
|
|
252
|
+
case "subjectKeyIdentifier":
|
|
253
|
+
asn.subjectKeyIdentifier = X509.SubjectKeyIdentifier(value);
|
|
254
|
+
break;
|
|
255
|
+
case "authorityKeyIdentifier":
|
|
256
|
+
asn.authorityKeyIdentifier = X509.AuthorityKeyIdentifier(value);
|
|
257
|
+
break;
|
|
258
|
+
case "futureExtension":
|
|
259
|
+
asn.futureExtension = RawBytes(Bytes.concat(...value ?? []));
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
return asn;
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Build the ASN.1 DER structure for the certificate.
|
|
267
|
+
*/
|
|
268
|
+
genericBuildAsn1Structure({
|
|
269
|
+
serialNumber,
|
|
270
|
+
notBefore,
|
|
271
|
+
notAfter,
|
|
272
|
+
issuer,
|
|
273
|
+
subject,
|
|
274
|
+
ellipticCurvePublicKey,
|
|
275
|
+
extensions
|
|
276
|
+
}) {
|
|
277
|
+
const {
|
|
278
|
+
basicConstraints: { isCa, pathLen }
|
|
279
|
+
} = extensions;
|
|
280
|
+
if (!isCa && pathLen !== void 0) {
|
|
281
|
+
throw new CertificateError("Path length must be undefined for non-CA certificates.");
|
|
282
|
+
}
|
|
283
|
+
return {
|
|
284
|
+
version: ContextTagged(0, 2),
|
|
285
|
+
// v3
|
|
286
|
+
serialNumber: DatatypeOverride(DerType.Integer, serialNumber),
|
|
287
|
+
signatureAlgorithm: X962.EcdsaWithSHA256,
|
|
288
|
+
issuer: this.#subjectOrIssuerToAsn1(issuer),
|
|
289
|
+
validity: {
|
|
290
|
+
notBefore: matterToJsDate(notBefore),
|
|
291
|
+
notAfter: matterToJsDate(notAfter)
|
|
292
|
+
},
|
|
293
|
+
subject: this.#subjectOrIssuerToAsn1(subject),
|
|
294
|
+
publicKey: X962.PublicKeyEcPrime256v1(ellipticCurvePublicKey),
|
|
295
|
+
extensions: ContextTagged(3, this.#extensionsToAsn1(extensions))
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Create a Certificate Signing Request (CSR) in ASN.1 DER format.
|
|
300
|
+
*/
|
|
301
|
+
static async createCertificateSigningRequest(crypto, key) {
|
|
302
|
+
const request = {
|
|
303
|
+
version: 0,
|
|
304
|
+
subject: { organization: X520.OrganisationName("CSR") },
|
|
305
|
+
publicKey: X962.PublicKeyEcPrime256v1(key.publicKey),
|
|
306
|
+
endSignedBytes: ContextTagged(0)
|
|
307
|
+
};
|
|
308
|
+
return DerCodec.encode({
|
|
309
|
+
request,
|
|
310
|
+
signAlgorithm: X962.EcdsaWithSHA256,
|
|
311
|
+
signature: DerBitString(await crypto.signEcdsa(key, DerCodec.encode(request), "der"))
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Extract the public key from a Certificate Signing Request (CSR) in ASN.1 DER format.
|
|
316
|
+
*/
|
|
317
|
+
static async getPublicKeyFromCsr(crypto, csr) {
|
|
318
|
+
const { [DerKey.Elements]: rootElements } = DerCodec.decode(csr);
|
|
319
|
+
if (rootElements?.length !== 3) throw new CertificateError("Invalid CSR data");
|
|
320
|
+
const [requestNode, signAlgorithmNode, signatureNode] = rootElements;
|
|
321
|
+
const { [DerKey.Elements]: requestElements } = requestNode;
|
|
322
|
+
if (requestElements?.length !== 4) throw new CertificateError("Invalid CSR data");
|
|
323
|
+
const [versionNode, _subjectNode, publicKeyNode] = requestElements;
|
|
324
|
+
const requestVersion = versionNode[DerKey.Bytes][0];
|
|
325
|
+
if (requestVersion !== 0) throw new CertificateError(`Unsupported request version ${requestVersion}`);
|
|
326
|
+
const { [DerKey.Elements]: publicKeyElements } = publicKeyNode;
|
|
327
|
+
if (publicKeyElements?.length !== 2) throw new CertificateError("Invalid CSR data");
|
|
328
|
+
const [_publicKeyTypeNode, publicKeyBytesNode] = publicKeyElements;
|
|
329
|
+
const publicKey = publicKeyBytesNode[DerKey.Bytes];
|
|
330
|
+
if (signAlgorithmNode[DerKey.Elements]?.[0]?.[DerKey.Bytes] === void 0 || !Bytes.areEqual(
|
|
331
|
+
X962.EcdsaWithSHA256[DerKey.ObjectId][DerKey.Bytes],
|
|
332
|
+
signAlgorithmNode[DerKey.Elements]?.[0]?.[DerKey.Bytes]
|
|
333
|
+
))
|
|
334
|
+
throw new CertificateError("Unsupported signature type");
|
|
335
|
+
await crypto.verifyEcdsa(
|
|
336
|
+
PublicKey(publicKey),
|
|
337
|
+
DerCodec.encode(requestNode),
|
|
338
|
+
signatureNode[DerKey.Bytes],
|
|
339
|
+
"der"
|
|
340
|
+
);
|
|
341
|
+
return publicKey;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
export {
|
|
345
|
+
X509Base
|
|
346
|
+
};
|
|
347
|
+
//# sourceMappingURL=X509Base.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/certificate/kinds/X509Base.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { MatterError } from "#general";
|
|
7
|
+
/**
|
|
8
|
+
* Matter specific Certificate Sizes
|
|
9
|
+
* @see {@link MatterSpecification.v13.Core} 6.1.3.
|
|
10
|
+
*/
|
|
11
|
+
export declare const MAX_DER_CERTIFICATE_SIZE = 600;
|
|
12
|
+
export declare class CertificateError extends MatterError {
|
|
13
|
+
}
|
|
14
|
+
export type Unsigned<Type> = {
|
|
15
|
+
[Property in keyof Type as Exclude<Property, "signature">]: Type[Property];
|
|
16
|
+
};
|
|
17
|
+
export declare function assertCertificateDerSize(certBytes: Uint8Array): void;
|
|
18
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/common.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAuB,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,qBAAa,gBAAiB,SAAQ,WAAW;CAAG;AAEpD,MAAM,MAAM,QAAQ,CAAC,IAAI,IAAI;KAAG,QAAQ,IAAI,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;CAAE,CAAC;AAE5G,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,UAAU,QAM7D"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ImplementationError, MatterError } from "#general";
|
|
7
|
+
const MAX_DER_CERTIFICATE_SIZE = 600;
|
|
8
|
+
class CertificateError extends MatterError {
|
|
9
|
+
}
|
|
10
|
+
function assertCertificateDerSize(certBytes) {
|
|
11
|
+
if (certBytes.length > MAX_DER_CERTIFICATE_SIZE) {
|
|
12
|
+
throw new ImplementationError(
|
|
13
|
+
`Certificate to generate is too big: ${certBytes.length} bytes instead of max ${MAX_DER_CERTIFICATE_SIZE} bytes`
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
CertificateError,
|
|
19
|
+
MAX_DER_CERTIFICATE_SIZE,
|
|
20
|
+
assertCertificateDerSize
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/certificate/kinds/common.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,qBAAqB,mBAAmB;AAM1C,MAAM,2BAA2B;AAEjC,MAAM,yBAAyB,YAAY;AAAC;AAI5C,SAAS,yBAAyB,WAAuB;AAC5D,MAAI,UAAU,SAAS,0BAA0B;AAC7C,UAAM,IAAI;AAAA,MACN,uCAAuC,UAAU,MAAM,yBAAyB,wBAAwB;AAAA,IAC5G;AAAA,EACJ;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { FabricId, NodeId, VendorId } from "#types";
|
|
7
|
+
export declare function matterToJsDate(date: number): Date;
|
|
8
|
+
export declare function jsToMatterDate(date: Date, addYears?: number): number;
|
|
9
|
+
/** matter-node-id = ASN.1 OID 1.3.6.1.4.1.37244.1.1 */
|
|
10
|
+
export declare const NodeId_Matter: (value: NodeId) => any[];
|
|
11
|
+
/** matter-firmware-signing-id = ASN.1 OID 1.3.6.1.4.1.37244.1.2 */
|
|
12
|
+
export declare const FirmwareSigningId_Matter: (value: number) => any[];
|
|
13
|
+
/** matter-icac-id = ASN.1 OID 1.3.6.1.4.1.37244.1.3 */
|
|
14
|
+
export declare const IcacId_Matter: (value: number | bigint) => any[];
|
|
15
|
+
/** matter-rcac-id = ASN.1 OID 1.3.6.1.4.1.37244.1.4 */
|
|
16
|
+
export declare const RcacId_Matter: (value: number | bigint) => any[];
|
|
17
|
+
/** matter-fabric-id = ASN.1 OID 1.3.6.1.4.1.37244.1.5 */
|
|
18
|
+
export declare const FabricId_Matter: (value: FabricId) => any[];
|
|
19
|
+
/** matter-noc-cat = ASN.1 OID 1.3.6.1.4.1.37244.1.6 */
|
|
20
|
+
export declare const NocCat_Matter: (value: number) => any[];
|
|
21
|
+
/** matter-oid-vid = ASN.1 OID 1.3.6.1.4.1.37244.2.1 */
|
|
22
|
+
export declare const VendorId_Matter: (value: VendorId) => any[];
|
|
23
|
+
/** matter-oid-pid = ASN.1 OID 1.3.6.1.4.1.37244.2.2 */
|
|
24
|
+
export declare const ProductId_Matter: (value: number) => any[];
|
|
25
|
+
//# sourceMappingURL=asn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asn.d.ts","sourceRoot":"","sources":["../../../../../src/certificate/kinds/definitions/asn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAOpD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,QAE1C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,SAAI,UAItD;AAoDD,uDAAuD;AACvD,eAAO,MAAM,aAAa,0BAAuC,CAAC;AAElE,mEAAmE;AACnE,eAAO,MAAM,wBAAwB,0BAAuC,CAAC;AAE7E,uDAAuD;AACvD,eAAO,MAAM,aAAa,mCAAgD,CAAC;AAE3E,uDAAuD;AACvD,eAAO,MAAM,aAAa,mCAAgD,CAAC;AAE3E,yDAAyD;AACzD,eAAO,MAAM,eAAe,4BAAyC,CAAC;AAEtE,uDAAuD;AACvD,eAAO,MAAM,aAAa,0BAAuD,CAAC;AAElF,uDAAuD;AACvD,eAAO,MAAM,eAAe,4BAA0D,CAAC;AAEvF,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,0BAAwD,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Bytes, DerObject, X520 } from "#general";
|
|
7
|
+
const YEAR_S = 365 * 24 * 60 * 60;
|
|
8
|
+
const EPOCH_OFFSET_S = 10957 * 24 * 60 * 60;
|
|
9
|
+
function matterToJsDate(date) {
|
|
10
|
+
return date === 0 ? X520.NON_WELL_DEFINED_DATE : new Date((date + EPOCH_OFFSET_S) * 1e3);
|
|
11
|
+
}
|
|
12
|
+
function jsToMatterDate(date, addYears = 0) {
|
|
13
|
+
return date.getTime() === X520.NON_WELL_DEFINED_DATE.getTime() ? 0 : Math.floor(date.getTime() / 1e3) - EPOCH_OFFSET_S + addYears * YEAR_S;
|
|
14
|
+
}
|
|
15
|
+
function intTo16Chars(value) {
|
|
16
|
+
const byteArray = new Uint8Array(8);
|
|
17
|
+
const dataView = Bytes.dataViewOf(byteArray);
|
|
18
|
+
dataView.setBigUint64(0, typeof value === "bigint" ? value : BigInt(value));
|
|
19
|
+
return Bytes.toHex(byteArray).toUpperCase();
|
|
20
|
+
}
|
|
21
|
+
function uInt16To8Chars(value) {
|
|
22
|
+
const byteArray = new Uint8Array(4);
|
|
23
|
+
const dataView = Bytes.dataViewOf(byteArray);
|
|
24
|
+
dataView.setUint32(0, value);
|
|
25
|
+
return Bytes.toHex(byteArray).toUpperCase();
|
|
26
|
+
}
|
|
27
|
+
function uInt16To4Chars(value) {
|
|
28
|
+
const byteArray = new Uint8Array(2);
|
|
29
|
+
const dataView = Bytes.dataViewOf(byteArray);
|
|
30
|
+
dataView.setUint16(0, value);
|
|
31
|
+
return Bytes.toHex(byteArray).toUpperCase();
|
|
32
|
+
}
|
|
33
|
+
const GenericMatterOpCertObject = (id, valueConverter) => (value) => [
|
|
34
|
+
DerObject(`2b0601040182a27c01${id.toString(16).padStart(2, "0")}`, {
|
|
35
|
+
value: (valueConverter ?? intTo16Chars)(value)
|
|
36
|
+
})
|
|
37
|
+
];
|
|
38
|
+
const GenericMatterAttCertObject = (id, valueConverter) => (value) => [
|
|
39
|
+
DerObject(`2b0601040182a27c02${id.toString(16).padStart(2, "0")}`, {
|
|
40
|
+
value: (valueConverter ?? intTo16Chars)(value)
|
|
41
|
+
})
|
|
42
|
+
];
|
|
43
|
+
const NodeId_Matter = GenericMatterOpCertObject(1);
|
|
44
|
+
const FirmwareSigningId_Matter = GenericMatterOpCertObject(2);
|
|
45
|
+
const IcacId_Matter = GenericMatterOpCertObject(3);
|
|
46
|
+
const RcacId_Matter = GenericMatterOpCertObject(4);
|
|
47
|
+
const FabricId_Matter = GenericMatterOpCertObject(5);
|
|
48
|
+
const NocCat_Matter = GenericMatterOpCertObject(6, uInt16To8Chars);
|
|
49
|
+
const VendorId_Matter = GenericMatterAttCertObject(1, uInt16To4Chars);
|
|
50
|
+
const ProductId_Matter = GenericMatterAttCertObject(2, uInt16To4Chars);
|
|
51
|
+
export {
|
|
52
|
+
FabricId_Matter,
|
|
53
|
+
FirmwareSigningId_Matter,
|
|
54
|
+
IcacId_Matter,
|
|
55
|
+
NocCat_Matter,
|
|
56
|
+
NodeId_Matter,
|
|
57
|
+
ProductId_Matter,
|
|
58
|
+
RcacId_Matter,
|
|
59
|
+
VendorId_Matter,
|
|
60
|
+
jsToMatterDate,
|
|
61
|
+
matterToJsDate
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=asn.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/certificate/kinds/definitions/asn.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,WAAW,YAAY;AAGvC,MAAM,SAAS,MAAM,KAAK,KAAK;AAC/B,MAAM,iBAAiB,QAAQ,KAAK,KAAK;AAIlC,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;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { VendorId } from "#types";
|
|
7
|
+
import { X509Certificate } from "./base.js";
|
|
8
|
+
/** Definitions for Matter Attestation certificates (PAA, PAI, DAC) */
|
|
9
|
+
export declare namespace AttestationCertificate {
|
|
10
|
+
interface Dac extends X509Certificate {
|
|
11
|
+
issuer: {
|
|
12
|
+
commonName: string;
|
|
13
|
+
productId?: number;
|
|
14
|
+
vendorId: VendorId;
|
|
15
|
+
};
|
|
16
|
+
subject: {
|
|
17
|
+
commonName: string;
|
|
18
|
+
productId: number;
|
|
19
|
+
vendorId: VendorId;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
interface Pai extends X509Certificate {
|
|
23
|
+
issuer: {
|
|
24
|
+
commonName: string;
|
|
25
|
+
vendorId?: VendorId;
|
|
26
|
+
};
|
|
27
|
+
subject: {
|
|
28
|
+
commonName: string;
|
|
29
|
+
productId?: number;
|
|
30
|
+
vendorId: VendorId;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
interface Paa extends X509Certificate {
|
|
34
|
+
issuer: {
|
|
35
|
+
commonName: string;
|
|
36
|
+
vendorId?: VendorId;
|
|
37
|
+
};
|
|
38
|
+
subject: {
|
|
39
|
+
commonName: string;
|
|
40
|
+
vendorId?: VendorId;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=attestation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attestation.d.ts","sourceRoot":"","sources":["../../../../../src/certificate/kinds/definitions/attestation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,sEAAsE;AACtE,yBAAiB,sBAAsB,CAAC;IACpC,UAAiB,GAAI,SAAQ,eAAe;QACxC,MAAM,EAAE;YACJ,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,QAAQ,EAAE,QAAQ,CAAC;SACtB,CAAC;QACF,OAAO,EAAE;YACL,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,QAAQ,CAAC;SACtB,CAAC;KACL;IAED,UAAiB,GAAI,SAAQ,eAAe;QACxC,MAAM,EAAE;YACJ,UAAU,EAAE,MAAM,CAAC;YACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;SACvB,CAAC;QACF,OAAO,EAAE;YACL,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,QAAQ,EAAE,QAAQ,CAAC;SACtB,CAAC;KACL;IAED,UAAiB,GAAI,SAAQ,eAAe;QACxC,MAAM,EAAE;YACJ,UAAU,EAAE,MAAM,CAAC;YACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;SACvB,CAAC;QACF,OAAO,EAAE;YACL,UAAU,EAAE,MAAM,CAAC;YACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;SACvB,CAAC;KACL;CACJ"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BitFlag, TypeFromPartialBitSchema } from "#types";
|
|
7
|
+
export declare const ExtensionKeyUsageBitmap: {
|
|
8
|
+
digitalSignature: BitFlag;
|
|
9
|
+
nonRepudiation: BitFlag;
|
|
10
|
+
keyEncipherment: BitFlag;
|
|
11
|
+
dataEncipherment: BitFlag;
|
|
12
|
+
keyAgreement: BitFlag;
|
|
13
|
+
keyCertSign: BitFlag;
|
|
14
|
+
cRLSign: BitFlag;
|
|
15
|
+
encipherOnly: BitFlag;
|
|
16
|
+
decipherOnly: BitFlag;
|
|
17
|
+
};
|
|
18
|
+
export declare const ExtensionKeyUsageSchema: import("#types").BitmapSchemaInternal<{
|
|
19
|
+
digitalSignature: BitFlag;
|
|
20
|
+
nonRepudiation: BitFlag;
|
|
21
|
+
keyEncipherment: BitFlag;
|
|
22
|
+
dataEncipherment: BitFlag;
|
|
23
|
+
keyAgreement: BitFlag;
|
|
24
|
+
keyCertSign: BitFlag;
|
|
25
|
+
cRLSign: BitFlag;
|
|
26
|
+
encipherOnly: BitFlag;
|
|
27
|
+
decipherOnly: BitFlag;
|
|
28
|
+
}>;
|
|
29
|
+
export interface X509Certificate {
|
|
30
|
+
serialNumber: Uint8Array;
|
|
31
|
+
signatureAlgorithm: number;
|
|
32
|
+
issuer: {};
|
|
33
|
+
notBefore: number;
|
|
34
|
+
notAfter: number;
|
|
35
|
+
subject: {};
|
|
36
|
+
publicKeyAlgorithm: number;
|
|
37
|
+
ellipticCurveIdentifier: number;
|
|
38
|
+
ellipticCurvePublicKey: Uint8Array;
|
|
39
|
+
extensions: {
|
|
40
|
+
basicConstraints: {
|
|
41
|
+
isCa: boolean;
|
|
42
|
+
pathLen?: number;
|
|
43
|
+
};
|
|
44
|
+
keyUsage: TypeFromPartialBitSchema<typeof ExtensionKeyUsageBitmap>;
|
|
45
|
+
extendedKeyUsage?: number[];
|
|
46
|
+
subjectKeyIdentifier: Uint8Array;
|
|
47
|
+
authorityKeyIdentifier: Uint8Array;
|
|
48
|
+
futureExtension?: Uint8Array[];
|
|
49
|
+
};
|
|
50
|
+
signature: Uint8Array;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/certificate/kinds/definitions/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAgB,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAEzE,eAAO,MAAM,uBAAuB;;;;;;;;;;CAUnC,CAAC;AACF,eAAO,MAAM,uBAAuB;;;;;;;;;;EAAwC,CAAC;AAE7E,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,UAAU,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,EAAE,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,EAAE,CAAC;IACZ,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,UAAU,CAAC;IACnC,UAAU,EAAE;QACR,gBAAgB,EAAE;YACd,IAAI,EAAE,OAAO,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,QAAQ,EAAE,wBAAwB,CAAC,OAAO,uBAAuB,CAAC,CAAC;QACnE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,oBAAoB,EAAE,UAAU,CAAC;QACjC,sBAAsB,EAAE,UAAU,CAAC;QACnC,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC;KAClC,CAAC;IACF,SAAS,EAAE,UAAU,CAAC;CACzB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BitFlag, BitmapSchema } from "#types";
|
|
7
|
+
const ExtensionKeyUsageBitmap = {
|
|
8
|
+
digitalSignature: BitFlag(0),
|
|
9
|
+
nonRepudiation: BitFlag(1),
|
|
10
|
+
keyEncipherment: BitFlag(2),
|
|
11
|
+
dataEncipherment: BitFlag(3),
|
|
12
|
+
keyAgreement: BitFlag(4),
|
|
13
|
+
keyCertSign: BitFlag(5),
|
|
14
|
+
cRLSign: BitFlag(6),
|
|
15
|
+
encipherOnly: BitFlag(7),
|
|
16
|
+
decipherOnly: BitFlag(8)
|
|
17
|
+
};
|
|
18
|
+
const ExtensionKeyUsageSchema = BitmapSchema(ExtensionKeyUsageBitmap);
|
|
19
|
+
export {
|
|
20
|
+
ExtensionKeyUsageBitmap,
|
|
21
|
+
ExtensionKeyUsageSchema
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/certificate/kinds/definitions/base.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAS,SAAS,oBAA8C;AAEzD,MAAM,0BAA0B;AAAA,EACnC,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;AACO,MAAM,0BAA0B,aAAa,uBAAuB;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|