@matter/types 0.15.0-alpha.0-20250620-16e218ed3 → 0.15.0-alpha.0-20250625-4a4b1be1b
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/dcl/attestation-certificate.d.ts +99 -0
- package/dist/cjs/dcl/attestation-certificate.d.ts.map +1 -0
- package/dist/cjs/dcl/attestation-certificate.js +22 -0
- package/dist/cjs/dcl/attestation-certificate.js.map +6 -0
- package/dist/cjs/dcl/device-attestation-revocation.d.ts +135 -0
- package/dist/cjs/dcl/device-attestation-revocation.d.ts.map +1 -0
- package/dist/cjs/dcl/device-attestation-revocation.js +33 -0
- package/dist/cjs/dcl/device-attestation-revocation.js.map +6 -0
- package/dist/cjs/dcl/device-software-compliance.d.ts +96 -0
- package/dist/cjs/dcl/device-software-compliance.d.ts.map +1 -0
- package/dist/cjs/dcl/device-software-compliance.js +36 -0
- package/dist/cjs/dcl/device-software-compliance.js.map +6 -0
- package/dist/cjs/dcl/device-software-version.d.ts +127 -0
- package/dist/cjs/dcl/device-software-version.d.ts.map +1 -0
- package/dist/cjs/dcl/device-software-version.js +22 -0
- package/dist/cjs/dcl/device-software-version.js.map +6 -0
- package/dist/cjs/dcl/device.d.ts +217 -0
- package/dist/cjs/dcl/device.d.ts.map +1 -0
- package/dist/cjs/dcl/device.js +22 -0
- package/dist/cjs/dcl/device.js.map +6 -0
- package/dist/cjs/dcl/index.d.ts +13 -0
- package/dist/cjs/dcl/index.d.ts.map +1 -0
- package/dist/cjs/dcl/index.js +30 -0
- package/dist/cjs/dcl/index.js.map +6 -0
- package/dist/cjs/dcl/operational-certificate.d.ts +79 -0
- package/dist/cjs/dcl/operational-certificate.d.ts.map +1 -0
- package/dist/cjs/dcl/operational-certificate.js +22 -0
- package/dist/cjs/dcl/operational-certificate.js.map +6 -0
- package/dist/cjs/dcl/vendor.d.ts +47 -0
- package/dist/cjs/dcl/vendor.d.ts.map +1 -0
- package/dist/cjs/dcl/vendor.js +22 -0
- package/dist/cjs/dcl/vendor.js.map +6 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/protocol/definitions/general.d.ts +44 -0
- package/dist/cjs/protocol/definitions/general.d.ts.map +1 -0
- package/dist/cjs/protocol/definitions/general.js +50 -0
- package/dist/cjs/protocol/definitions/general.js.map +6 -0
- package/dist/cjs/protocol/definitions/index.d.ts +1 -0
- package/dist/cjs/protocol/definitions/index.d.ts.map +1 -1
- package/dist/cjs/protocol/definitions/index.js +1 -0
- package/dist/cjs/protocol/definitions/index.js.map +1 -1
- package/dist/cjs/protocol/definitions/secure-channel.d.ts +6 -40
- package/dist/cjs/protocol/definitions/secure-channel.d.ts.map +1 -1
- package/dist/cjs/protocol/definitions/secure-channel.js +10 -31
- package/dist/cjs/protocol/definitions/secure-channel.js.map +2 -2
- package/dist/esm/dcl/attestation-certificate.d.ts +99 -0
- package/dist/esm/dcl/attestation-certificate.d.ts.map +1 -0
- package/dist/esm/dcl/attestation-certificate.js +6 -0
- package/dist/esm/dcl/attestation-certificate.js.map +6 -0
- package/dist/esm/dcl/device-attestation-revocation.d.ts +135 -0
- package/dist/esm/dcl/device-attestation-revocation.d.ts.map +1 -0
- package/dist/esm/dcl/device-attestation-revocation.js +13 -0
- package/dist/esm/dcl/device-attestation-revocation.js.map +6 -0
- package/dist/esm/dcl/device-software-compliance.d.ts +96 -0
- package/dist/esm/dcl/device-software-compliance.d.ts.map +1 -0
- package/dist/esm/dcl/device-software-compliance.js +16 -0
- package/dist/esm/dcl/device-software-compliance.js.map +6 -0
- package/dist/esm/dcl/device-software-version.d.ts +127 -0
- package/dist/esm/dcl/device-software-version.d.ts.map +1 -0
- package/dist/esm/dcl/device-software-version.js +6 -0
- package/dist/esm/dcl/device-software-version.js.map +6 -0
- package/dist/esm/dcl/device.d.ts +217 -0
- package/dist/esm/dcl/device.d.ts.map +1 -0
- package/dist/esm/dcl/device.js +6 -0
- package/dist/esm/dcl/device.js.map +6 -0
- package/dist/esm/dcl/index.d.ts +13 -0
- package/dist/esm/dcl/index.d.ts.map +1 -0
- package/dist/esm/dcl/index.js +13 -0
- package/dist/esm/dcl/index.js.map +6 -0
- package/dist/esm/dcl/operational-certificate.d.ts +79 -0
- package/dist/esm/dcl/operational-certificate.d.ts.map +1 -0
- package/dist/esm/dcl/operational-certificate.js +6 -0
- package/dist/esm/dcl/operational-certificate.js.map +6 -0
- package/dist/esm/dcl/vendor.d.ts +47 -0
- package/dist/esm/dcl/vendor.d.ts.map +1 -0
- package/dist/esm/dcl/vendor.js +6 -0
- package/dist/esm/dcl/vendor.js.map +6 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/protocol/definitions/general.d.ts +44 -0
- package/dist/esm/protocol/definitions/general.d.ts.map +1 -0
- package/dist/esm/protocol/definitions/general.js +30 -0
- package/dist/esm/protocol/definitions/general.js.map +6 -0
- package/dist/esm/protocol/definitions/index.d.ts +1 -0
- package/dist/esm/protocol/definitions/index.d.ts.map +1 -1
- package/dist/esm/protocol/definitions/index.js +1 -0
- package/dist/esm/protocol/definitions/index.js.map +1 -1
- package/dist/esm/protocol/definitions/secure-channel.d.ts +6 -40
- package/dist/esm/protocol/definitions/secure-channel.d.ts.map +1 -1
- package/dist/esm/protocol/definitions/secure-channel.js +10 -31
- package/dist/esm/protocol/definitions/secure-channel.js.map +2 -2
- package/package.json +5 -5
- package/src/dcl/attestation-certificate.ts +114 -0
- package/src/dcl/device-attestation-revocation.ts +149 -0
- package/src/dcl/device-software-compliance.ts +108 -0
- package/src/dcl/device-software-version.ts +143 -0
- package/src/dcl/device.ts +243 -0
- package/src/dcl/index.ts +13 -0
- package/src/dcl/operational-certificate.ts +90 -0
- package/src/dcl/vendor.ts +53 -0
- package/src/index.ts +1 -0
- package/src/protocol/definitions/general.ts +61 -0
- package/src/protocol/definitions/index.ts +1 -0
- package/src/protocol/definitions/secure-channel.ts +5 -56
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export declare enum GeneralStatusCode {
|
|
7
|
+
/** Operation completed successfully. */
|
|
8
|
+
Success = 0,
|
|
9
|
+
/** Generic failure, additional details may be included in the protocol specific status. */
|
|
10
|
+
Failure = 1,
|
|
11
|
+
/** Operation was rejected by the system because the system is in an invalid state. */
|
|
12
|
+
BadPrecondition = 2,
|
|
13
|
+
/** A value was out of a required range */
|
|
14
|
+
OutOfRange = 3,
|
|
15
|
+
/** A request was unrecognized or malformed */
|
|
16
|
+
BadRequest = 4,
|
|
17
|
+
/** An unrecognized or unsupported request was received. */
|
|
18
|
+
Unsupported = 5,
|
|
19
|
+
/** A request was not expected at this time. */
|
|
20
|
+
Unexpected = 6,
|
|
21
|
+
/** Insufficient resources to process the given request. */
|
|
22
|
+
ResourceExhausted = 7,
|
|
23
|
+
/** Device is busy and cannot handle this request at this time. */
|
|
24
|
+
Busy = 8,
|
|
25
|
+
/** A timeout occurred. */
|
|
26
|
+
Timeout = 9,
|
|
27
|
+
/** Context-specific signal to proceed */
|
|
28
|
+
Continue = 10,
|
|
29
|
+
/** Failure, may be due to a concurrency error. */
|
|
30
|
+
Aborted = 11,
|
|
31
|
+
/** An invalid/unsupported argument was provided. */
|
|
32
|
+
InvalidArgument = 12,
|
|
33
|
+
/** Some requested entity was not found. */
|
|
34
|
+
NotFound = 13,
|
|
35
|
+
/** The sender attempted to create something that already exists. */
|
|
36
|
+
AlreadyExists = 14,
|
|
37
|
+
/** The sender does not have sufficient permissions to execute the requested operations. */
|
|
38
|
+
PermissionDenied = 15,
|
|
39
|
+
/** Unrecoverable data loss or corruption has occurred. */
|
|
40
|
+
DataLoss = 16,
|
|
41
|
+
/** Message size is larger than the recipient can handle. */
|
|
42
|
+
MessageTooLarge = 17
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=general.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/general.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oBAAY,iBAAiB;IACzB,wCAAwC;IACxC,OAAO,IAAI;IAEX,2FAA2F;IAC3F,OAAO,IAAI;IAEX,sFAAsF;IACtF,eAAe,IAAI;IAEnB,0CAA0C;IAC1C,UAAU,IAAI;IAEd,8CAA8C;IAC9C,UAAU,IAAI;IAEd,2DAA2D;IAC3D,WAAW,IAAI;IAEf,+CAA+C;IAC/C,UAAU,IAAI;IAEd,2DAA2D;IAC3D,iBAAiB,IAAI;IAErB,kEAAkE;IAClE,IAAI,IAAI;IAER,0BAA0B;IAC1B,OAAO,IAAI;IAEX,yCAAyC;IACzC,QAAQ,KAAK;IAEb,kDAAkD;IAClD,OAAO,KAAK;IAEZ,oDAAoD;IACpD,eAAe,KAAK;IAEpB,2CAA2C;IAC3C,QAAQ,KAAK;IAEb,oEAAoE;IACpE,aAAa,KAAK;IAElB,2FAA2F;IAC3F,gBAAgB,KAAK;IAErB,0DAA0D;IAC1D,QAAQ,KAAK;IAEb,4DAA4D;IAC5D,eAAe,KAAK;CACvB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
var GeneralStatusCode = /* @__PURE__ */ ((GeneralStatusCode2) => {
|
|
7
|
+
GeneralStatusCode2[GeneralStatusCode2["Success"] = 0] = "Success";
|
|
8
|
+
GeneralStatusCode2[GeneralStatusCode2["Failure"] = 1] = "Failure";
|
|
9
|
+
GeneralStatusCode2[GeneralStatusCode2["BadPrecondition"] = 2] = "BadPrecondition";
|
|
10
|
+
GeneralStatusCode2[GeneralStatusCode2["OutOfRange"] = 3] = "OutOfRange";
|
|
11
|
+
GeneralStatusCode2[GeneralStatusCode2["BadRequest"] = 4] = "BadRequest";
|
|
12
|
+
GeneralStatusCode2[GeneralStatusCode2["Unsupported"] = 5] = "Unsupported";
|
|
13
|
+
GeneralStatusCode2[GeneralStatusCode2["Unexpected"] = 6] = "Unexpected";
|
|
14
|
+
GeneralStatusCode2[GeneralStatusCode2["ResourceExhausted"] = 7] = "ResourceExhausted";
|
|
15
|
+
GeneralStatusCode2[GeneralStatusCode2["Busy"] = 8] = "Busy";
|
|
16
|
+
GeneralStatusCode2[GeneralStatusCode2["Timeout"] = 9] = "Timeout";
|
|
17
|
+
GeneralStatusCode2[GeneralStatusCode2["Continue"] = 10] = "Continue";
|
|
18
|
+
GeneralStatusCode2[GeneralStatusCode2["Aborted"] = 11] = "Aborted";
|
|
19
|
+
GeneralStatusCode2[GeneralStatusCode2["InvalidArgument"] = 12] = "InvalidArgument";
|
|
20
|
+
GeneralStatusCode2[GeneralStatusCode2["NotFound"] = 13] = "NotFound";
|
|
21
|
+
GeneralStatusCode2[GeneralStatusCode2["AlreadyExists"] = 14] = "AlreadyExists";
|
|
22
|
+
GeneralStatusCode2[GeneralStatusCode2["PermissionDenied"] = 15] = "PermissionDenied";
|
|
23
|
+
GeneralStatusCode2[GeneralStatusCode2["DataLoss"] = 16] = "DataLoss";
|
|
24
|
+
GeneralStatusCode2[GeneralStatusCode2["MessageTooLarge"] = 17] = "MessageTooLarge";
|
|
25
|
+
return GeneralStatusCode2;
|
|
26
|
+
})(GeneralStatusCode || {});
|
|
27
|
+
export {
|
|
28
|
+
GeneralStatusCode
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=general.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/protocol/definitions/general.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,IAAK,oBAAL,kBAAKA,uBAAL;AAEH,EAAAA,sCAAA,aAAU,KAAV;AAGA,EAAAA,sCAAA,aAAU,KAAV;AAGA,EAAAA,sCAAA,qBAAkB,KAAlB;AAGA,EAAAA,sCAAA,gBAAa,KAAb;AAGA,EAAAA,sCAAA,gBAAa,KAAb;AAGA,EAAAA,sCAAA,iBAAc,KAAd;AAGA,EAAAA,sCAAA,gBAAa,KAAb;AAGA,EAAAA,sCAAA,uBAAoB,KAApB;AAGA,EAAAA,sCAAA,UAAO,KAAP;AAGA,EAAAA,sCAAA,aAAU,KAAV;AAGA,EAAAA,sCAAA,cAAW,MAAX;AAGA,EAAAA,sCAAA,aAAU,MAAV;AAGA,EAAAA,sCAAA,qBAAkB,MAAlB;AAGA,EAAAA,sCAAA,cAAW,MAAX;AAGA,EAAAA,sCAAA,mBAAgB,MAAhB;AAGA,EAAAA,sCAAA,sBAAmB,MAAnB;AAGA,EAAAA,sCAAA,cAAW,MAAX;AAGA,EAAAA,sCAAA,qBAAkB,MAAlB;AArDQ,SAAAA;AAAA,GAAA;",
|
|
5
|
+
"names": ["GeneralStatusCode"]
|
|
6
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
|
@@ -46,7 +46,7 @@ export declare enum SecureMessageType {
|
|
|
46
46
|
/** The Check-in message notifies a client that the ICD is available for communication. */
|
|
47
47
|
IcdCheckInMessage = 80
|
|
48
48
|
}
|
|
49
|
-
export declare enum
|
|
49
|
+
export declare enum SecureChannelStatusCode {
|
|
50
50
|
/** Indication that the last session establishment message was successfully processed. */
|
|
51
51
|
Success = 0,
|
|
52
52
|
/** Failure to find a common set of shared roots. */
|
|
@@ -56,44 +56,10 @@ export declare enum ProtocolStatusCode {
|
|
|
56
56
|
/** Indication that the sender will close the current session. See Section “CloseSession” for more details. */
|
|
57
57
|
CloseSession = 3,
|
|
58
58
|
/** Indication that the sender cannot currently fulfill the request. See Section “Busy” for more details. */
|
|
59
|
-
Busy = 4
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
/** Generic failure, additional details may be included in the protocol specific status. */
|
|
65
|
-
Failure = 1,
|
|
66
|
-
/** Operation was rejected by the system because the system is in an invalid state. */
|
|
67
|
-
BadPrecondition = 2,
|
|
68
|
-
/** A value was out of a required range */
|
|
69
|
-
OutOfRange = 3,
|
|
70
|
-
/** A request was unrecognized or malformed */
|
|
71
|
-
BadRequest = 4,
|
|
72
|
-
/** An unrecognized or unsupported request was received. */
|
|
73
|
-
Unsupported = 5,
|
|
74
|
-
/** A request was not expected at this time. */
|
|
75
|
-
Unexpected = 6,
|
|
76
|
-
/** Insufficient resources to process the given request. */
|
|
77
|
-
ResourceExhausted = 7,
|
|
78
|
-
/** Device is busy and cannot handle this request at this time. */
|
|
79
|
-
Busy = 8,
|
|
80
|
-
/** A timeout occurred. */
|
|
81
|
-
Timeout = 9,
|
|
82
|
-
/** Context-specific signal to proceed */
|
|
83
|
-
Continue = 10,
|
|
84
|
-
/** Failure, may be due to a concurrency error. */
|
|
85
|
-
Aborted = 11,
|
|
86
|
-
/** An invalid/unsupported argument was provided. */
|
|
87
|
-
InvalidArgument = 12,
|
|
88
|
-
/** Some requested entity was not found. */
|
|
89
|
-
NotFound = 13,
|
|
90
|
-
/** The sender attempted to create something that already exists. */
|
|
91
|
-
AlreadyExists = 14,
|
|
92
|
-
/** The sender does not have sufficient permissions to execute the requested operations. */
|
|
93
|
-
PermissionDenied = 15,
|
|
94
|
-
/** Unrecoverable data loss or corruption has occurred. */
|
|
95
|
-
DataLoss = 16,
|
|
96
|
-
/** Message size is larger than the recipient can handle. */
|
|
97
|
-
MessageTooLarge = 17
|
|
59
|
+
Busy = 4,
|
|
60
|
+
/**
|
|
61
|
+
* No additional error details available.
|
|
62
|
+
*/
|
|
63
|
+
GeneralError = 65535
|
|
98
64
|
}
|
|
99
65
|
//# sourceMappingURL=secure-channel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secure-channel.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/secure-channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAS,CAAC;AAEjD,oBAAY,iBAAiB;IACzB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,aAAa,KAAO;IAEpB,gFAAgF;IAChF,iBAAiB,KAAO;IAExB,2FAA2F;IAC3F,kBAAkB,KAAO;IAEzB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,oDAAoD;IACpD,SAAS,KAAO;IAEhB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,8CAA8C;IAC9C,MAAM,KAAO;IAEb,+CAA+C;IAC/C,MAAM,KAAO;IAEb,8CAA8C;IAC9C,MAAM,KAAO;IAEb,0DAA0D;IAC1D,YAAY,KAAO;IAEnB,qHAAqH;IACrH,YAAY,KAAO;IAEnB,0FAA0F;IAC1F,iBAAiB,KAAO;CAC3B;AAED,oBAAY,
|
|
1
|
+
{"version":3,"file":"secure-channel.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/secure-channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAS,CAAC;AAEjD,oBAAY,iBAAiB;IACzB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,aAAa,KAAO;IAEpB,gFAAgF;IAChF,iBAAiB,KAAO;IAExB,2FAA2F;IAC3F,kBAAkB,KAAO;IAEzB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,oDAAoD;IACpD,SAAS,KAAO;IAEhB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,8CAA8C;IAC9C,MAAM,KAAO;IAEb,+CAA+C;IAC/C,MAAM,KAAO;IAEb,8CAA8C;IAC9C,MAAM,KAAO;IAEb,0DAA0D;IAC1D,YAAY,KAAO;IAEnB,qHAAqH;IACrH,YAAY,KAAO;IAEnB,0FAA0F;IAC1F,iBAAiB,KAAO;CAC3B;AAED,oBAAY,uBAAuB;IAC/B,yFAAyF;IACzF,OAAO,IAAS;IAEhB,oDAAoD;IACpD,kBAAkB,IAAS;IAE3B,oDAAoD;IACpD,YAAY,IAAS;IAErB,8GAA8G;IAC9G,YAAY,IAAS;IAErB,4GAA4G;IAC5G,IAAI,IAAS;IAEb;;OAEG;IACH,YAAY,QAAS;CACxB"}
|
|
@@ -21,39 +21,18 @@ var SecureMessageType = /* @__PURE__ */ ((SecureMessageType2) => {
|
|
|
21
21
|
SecureMessageType2[SecureMessageType2["IcdCheckInMessage"] = 80] = "IcdCheckInMessage";
|
|
22
22
|
return SecureMessageType2;
|
|
23
23
|
})(SecureMessageType || {});
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
GeneralStatusCode2[GeneralStatusCode2["Success"] = 0] = "Success";
|
|
34
|
-
GeneralStatusCode2[GeneralStatusCode2["Failure"] = 1] = "Failure";
|
|
35
|
-
GeneralStatusCode2[GeneralStatusCode2["BadPrecondition"] = 2] = "BadPrecondition";
|
|
36
|
-
GeneralStatusCode2[GeneralStatusCode2["OutOfRange"] = 3] = "OutOfRange";
|
|
37
|
-
GeneralStatusCode2[GeneralStatusCode2["BadRequest"] = 4] = "BadRequest";
|
|
38
|
-
GeneralStatusCode2[GeneralStatusCode2["Unsupported"] = 5] = "Unsupported";
|
|
39
|
-
GeneralStatusCode2[GeneralStatusCode2["Unexpected"] = 6] = "Unexpected";
|
|
40
|
-
GeneralStatusCode2[GeneralStatusCode2["ResourceExhausted"] = 7] = "ResourceExhausted";
|
|
41
|
-
GeneralStatusCode2[GeneralStatusCode2["Busy"] = 8] = "Busy";
|
|
42
|
-
GeneralStatusCode2[GeneralStatusCode2["Timeout"] = 9] = "Timeout";
|
|
43
|
-
GeneralStatusCode2[GeneralStatusCode2["Continue"] = 10] = "Continue";
|
|
44
|
-
GeneralStatusCode2[GeneralStatusCode2["Aborted"] = 11] = "Aborted";
|
|
45
|
-
GeneralStatusCode2[GeneralStatusCode2["InvalidArgument"] = 12] = "InvalidArgument";
|
|
46
|
-
GeneralStatusCode2[GeneralStatusCode2["NotFound"] = 13] = "NotFound";
|
|
47
|
-
GeneralStatusCode2[GeneralStatusCode2["AlreadyExists"] = 14] = "AlreadyExists";
|
|
48
|
-
GeneralStatusCode2[GeneralStatusCode2["PermissionDenied"] = 15] = "PermissionDenied";
|
|
49
|
-
GeneralStatusCode2[GeneralStatusCode2["DataLoss"] = 16] = "DataLoss";
|
|
50
|
-
GeneralStatusCode2[GeneralStatusCode2["MessageTooLarge"] = 17] = "MessageTooLarge";
|
|
51
|
-
return GeneralStatusCode2;
|
|
52
|
-
})(GeneralStatusCode || {});
|
|
24
|
+
var SecureChannelStatusCode = /* @__PURE__ */ ((SecureChannelStatusCode2) => {
|
|
25
|
+
SecureChannelStatusCode2[SecureChannelStatusCode2["Success"] = 0] = "Success";
|
|
26
|
+
SecureChannelStatusCode2[SecureChannelStatusCode2["NoSharedTrustRoots"] = 1] = "NoSharedTrustRoots";
|
|
27
|
+
SecureChannelStatusCode2[SecureChannelStatusCode2["InvalidParam"] = 2] = "InvalidParam";
|
|
28
|
+
SecureChannelStatusCode2[SecureChannelStatusCode2["CloseSession"] = 3] = "CloseSession";
|
|
29
|
+
SecureChannelStatusCode2[SecureChannelStatusCode2["Busy"] = 4] = "Busy";
|
|
30
|
+
SecureChannelStatusCode2[SecureChannelStatusCode2["GeneralError"] = 65535] = "GeneralError";
|
|
31
|
+
return SecureChannelStatusCode2;
|
|
32
|
+
})(SecureChannelStatusCode || {});
|
|
53
33
|
export {
|
|
54
|
-
GeneralStatusCode,
|
|
55
|
-
ProtocolStatusCode,
|
|
56
34
|
SECURE_CHANNEL_PROTOCOL_ID,
|
|
35
|
+
SecureChannelStatusCode,
|
|
57
36
|
SecureMessageType
|
|
58
37
|
};
|
|
59
38
|
//# sourceMappingURL=secure-channel.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/protocol/definitions/secure-channel.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,6BAA6B;AAEnC,IAAK,oBAAL,kBAAKA,uBAAL;AAKH,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,mBAAgB,MAAhB;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAGA,EAAAA,sCAAA,wBAAqB,MAArB;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAlDQ,SAAAA;AAAA,GAAA;AAqDL,IAAK,
|
|
5
|
-
"names": ["SecureMessageType", "
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,6BAA6B;AAEnC,IAAK,oBAAL,kBAAKA,uBAAL;AAKH,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,mBAAgB,MAAhB;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAGA,EAAAA,sCAAA,wBAAqB,MAArB;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAlDQ,SAAAA;AAAA,GAAA;AAqDL,IAAK,0BAAL,kBAAKC,6BAAL;AAEH,EAAAA,kDAAA,aAAU,KAAV;AAGA,EAAAA,kDAAA,wBAAqB,KAArB;AAGA,EAAAA,kDAAA,kBAAe,KAAf;AAGA,EAAAA,kDAAA,kBAAe,KAAf;AAGA,EAAAA,kDAAA,UAAO,KAAP;AAKA,EAAAA,kDAAA,kBAAe,SAAf;AAnBQ,SAAAA;AAAA,GAAA;",
|
|
5
|
+
"names": ["SecureMessageType", "SecureChannelStatusCode"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/types",
|
|
3
|
-
"version": "0.15.0-alpha.0-
|
|
3
|
+
"version": "0.15.0-alpha.0-20250625-4a4b1be1b",
|
|
4
4
|
"description": "Definitions for Matter application",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"embed-examples": "embedme **/README.md"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@matter/general": "0.15.0-alpha.0-
|
|
37
|
-
"@matter/model": "0.15.0-alpha.0-
|
|
36
|
+
"@matter/general": "0.15.0-alpha.0-20250625-4a4b1be1b",
|
|
37
|
+
"@matter/model": "0.15.0-alpha.0-20250625-4a4b1be1b"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@matter/tools": "0.15.0-alpha.0-
|
|
41
|
-
"@matter/testing": "0.15.0-alpha.0-
|
|
40
|
+
"@matter/tools": "0.15.0-alpha.0-20250625-4a4b1be1b",
|
|
41
|
+
"@matter/testing": "0.15.0-alpha.0-20250625-4a4b1be1b"
|
|
42
42
|
},
|
|
43
43
|
"files": [
|
|
44
44
|
"dist/**/*",
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { VendorId } from "../datatype/VendorId.js";
|
|
8
|
+
|
|
9
|
+
export interface ApprovalOrRejectDetails {
|
|
10
|
+
address: string;
|
|
11
|
+
time: string; // but number content
|
|
12
|
+
info: string;
|
|
13
|
+
schemaVersion: number; // No info
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Product Attestation Authority and Intermediate Certificate Schema
|
|
18
|
+
* @see {@link MatterSpecification.v141.Core} § 11.23.4.
|
|
19
|
+
* DCL Endpoints:
|
|
20
|
+
* * /dcl/pki/certificates
|
|
21
|
+
* * /dcl/pki/certificates/{subject}
|
|
22
|
+
* * /dcl/pki/certificates/{subject}/{subjectKeyId}
|
|
23
|
+
*/
|
|
24
|
+
export interface ProductAttestationDclSchema {
|
|
25
|
+
/**
|
|
26
|
+
* This field uniquely identifies a certificate and SHALL contain the body of a certificate that has been
|
|
27
|
+
* added in the DCL. It SHALL be encoded in PEM format. The certificate SHALL respect the format
|
|
28
|
+
* constraints provided for that certificate type.
|
|
29
|
+
*/
|
|
30
|
+
pemCert: string;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* The field SHALL be used to identify the serial number field in the Matter certificate structure. A
|
|
34
|
+
* Matter certificate follows the same limitation on admissible serial numbers as in [RFC 5280], i.e.,
|
|
35
|
+
* that implementations SHALL admit serial numbers up to 20 octets in length, and certificate authorities
|
|
36
|
+
* SHALL NOT use serial numbers longer than 20 octets in length.
|
|
37
|
+
*/
|
|
38
|
+
serialNumber: string;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* The field SHALL be used to identify the Certificate Authority that issues the certificate. For a PAA
|
|
42
|
+
* Certificate, this field is OPTIONAL because Issuer and Subject are the same.
|
|
43
|
+
*/
|
|
44
|
+
issuer?: string;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The authority key identifier extension provides a means of identifying the public key corresponding
|
|
48
|
+
* to the private key used to sign a Matter certificate. This is OPTIONAL for PAA Certificates.
|
|
49
|
+
*/
|
|
50
|
+
authorityKeyID?: string;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* This field SHALL contain the PAA certificate’s Subject field, as defined in PAA in PAA Certificate.
|
|
54
|
+
* This is OPTIONAL for PAA Certificates. This is encoded as defined in Section 6.1, “Certificate Common
|
|
55
|
+
* Conventions”.
|
|
56
|
+
*/
|
|
57
|
+
rootSubject?: string;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* This field SHALL uniquely identify the PAA certificate’s Subject Key Identifier mandatory extension.
|
|
61
|
+
* It is defined in PAA Certificate and Operational Root CA Certificates (RCAC). This is OPTIONAL
|
|
62
|
+
* for PAA Certificates. This is encoded as defined in Section 6.1, “Certificate Common Conventions”.
|
|
63
|
+
*/
|
|
64
|
+
rootSubjectKeyID?: string;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* This field SHALL signify whether the associated certificate is PAA Certificate.
|
|
68
|
+
*/
|
|
69
|
+
isRoot: boolean;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* This field uniquely identifies the DCL key that was used to register the certificate in DCL, pursuant
|
|
73
|
+
* to DCL policies.
|
|
74
|
+
*/
|
|
75
|
+
owner: string;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* This field SHALL contain the certificate’s Subject field. This is OPTIONAL for PAA Certificates. This
|
|
79
|
+
* is encoded as defined in Section 6.1, “Certificate Common Conventions”.
|
|
80
|
+
* Base64 encoded
|
|
81
|
+
* TODO Check optional or not??
|
|
82
|
+
*/
|
|
83
|
+
subject?: string;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* This field SHALL uniquely identify the PAA certificate’s Subject Key Identifier mandatory extension.
|
|
87
|
+
* This is encoded as defined in Section 6.1.2, “Key Identifier Extension Constraints”.
|
|
88
|
+
*/
|
|
89
|
+
subjectKeyID: string;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* This field SHALL contain list of DCL Keys that approved the PAA Certificate admission into DCL.
|
|
93
|
+
* This field SHALL be set only for a PAA Certificate.
|
|
94
|
+
*/
|
|
95
|
+
approvals: ApprovalOrRejectDetails; // Spec: grantApprovals and other format
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* This field SHALL contain list of DCL Keys that rejected the PAA Certificate admission into DCL. This
|
|
99
|
+
* field SHALL be set only for a PAA Certificate
|
|
100
|
+
*/
|
|
101
|
+
rejects: ApprovalOrRejectDetails; // Spec: grantRejects and other format
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* This field SHALL uniquely identify this Vendor Schema entry and it SHALL match the Vendor’s
|
|
105
|
+
* assigned Vendor ID.
|
|
106
|
+
*/
|
|
107
|
+
vid: VendorId;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* The SchemaVersion field value history for this schema is provided below:
|
|
111
|
+
* ???? TODO
|
|
112
|
+
*/
|
|
113
|
+
schemaVersion: number;
|
|
114
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { VendorId } from "../datatype/VendorId.js";
|
|
8
|
+
|
|
9
|
+
export enum RevocationTypeEnum {
|
|
10
|
+
/**
|
|
11
|
+
* RFC 5280 Certificate Revocation List (CRL)
|
|
12
|
+
*/
|
|
13
|
+
Crl = 1,
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Device Attestation PKI Revocation Distribution Points Schema
|
|
18
|
+
* @see {@link MatterSpecification.v141.Core} § 11.23.9.
|
|
19
|
+
* DCL endpoints:
|
|
20
|
+
* * /dcl/pki/revocation-points
|
|
21
|
+
* * /dcl/pki/revocation-points/{issuerSubjectKeyID}
|
|
22
|
+
* * /dcl/pki/revocation-points/{issuerSubjectKeyID}/{vid}/{label}
|
|
23
|
+
*/
|
|
24
|
+
export interface DeviceAttestationPkiRevocationDclSchema {
|
|
25
|
+
/**
|
|
26
|
+
* This field SHALL indicate the VendorID associated with the PAA or PAI whose revocation information
|
|
27
|
+
* is provided. For a non-vendor-scoped PAA, this SHALL be the VendorID associated with the
|
|
28
|
+
* organization operating the PAA. For vendor-scoped PAA and for PAIs, this field SHALL contain the
|
|
29
|
+
* VendorID as found in the CRLSignerCertificate (see Section 6.2.2.2, “Encoding of Vendor ID and
|
|
30
|
+
* Product ID in subject and issuer fields” for encoding).
|
|
31
|
+
*/
|
|
32
|
+
vid: VendorId; // Spec: vendorId
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* This field is only required when a PAI is making the distribution point available. This field SHALL
|
|
36
|
+
* only be provided if the IsPAA field is false and if the CRLSignerCertificate field has a ProductID in
|
|
37
|
+
* its subject (see Section 6.2.2.2, “Encoding of Vendor ID and Product ID in subject and issuer fields”
|
|
38
|
+
* for encoding).
|
|
39
|
+
*/
|
|
40
|
+
pid?: number; // Spec: productId
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* This field SHALL be set to true if the revocation information distribution point relates to a PAA, otherwise
|
|
44
|
+
* it SHALL be set to false (i.e. it relates to a PAI, not a PAA)."
|
|
45
|
+
*/
|
|
46
|
+
isPAA: boolean;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* This field contains a label to disambiguate multiple revocation information partitions of a particular
|
|
50
|
+
* issuer. Uniqueness within the Device Attestation PKI Revocation Distribution Points schema
|
|
51
|
+
* SHALL be enforced against the tuple containing all of:
|
|
52
|
+
* • VendorID
|
|
53
|
+
* • Label
|
|
54
|
+
* • IssuerSubjectKeyID
|
|
55
|
+
* Therefore, there MAY be multiple entries for the same VendorID and IssuerSubjectKeyID in case
|
|
56
|
+
* partitioning is done, which are disambiguated by the Label.
|
|
57
|
+
* Enforcement of uniqueness constraints SHALL be done by the Distributed Compliance Ledger’s
|
|
58
|
+
* block transaction processing and SHALL also be done by clients making use of the information
|
|
59
|
+
* from this schema.
|
|
60
|
+
*/
|
|
61
|
+
label: string;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* This field SHALL be present and non-empty if all of the following are true:
|
|
65
|
+
* • Certificate in CRLSignerCertificate field is not self-signed.
|
|
66
|
+
* • IsPAA is false.
|
|
67
|
+
* • CRLSignerCertificate is not a PAI.
|
|
68
|
+
* When present, this field SHALL contain the issuer certificate which signed the CRLSignerCertificate,
|
|
69
|
+
* encoded in X.509v3 PEM format.
|
|
70
|
+
* Additional constraints related to the value of this field are specified in Section 11.23.9.6, “CRLSignerCertificate”.
|
|
71
|
+
*/
|
|
72
|
+
crlSignerDelegator?: string;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* This field SHALL contain the issuer certificate who signed the revocation information that is provided
|
|
76
|
+
* in the distribution point entry, encoded in X.509v3 PEM format.
|
|
77
|
+
* Additional constraints related to the value of this field are specified in
|
|
78
|
+
* @see {@link MatterSpecification.v141.Core} §11.23.9.6.
|
|
79
|
+
*/
|
|
80
|
+
crlSignerCertificate: string;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* This field SHALL uniquely identify the PAA or PAI for which this revocation distribution point is
|
|
84
|
+
* provided, via the certificate’s SubjectKeyIdentifier mandatory extension. This field is provided to
|
|
85
|
+
* assist queries without requiring additional certificate parsing. This field SHALL provide the subject
|
|
86
|
+
* key identifier as an even number of uppercase hexadecimal characters ([0-9A-F]), with no whitespace
|
|
87
|
+
* and no non-hexadecimal characters.
|
|
88
|
+
* For example, subject key ID A3:03:13:6D:54:A8:4B:E2:4C:48:87:B3:41:06:6D:C2:70:96:2F:99 (as it
|
|
89
|
+
* would appear in openssl x509 output, for human consumption) would be recorded as
|
|
90
|
+
* A303136D54A84BE24C4887B341066DC270962F99.
|
|
91
|
+
* When processing revocation information during the device Device Attestation Procedure, clients
|
|
92
|
+
* SHALL only use entries whose IssuerSubjectKeyID matches a candidate certificate’s Authority Key
|
|
93
|
+
* Identifier extension.
|
|
94
|
+
*/
|
|
95
|
+
issuerSubjectKeyID: string;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* This field SHALL indicate the URL where to obtain the information in the format indicated by the
|
|
99
|
+
* RevocationType field. The syntax of this field SHALL follow the syntax as specified in RFC 1738. The
|
|
100
|
+
* maximum length of this field is 256 ASCII characters. All URLs SHALL use either the http or https
|
|
101
|
+
* scheme.
|
|
102
|
+
* Additional details of the content by revocation type are specified in
|
|
103
|
+
* @see {@link MatterSpecification.v141.Core} §11.23.9.8
|
|
104
|
+
*/
|
|
105
|
+
dataUrl: string;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* This field, if present, SHALL indicate the total size in bytes of the file found at the DataUrl. This field
|
|
109
|
+
* SHALL be omitted if the RevocationType is 1, which refers to a type having built-in signatures.
|
|
110
|
+
*/
|
|
111
|
+
dataFileSize?: number | bigint; // TODO
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* This field, if present, SHALL contain the digest of the entire contents of the associated file downloaded
|
|
115
|
+
* from the DataUrl field, encoded in base64 string representation. The digest SHALL have been
|
|
116
|
+
* computed using the algorithm specified in DataDigestType. This field SHALL be present if and only if
|
|
117
|
+
* the DataFileSize field is present.
|
|
118
|
+
*/
|
|
119
|
+
dataDigest?: string;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* This field, if present, SHALL indicate the type of digest used in the DataDigest field. This field SHALL
|
|
123
|
+
* be provided if and only if the DataDigest field is present.
|
|
124
|
+
* The value of this field SHALL be a supported numerical identifier value from the IANA Named
|
|
125
|
+
* Information Hash Algorithm Registry [https://www.iana.org/assignments/named-information/named-information.xhtml#hash-alg]
|
|
126
|
+
* established as part of RFC 6920. For example, a value of 1 would match the sha-
|
|
127
|
+
* 256 identifier, which maps to the SHA-256 digest algorithm per Section 6.2 of FIPS 180-4.
|
|
128
|
+
* The digest algorithm chosen SHALL have a minimum digest length of 256 bits, such as sha-256 (ID 1
|
|
129
|
+
* in the registry).
|
|
130
|
+
* To increase interoperability, DataDigestType, if present, SHALL be within the list of [1, 7, 8, 10, 11,
|
|
131
|
+
* 12].
|
|
132
|
+
*/
|
|
133
|
+
dataDigestType?: number; // TODO: Define enum for digest types
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* This field SHALL indicate the type of revocation information provided in the DataUrl field. The
|
|
137
|
+
* following values are defined:
|
|
138
|
+
* • 0: CRL (Certificate Revocation List) in PEM format.
|
|
139
|
+
* • 1: Signed JSON object containing a list of revoked certificates.
|
|
140
|
+
* • 2: Signed JSON object containing a list of revoked certificates, with additional metadata.
|
|
141
|
+
*/
|
|
142
|
+
revocationType: RevocationTypeEnum;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* The SchemaVersion field value history for this schema is provided below:
|
|
146
|
+
* * 0: Initial Release
|
|
147
|
+
*/
|
|
148
|
+
schemaVersion: number;
|
|
149
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { VendorId } from "../datatype/VendorId.js";
|
|
8
|
+
|
|
9
|
+
export enum SoftwareVersionCertificationStatusEnum {
|
|
10
|
+
/**
|
|
11
|
+
* Used for development and test purposes
|
|
12
|
+
* (These will typically not be placed in DCL)
|
|
13
|
+
*/
|
|
14
|
+
DevTest = 0,
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Used for a SoftwareVersion when going into certification testing
|
|
18
|
+
* (These might or might not be placed in DCL, depending on CSA policy and procedures)
|
|
19
|
+
*/
|
|
20
|
+
Provisional = 1,
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Used for a SoftwareVersion which has been certified
|
|
24
|
+
*/
|
|
25
|
+
Certified = 2,
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Used for a SoftwareVersion which has been revoked
|
|
29
|
+
*/
|
|
30
|
+
Revoked = 3,
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* DeviceSoftwareCompliance / Compliance test result Schema
|
|
35
|
+
* @see {@link MatterSpecification.v141.Core} § 11.23.8.
|
|
36
|
+
* DCL endpoint:
|
|
37
|
+
* * /dcl/compliance/device-software-compliance
|
|
38
|
+
* * /dcl/compliance/device-software-compliance/{cDCertificateId}
|
|
39
|
+
*
|
|
40
|
+
* * /dcl/compliance/compliance-info
|
|
41
|
+
* * /dcl/compliance/compliance-info/{vid}/{pid}/{softwareVersion}/{certificationType}
|
|
42
|
+
* * /dcl/compliance/certified-models
|
|
43
|
+
* * /dcl/compliance/certified-models/{vid}/{pid}/{softwareVersion}/{certificationType}
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
export interface DeviceSoftwareComplianceDclSchema {
|
|
47
|
+
/**
|
|
48
|
+
* This field SHALL identify the vendor of the product by its Vendor ID and SHALL match the VendorID
|
|
49
|
+
* field in the Basic Information Cluster of a device running the software referenced by this
|
|
50
|
+
* DeviceModel/DeviceSoftwareVersionModel record.
|
|
51
|
+
*/
|
|
52
|
+
vid: VendorId; // Spec: VendorId
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* This field SHALL identify the Product ID of the product instance to which a certification declaration,
|
|
56
|
+
* and thus a DCL entry, applies. This field SHALL match the ProductID field in the Basic Information
|
|
57
|
+
* Cluster of a device running the software referenced by this DeviceModel/DeviceSoftwareVersionModel
|
|
58
|
+
* record.
|
|
59
|
+
*/
|
|
60
|
+
pid: number; // Spec: ProductId
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* SoftwareVersion SHALL identify the software version number for the device model consistent with
|
|
64
|
+
* the value found in Section 11.21.2.4.3, “SoftwareVersion field”. The SoftwareVersionNumber value
|
|
65
|
+
* SHOULD NOT be displayed to an end-user. SoftwareVersion is not editable, but it would be possible
|
|
66
|
+
* to create a new device model for the same VendorID/ProductID for different versions. Both SoftwareVersion
|
|
67
|
+
* and SoftwareVersionString SHALL be included. This field SHALL match the SoftwareVersion
|
|
68
|
+
* field in the Basic Information Cluster of a device running the software certified by this
|
|
69
|
+
* DeviceModel record.
|
|
70
|
+
*/
|
|
71
|
+
softwareVersion: number;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* This field SHALL match the Software Version String field in the Basic Information Cluster of a
|
|
75
|
+
* device running the software referenced by this DeviceModel record, including format constraints
|
|
76
|
+
* on that field.
|
|
77
|
+
*/
|
|
78
|
+
softwareVersionString: string;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* CDVersionNumber SHALL identify the CD Version Number of the Certification that applies to this
|
|
82
|
+
* Software Image. The CDVersionNumber maps to version_number defined in Certification Elements TLV
|
|
83
|
+
* structure.
|
|
84
|
+
*/
|
|
85
|
+
cdVersionNumber: number;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* The FirmwareInformation field, if present, SHALL match the firmware_information field in attestation-elements
|
|
89
|
+
* field included in the Device Attestation response when this Software Image boots on
|
|
90
|
+
* the device. It is an OPTIONAL field that MAY be present only for devices that meet the requirements
|
|
91
|
+
* listed in Section 6.3.2, “Firmware Information”.
|
|
92
|
+
*/
|
|
93
|
+
softwareVersionCertificationStatus?: SoftwareVersionCertificationStatusEnum;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* This field SHALL have the CSA certification’s certificate ID for the Certification that applies to this
|
|
97
|
+
* record. The value of this field is used in the Certification Declaration's certificate_id field (see Certification
|
|
98
|
+
* Elements TLV structure) for products using the VendorID, ProductID and SoftwareVersion
|
|
99
|
+
* in this schema entry.
|
|
100
|
+
*/
|
|
101
|
+
cdCertificateId: string;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* The SchemaVersion field value history for this schema is provided below:
|
|
105
|
+
* * 0: Initial Release
|
|
106
|
+
*/
|
|
107
|
+
schemaVersion: number;
|
|
108
|
+
}
|