@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.
- package/dist/cjs/advertisement/PairingHintBitmap.d.ts +2 -2
- package/dist/cjs/advertisement/PairingHintBitmap.js +1 -1
- package/dist/cjs/advertisement/PairingHintBitmap.js.map +1 -1
- package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -1
- package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js +22 -4
- package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +1 -1
- package/dist/cjs/certificate/kinds/Icac.d.ts +2 -0
- package/dist/cjs/certificate/kinds/Icac.d.ts.map +1 -1
- package/dist/cjs/certificate/kinds/Icac.js +6 -0
- package/dist/cjs/certificate/kinds/Icac.js.map +1 -1
- package/dist/cjs/certificate/kinds/Noc.d.ts +2 -0
- package/dist/cjs/certificate/kinds/Noc.d.ts.map +1 -1
- package/dist/cjs/certificate/kinds/Noc.js +6 -0
- package/dist/cjs/certificate/kinds/Noc.js.map +1 -1
- package/dist/cjs/certificate/kinds/OperationalBase.d.ts +6 -1
- package/dist/cjs/certificate/kinds/OperationalBase.d.ts.map +1 -1
- package/dist/cjs/certificate/kinds/OperationalBase.js +14 -0
- package/dist/cjs/certificate/kinds/OperationalBase.js.map +1 -1
- package/dist/cjs/certificate/kinds/Rcac.d.ts +2 -0
- package/dist/cjs/certificate/kinds/Rcac.d.ts.map +1 -1
- package/dist/cjs/certificate/kinds/Rcac.js +6 -0
- package/dist/cjs/certificate/kinds/Rcac.js.map +1 -1
- package/dist/cjs/certificate/kinds/X509Base.d.ts +10 -3
- package/dist/cjs/certificate/kinds/X509Base.d.ts.map +1 -1
- package/dist/cjs/certificate/kinds/X509Base.js +301 -13
- package/dist/cjs/certificate/kinds/X509Base.js.map +2 -2
- package/dist/cjs/certificate/kinds/definitions/asn.d.ts +13 -0
- package/dist/cjs/certificate/kinds/definitions/asn.d.ts.map +1 -1
- package/dist/cjs/certificate/kinds/definitions/asn.js +32 -22
- package/dist/cjs/certificate/kinds/definitions/asn.js.map +2 -2
- package/dist/cjs/certificate/kinds/definitions/operational.d.ts +16 -16
- package/dist/cjs/certificate/kinds/definitions/operational.js +2 -2
- package/dist/cjs/certificate/kinds/definitions/operational.js.map +1 -1
- package/dist/cjs/mdns/MdnsConsts.d.ts +1 -1
- package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsConsts.js +1 -1
- package/dist/esm/advertisement/PairingHintBitmap.d.ts +2 -2
- package/dist/esm/advertisement/PairingHintBitmap.js +1 -1
- package/dist/esm/advertisement/PairingHintBitmap.js.map +1 -1
- package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -1
- package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js +22 -4
- package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +1 -1
- package/dist/esm/certificate/kinds/Icac.d.ts +2 -0
- package/dist/esm/certificate/kinds/Icac.d.ts.map +1 -1
- package/dist/esm/certificate/kinds/Icac.js +6 -0
- package/dist/esm/certificate/kinds/Icac.js.map +1 -1
- package/dist/esm/certificate/kinds/Noc.d.ts +2 -0
- package/dist/esm/certificate/kinds/Noc.d.ts.map +1 -1
- package/dist/esm/certificate/kinds/Noc.js +6 -0
- package/dist/esm/certificate/kinds/Noc.js.map +1 -1
- package/dist/esm/certificate/kinds/OperationalBase.d.ts +6 -1
- package/dist/esm/certificate/kinds/OperationalBase.d.ts.map +1 -1
- package/dist/esm/certificate/kinds/OperationalBase.js +16 -2
- package/dist/esm/certificate/kinds/OperationalBase.js.map +1 -1
- package/dist/esm/certificate/kinds/Rcac.d.ts +2 -0
- package/dist/esm/certificate/kinds/Rcac.d.ts.map +1 -1
- package/dist/esm/certificate/kinds/Rcac.js +6 -0
- package/dist/esm/certificate/kinds/Rcac.js.map +1 -1
- package/dist/esm/certificate/kinds/X509Base.d.ts +10 -3
- package/dist/esm/certificate/kinds/X509Base.d.ts.map +1 -1
- package/dist/esm/certificate/kinds/X509Base.js +303 -13
- package/dist/esm/certificate/kinds/X509Base.js.map +2 -2
- package/dist/esm/certificate/kinds/definitions/asn.d.ts +13 -0
- package/dist/esm/certificate/kinds/definitions/asn.d.ts.map +1 -1
- package/dist/esm/certificate/kinds/definitions/asn.js +32 -22
- package/dist/esm/certificate/kinds/definitions/asn.js.map +1 -1
- package/dist/esm/certificate/kinds/definitions/operational.d.ts +16 -16
- package/dist/esm/certificate/kinds/definitions/operational.js +2 -2
- package/dist/esm/certificate/kinds/definitions/operational.js.map +1 -1
- package/dist/esm/mdns/MdnsConsts.d.ts +1 -1
- package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsConsts.js +1 -1
- package/package.json +6 -6
- package/src/advertisement/PairingHintBitmap.ts +1 -1
- package/src/advertisement/mdns/CommissionableMdnsAdvertisement.ts +23 -6
- package/src/certificate/kinds/Icac.ts +7 -0
- package/src/certificate/kinds/Noc.ts +7 -0
- package/src/certificate/kinds/OperationalBase.ts +18 -3
- package/src/certificate/kinds/Rcac.ts +7 -0
- package/src/certificate/kinds/X509Base.ts +422 -7
- package/src/certificate/kinds/definitions/asn.ts +48 -25
- package/src/certificate/kinds/definitions/operational.ts +2 -2
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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>;
|
|
@@ -59,7 +59,7 @@ var OperationalCertificate;
|
|
|
59
59
|
const fields = {
|
|
60
60
|
// Standard DNs
|
|
61
61
|
commonName: (0, import_types.TlvOptionalField)(1, import_types.TlvString),
|
|
62
|
-
|
|
62
|
+
surName: (0, import_types.TlvOptionalField)(2, import_types.TlvString),
|
|
63
63
|
serialNum: (0, import_types.TlvOptionalField)(3, import_types.TlvString),
|
|
64
64
|
countryName: (0, import_types.TlvOptionalField)(4, import_types.TlvString),
|
|
65
65
|
localityName: (0, import_types.TlvOptionalField)(5, import_types.TlvString),
|
|
@@ -78,7 +78,7 @@ var OperationalCertificate;
|
|
|
78
78
|
...matterFields,
|
|
79
79
|
// Standard DNs when encoded as Printable String
|
|
80
80
|
commonNamePs: (0, import_types.TlvOptionalField)(129, import_types.TlvString),
|
|
81
|
-
|
|
81
|
+
surNamePs: (0, import_types.TlvOptionalField)(130, import_types.TlvString),
|
|
82
82
|
serialNumPs: (0, import_types.TlvOptionalField)(131, import_types.TlvString),
|
|
83
83
|
countryNamePs: (0, import_types.TlvOptionalField)(132, import_types.TlvString),
|
|
84
84
|
localityNamePs: (0, import_types.TlvOptionalField)(133, import_types.TlvString),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/certificate/kinds/definitions/operational.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,mBAoBO;AACP,kBAAwC;AA1BxC;AAAA;AAAA;AAAA;AAAA;AAgCO,MAAM,2BAA2B;AAEjC,MAAM,8BAA0B,4BAAc;AAAA,EACjD,sBAAkB;AAAA,IACd;AAAA,QACA,wBAAU;AAAA,MACN,UAAM,uBAAS,GAAG,uBAAU;AAAA,MAC5B,aAAS,+BAAiB,GAAG,qBAAQ;AAAA,IACzC,CAAC;AAAA,EACL;AAAA,EACA,cAAU,uBAAS,OAAG,wBAAU,wBAAW,mCAAuB,CAAC;AAAA,EACnE,sBAAkB,+BAAiB,OAAG,uBAAS,qBAAQ,CAAC;AAAA,EACxD,0BAAsB,uBAAS,GAAG,2BAAc,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,EACrE,4BAAwB,uBAAS,GAAG,2BAAc,MAAM,EAAE,QAAQ,GAAG,CAAC,CAAC;AAAA,EACvE,qBAAiB,uCAAyB,GAAG,0BAAa;AAC9D,CAAC;AAKM,IAAU;AAAA,CAAV,CAAUA,4BAAV;AAEH,QAAM,sCAAsC;AAAA,IACxC,YAAQ,+BAAiB,IAAI,sBAAS;AAAA,IACtC,uBAAmB,+BAAiB,IAAI,sBAAS;AAAA,IACjD,YAAQ,+BAAiB,IAAI,sBAAS;AAAA,IACtC,YAAQ,+BAAiB,IAAI,sBAAS;AAAA,IACtC,cAAU,+BAAiB,IAAI,wBAAW;AAAA,IAC1C,2BAAuB,uCAAyB,IAAI,sCAAyB,EAAE,WAAW,EAAE,CAAC;AAAA,EACjG;AAMA,QAAM,4CAA4C,CAAI,iBAAoB;AACtE,UAAM,SAAS;AAAA;AAAA,MAEX,gBAAY,+BAAiB,GAAG,sBAAS;AAAA,MACzC,
|
|
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" | "
|
|
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,
|
|
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"}
|
|
@@ -56,7 +56,7 @@ const DEFAULT_PAIRING_HINT = {
|
|
|
56
56
|
};
|
|
57
57
|
const PAIRING_HINTS_REQUIRING_INSTRUCTION = Array(
|
|
58
58
|
"customInstruction",
|
|
59
|
-
"
|
|
59
|
+
"pressResetButtonForNumberOfSeconds",
|
|
60
60
|
"pressResetButtonUntilLightBlinks",
|
|
61
61
|
"pressResetButtonForNumberOfSecondsWithApplicationOfPower",
|
|
62
62
|
"pressResetButtonUntilLightBlinksWithApplicationOfPower",
|
|
@@ -49,7 +49,7 @@ export declare const PairingHintBitmap: {
|
|
|
49
49
|
* The Device will enter Commissioning Mode when reset button is pressed for N seconds. The exact value of N SHALL
|
|
50
50
|
* be made available via PI key.
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
pressResetButtonForNumberOfSeconds: BitFlag;
|
|
53
53
|
/**
|
|
54
54
|
* The Device will enter Commissioning Mode when reset button is pressed until associated light blinks.
|
|
55
55
|
* Information on color of light MAY be made available via PI key (see Note 1).
|
|
@@ -149,7 +149,7 @@ export declare const PairingHintBitmapSchema: import("@matter/types").BitmapSche
|
|
|
149
149
|
* The Device will enter Commissioning Mode when reset button is pressed for N seconds. The exact value of N SHALL
|
|
150
150
|
* be made available via PI key.
|
|
151
151
|
*/
|
|
152
|
-
|
|
152
|
+
pressResetButtonForNumberOfSeconds: BitFlag;
|
|
153
153
|
/**
|
|
154
154
|
* The Device will enter Commissioning Mode when reset button is pressed until associated light blinks.
|
|
155
155
|
* Information on color of light MAY be made available via PI key (see Note 1).
|
|
@@ -49,7 +49,7 @@ const PairingHintBitmap = {
|
|
|
49
49
|
* The Device will enter Commissioning Mode when reset button is pressed for N seconds. The exact value of N SHALL
|
|
50
50
|
* be made available via PI key.
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
pressResetButtonForNumberOfSeconds: BitFlag(8),
|
|
53
53
|
/**
|
|
54
54
|
* The Device will enter Commissioning Mode when reset button is pressed until associated light blinks.
|
|
55
55
|
* Information on color of light MAY be made available via PI key (see Note 1).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/advertisement/PairingHintBitmap.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,SAAS,oBAAoB;AAE/B,MAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA,EAK7B,YAAY,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrB,uBAAuB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhC,eAAe,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,EAKxB,oBAAoB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7B,mBAAmB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO5B,cAAc,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,EAKvB,kBAAkB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,EAK3B,wCAAwC,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjD,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,SAAS,oBAAoB;AAE/B,MAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA,EAK7B,YAAY,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrB,uBAAuB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhC,eAAe,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,EAKxB,oBAAoB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7B,mBAAmB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO5B,cAAc,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,EAKvB,kBAAkB,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,EAK3B,wCAAwC,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjD,oCAAoC,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7C,kCAAkC,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3C,0DAA0D,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpE,wDAAwD,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlE,+BAA+B,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA,EAKzC,kBAAkB,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA,EAK5B,wCAAwC,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlD,oCAAoC,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAM9C,kCAAkC,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAM5C,0DAA0D,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpE,wDAAwD,QAAQ,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlE,+BAA+B,QAAQ,EAAE;AAC7C;AAEO,MAAM,0BAA0B,aAAa,iBAAiB;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommissionableMdnsAdvertisement.d.ts","sourceRoot":"","sources":["../../../../src/advertisement/mdns/CommissionableMdnsAdvertisement.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAc1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,iBAAiB,CAAC,kBAAkB,CAAC,cAAc,CAAC;;IACrG,UAAU,EAAE,MAAM,CAAC;gBAEP,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,CAAC,cAAc;IAWtF,IAAa,UAAU,2CA4BtB;IAED,IAAa,SAAS,4BA0BrB;IAEQ,WAAW,CAAC,KAAK,EAAE,aAAa;
|
|
1
|
+
{"version":3,"file":"CommissionableMdnsAdvertisement.d.ts","sourceRoot":"","sources":["../../../../src/advertisement/mdns/CommissionableMdnsAdvertisement.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAc1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,qBAAa,+BAAgC,SAAQ,iBAAiB,CAAC,kBAAkB,CAAC,cAAc,CAAC;;IACrG,UAAU,EAAE,MAAM,CAAC;gBAEP,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,CAAC,cAAc;IAWtF,IAAa,UAAU,2CA4BtB;IAED,IAAa,SAAS,4BA0BrB;IAEQ,WAAW,CAAC,KAAK,EAAE,aAAa;CAkC5C"}
|
|
@@ -81,11 +81,29 @@ class CommissionableMdnsAdvertisement extends MdnsAdvertisement {
|
|
|
81
81
|
}
|
|
82
82
|
#validatePairingInstructions() {
|
|
83
83
|
const { pairingHint, pairingInstructions } = this.description;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
if (pairingHint) {
|
|
85
|
+
if (Object.values(pairingHint).every((v) => !v)) {
|
|
86
|
+
throw new ImplementationError("At least one pairing hint must be set if pairing hint is provided");
|
|
87
|
+
}
|
|
88
|
+
const needsInstructionsCount = PAIRING_HINTS_REQUIRING_INSTRUCTION.reduce(
|
|
89
|
+
(count, hint) => pairingHint[hint] === true ? count + 1 : count,
|
|
90
|
+
0
|
|
88
91
|
);
|
|
92
|
+
if (needsInstructionsCount > 1) {
|
|
93
|
+
throw new ImplementationError(
|
|
94
|
+
`Only one pairing hint requiring instructions can be set, but got ${needsInstructionsCount}`
|
|
95
|
+
);
|
|
96
|
+
} else if (needsInstructionsCount === 1 && !pairingInstructions) {
|
|
97
|
+
throw new ImplementationError(
|
|
98
|
+
`Pairing instructions are required when a pairing hint requiring instructions is set`
|
|
99
|
+
);
|
|
100
|
+
} else if (needsInstructionsCount === 0 && pairingInstructions) {
|
|
101
|
+
throw new ImplementationError(
|
|
102
|
+
`Pairing instructions provided but no pairing hint requiring instructions set`
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
} else if (pairingInstructions) {
|
|
106
|
+
throw new ImplementationError("Pairing instructions provided but no pairing hint set");
|
|
89
107
|
}
|
|
90
108
|
}
|
|
91
109
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/advertisement/mdns/CommissionableMdnsAdvertisement.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,+BAA+B;AAExC,SAAS,qBAAqB,iBAAiB;AAC/C;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,yBAAyB;AAM3B,MAAM,wCAAwC,kBAAqD;AAAA,EACtG;AAAA,EAEA,YAAY,YAA4B,aAAgD;AACpF,UAAM,aAAa,WAAW,iBAAiB;AAC/C,UAAM,QAAQ,6BAA6B,UAAU;AAErD,UAAM,YAAY,OAAO,WAAW;AAEpC,SAAK,aAAa;AAElB,SAAK,6BAA6B;AAAA,EACtC;AAAA,EAEA,IAAa,aAAa;AACtB,UAAM,EAAE,eAAe,YAAY,SAAS,IAAI,KAAK;AAErD,UAAM,qBAAsB,iBAAiB,IAAK;AAClD,UAAM,cAAc,eAAe,QAAQ;AAC3C,UAAM,kBAAkB,mBAAmB,UAAU;AACrD,UAAM,0BAA0B,2BAA2B,kBAAkB;AAC7E,UAAM,yBAAyB,0BAA0B,aAAa;AACtE,UAAM,sBAAsB,0BAA0B;AAEtD,UAAM,UAAU;AAAA,MACZ,UAAU,yBAAyB,+BAA+B;AAAA,MAClE,UAAU,yBAAyB,eAAe;AAAA,MAClD,UAAU,yBAAyB,uBAAuB;AAAA,MAC1D,UAAU,yBAAyB,sBAAsB;AAAA,MACzD,UAAU,yBAAyB,mBAAmB;AAAA,MACtD,UAAU,iCAAiC,KAAK,KAAK;AAAA,MACrD,UAAU,iBAAiB,KAAK,KAAK;AAAA,MACrC,UAAU,yBAAyB,KAAK,KAAK;AAAA,MAC7C,UAAU,wBAAwB,KAAK,KAAK;AAAA,MAC5C,UAAU,qBAAqB,KAAK,KAAK;AAAA,IAC7C;AAEA,QAAI,CAAC,KAAK,iBAAiB;AACvB,cAAQ,KAAK,UAAU,yBAAyB,WAAW,GAAG,UAAU,aAAa,KAAK,KAAK,CAAC;AAAA,IACpG;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,IAAa,YAAY;AACrB,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd;AAAA,IACJ,IAAI,KAAK;AAET,UAAM,SAAkC;AAAA,MACpC,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI,wBAAwB,OAAO,WAAW;AAAA,MAC9C,IAAI;AAAA,IACR;AAEA,QAAI,CAAC,KAAK,iBAAiB;AACvB,aAAO,KAAK,GAAG,QAAQ,IAAI,SAAS;AAAA,IACxC;AAEA,WAAO;AAAA,EACX;AAAA,EAES,YAAY,OAAsB;AAEvC,WAAO,MAAM,gBAAgB;AAAA,EACjC;AAAA,EAEA,+BAA+B;AAC3B,UAAM,EAAE,aAAa,oBAAoB,IAAI,KAAK;AAElD,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -13,6 +13,8 @@ import { Rcac } from "./Rcac.js";
|
|
|
13
13
|
export declare class Icac extends OperationalBase<OperationalCertificate.Icac> {
|
|
14
14
|
/** Construct the class from a Tlv version of the certificate */
|
|
15
15
|
static fromTlv(tlv: Bytes): Icac;
|
|
16
|
+
/** Construct the class from an ASN.1/DER encoded certificate */
|
|
17
|
+
static fromAsn1(asn1: Bytes): Icac;
|
|
16
18
|
/** Validates all basic certificate fields on construction. */
|
|
17
19
|
protected validateFields(): void;
|
|
18
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icac.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/Icac.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAyB,MAAM,UAAU,CAAC;AAIhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"Icac.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/Icac.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAyB,MAAM,UAAU,CAAC;AAIhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;GAEG;AACH,qBAAa,IAAK,SAAQ,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC;IAClE,gEAAgE;IAChE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAIhC,gEAAgE;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAKlC,8DAA8D;IAC9D,SAAS,CAAC,cAAc;IAWxB;;;OAGG;IACH,WAAW;IAIX;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;CAiH1C"}
|
|
@@ -9,11 +9,17 @@ import { CertificateError } from "./common.js";
|
|
|
9
9
|
import { ExtensionKeyUsageSchema } from "./definitions/base.js";
|
|
10
10
|
import { OperationalCertificate } from "./definitions/operational.js";
|
|
11
11
|
import { OperationalBase } from "./OperationalBase.js";
|
|
12
|
+
import { X509Base } from "./X509Base.js";
|
|
12
13
|
class Icac extends OperationalBase {
|
|
13
14
|
/** Construct the class from a Tlv version of the certificate */
|
|
14
15
|
static fromTlv(tlv) {
|
|
15
16
|
return new Icac(OperationalCertificate.TlvIcac.decode(tlv));
|
|
16
17
|
}
|
|
18
|
+
/** Construct the class from an ASN.1/DER encoded certificate */
|
|
19
|
+
static fromAsn1(asn1) {
|
|
20
|
+
const cert = X509Base.parseAsn1Certificate(asn1);
|
|
21
|
+
return new Icac(cert);
|
|
22
|
+
}
|
|
17
23
|
/** Validates all basic certificate fields on construction. */
|
|
18
24
|
validateFields() {
|
|
19
25
|
const {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/certificate/kinds/Icac.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAe,YAAY,iBAAiB;AACrD,SAAS,gBAAgB;AACzB,SAAS,wBAAwB;AACjC,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AACvC,SAAS,uBAAuB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -11,6 +11,8 @@ import { Rcac } from "./Rcac.js";
|
|
|
11
11
|
export declare class Noc extends OperationalBase<OperationalCertificate.Noc> {
|
|
12
12
|
/** Construct the class from a Tlv version of the certificate */
|
|
13
13
|
static fromTlv(tlv: Bytes): Noc;
|
|
14
|
+
/** Construct the class from an ASN.1/DER encoded certificate */
|
|
15
|
+
static fromAsn1(asn1: Bytes): Noc;
|
|
14
16
|
/** Validates all basic certificate fields on construction. */
|
|
15
17
|
protected validateFields(): void;
|
|
16
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Noc.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/Noc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAyB,MAAM,UAAU,CAAC;AAGhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"Noc.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/Noc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAyB,MAAM,UAAU,CAAC;AAGhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,qBAAa,GAAI,SAAQ,eAAe,CAAC,sBAAsB,CAAC,GAAG,CAAC;IAChE,gEAAgE;IAChE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK;IAIzB,gEAAgE;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK;IAK3B,8DAA8D;IAC9D,SAAS,CAAC,cAAc;IAexB;;;OAGG;IACH,WAAW;IAIX;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI;CAwHtD"}
|
|
@@ -8,11 +8,17 @@ import { CaseAuthenticatedTag, FabricId, NodeId } from "#types";
|
|
|
8
8
|
import { CertificateError } from "./common.js";
|
|
9
9
|
import { OperationalCertificate } from "./definitions/operational.js";
|
|
10
10
|
import { OperationalBase } from "./OperationalBase.js";
|
|
11
|
+
import { X509Base } from "./X509Base.js";
|
|
11
12
|
class Noc extends OperationalBase {
|
|
12
13
|
/** Construct the class from a Tlv version of the certificate */
|
|
13
14
|
static fromTlv(tlv) {
|
|
14
15
|
return new Noc(OperationalCertificate.TlvNoc.decode(tlv));
|
|
15
16
|
}
|
|
17
|
+
/** Construct the class from an ASN.1/DER encoded certificate */
|
|
18
|
+
static fromAsn1(asn1) {
|
|
19
|
+
const cert = X509Base.parseAsn1Certificate(asn1);
|
|
20
|
+
return new Noc(cert);
|
|
21
|
+
}
|
|
16
22
|
/** Validates all basic certificate fields on construction. */
|
|
17
23
|
validateFields() {
|
|
18
24
|
const {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/certificate/kinds/Noc.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAe,YAAY,iBAAiB;AACrD,SAAS,sBAAsB,UAAU,cAAc;AACvD,SAAS,wBAAwB;AACjC,SAAS,8BAA8B;AAEvC,SAAS,uBAAuB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -15,7 +15,12 @@ export declare abstract class OperationalBase<CT extends X509Certificate> extend
|
|
|
15
15
|
/** Validates all basic certificate fields on construction. */
|
|
16
16
|
protected abstract validateFields(): void;
|
|
17
17
|
/** Encodes the signed certificate into the Matter TLV format. */
|
|
18
|
-
abstract asSignedTlv(
|
|
18
|
+
abstract asSignedTlv(): Bytes;
|
|
19
|
+
/**
|
|
20
|
+
* Returns the signed certificate in ASN.1 DER format.
|
|
21
|
+
* If the certificate is not signed, it throws a CertificateError.
|
|
22
|
+
*/
|
|
23
|
+
asSignedAsn1(): AllowSharedBufferSource;
|
|
19
24
|
/**
|
|
20
25
|
* Verifies general requirements a Matter certificate fields must fulfill.
|
|
21
26
|
* Rules for this are listed in @see {@link MatterSpecification.v12.Core} §6.5.x
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperationalBase.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/OperationalBase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"OperationalBase.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/OperationalBase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAA8C,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAA8C,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD;;GAEG;AACH,8BAAsB,eAAe,CAAC,EAAE,SAAS,eAAe,CAAE,SAAQ,QAAQ,CAAC,EAAE,CAAC;gBACtE,IAAI,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IAKnC,8DAA8D;IAC9D,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,IAAI;IAEzC,iEAAiE;IACjE,QAAQ,CAAC,WAAW,IAAI,KAAK;IAE7B;;;OAGG;IACH,YAAY;IAWZ;;;OAGG;IACH,aAAa;CAuChB"}
|
|
@@ -3,15 +3,29 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Logger, Time } from "#general";
|
|
6
|
+
import { DerBitString, DerCodec, Logger, Time, X962 } from "#general";
|
|
7
7
|
import { X509Base } from "./X509Base.js";
|
|
8
|
-
import { CertificateError } from "./common.js";
|
|
8
|
+
import { assertCertificateDerSize, CertificateError } from "./common.js";
|
|
9
9
|
const logger = Logger.get("OperationalBaseCertificate");
|
|
10
10
|
class OperationalBase extends X509Base {
|
|
11
11
|
constructor(cert) {
|
|
12
12
|
super(cert);
|
|
13
13
|
this.validateFields();
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Returns the signed certificate in ASN.1 DER format.
|
|
17
|
+
* If the certificate is not signed, it throws a CertificateError.
|
|
18
|
+
*/
|
|
19
|
+
asSignedAsn1() {
|
|
20
|
+
const certificate = this.genericBuildAsn1Structure(this.cert);
|
|
21
|
+
const certBytes = DerCodec.encode({
|
|
22
|
+
certificate,
|
|
23
|
+
signAlgorithm: X962.EcdsaWithSHA256,
|
|
24
|
+
signature: DerBitString(this.signature)
|
|
25
|
+
});
|
|
26
|
+
assertCertificateDerSize(certBytes);
|
|
27
|
+
return certBytes;
|
|
28
|
+
}
|
|
15
29
|
/**
|
|
16
30
|
* Verifies general requirements a Matter certificate fields must fulfill.
|
|
17
31
|
* Rules for this are listed in @see {@link MatterSpecification.v12.Core} §6.5.x
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/certificate/kinds/OperationalBase.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAgB,QAAQ,YAAY;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAgB,cAAc,UAAU,QAAQ,MAAM,YAAY;AAClE,SAAS,gBAAgB;AACzB,SAAS,0BAA0B,wBAAkC;AAGrE,MAAM,SAAS,OAAO,IAAI,4BAA4B;AAK/C,MAAe,wBAAoD,SAAa;AAAA,EACnF,YAAY,MAAyB;AACjC,UAAM,IAAI;AACV,SAAK,eAAe;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eAAe;AACX,UAAM,cAAc,KAAK,0BAA0B,KAAK,IAAI;AAC5D,UAAM,YAAY,SAAS,OAAO;AAAA,MAC9B;AAAA,MACA,eAAe,KAAK;AAAA,MACpB,WAAW,aAAa,KAAK,SAAS;AAAA,IAC1C,CAAC;AACD,6BAAyB,SAAS;AAClC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,gBAAgB;AACZ,UAAM,OAAO,KAAK;AAClB,QAAI,KAAK,aAAa,aAAa;AAC/B,YAAM,IAAI;AAAA,QACN,8EAA8E,KAAK,aAAa,UAAU;AAAA,MAC9G;AAEJ,QAAI,KAAK,uBAAuB,GAAG;AAE/B,YAAM,IAAI,iBAAiB,oCAAoC,KAAK,kBAAkB,EAAE;AAAA,IAC5F;AAEA,QAAI,KAAK,uBAAuB,GAAG;AAE/B,YAAM,IAAI,iBAAiB,qCAAqC,KAAK,kBAAkB,EAAE;AAAA,IAC7F;AAEA,QAAI,KAAK,4BAA4B,GAAG;AAEpC,YAAM,IAAI,iBAAiB,0CAA0C,KAAK,uBAAuB,EAAE;AAAA,IACvG;AAGA,QAAI,OAAO,KAAK,KAAK,OAAO,EAAE,SAAS,GAAG;AACtC,YAAM,IAAI,iBAAiB,wDAAwD;AAAA,IACvF;AACA,QAAI,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS,GAAG;AACrC,YAAM,IAAI,iBAAiB,uDAAuD;AAAA,IACtF;AAIA,QAAI,KAAK,YAAY,MAAO,KAAK,OAAO;AACpC,aAAO,KAAK,gDAAgD,KAAK,YAAY,GAAI,OAAO,KAAK,KAAK,EAAE;AAAA,IAIxG;AAAA,EACJ;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -9,6 +9,8 @@ import { OperationalBase } from "./OperationalBase.js";
|
|
|
9
9
|
export declare class Rcac extends OperationalBase<OperationalCertificate.Rcac> {
|
|
10
10
|
/** Construct the class from a Tlv version of the certificate */
|
|
11
11
|
static fromTlv(tlv: Bytes): Rcac;
|
|
12
|
+
/** Construct the class from an ASN.1/DER encoded certificate */
|
|
13
|
+
static fromAsn1(asn1: Bytes): Rcac;
|
|
12
14
|
/** Validates all basic certificate fields on construction. */
|
|
13
15
|
protected validateFields(): void;
|
|
14
16
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rcac.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/Rcac.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAyB,MAAM,UAAU,CAAC;AAIhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Rcac.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/Rcac.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAyB,MAAM,UAAU,CAAC;AAIhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,qBAAa,IAAK,SAAQ,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC;IAClE,gEAAgE;IAChE,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAIhC,gEAAgE;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAKlC,8DAA8D;IAC9D,SAAS,CAAC,cAAc;IAWxB;;;OAGG;IACH,WAAW;IAIX;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM;CAuF9B"}
|
|
@@ -9,11 +9,17 @@ import { CertificateError } from "./common.js";
|
|
|
9
9
|
import { ExtensionKeyUsageSchema } from "./definitions/base.js";
|
|
10
10
|
import { OperationalCertificate } from "./definitions/operational.js";
|
|
11
11
|
import { OperationalBase } from "./OperationalBase.js";
|
|
12
|
+
import { X509Base } from "./X509Base.js";
|
|
12
13
|
class Rcac extends OperationalBase {
|
|
13
14
|
/** Construct the class from a Tlv version of the certificate */
|
|
14
15
|
static fromTlv(tlv) {
|
|
15
16
|
return new Rcac(OperationalCertificate.TlvRcac.decode(tlv));
|
|
16
17
|
}
|
|
18
|
+
/** Construct the class from an ASN.1/DER encoded certificate */
|
|
19
|
+
static fromAsn1(asn1) {
|
|
20
|
+
const cert = X509Base.parseAsn1Certificate(asn1);
|
|
21
|
+
return new Rcac(cert);
|
|
22
|
+
}
|
|
17
23
|
/** Validates all basic certificate fields on construction. */
|
|
18
24
|
validateFields() {
|
|
19
25
|
const {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/certificate/kinds/Rcac.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAe,YAAY,iBAAiB;AACrD,SAAS,gBAAgB;AACzB,SAAS,wBAAwB;AACjC,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AACvC,SAAS,uBAAuB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -38,7 +38,7 @@ export declare abstract class X509Base<CT extends X509Certificate> {
|
|
|
38
38
|
/**
|
|
39
39
|
* Build the ASN.1 DER structure for the certificate.
|
|
40
40
|
*/
|
|
41
|
-
|
|
41
|
+
genericBuildAsn1Structure({ serialNumber, notBefore, notAfter, issuer, subject, ellipticCurvePublicKey, extensions, }: Unsigned<CT>): {
|
|
42
42
|
version: {
|
|
43
43
|
_tag: number;
|
|
44
44
|
_bytes: AllowSharedBufferSource;
|
|
@@ -80,13 +80,20 @@ export declare abstract class X509Base<CT extends X509Certificate> {
|
|
|
80
80
|
_bytes: AllowSharedBufferSource;
|
|
81
81
|
};
|
|
82
82
|
};
|
|
83
|
+
}
|
|
84
|
+
export declare namespace X509Base {
|
|
83
85
|
/**
|
|
84
86
|
* Create a Certificate Signing Request (CSR) in ASN.1 DER format.
|
|
85
87
|
*/
|
|
86
|
-
|
|
88
|
+
function createCertificateSigningRequest(crypto: Crypto, key: Key): Promise<AllowSharedBufferSource>;
|
|
89
|
+
/**
|
|
90
|
+
* Parse an ASN.1/DER encoded certificate into the internal format.
|
|
91
|
+
* This extracts the certificate data without the signature.
|
|
92
|
+
*/
|
|
93
|
+
function parseAsn1Certificate(encodedCert: Bytes): X509Certificate;
|
|
87
94
|
/**
|
|
88
95
|
* Extract the public key from a Certificate Signing Request (CSR) in ASN.1 DER format.
|
|
89
96
|
*/
|
|
90
|
-
|
|
97
|
+
function getPublicKeyFromCsr(crypto: Crypto, encodedCsr: Bytes): Promise<AllowSharedBufferSource>;
|
|
91
98
|
}
|
|
92
99
|
//# sourceMappingURL=X509Base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"X509Base.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/X509Base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,EAEL,MAAM,
|
|
1
|
+
{"version":3,"file":"X509Base.d.ts","sourceRoot":"","sources":["../../../../src/certificate/kinds/X509Base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,EAEL,MAAM,EAMN,OAAO,EACP,GAAG,EAMN,MAAM,UAAU,CAAC;AAElB,OAAO,EAA8C,QAAQ,EAAE,MAAM,aAAa,CAAC;AAenF,OAAO,EAAoD,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG1G;;;;GAIG;AACH,8BAAsB,QAAQ,CAAC,EAAE,SAAS,eAAe;;gBAIzC,IAAI,EAAE,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;IAOnC,IAAI,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC,CAEvB;IAED,IAAI,QAAQ,YAEX;IAED;;;OAGG;IACH,IAAI,SAAS,IAWY,KAAK,CAN7B;IAED;;;OAGG;IACH,IAAI,SAAS,CAAC,SAAS,EAAE,KAAK,EAK7B;IAED;;;OAGG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU;IAI1C;;OAEG;IACH,cAAc,IAAI,KAAK;IAoMvB;;OAEG;IACH,yBAAyB,CAAC,EACtB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,MAAM,EACN,OAAO,EACP,sBAAsB,EACtB,UAAU,GACb,EAAE,QAAQ,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBlB;AAED,yBAAiB,QAAQ,CAAC;IACtB;;OAEG;IACH,SAAsB,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,oCAa7E;IAqTD;;;OAGG;IACH,SAAgB,oBAAoB,CAAC,WAAW,EAAE,KAAK,GAAG,eAAe,CAiGxE;IAED;;OAEG;IACH,SAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,oCAwE1E;CACJ"}
|