@matter/protocol 0.16.0-alpha.0-20251106-4e10fd77b → 0.16.0-alpha.0-20251107-6bcb5baf4

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 (83) hide show
  1. package/dist/cjs/advertisement/PairingHintBitmap.d.ts +2 -2
  2. package/dist/cjs/advertisement/PairingHintBitmap.js +1 -1
  3. package/dist/cjs/advertisement/PairingHintBitmap.js.map +1 -1
  4. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -1
  5. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js +22 -4
  6. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +1 -1
  7. package/dist/cjs/certificate/kinds/Icac.d.ts +2 -0
  8. package/dist/cjs/certificate/kinds/Icac.d.ts.map +1 -1
  9. package/dist/cjs/certificate/kinds/Icac.js +6 -0
  10. package/dist/cjs/certificate/kinds/Icac.js.map +1 -1
  11. package/dist/cjs/certificate/kinds/Noc.d.ts +2 -0
  12. package/dist/cjs/certificate/kinds/Noc.d.ts.map +1 -1
  13. package/dist/cjs/certificate/kinds/Noc.js +6 -0
  14. package/dist/cjs/certificate/kinds/Noc.js.map +1 -1
  15. package/dist/cjs/certificate/kinds/OperationalBase.d.ts +6 -1
  16. package/dist/cjs/certificate/kinds/OperationalBase.d.ts.map +1 -1
  17. package/dist/cjs/certificate/kinds/OperationalBase.js +14 -0
  18. package/dist/cjs/certificate/kinds/OperationalBase.js.map +1 -1
  19. package/dist/cjs/certificate/kinds/Rcac.d.ts +2 -0
  20. package/dist/cjs/certificate/kinds/Rcac.d.ts.map +1 -1
  21. package/dist/cjs/certificate/kinds/Rcac.js +6 -0
  22. package/dist/cjs/certificate/kinds/Rcac.js.map +1 -1
  23. package/dist/cjs/certificate/kinds/X509Base.d.ts +10 -3
  24. package/dist/cjs/certificate/kinds/X509Base.d.ts.map +1 -1
  25. package/dist/cjs/certificate/kinds/X509Base.js +301 -13
  26. package/dist/cjs/certificate/kinds/X509Base.js.map +2 -2
  27. package/dist/cjs/certificate/kinds/definitions/asn.d.ts +13 -0
  28. package/dist/cjs/certificate/kinds/definitions/asn.d.ts.map +1 -1
  29. package/dist/cjs/certificate/kinds/definitions/asn.js +32 -22
  30. package/dist/cjs/certificate/kinds/definitions/asn.js.map +2 -2
  31. package/dist/cjs/certificate/kinds/definitions/operational.d.ts +16 -16
  32. package/dist/cjs/certificate/kinds/definitions/operational.js +2 -2
  33. package/dist/cjs/certificate/kinds/definitions/operational.js.map +1 -1
  34. package/dist/cjs/mdns/MdnsConsts.d.ts +1 -1
  35. package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -1
  36. package/dist/cjs/mdns/MdnsConsts.js +1 -1
  37. package/dist/esm/advertisement/PairingHintBitmap.d.ts +2 -2
  38. package/dist/esm/advertisement/PairingHintBitmap.js +1 -1
  39. package/dist/esm/advertisement/PairingHintBitmap.js.map +1 -1
  40. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -1
  41. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js +22 -4
  42. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +1 -1
  43. package/dist/esm/certificate/kinds/Icac.d.ts +2 -0
  44. package/dist/esm/certificate/kinds/Icac.d.ts.map +1 -1
  45. package/dist/esm/certificate/kinds/Icac.js +6 -0
  46. package/dist/esm/certificate/kinds/Icac.js.map +1 -1
  47. package/dist/esm/certificate/kinds/Noc.d.ts +2 -0
  48. package/dist/esm/certificate/kinds/Noc.d.ts.map +1 -1
  49. package/dist/esm/certificate/kinds/Noc.js +6 -0
  50. package/dist/esm/certificate/kinds/Noc.js.map +1 -1
  51. package/dist/esm/certificate/kinds/OperationalBase.d.ts +6 -1
  52. package/dist/esm/certificate/kinds/OperationalBase.d.ts.map +1 -1
  53. package/dist/esm/certificate/kinds/OperationalBase.js +16 -2
  54. package/dist/esm/certificate/kinds/OperationalBase.js.map +1 -1
  55. package/dist/esm/certificate/kinds/Rcac.d.ts +2 -0
  56. package/dist/esm/certificate/kinds/Rcac.d.ts.map +1 -1
  57. package/dist/esm/certificate/kinds/Rcac.js +6 -0
  58. package/dist/esm/certificate/kinds/Rcac.js.map +1 -1
  59. package/dist/esm/certificate/kinds/X509Base.d.ts +10 -3
  60. package/dist/esm/certificate/kinds/X509Base.d.ts.map +1 -1
  61. package/dist/esm/certificate/kinds/X509Base.js +303 -13
  62. package/dist/esm/certificate/kinds/X509Base.js.map +2 -2
  63. package/dist/esm/certificate/kinds/definitions/asn.d.ts +13 -0
  64. package/dist/esm/certificate/kinds/definitions/asn.d.ts.map +1 -1
  65. package/dist/esm/certificate/kinds/definitions/asn.js +32 -22
  66. package/dist/esm/certificate/kinds/definitions/asn.js.map +1 -1
  67. package/dist/esm/certificate/kinds/definitions/operational.d.ts +16 -16
  68. package/dist/esm/certificate/kinds/definitions/operational.js +2 -2
  69. package/dist/esm/certificate/kinds/definitions/operational.js.map +1 -1
  70. package/dist/esm/mdns/MdnsConsts.d.ts +1 -1
  71. package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -1
  72. package/dist/esm/mdns/MdnsConsts.js +1 -1
  73. package/package.json +6 -6
  74. package/src/advertisement/PairingHintBitmap.ts +1 -1
  75. package/src/advertisement/mdns/CommissionableMdnsAdvertisement.ts +23 -6
  76. package/src/certificate/kinds/Icac.ts +7 -0
  77. package/src/certificate/kinds/Noc.ts +7 -0
  78. package/src/certificate/kinds/OperationalBase.ts +18 -3
  79. package/src/certificate/kinds/Rcac.ts +7 -0
  80. package/src/certificate/kinds/X509Base.ts +422 -7
  81. package/src/certificate/kinds/definitions/asn.ts +48 -25
  82. package/src/certificate/kinds/definitions/operational.ts +2 -2
  83. package/src/mdns/MdnsConsts.ts +1 -1
