@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.
Files changed (271) hide show
  1. package/dist/cjs/action/client/index.d.ts +1 -1
  2. package/dist/cjs/action/client/index.js +1 -1
  3. package/dist/cjs/action/errors.d.ts +12 -0
  4. package/dist/cjs/action/errors.d.ts.map +1 -1
  5. package/dist/cjs/action/errors.js +13 -1
  6. package/dist/cjs/action/errors.js.map +1 -1
  7. package/dist/cjs/action/protocols.d.ts +1 -1
  8. package/dist/cjs/action/protocols.js +1 -1
  9. package/dist/cjs/action/server/AttributeReadResponse.d.ts +1 -1
  10. package/dist/cjs/action/server/AttributeReadResponse.js +1 -1
  11. package/dist/cjs/action/server/AttributeSubscriptionResponse.d.ts +1 -1
  12. package/dist/cjs/action/server/AttributeSubscriptionResponse.js +1 -1
  13. package/dist/cjs/action/server/AttributeWriteResponse.d.ts +1 -1
  14. package/dist/cjs/action/server/AttributeWriteResponse.js +1 -1
  15. package/dist/cjs/action/server/CommandInvokeResponse.d.ts +1 -1
  16. package/dist/cjs/action/server/CommandInvokeResponse.js +1 -1
  17. package/dist/cjs/action/server/DataResponse.d.ts +1 -1
  18. package/dist/cjs/action/server/DataResponse.js +1 -1
  19. package/dist/cjs/action/server/EventReadResponse.d.ts +1 -1
  20. package/dist/cjs/action/server/EventReadResponse.js +1 -1
  21. package/dist/cjs/action/server/ServerInteraction.d.ts +1 -1
  22. package/dist/cjs/action/server/ServerInteraction.js +1 -1
  23. package/dist/cjs/action/server/index.d.ts +1 -1
  24. package/dist/cjs/action/server/index.js +1 -1
  25. package/dist/cjs/certificate/AttestationCertificateManager.d.ts.map +1 -1
  26. package/dist/cjs/certificate/AttestationCertificateManager.js +26 -22
  27. package/dist/cjs/certificate/AttestationCertificateManager.js.map +1 -1
  28. package/dist/cjs/certificate/CertificateAuthority.d.ts +1 -2
  29. package/dist/cjs/certificate/CertificateAuthority.d.ts.map +1 -1
  30. package/dist/cjs/certificate/CertificateAuthority.js +22 -29
  31. package/dist/cjs/certificate/CertificateAuthority.js.map +1 -1
  32. package/dist/cjs/certificate/DeviceCertification.d.ts.map +1 -1
  33. package/dist/cjs/certificate/DeviceCertification.js +2 -6
  34. package/dist/cjs/certificate/DeviceCertification.js.map +1 -1
  35. package/dist/cjs/certificate/index.d.ts +7 -2
  36. package/dist/cjs/certificate/index.d.ts.map +1 -1
  37. package/dist/cjs/certificate/index.js +14 -2
  38. package/dist/cjs/certificate/index.js.map +1 -1
  39. package/dist/cjs/certificate/kinds/AttestationCertificates.d.ts +34 -0
  40. package/dist/cjs/certificate/kinds/AttestationCertificates.d.ts.map +1 -0
  41. package/dist/cjs/certificate/kinds/AttestationCertificates.js +64 -0
  42. package/dist/cjs/certificate/kinds/AttestationCertificates.js.map +6 -0
  43. package/dist/cjs/certificate/kinds/CertificationDeclaration.d.ts +23 -0
  44. package/dist/cjs/certificate/kinds/CertificationDeclaration.d.ts.map +1 -0
  45. package/dist/cjs/certificate/kinds/CertificationDeclaration.js +86 -0
  46. package/dist/cjs/certificate/kinds/CertificationDeclaration.js.map +6 -0
  47. package/dist/cjs/certificate/kinds/Icac.d.ts +29 -0
  48. package/dist/cjs/certificate/kinds/Icac.d.ts.map +1 -0
  49. package/dist/cjs/certificate/kinds/Icac.js +138 -0
  50. package/dist/cjs/certificate/kinds/Icac.js.map +6 -0
  51. package/dist/cjs/certificate/kinds/Noc.d.ts +27 -0
  52. package/dist/cjs/certificate/kinds/Noc.d.ts.map +1 -0
  53. package/dist/cjs/certificate/kinds/Noc.js +148 -0
  54. package/dist/cjs/certificate/kinds/Noc.js.map +6 -0
  55. package/dist/cjs/certificate/kinds/OperationalBase.d.ts +24 -0
  56. package/dist/cjs/certificate/kinds/OperationalBase.d.ts.map +1 -0
  57. package/dist/cjs/certificate/kinds/OperationalBase.js +68 -0
  58. package/dist/cjs/certificate/kinds/OperationalBase.js.map +6 -0
  59. package/dist/cjs/certificate/kinds/Rcac.d.ts +25 -0
  60. package/dist/cjs/certificate/kinds/Rcac.d.ts.map +1 -0
  61. package/dist/cjs/certificate/kinds/Rcac.js +119 -0
  62. package/dist/cjs/certificate/kinds/Rcac.js.map +6 -0
  63. package/dist/cjs/certificate/kinds/X509Base.d.ts +92 -0
  64. package/dist/cjs/certificate/kinds/X509Base.d.ts.map +1 -0
  65. package/dist/cjs/certificate/kinds/X509Base.js +344 -0
  66. package/dist/cjs/certificate/kinds/X509Base.js.map +6 -0
  67. package/dist/cjs/certificate/kinds/common.d.ts +18 -0
  68. package/dist/cjs/certificate/kinds/common.d.ts.map +1 -0
  69. package/dist/cjs/certificate/kinds/common.js +42 -0
  70. package/dist/cjs/certificate/kinds/common.js.map +6 -0
  71. package/dist/cjs/certificate/kinds/definitions/asn.d.ts +25 -0
  72. package/dist/cjs/certificate/kinds/definitions/asn.d.ts.map +1 -0
  73. package/dist/cjs/certificate/kinds/definitions/asn.js +83 -0
  74. package/dist/cjs/certificate/kinds/definitions/asn.js.map +6 -0
  75. package/dist/cjs/certificate/kinds/definitions/attestation.d.ts +44 -0
  76. package/dist/cjs/certificate/kinds/definitions/attestation.d.ts.map +1 -0
  77. package/dist/cjs/certificate/kinds/definitions/attestation.js +22 -0
  78. package/dist/cjs/certificate/kinds/definitions/attestation.js.map +6 -0
  79. package/dist/cjs/certificate/kinds/definitions/base.d.ts +52 -0
  80. package/dist/cjs/certificate/kinds/definitions/base.d.ts.map +1 -0
  81. package/dist/cjs/certificate/kinds/definitions/base.js +43 -0
  82. package/dist/cjs/certificate/kinds/definitions/base.js.map +6 -0
  83. package/dist/cjs/certificate/kinds/definitions/certification-declaration.d.ts +18 -0
  84. package/dist/cjs/certificate/kinds/definitions/certification-declaration.d.ts.map +1 -0
  85. package/dist/cjs/certificate/kinds/definitions/certification-declaration.js +50 -0
  86. package/dist/cjs/certificate/kinds/definitions/certification-declaration.js.map +6 -0
  87. package/dist/cjs/certificate/kinds/definitions/operational.d.ts +368 -0
  88. package/dist/cjs/certificate/kinds/definitions/operational.d.ts.map +1 -0
  89. package/dist/cjs/certificate/kinds/definitions/operational.js +149 -0
  90. package/dist/cjs/certificate/kinds/definitions/operational.js.map +6 -0
  91. package/dist/cjs/certificate/kinds/index.d.ts +12 -0
  92. package/dist/cjs/certificate/kinds/index.d.ts.map +1 -0
  93. package/dist/cjs/certificate/kinds/index.js +29 -0
  94. package/dist/cjs/certificate/kinds/index.js.map +6 -0
  95. package/dist/cjs/fabric/Fabric.d.ts +1 -2
  96. package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
  97. package/dist/cjs/fabric/Fabric.js +28 -31
  98. package/dist/cjs/fabric/Fabric.js.map +1 -1
  99. package/dist/cjs/fabric/TestFabric.d.ts +1 -1
  100. package/dist/cjs/fabric/TestFabric.js +1 -1
  101. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  102. package/dist/cjs/peer/ControllerCommissioningFlow.js +2 -1
  103. package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
  104. package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
  105. package/dist/cjs/session/case/CaseClient.js +3 -3
  106. package/dist/cjs/session/case/CaseClient.js.map +1 -1
  107. package/dist/cjs/session/case/CaseServer.d.ts.map +1 -1
  108. package/dist/cjs/session/case/CaseServer.js +2 -2
  109. package/dist/cjs/session/case/CaseServer.js.map +1 -1
  110. package/dist/esm/action/client/index.d.ts +1 -1
  111. package/dist/esm/action/client/index.js +1 -1
  112. package/dist/esm/action/errors.d.ts +12 -0
  113. package/dist/esm/action/errors.d.ts.map +1 -1
  114. package/dist/esm/action/errors.js +13 -1
  115. package/dist/esm/action/errors.js.map +1 -1
  116. package/dist/esm/action/protocols.d.ts +1 -1
  117. package/dist/esm/action/protocols.js +1 -1
  118. package/dist/esm/action/server/AttributeReadResponse.d.ts +1 -1
  119. package/dist/esm/action/server/AttributeReadResponse.js +1 -1
  120. package/dist/esm/action/server/AttributeSubscriptionResponse.d.ts +1 -1
  121. package/dist/esm/action/server/AttributeSubscriptionResponse.js +1 -1
  122. package/dist/esm/action/server/AttributeWriteResponse.d.ts +1 -1
  123. package/dist/esm/action/server/AttributeWriteResponse.js +1 -1
  124. package/dist/esm/action/server/CommandInvokeResponse.d.ts +1 -1
  125. package/dist/esm/action/server/CommandInvokeResponse.js +1 -1
  126. package/dist/esm/action/server/DataResponse.d.ts +1 -1
  127. package/dist/esm/action/server/DataResponse.js +1 -1
  128. package/dist/esm/action/server/EventReadResponse.d.ts +1 -1
  129. package/dist/esm/action/server/EventReadResponse.js +1 -1
  130. package/dist/esm/action/server/ServerInteraction.d.ts +1 -1
  131. package/dist/esm/action/server/ServerInteraction.js +1 -1
  132. package/dist/esm/action/server/index.d.ts +1 -1
  133. package/dist/esm/action/server/index.js +1 -1
  134. package/dist/esm/certificate/AttestationCertificateManager.d.ts.map +1 -1
  135. package/dist/esm/certificate/AttestationCertificateManager.js +20 -16
  136. package/dist/esm/certificate/AttestationCertificateManager.js.map +1 -1
  137. package/dist/esm/certificate/CertificateAuthority.d.ts +1 -2
  138. package/dist/esm/certificate/CertificateAuthority.d.ts.map +1 -1
  139. package/dist/esm/certificate/CertificateAuthority.js +18 -30
  140. package/dist/esm/certificate/CertificateAuthority.js.map +1 -1
  141. package/dist/esm/certificate/DeviceCertification.d.ts.map +1 -1
  142. package/dist/esm/certificate/DeviceCertification.js +2 -6
  143. package/dist/esm/certificate/DeviceCertification.js.map +1 -1
  144. package/dist/esm/certificate/index.d.ts +7 -2
  145. package/dist/esm/certificate/index.d.ts.map +1 -1
  146. package/dist/esm/certificate/index.js +10 -2
  147. package/dist/esm/certificate/index.js.map +1 -1
  148. package/dist/esm/certificate/kinds/AttestationCertificates.d.ts +34 -0
  149. package/dist/esm/certificate/kinds/AttestationCertificates.d.ts.map +1 -0
  150. package/dist/esm/certificate/kinds/AttestationCertificates.js +44 -0
  151. package/dist/esm/certificate/kinds/AttestationCertificates.js.map +6 -0
  152. package/dist/esm/certificate/kinds/CertificationDeclaration.d.ts +23 -0
  153. package/dist/esm/certificate/kinds/CertificationDeclaration.d.ts.map +1 -0
  154. package/dist/esm/certificate/kinds/CertificationDeclaration.js +66 -0
  155. package/dist/esm/certificate/kinds/CertificationDeclaration.js.map +6 -0
  156. package/dist/esm/certificate/kinds/Icac.d.ts +29 -0
  157. package/dist/esm/certificate/kinds/Icac.d.ts.map +1 -0
  158. package/dist/esm/certificate/kinds/Icac.js +118 -0
  159. package/dist/esm/certificate/kinds/Icac.js.map +6 -0
  160. package/dist/esm/certificate/kinds/Noc.d.ts +27 -0
  161. package/dist/esm/certificate/kinds/Noc.d.ts.map +1 -0
  162. package/dist/esm/certificate/kinds/Noc.js +128 -0
  163. package/dist/esm/certificate/kinds/Noc.js.map +6 -0
  164. package/dist/esm/certificate/kinds/OperationalBase.d.ts +24 -0
  165. package/dist/esm/certificate/kinds/OperationalBase.d.ts.map +1 -0
  166. package/dist/esm/certificate/kinds/OperationalBase.js +48 -0
  167. package/dist/esm/certificate/kinds/OperationalBase.js.map +6 -0
  168. package/dist/esm/certificate/kinds/Rcac.d.ts +25 -0
  169. package/dist/esm/certificate/kinds/Rcac.d.ts.map +1 -0
  170. package/dist/esm/certificate/kinds/Rcac.js +99 -0
  171. package/dist/esm/certificate/kinds/Rcac.js.map +6 -0
  172. package/dist/esm/certificate/kinds/X509Base.d.ts +92 -0
  173. package/dist/esm/certificate/kinds/X509Base.d.ts.map +1 -0
  174. package/dist/esm/certificate/kinds/X509Base.js +347 -0
  175. package/dist/esm/certificate/kinds/X509Base.js.map +6 -0
  176. package/dist/esm/certificate/kinds/common.d.ts +18 -0
  177. package/dist/esm/certificate/kinds/common.d.ts.map +1 -0
  178. package/dist/esm/certificate/kinds/common.js +22 -0
  179. package/dist/esm/certificate/kinds/common.js.map +6 -0
  180. package/dist/esm/certificate/kinds/definitions/asn.d.ts +25 -0
  181. package/dist/esm/certificate/kinds/definitions/asn.d.ts.map +1 -0
  182. package/dist/esm/certificate/kinds/definitions/asn.js +63 -0
  183. package/dist/esm/certificate/kinds/definitions/asn.js.map +6 -0
  184. package/dist/esm/certificate/kinds/definitions/attestation.d.ts +44 -0
  185. package/dist/esm/certificate/kinds/definitions/attestation.d.ts.map +1 -0
  186. package/dist/esm/certificate/kinds/definitions/attestation.js +6 -0
  187. package/dist/esm/certificate/kinds/definitions/attestation.js.map +6 -0
  188. package/dist/esm/certificate/kinds/definitions/base.d.ts +52 -0
  189. package/dist/esm/certificate/kinds/definitions/base.d.ts.map +1 -0
  190. package/dist/esm/certificate/kinds/definitions/base.js +23 -0
  191. package/dist/esm/certificate/kinds/definitions/base.js.map +6 -0
  192. package/dist/esm/certificate/kinds/definitions/certification-declaration.d.ts +18 -0
  193. package/dist/esm/certificate/kinds/definitions/certification-declaration.d.ts.map +1 -0
  194. package/dist/esm/certificate/kinds/definitions/certification-declaration.js +41 -0
  195. package/dist/esm/certificate/kinds/definitions/certification-declaration.js.map +6 -0
  196. package/dist/esm/certificate/kinds/definitions/operational.d.ts +368 -0
  197. package/dist/esm/certificate/kinds/definitions/operational.d.ts.map +1 -0
  198. package/dist/esm/certificate/kinds/definitions/operational.js +148 -0
  199. package/dist/esm/certificate/kinds/definitions/operational.js.map +6 -0
  200. package/dist/esm/certificate/kinds/index.d.ts +12 -0
  201. package/dist/esm/certificate/kinds/index.d.ts.map +1 -0
  202. package/dist/esm/certificate/kinds/index.js +12 -0
  203. package/dist/esm/certificate/kinds/index.js.map +6 -0
  204. package/dist/esm/fabric/Fabric.d.ts +1 -2
  205. package/dist/esm/fabric/Fabric.d.ts.map +1 -1
  206. package/dist/esm/fabric/Fabric.js +28 -36
  207. package/dist/esm/fabric/Fabric.js.map +1 -1
  208. package/dist/esm/fabric/TestFabric.d.ts +1 -1
  209. package/dist/esm/fabric/TestFabric.js +1 -1
  210. package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  211. package/dist/esm/peer/ControllerCommissioningFlow.js +2 -1
  212. package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
  213. package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
  214. package/dist/esm/session/case/CaseClient.js +3 -3
  215. package/dist/esm/session/case/CaseClient.js.map +1 -1
  216. package/dist/esm/session/case/CaseServer.d.ts.map +1 -1
  217. package/dist/esm/session/case/CaseServer.js +2 -2
  218. package/dist/esm/session/case/CaseServer.js.map +1 -1
  219. package/package.json +6 -6
  220. package/src/action/client/index.ts +1 -1
  221. package/src/action/errors.ts +19 -1
  222. package/src/action/protocols.ts +1 -1
  223. package/src/action/server/AttributeReadResponse.ts +1 -1
  224. package/src/action/server/AttributeSubscriptionResponse.ts +1 -1
  225. package/src/action/server/AttributeWriteResponse.ts +1 -1
  226. package/src/action/server/CommandInvokeResponse.ts +1 -1
  227. package/src/action/server/DataResponse.ts +1 -1
  228. package/src/action/server/EventReadResponse.ts +1 -1
  229. package/src/action/server/ServerInteraction.ts +1 -1
  230. package/src/action/server/index.ts +1 -1
  231. package/src/certificate/AttestationCertificateManager.ts +20 -16
  232. package/src/certificate/CertificateAuthority.ts +18 -35
  233. package/src/certificate/DeviceCertification.ts +2 -6
  234. package/src/certificate/index.ts +7 -2
  235. package/src/certificate/kinds/AttestationCertificates.ts +48 -0
  236. package/src/certificate/kinds/CertificationDeclaration.ts +91 -0
  237. package/src/certificate/kinds/Icac.ts +156 -0
  238. package/src/certificate/kinds/Noc.ts +164 -0
  239. package/src/certificate/kinds/OperationalBase.ts +72 -0
  240. package/src/certificate/kinds/Rcac.ts +126 -0
  241. package/src/certificate/kinds/X509Base.ts +380 -0
  242. package/src/certificate/kinds/common.ts +24 -0
  243. package/src/certificate/kinds/definitions/asn.ts +97 -0
  244. package/src/certificate/kinds/definitions/attestation.ts +46 -0
  245. package/src/certificate/kinds/definitions/base.ts +43 -0
  246. package/src/certificate/kinds/definitions/certification-declaration.ts +38 -0
  247. package/src/certificate/kinds/definitions/operational.ts +179 -0
  248. package/src/certificate/kinds/index.ts +12 -0
  249. package/src/fabric/Fabric.ts +28 -40
  250. package/src/fabric/TestFabric.ts +1 -1
  251. package/src/peer/ControllerCommissioningFlow.ts +2 -1
  252. package/src/session/case/CaseClient.ts +3 -3
  253. package/src/session/case/CaseServer.ts +2 -2
  254. package/dist/cjs/certificate/CertificateManager.d.ts +0 -578
  255. package/dist/cjs/certificate/CertificateManager.d.ts.map +0 -1
  256. package/dist/cjs/certificate/CertificateManager.js +0 -843
  257. package/dist/cjs/certificate/CertificateManager.js.map +0 -6
  258. package/dist/cjs/certificate/CertificationDeclarationManager.d.ts +0 -11
  259. package/dist/cjs/certificate/CertificationDeclarationManager.d.ts.map +0 -1
  260. package/dist/cjs/certificate/CertificationDeclarationManager.js +0 -54
  261. package/dist/cjs/certificate/CertificationDeclarationManager.js.map +0 -6
  262. package/dist/esm/certificate/CertificateManager.d.ts +0 -578
  263. package/dist/esm/certificate/CertificateManager.d.ts.map +0 -1
  264. package/dist/esm/certificate/CertificateManager.js +0 -870
  265. package/dist/esm/certificate/CertificateManager.js.map +0 -6
  266. package/dist/esm/certificate/CertificationDeclarationManager.d.ts +0 -11
  267. package/dist/esm/certificate/CertificationDeclarationManager.d.ts.map +0 -1
  268. package/dist/esm/certificate/CertificationDeclarationManager.js +0 -34
  269. package/dist/esm/certificate/CertificationDeclarationManager.js.map +0 -6
  270. package/src/certificate/CertificateManager.ts +0 -1176
  271. package/src/certificate/CertificationDeclarationManager.ts +0 -52