@@ -38,7 +38,7 @@ export declare namespace OperationalCertificate {
38
38
  signatureAlgorithm: import("#types").FieldType<number>;
39
39
  issuer: import("#types").FieldType<import("#types").TypeFromFields<{
40
40
  commonName: import("#types").OptionalFieldType<string>;
41
- sureName: import("#types").OptionalFieldType<string>;
41
+ surName: import("#types").OptionalFieldType<string>;
42
42
  serialNum: import("#types").OptionalFieldType<string>;
43
43
  countryName: import("#types").OptionalFieldType<string>;
44
44
  localityName: import("#types").OptionalFieldType<string>;
@@ -62,7 +62,7 @@ export declare namespace OperationalCertificate {
62
62
  caseAuthenticatedTags: import("#types").OptionalRepeatedFieldType<import("#types").CaseAuthenticatedTag[]>;
63
63
  } & {
64
64
  commonNamePs: import("#types").OptionalFieldType<string>;
65
- sureNamePs: import("#types").OptionalFieldType<string>;
65
+ surNamePs: import("#types").OptionalFieldType<string>;
66
66
  serialNumPs: import("#types").OptionalFieldType<string>;
67
67
  countryNamePs: import("#types").OptionalFieldType<string>;
68
68
  localityNamePs: import("#types").OptionalFieldType<string>;
@@ -81,7 +81,7 @@ export declare namespace OperationalCertificate {
81
81
  notAfter: import("#types").FieldType<number>;
82
82
  subject: import("#types").FieldType<import("#types").TypeFromFields<{
83
83
  commonName: import("#types").OptionalFieldType<string>;
84
- sureName: import("#types").OptionalFieldType<string>;
84
+ surName: import("#types").OptionalFieldType<string>;
85
85
  serialNum: import("#types").OptionalFieldType<string>;
86
86
  countryName: import("#types").OptionalFieldType<string>;
87
87
  localityName: import("#types").OptionalFieldType<string>;
@@ -101,7 +101,7 @@ export declare namespace OperationalCertificate {
101
101
  fabricId: import("#types").OptionalFieldType<import("#types").FabricId>;
102
102
  } & {
103
103
  commonNamePs: import("#types").OptionalFieldType<string>;
104
- sureNamePs: import("#types").OptionalFieldType<string>;
104
+ surNamePs: import("#types").OptionalFieldType<string>;
105
105
  serialNumPs: import("#types").OptionalFieldType<string>;
106
106
  countryNamePs: import("#types").OptionalFieldType<string>;
107
107
  localityNamePs: import("#types").OptionalFieldType<string>;
@@ -147,7 +147,7 @@ export declare namespace OperationalCertificate {
147
147
  signatureAlgorithm: import("#types").FieldType<number>;
148
148
  issuer: import("#types").FieldType<import("#types").TypeFromFields<{
149
149
  commonName: import("#types").OptionalFieldType<string>;
150
- sureName: import("#types").OptionalFieldType<string>;
150
+ surName: import("#types").OptionalFieldType<string>;
151
151
  serialNum: import("#types").OptionalFieldType<string>;
152
152
  countryName: import("#types").OptionalFieldType<string>;
153
153
  localityName: import("#types").OptionalFieldType<string>;
@@ -171,7 +171,7 @@ export declare namespace OperationalCertificate {
171
171
  caseAuthenticatedTags: import("#types").OptionalRepeatedFieldType<import("#types").CaseAuthenticatedTag[]>;
172
172
  } & {
173
173
  commonNamePs: import("#types").OptionalFieldType<string>;
174
- sureNamePs: import("#types").OptionalFieldType<string>;
174
+ surNamePs: import("#types").OptionalFieldType<string>;
175
175
  serialNumPs: import("#types").OptionalFieldType<string>;
176
176
  countryNamePs: import("#types").OptionalFieldType<string>;
177
177
  localityNamePs: import("#types").OptionalFieldType<string>;
@@ -190,7 +190,7 @@ export declare namespace OperationalCertificate {
190
190
  notAfter: import("#types").FieldType<number>;
191
191
  subject: import("#types").FieldType<import("#types").TypeFromFields<{
192
192
  commonName: import("#types").OptionalFieldType<string>;
193
- sureName: import("#types").OptionalFieldType<string>;
193
+ surName: import("#types").OptionalFieldType<string>;
194
194
  serialNum: import("#types").OptionalFieldType<string>;
195
195
  countryName: import("#types").OptionalFieldType<string>;
196
196
  localityName: import("#types").OptionalFieldType<string>;
@@ -211,7 +211,7 @@ export declare namespace OperationalCertificate {
211
211
  caseAuthenticatedTags: import("#types").OptionalRepeatedFieldType<import("#types").CaseAuthenticatedTag[]>;
212
212
  } & {
213
213
  commonNamePs: import("#types").OptionalFieldType<string>;
214
- sureNamePs: import("#types").OptionalFieldType<string>;
214
+ surNamePs: import("#types").OptionalFieldType<string>;
215
215
  serialNumPs: import("#types").OptionalFieldType<string>;
216
216
  countryNamePs: import("#types").OptionalFieldType<string>;
217
217
  localityNamePs: import("#types").OptionalFieldType<string>;
@@ -257,7 +257,7 @@ export declare namespace OperationalCertificate {
257
257
  signatureAlgorithm: import("#types").FieldType<number>;
258
258
  issuer: import("#types").FieldType<import("#types").TypeFromFields<{
259
259
  commonName: import("#types").OptionalFieldType<string>;
260
- sureName: import("#types").OptionalFieldType<string>;
260
+ surName: import("#types").OptionalFieldType<string>;
261
261
  serialNum: import("#types").OptionalFieldType<string>;
262
262
  countryName: import("#types").OptionalFieldType<string>;
263
263
  localityName: import("#types").OptionalFieldType<string>;
@@ -281,7 +281,7 @@ export declare namespace OperationalCertificate {
281
281
  caseAuthenticatedTags: import("#types").OptionalRepeatedFieldType<import("#types").CaseAuthenticatedTag[]>;
282
282
  } & {
283
283
  commonNamePs: import("#types").OptionalFieldType<string>;
284
- sureNamePs: import("#types").OptionalFieldType<string>;
284
+ surNamePs: import("#types").OptionalFieldType<string>;
285
285
  serialNumPs: import("#types").OptionalFieldType<string>;
286
286
  countryNamePs: import("#types").OptionalFieldType<string>;
287
287
  localityNamePs: import("#types").OptionalFieldType<string>;
@@ -300,7 +300,7 @@ export declare namespace OperationalCertificate {
300
300
  notAfter: import("#types").FieldType<number>;
301
301
  subject: import("#types").FieldType<import("#types").TypeFromFields<{
302
302
  commonName: import("#types").OptionalFieldType<string>;
303
- sureName: import("#types").OptionalFieldType<string>;
303
+ surName: import("#types").OptionalFieldType<string>;
304
304
  serialNum: import("#types").OptionalFieldType<string>;
305
305
  countryName: import("#types").OptionalFieldType<string>;
306
306
  localityName: import("#types").OptionalFieldType<string>;
@@ -320,7 +320,7 @@ export declare namespace OperationalCertificate {
320
320
  fabricId: import("#types").OptionalFieldType<import("#types").FabricId>;
321
321
  } & {
322
322
  commonNamePs: import("#types").OptionalFieldType<string>;
323
- sureNamePs: import("#types").OptionalFieldType<string>;
323
+ surNamePs: import("#types").OptionalFieldType<string>;
324
324
  serialNumPs: import("#types").OptionalFieldType<string>;
325
325
  countryNamePs: import("#types").OptionalFieldType<string>;
326
326
  localityNamePs: import("#types").OptionalFieldType<string>;
@@ -366,7 +366,7 @@ export declare namespace OperationalCertificate {
366
366
  signatureAlgorithm: import("#types").FieldType<number>;
367
367
  issuer: import("#types").FieldType<import("#types").TypeFromFields<{
368
368
  commonName: import("#types").OptionalFieldType<string>;
369
- sureName: import("#types").OptionalFieldType<string>;
369
+ surName: import("#types").OptionalFieldType<string>;
370
370
  serialNum: import("#types").OptionalFieldType<string>;
371
371
  countryName: import("#types").OptionalFieldType<string>;
372
372
  localityName: import("#types").OptionalFieldType<string>;
@@ -390,7 +390,7 @@ export declare namespace OperationalCertificate {
390
390
  caseAuthenticatedTags: import("#types").OptionalRepeatedFieldType<import("#types").CaseAuthenticatedTag[]>;
391
391
  } & {
392
392
  commonNamePs: import("#types").OptionalFieldType<string>;
393
- sureNamePs: import("#types").OptionalFieldType<string>;
393
+ surNamePs: import("#types").OptionalFieldType<string>;
394
394
  serialNumPs: import("#types").OptionalFieldType<string>;
395
395
  countryNamePs: import("#types").OptionalFieldType<string>;
396
396
  localityNamePs: import("#types").OptionalFieldType<string>;
@@ -409,7 +409,7 @@ export declare namespace OperationalCertificate {
409
409
  notAfter: import("#types").FieldType<number>;
410
410
  subject: import("#types").FieldType<import("#types").TypeFromFields<{
411
411
  commonName: import("#types").OptionalFieldType<string>;
412
- sureName: import("#types").OptionalFieldType<string>;
412
+ surName: import("#types").OptionalFieldType<string>;
413
413
  serialNum: import("#types").OptionalFieldType<string>;
414
414
  countryName: import("#types").OptionalFieldType<string>;
415
415
  localityName: import("#types").OptionalFieldType<string>;
@@ -428,7 +428,7 @@ export declare namespace OperationalCertificate {
428
428
  vvsId: import("#types").FieldType<number | bigint>;
429
429
  } & {
430
430
  commonNamePs: import("#types").OptionalFieldType<string>;
431
- sureNamePs: import("#types").OptionalFieldType<string>;
431
+ surNamePs: import("#types").OptionalFieldType<string>;
432
432
  serialNumPs: import("#types").OptionalFieldType<string>;
433
433
  countryNamePs: import("#types").OptionalFieldType<string>;
434
434
  localityNamePs: import("#types").OptionalFieldType<string>;
@@ -53,7 +53,7 @@ var OperationalCertificate;
53
53
  const fields = {
54
54
  // Standard DNs
55
55
  commonName: TlvOptionalField(1, TlvString),
56
- sureName: TlvOptionalField(2, TlvString),
56
+ surName: TlvOptionalField(2, TlvString),
57
57
  serialNum: TlvOptionalField(3, TlvString),
58
58
  countryName: TlvOptionalField(4, TlvString),
59
59
  localityName: TlvOptionalField(5, TlvString),
@@ -72,7 +72,7 @@ var OperationalCertificate;
72
72
  ...matterFields,
73
73
  // Standard DNs when encoded as Printable String
74
74
  commonNamePs: TlvOptionalField(129, TlvString),
75
- sureNamePs: TlvOptionalField(130, TlvString),
75
+ surNamePs: TlvOptionalField(130, TlvString),
76
76
  serialNumPs: TlvOptionalField(131, TlvString),
77
77
  countryNamePs: TlvOptionalField(132, TlvString),
78
78
  localityNamePs: TlvOptionalField(133, TlvString),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/certificate/kinds/definitions/operational.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["OperationalCertificate"]
6
6
  }
@@ -15,7 +15,7 @@ export declare const DEFAULT_PAIRING_HINT: {
15
15
  powerCycle: boolean;
16
16
  deviceManual: boolean;
17
17
  };
18
- export declare const PAIRING_HINTS_REQUIRING_INSTRUCTION: ("powerCycle" | "deviceManufacturerUrl" | "administrator" | "settingsMenuOnNode" | "customInstruction" | "deviceManual" | "pressResetButton" | "pressResetButtonWithApplicationOfPower" | "pressRestButtonForNumberOfSeconds" | "pressResetButtonUntilLightBlinks" | "pressResetButtonForNumberOfSecondsWithApplicationOfPower" | "pressResetButtonUntilLightBlinksWithApplicationOfPower" | "pressResetButtonNumberOfTimes" | "pressSetupButton" | "pressSetupButtonWithApplicationOfPower" | "pressSetupButtonForNumberOfSeconds" | "pressSetupButtonUntilLightBlinks" | "pressSetupButtonForNumberOfSecondsWithApplicationOfPower" | "pressSetupButtonUntilLightBlinksWithApplicationOfPower" | "pressSetupButtonNumberOfTimes")[];
18
+ export declare const PAIRING_HINTS_REQUIRING_INSTRUCTION: ("powerCycle" | "deviceManufacturerUrl" | "administrator" | "settingsMenuOnNode" | "customInstruction" | "deviceManual" | "pressResetButton" | "pressResetButtonWithApplicationOfPower" | "pressResetButtonForNumberOfSeconds" | "pressResetButtonUntilLightBlinks" | "pressResetButtonForNumberOfSecondsWithApplicationOfPower" | "pressResetButtonUntilLightBlinksWithApplicationOfPower" | "pressResetButtonNumberOfTimes" | "pressSetupButton" | "pressSetupButtonWithApplicationOfPower" | "pressSetupButtonForNumberOfSeconds" | "pressSetupButtonUntilLightBlinks" | "pressSetupButtonForNumberOfSecondsWithApplicationOfPower" | "pressSetupButtonUntilLightBlinksWithApplicationOfPower" | "pressSetupButtonNumberOfTimes")[];
19
19
  export declare const getFabricQname: (operationalIdString: string) => string;
20
20
  export declare const getOperationalDeviceQname: (operationalIdString: string, nodeIdString: string) => string;
21
21
  export declare const getVendorQname: (vendorId: VendorId) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"MdnsConsts.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsConsts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AACtE,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AACrE,eAAO,MAAM,iCAAiC,wBAAwB,CAAC;AACvE,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AAEzD,eAAO,MAAM,oBAAoB;;;CAGhC,CAAC;AAEF,eAAO,MAAM,mCAAmC,usBAY/C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,qBAAqB,MAAM,WAA4D,CAAC;AACvH,eAAO,MAAM,yBAAyB,GAAI,qBAAqB,MAAM,EAAE,cAAc,MAAM,WACvB,CAAC;AACrE,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,WAA4D,CAAC;AAC9G,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,WAA8D,CAAC;AACpH,eAAO,MAAM,0BAA0B,GAAI,oBAAoB,MAAM,WACA,CAAC;AACtE,eAAO,MAAM,yBAAyB,GAAI,mBAAmB,MAAM,WACC,CAAC;AACrE,eAAO,MAAM,yBAAyB,cAAsD,CAAC;AAC7F,eAAO,MAAM,4BAA4B,GAAI,YAAY,MAAM,WAAuD,CAAC;AACvH,eAAO,MAAM,0BAA0B,GAAI,YAAY,MAAM,WAAyD,CAAC"}
1
+ {"version":3,"file":"MdnsConsts.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsConsts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AACtE,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AACrE,eAAO,MAAM,iCAAiC,wBAAwB,CAAC;AACvE,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AAEzD,eAAO,MAAM,oBAAoB;;;CAGhC,CAAC;AAEF,eAAO,MAAM,mCAAmC,wsBAY/C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,qBAAqB,MAAM,WAA4D,CAAC;AACvH,eAAO,MAAM,yBAAyB,GAAI,qBAAqB,MAAM,EAAE,cAAc,MAAM,WACvB,CAAC;AACrE,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,WAA4D,CAAC;AAC9G,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,WAA8D,CAAC;AACpH,eAAO,MAAM,0BAA0B,GAAI,oBAAoB,MAAM,WACA,CAAC;AACtE,eAAO,MAAM,yBAAyB,GAAI,mBAAmB,MAAM,WACC,CAAC;AACrE,eAAO,MAAM,yBAAyB,cAAsD,CAAC;AAC7F,eAAO,MAAM,4BAA4B,GAAI,YAAY,MAAM,WAAuD,CAAC;AACvH,eAAO,MAAM,0BAA0B,GAAI,YAAY,MAAM,WAAyD,CAAC"}
@@ -16,7 +16,7 @@ const DEFAULT_PAIRING_HINT = {
16
16
  };
17
17
  const PAIRING_HINTS_REQUIRING_INSTRUCTION = Array(
18
18
  "customInstruction",
19
- "pressRestButtonForNumberOfSeconds",
19
+ "pressResetButtonForNumberOfSeconds",
20
20
  "pressResetButtonUntilLightBlinks",
21
21
  "pressResetButtonForNumberOfSecondsWithApplicationOfPower",
22
22
  "pressResetButtonUntilLightBlinksWithApplicationOfPower",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/protocol",
3
- "version": "0.16.0-alpha.0-20251106-4e10fd77b",
3
+ "version": "0.16.0-alpha.0-20251107-6bcb5baf4",
4
4
  "description": "Low-level APIs for Matter interaction",
5
5
  "keywords": [
6
6
  "iot",
@@ -40,13 +40,13 @@
40
40
  "#*": "./src/*"
41
41
  },
42
42
  "dependencies": {
43
- "@matter/general": "0.16.0-alpha.0-20251106-4e10fd77b",
44
- "@matter/model": "0.16.0-alpha.0-20251106-4e10fd77b",
45
- "@matter/types": "0.16.0-alpha.0-20251106-4e10fd77b"
43
+ "@matter/general": "0.16.0-alpha.0-20251107-6bcb5baf4",
44
+ "@matter/model": "0.16.0-alpha.0-20251107-6bcb5baf4",
45
+ "@matter/types": "0.16.0-alpha.0-20251107-6bcb5baf4"
46
46
  },
47
47
  "devDependencies": {
48
- "@matter/tools": "0.16.0-alpha.0-20251106-4e10fd77b",
49
- "@matter/testing": "0.16.0-alpha.0-20251106-4e10fd77b"
48
+ "@matter/tools": "0.16.0-alpha.0-20251107-6bcb5baf4",
49
+ "@matter/testing": "0.16.0-alpha.0-20251107-6bcb5baf4"
50
50
  },
51
51
  "files": [
52
52
  "dist/**/*",
@@ -59,7 +59,7 @@ export const PairingHintBitmap = {
59
59
  * The Device will enter Commissioning Mode when reset button is pressed for N seconds. The exact value of N SHALL
60
60
  * be made available via PI key.
61
61
  */
62
- pressRestButtonForNumberOfSeconds: BitFlag(8),
62
+ pressResetButtonForNumberOfSeconds: BitFlag(8),
63
63
 
64
64
  /**
65
65
  * The Device will enter Commissioning Mode when reset button is pressed until associated light blinks.
@@ -106,13 +106,30 @@ export class CommissionableMdnsAdvertisement extends MdnsAdvertisement<ServiceDe
106
106
  #validatePairingInstructions() {
107
107
  const { pairingHint, pairingInstructions } = this.description;
108
108
 
109
- const needsInstructions =
110
- pairingHint && PAIRING_HINTS_REQUIRING_INSTRUCTION.find(hint => pairingHint[hint] === true);
111
-
112
- if (needsInstructions && !pairingInstructions) {
113
- throw new ImplementationError(
114
- `Pairing instructions required for pairing hint of type "${needsInstructions}"`,
109
+ if (pairingHint) {
110
+ if (Object.values(pairingHint).every(v => !v)) {
111
+ throw new ImplementationError("At least one pairing hint must be set if pairing hint is provided");
112
+ }
113
+
114
+ const needsInstructionsCount = PAIRING_HINTS_REQUIRING_INSTRUCTION.reduce(
115
+ (count, hint) => (pairingHint[hint] === true ? count + 1 : count),
116
+ 0,
115
117
  );
118
+ if (needsInstructionsCount > 1) {
119
+ throw new ImplementationError(
120
+ `Only one pairing hint requiring instructions can be set, but got ${needsInstructionsCount}`,
121
+ );
122
+ } else if (needsInstructionsCount === 1 && !pairingInstructions) {
123
+ throw new ImplementationError(
124
+ `Pairing instructions are required when a pairing hint requiring instructions is set`,
125
+ );
126
+ } else if (needsInstructionsCount === 0 && pairingInstructions) {
127
+ throw new ImplementationError(
128
+ `Pairing instructions provided but no pairing hint requiring instructions set`,
129
+ );
130
+ }
131
+ } else if (pairingInstructions) {
132
+ throw new ImplementationError("Pairing instructions provided but no pairing hint set");
116
133
  }
117
134
  }
118
135
  }
@@ -11,6 +11,7 @@ import { ExtensionKeyUsageSchema } from "./definitions/base.js";
11
11
  import { OperationalCertificate } from "./definitions/operational.js";
12
12
  import { OperationalBase } from "./OperationalBase.js";
13
13
  import { Rcac } from "./Rcac.js";
14
+ import { X509Base } from "./X509Base.js";
14
15
 
15
16
  /**
16
17
  * Represents an Intermediate Certificate
@@ -21,6 +22,12 @@ export class Icac extends OperationalBase<OperationalCertificate.Icac> {
21
22
  return new Icac(OperationalCertificate.TlvIcac.decode(tlv));
22
23
  }
23
24
 
25
+ /** Construct the class from an ASN.1/DER encoded certificate */
26
+ static fromAsn1(asn1: Bytes): Icac {
27
+ const cert = X509Base.parseAsn1Certificate(asn1);
28
+ return new Icac(cert as OperationalCertificate.Icac);
29
+ }
30
+
24
31
  /** Validates all basic certificate fields on construction. */
25
32
  protected validateFields() {
26
33
  const {
@@ -11,6 +11,7 @@ import { OperationalCertificate } from "./definitions/operational.js";
11
11
  import { Icac } from "./Icac.js";
12
12
  import { OperationalBase } from "./OperationalBase.js";
13
13
  import { Rcac } from "./Rcac.js";
14
+ import { X509Base } from "./X509Base.js";
14
15
 
15
16
  export class Noc extends OperationalBase<OperationalCertificate.Noc> {
16
17
  /** Construct the class from a Tlv version of the certificate */
@@ -18,6 +19,12 @@ export class Noc extends OperationalBase<OperationalCertificate.Noc> {
18
19
  return new Noc(OperationalCertificate.TlvNoc.decode(tlv));
19
20
  }
20
21
 
22
+ /** Construct the class from an ASN.1/DER encoded certificate */
23
+ static fromAsn1(asn1: Bytes) {
24
+ const cert = X509Base.parseAsn1Certificate(asn1);
25
+ return new Noc(cert as OperationalCertificate.Noc);
26
+ }
27
+
21
28
  /** Validates all basic certificate fields on construction. */
22
29
  protected validateFields() {
23
30
  const {
@@ -4,9 +4,9 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { Bytes, Logger, Time } from "#general";
7
+ import { Bytes, DerBitString, DerCodec, Logger, Time, X962 } from "#general";
8
8
  import { X509Base } from "./X509Base.js";
9
- import { CertificateError, Unsigned } from "./common.js";
9
+ import { assertCertificateDerSize, CertificateError, Unsigned } from "./common.js";
10
10
  import { X509Certificate } from "./definitions/base.js";
11
11
 
12
12
  const logger = Logger.get("OperationalBaseCertificate");
@@ -24,7 +24,22 @@ export abstract class OperationalBase<CT extends X509Certificate> extends X509Ba
24
24
  protected abstract validateFields(): void;
25
25
 
26
26
  /** Encodes the signed certificate into the Matter TLV format. */
27
- abstract asSignedTlv(signature: Bytes): Bytes;
27
+ abstract asSignedTlv(): Bytes;
28
+
29
+ /**
30
+ * Returns the signed certificate in ASN.1 DER format.
31
+ * If the certificate is not signed, it throws a CertificateError.
32
+ */
33
+ asSignedAsn1() {
34
+ const certificate = this.genericBuildAsn1Structure(this.cert);
35
+ const certBytes = DerCodec.encode({
36
+ certificate,
37
+ signAlgorithm: X962.EcdsaWithSHA256,
38
+ signature: DerBitString(this.signature),
39
+ });
40
+ assertCertificateDerSize(certBytes);
41
+ return certBytes;
42
+ }
28
43
 
29
44
  /**
30
45
  * Verifies general requirements a Matter certificate fields must fulfill.
@@ -10,6 +10,7 @@ import { CertificateError } from "./common.js";
10
10
  import { ExtensionKeyUsageSchema } from "./definitions/base.js";
11
11
  import { OperationalCertificate } from "./definitions/operational.js";
12
12
  import { OperationalBase } from "./OperationalBase.js";
13
+ import { X509Base } from "./X509Base.js";
13
14
 
14
15
  export class Rcac extends OperationalBase<OperationalCertificate.Rcac> {
15
16
  /** Construct the class from a Tlv version of the certificate */
@@ -17,6 +18,12 @@ export class Rcac extends OperationalBase<OperationalCertificate.Rcac> {
17
18
  return new Rcac(OperationalCertificate.TlvRcac.decode(tlv));
18
19
  }
19
20
 
21
+ /** Construct the class from an ASN.1/DER encoded certificate */
22
+ static fromAsn1(asn1: Bytes): Rcac {
23
+ const cert = X509Base.parseAsn1Certificate(asn1);
24
+ return new Rcac(cert as OperationalCertificate.Rcac);
25
+ }
26
+
20
27
  /** Validates all basic certificate fields on construction. */
21
28
  protected validateFields() {
22
29
  const {