@@ -0,0 +1,344 @@
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 X509Base_exports = {};
20
+ __export(X509Base_exports, {
21
+ X509Base: () => X509Base
22
+ });
23
+ module.exports = __toCommonJS(X509Base_exports);
24
+ var import_general = require("#general");
25
+ var import_types = require("#types");
26
+ var import_common = require("./common.js");
27
+ var import_asn = require("./definitions/asn.js");
28
+ var import_base = require("./definitions/base.js");
29
+ /**
30
+ * @license
31
+ * Copyright 2022-2025 Matter.js Authors
32
+ * SPDX-License-Identifier: Apache-2.0
33
+ */
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 import_common.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 import_common.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 = import_general.DerCodec.encode(this.genericBuildAsn1Structure(this.cert));
81
+ (0, import_common.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 = import_general.X520.CommonName(value);
97
+ break;
98
+ case "sureName":
99
+ asn.sureName = import_general.X520.SurName(value);
100
+ break;
101
+ case "serialNum":
102
+ asn.serialNum = import_general.X520.SerialNumber(value);
103
+ break;
104
+ case "countryName":
105
+ asn.countryName = import_general.X520.CountryName(value);
106
+ break;
107
+ case "localityName":
108
+ asn.localityName = import_general.X520.LocalityName(value);
109
+ break;
110
+ case "stateOrProvinceName":
111
+ asn.stateOrProvinceName = import_general.X520.StateOrProvinceName(value);
112
+ break;
113
+ case "orgName":
114
+ asn.orgName = import_general.X520.OrganisationName(value);
115
+ break;
116
+ case "orgUnitName":
117
+ asn.orgUnitName = import_general.X520.OrganizationalUnitName(value);
118
+ break;
119
+ case "title":
120
+ asn.title = import_general.X520.Title(value);
121
+ break;
122
+ case "name":
123
+ asn.name = import_general.X520.Name(value);
124
+ break;
125
+ case "givenName":
126
+ asn.givenName = import_general.X520.GivenName(value);
127
+ break;
128
+ case "initials":
129
+ asn.initials = import_general.X520.Initials(value);
130
+ break;
131
+ case "genQualifier":
132
+ asn.genQualifier = import_general.X520.GenerationQualifier(value);
133
+ break;
134
+ case "dnQualifier":
135
+ asn.dnQualifier = import_general.X520.DnQualifier(value);
136
+ break;
137
+ case "pseudonym":
138
+ asn.pseudonym = import_general.X520.Pseudonym(value);
139
+ break;
140
+ case "domainComponent":
141
+ asn.domainComponent = import_general.X520.DomainComponent(value);
142
+ break;
143
+ case "nodeId":
144
+ asn.nodeId = (0, import_asn.NodeId_Matter)(value);
145
+ break;
146
+ case "firmwareSigningId":
147
+ asn.firmwareSigningId = (0, import_asn.FirmwareSigningId_Matter)(value);
148
+ break;
149
+ case "icacId":
150
+ asn.icacId = (0, import_asn.IcacId_Matter)(value);
151
+ break;
152
+ case "rcacId":
153
+ asn.rcacId = (0, import_asn.RcacId_Matter)(value);
154
+ break;
155
+ case "fabricId":
156
+ asn.fabricId = (0, import_asn.FabricId_Matter)(value);
157
+ break;
158
+ case "caseAuthenticatedTags":
159
+ const caseAuthenticatedTags = value;
160
+ import_types.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 = (0, import_asn.NocCat_Matter)(cat0);
166
+ }
167
+ if (cat1 !== void 0) {
168
+ asn.caseAuthenticatedTag1 = (0, import_asn.NocCat_Matter)(cat1);
169
+ }
170
+ if (cat2 !== void 0) {
171
+ asn.caseAuthenticatedTag2 = (0, import_asn.NocCat_Matter)(cat2);
172
+ }
173
+ break;
174
+ case "vendorId":
175
+ asn.vendorId = (0, import_asn.VendorId_Matter)(value);
176
+ break;
177
+ case "productId":
178
+ asn.productId = (0, import_asn.ProductId_Matter)(value);
179
+ break;
180
+ case "commonNamePs":
181
+ asn.commonNamePs = import_general.X520.CommonName(value, true);
182
+ break;
183
+ case "sureNamePs":
184
+ asn.sureNamePs = import_general.X520.SurName(value, true);
185
+ break;
186
+ case "serialNumPs":
187
+ asn.serialNumPs = import_general.X520.SerialNumber(value, true);
188
+ break;
189
+ case "countryNamePs":
190
+ asn.countryNamePs = import_general.X520.CountryName(value, true);
191
+ break;
192
+ case "localityNamePs":
193
+ asn.localityNamePs = import_general.X520.LocalityName(value, true);
194
+ break;
195
+ case "stateOrProvinceNamePs":
196
+ asn.stateOrProvinceNamePs = import_general.X520.StateOrProvinceName(value, true);
197
+ break;
198
+ case "orgNamePs":
199
+ asn.orgNamePs = import_general.X520.OrganisationName(value, true);
200
+ break;
201
+ case "orgUnitNamePs":
202
+ asn.orgUnitNamePs = import_general.X520.OrganizationalUnitName(value, true);
203
+ break;
204
+ case "titlePs":
205
+ asn.titlePs = import_general.X520.Title(value, true);
206
+ break;
207
+ case "namePs":
208
+ asn.namePs = import_general.X520.Name(value, true);
209
+ break;
210
+ case "givenNamePs":
211
+ asn.givenNamePs = import_general.X520.GivenName(value, true);
212
+ break;
213
+ case "initialsPs":
214
+ asn.initialsPs = import_general.X520.Initials(value, true);
215
+ break;
216
+ case "genQualifierPs":
217
+ asn.genQualifierPs = import_general.X520.GenerationQualifier(value, true);
218
+ break;
219
+ case "dnQualifierPs":
220
+ asn.dnQualifierPs = import_general.X520.DnQualifier(value, true);
221
+ break;
222
+ case "pseudonymPs":
223
+ asn.pseudonymPs = import_general.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 = import_general.X509.BasicConstraints(value);
241
+ break;
242
+ case "keyUsage":
243
+ asn.keyUsage = import_general.X509.KeyUsage(
244
+ import_base.ExtensionKeyUsageSchema.encode(
245
+ value
246
+ )
247
+ );
248
+ break;
249
+ case "extendedKeyUsage":
250
+ asn.extendedKeyUsage = import_general.X509.ExtendedKeyUsage(value);
251
+ break;
252
+ case "subjectKeyIdentifier":
253
+ asn.subjectKeyIdentifier = import_general.X509.SubjectKeyIdentifier(value);
254
+ break;
255
+ case "authorityKeyIdentifier":
256
+ asn.authorityKeyIdentifier = import_general.X509.AuthorityKeyIdentifier(value);
257
+ break;
258
+ case "futureExtension":
259
+ asn.futureExtension = (0, import_general.RawBytes)(import_general.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 import_common.CertificateError("Path length must be undefined for non-CA certificates.");
282
+ }
283
+ return {
284
+ version: (0, import_general.ContextTagged)(0, 2),
285
+ // v3
286
+ serialNumber: (0, import_general.DatatypeOverride)(import_general.DerType.Integer, serialNumber),
287
+ signatureAlgorithm: import_general.X962.EcdsaWithSHA256,
288
+ issuer: this.#subjectOrIssuerToAsn1(issuer),
289
+ validity: {
290
+ notBefore: (0, import_asn.matterToJsDate)(notBefore),
291
+ notAfter: (0, import_asn.matterToJsDate)(notAfter)
292
+ },
293
+ subject: this.#subjectOrIssuerToAsn1(subject),
294
+ publicKey: import_general.X962.PublicKeyEcPrime256v1(ellipticCurvePublicKey),
295
+ extensions: (0, import_general.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: import_general.X520.OrganisationName("CSR") },
305
+ publicKey: import_general.X962.PublicKeyEcPrime256v1(key.publicKey),
306
+ endSignedBytes: (0, import_general.ContextTagged)(0)
307
+ };
308
+ return import_general.DerCodec.encode({
309
+ request,
310
+ signAlgorithm: import_general.X962.EcdsaWithSHA256,
311
+ signature: (0, import_general.DerBitString)(await crypto.signEcdsa(key, import_general.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 { [import_general.DerKey.Elements]: rootElements } = import_general.DerCodec.decode(csr);
319
+ if (rootElements?.length !== 3) throw new import_common.CertificateError("Invalid CSR data");
320
+ const [requestNode, signAlgorithmNode, signatureNode] = rootElements;
321
+ const { [import_general.DerKey.Elements]: requestElements } = requestNode;
322
+ if (requestElements?.length !== 4) throw new import_common.CertificateError("Invalid CSR data");
323
+ const [versionNode, _subjectNode, publicKeyNode] = requestElements;
324
+ const requestVersion = versionNode[import_general.DerKey.Bytes][0];
325
+ if (requestVersion !== 0) throw new import_common.CertificateError(`Unsupported request version ${requestVersion}`);
326
+ const { [import_general.DerKey.Elements]: publicKeyElements } = publicKeyNode;
327
+ if (publicKeyElements?.length !== 2) throw new import_common.CertificateError("Invalid CSR data");
328
+ const [_publicKeyTypeNode, publicKeyBytesNode] = publicKeyElements;
329
+ const publicKey = publicKeyBytesNode[import_general.DerKey.Bytes];
330
+ if (signAlgorithmNode[import_general.DerKey.Elements]?.[0]?.[import_general.DerKey.Bytes] === void 0 || !import_general.Bytes.areEqual(
331
+ import_general.X962.EcdsaWithSHA256[import_general.DerKey.ObjectId][import_general.DerKey.Bytes],
332
+ signAlgorithmNode[import_general.DerKey.Elements]?.[0]?.[import_general.DerKey.Bytes]
333
+ ))
334
+ throw new import_common.CertificateError("Unsupported signature type");
335
+ await crypto.verifyEcdsa(
336
+ (0, import_general.PublicKey)(publicKey),
337
+ import_general.DerCodec.encode(requestNode),
338
+ signatureNode[import_general.DerKey.Bytes],
339
+ "der"
340
+ );
341
+ return publicKey;
342
+ }
343
+ }
344
+ //# 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,42 @@
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 common_exports = {};
20
+ __export(common_exports, {
21
+ CertificateError: () => CertificateError,
22
+ MAX_DER_CERTIFICATE_SIZE: () => MAX_DER_CERTIFICATE_SIZE,
23
+ assertCertificateDerSize: () => assertCertificateDerSize
24
+ });
25
+ module.exports = __toCommonJS(common_exports);
26
+ var import_general = require("#general");
27
+ /**
28
+ * @license
29
+ * Copyright 2022-2025 Matter.js Authors
30
+ * SPDX-License-Identifier: Apache-2.0
31
+ */
32
+ const MAX_DER_CERTIFICATE_SIZE = 600;
33
+ class CertificateError extends import_general.MatterError {
34
+ }
35
+ function assertCertificateDerSize(certBytes) {
36
+ if (certBytes.length > MAX_DER_CERTIFICATE_SIZE) {
37
+ throw new import_general.ImplementationError(
38
+ `Certificate to generate is too big: ${certBytes.length} bytes instead of max ${MAX_DER_CERTIFICATE_SIZE} bytes`
39
+ );
40
+ }
41
+ }
42
+ //# 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;AAAA;AAAA;AAKA,qBAAiD;AALjD;AAAA;AAAA;AAAA;AAAA;AAWO,MAAM,2BAA2B;AAEjC,MAAM,yBAAyB,2BAAY;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,83 @@
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 asn_exports = {};
20
+ __export(asn_exports, {
21
+ FabricId_Matter: () => FabricId_Matter,
22
+ FirmwareSigningId_Matter: () => FirmwareSigningId_Matter,
23
+ IcacId_Matter: () => IcacId_Matter,
24
+ NocCat_Matter: () => NocCat_Matter,
25
+ NodeId_Matter: () => NodeId_Matter,
26
+ ProductId_Matter: () => ProductId_Matter,
27
+ RcacId_Matter: () => RcacId_Matter,
28
+ VendorId_Matter: () => VendorId_Matter,
29
+ jsToMatterDate: () => jsToMatterDate,
30
+ matterToJsDate: () => matterToJsDate
31
+ });
32
+ module.exports = __toCommonJS(asn_exports);
33
+ var import_general = require("#general");
34
+ /**
35
+ * @license
36
+ * Copyright 2022-2025 Matter.js Authors
37
+ * SPDX-License-Identifier: Apache-2.0
38
+ */
39
+ const YEAR_S = 365 * 24 * 60 * 60;
40
+ const EPOCH_OFFSET_S = 10957 * 24 * 60 * 60;
41
+ function matterToJsDate(date) {
42
+ return date === 0 ? import_general.X520.NON_WELL_DEFINED_DATE : new Date((date + EPOCH_OFFSET_S) * 1e3);
43
+ }
44
+ function jsToMatterDate(date, addYears = 0) {
45
+ return date.getTime() === import_general.X520.NON_WELL_DEFINED_DATE.getTime() ? 0 : Math.floor(date.getTime() / 1e3) - EPOCH_OFFSET_S + addYears * YEAR_S;
46
+ }
47
+ function intTo16Chars(value) {
48
+ const byteArray = new Uint8Array(8);
49
+ const dataView = import_general.Bytes.dataViewOf(byteArray);
50
+ dataView.setBigUint64(0, typeof value === "bigint" ? value : BigInt(value));
51
+ return import_general.Bytes.toHex(byteArray).toUpperCase();
52
+ }
53
+ function uInt16To8Chars(value) {
54
+ const byteArray = new Uint8Array(4);
55
+ const dataView = import_general.Bytes.dataViewOf(byteArray);
56
+ dataView.setUint32(0, value);
57
+ return import_general.Bytes.toHex(byteArray).toUpperCase();
58
+ }
59
+ function uInt16To4Chars(value) {
60
+ const byteArray = new Uint8Array(2);
61
+ const dataView = import_general.Bytes.dataViewOf(byteArray);
62
+ dataView.setUint16(0, value);
63
+ return import_general.Bytes.toHex(byteArray).toUpperCase();
64
+ }
65
+ const GenericMatterOpCertObject = (id, valueConverter) => (value) => [
66
+ (0, import_general.DerObject)(`2b0601040182a27c01${id.toString(16).padStart(2, "0")}`, {
67
+ value: (valueConverter ?? intTo16Chars)(value)
68
+ })
69
+ ];
70
+ const GenericMatterAttCertObject = (id, valueConverter) => (value) => [
71
+ (0, import_general.DerObject)(`2b0601040182a27c02${id.toString(16).padStart(2, "0")}`, {
72
+ value: (valueConverter ?? intTo16Chars)(value)
73
+ })
74
+ ];
75
+ const NodeId_Matter = GenericMatterOpCertObject(1);
76
+ const FirmwareSigningId_Matter = GenericMatterOpCertObject(2);
77
+ const IcacId_Matter = GenericMatterOpCertObject(3);
78
+ const RcacId_Matter = GenericMatterOpCertObject(4);
79
+ const FabricId_Matter = GenericMatterOpCertObject(5);
80
+ const NocCat_Matter = GenericMatterOpCertObject(6, uInt16To8Chars);
81
+ const VendorId_Matter = GenericMatterAttCertObject(1, uInt16To4Chars);
82
+ const ProductId_Matter = GenericMatterAttCertObject(2, uInt16To4Chars);
83
+ //# 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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAuC;AANvC;AAAA;AAAA;AAAA;AAAA;AASA,MAAM,SAAS,MAAM,KAAK,KAAK;AAC/B,MAAM,iBAAiB,QAAQ,KAAK,KAAK;AAIlC,SAAS,eAAe,MAAc;AACzC,SAAO,SAAS,IAAI,oBAAK,wBAAwB,IAAI,MAAM,OAAO,kBAAkB,GAAI;AAC5F;AAEO,SAAS,eAAe,MAAY,WAAW,GAAG;AACrD,SAAO,KAAK,QAAQ,MAAM,oBAAK,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,qBAAM,WAAW,SAAS;AAC3C,WAAS,aAAa,GAAG,OAAO,UAAU,WAAW,QAAQ,OAAO,KAAK,CAAC;AAC1E,SAAO,qBAAM,MAAM,SAAS,EAAE,YAAY;AAC9C;AAEA,SAAS,eAAe,OAAe;AACnC,QAAM,YAAY,IAAI,WAAW,CAAC;AAClC,QAAM,WAAW,qBAAM,WAAW,SAAS;AAC3C,WAAS,UAAU,GAAG,KAAK;AAC3B,SAAO,qBAAM,MAAM,SAAS,EAAE,YAAY;AAC9C;AAEA,SAAS,eAAe,OAAe;AACnC,QAAM,YAAY,IAAI,WAAW,CAAC;AAClC,QAAM,WAAW,qBAAM,WAAW,SAAS;AAC3C,WAAS,UAAU,GAAG,KAAK;AAC3B,SAAO,qBAAM,MAAM,SAAS,EAAE,YAAY;AAC9C;AAWA,MAAM,4BACF,CAAI,IAAY,mBAChB,CAAC,UAAa;AAAA,MACV,0BAAU,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,MACV,0BAAU,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,22 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var attestation_exports = {};
16
+ module.exports = __toCommonJS(attestation_exports);
17
+ /**
18
+ * @license
19
+ * Copyright 2022-2025 Matter.js Authors
20
+ * SPDX-License-Identifier: Apache-2.0
21
+ */
22
+ //# sourceMappingURL=attestation.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/certificate/kinds/definitions/attestation.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }