Skip to content

Commit 72bd391

Browse files
Detect provisional in cmd and attributes, also zap regen. (project-chip#37692)
* Detect provisional in cmd and attributes * Zap regen --------- Co-authored-by: Andrei Litvin <andreilitvin@google.com>
1 parent 8f760aa commit 72bd391

File tree

4 files changed

+81
-6
lines changed

4 files changed

+81
-6
lines changed

examples/camera-app/camera-common/camera-app.matter

+25-2
Original file line numberDiff line numberDiff line change
@@ -1883,12 +1883,14 @@ cluster OperationalCredentials = 62 {
18831883
fabric_id fabricID = 3;
18841884
node_id nodeID = 4;
18851885
char_string<32> label = 5;
1886+
optional octet_string<85> vidVerificationStatement = 6;
18861887
fabric_idx fabricIndex = 254;
18871888
}
18881889

18891890
fabric_scoped struct NOCStruct {
1890-
fabric_sensitive octet_string noc = 1;
1891-
nullable fabric_sensitive octet_string icac = 2;
1891+
octet_string noc = 1;
1892+
nullable octet_string icac = 2;
1893+
optional octet_string vvsc = 3;
18921894
fabric_idx fabricIndex = 254;
18931895
}
18941896

@@ -1963,6 +1965,23 @@ cluster OperationalCredentials = 62 {
19631965
octet_string rootCACertificate = 0;
19641966
}
19651967

1968+
request struct SetVidVerificationStatementRequest {
1969+
optional vendor_id vendorID = 0;
1970+
optional octet_string vidVerificationStatement = 1;
1971+
optional octet_string vvsc = 2;
1972+
}
1973+
1974+
request struct SignVidVerificationRequestRequest {
1975+
fabric_idx fabricIndex = 0;
1976+
octet_string<32> clientChallenge = 1;
1977+
}
1978+
1979+
response struct SignVidVerificationResponse = 14 {
1980+
fabric_idx fabricIndex = 0;
1981+
int8u fabricBindingVersion = 1;
1982+
octet_string signature = 2;
1983+
}
1984+
19661985
/** Sender is requesting attestation information from the receiver. */
19671986
command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0;
19681987
/** Sender is requesting a device attestation certificate from the receiver. */
@@ -1979,6 +1998,10 @@ cluster OperationalCredentials = 62 {
19791998
command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10;
19801999
/** This command SHALL add a Trusted Root CA Certificate, provided as its CHIP Certificate representation. */
19812000
command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11;
2001+
/** This command SHALL be used to update any of the accessing fabric's associated VendorID, VidVerificatioNStatement or VVSC (Vendor Verification Signing Certificate). */
2002+
fabric command access(invoke: administer) SetVidVerificationStatement(SetVidVerificationStatementRequest): DefaultSuccess = 12;
2003+
/** This command SHALL be used to request that the server authenticate the fabric associated with the FabricIndex given. */
2004+
command access(invoke: administer) SignVidVerificationRequest(SignVidVerificationRequestRequest): SignVidVerificationResponse = 13;
19822005
}
19832006

19842007
/** The Group Key Management Cluster is the mechanism by which group keys are managed. */

examples/chef/devices/rootnode_rainsensor_a7aa5d7738.matter

+25-2
Original file line numberDiff line numberDiff line change
@@ -1333,12 +1333,14 @@ cluster OperationalCredentials = 62 {
13331333
fabric_id fabricID = 3;
13341334
node_id nodeID = 4;
13351335
char_string<32> label = 5;
1336+
optional octet_string<85> vidVerificationStatement = 6;
13361337
fabric_idx fabricIndex = 254;
13371338
}
13381339

13391340
fabric_scoped struct NOCStruct {
1340-
fabric_sensitive octet_string noc = 1;
1341-
nullable fabric_sensitive octet_string icac = 2;
1341+
octet_string noc = 1;
1342+
nullable octet_string icac = 2;
1343+
optional octet_string vvsc = 3;
13421344
fabric_idx fabricIndex = 254;
13431345
}
13441346

@@ -1413,6 +1415,23 @@ cluster OperationalCredentials = 62 {
14131415
octet_string rootCACertificate = 0;
14141416
}
14151417

1418+
request struct SetVidVerificationStatementRequest {
1419+
optional vendor_id vendorID = 0;
1420+
optional octet_string vidVerificationStatement = 1;
1421+
optional octet_string vvsc = 2;
1422+
}
1423+
1424+
request struct SignVidVerificationRequestRequest {
1425+
fabric_idx fabricIndex = 0;
1426+
octet_string<32> clientChallenge = 1;
1427+
}
1428+
1429+
response struct SignVidVerificationResponse = 14 {
1430+
fabric_idx fabricIndex = 0;
1431+
int8u fabricBindingVersion = 1;
1432+
octet_string signature = 2;
1433+
}
1434+
14161435
/** Sender is requesting attestation information from the receiver. */
14171436
command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0;
14181437
/** Sender is requesting a device attestation certificate from the receiver. */
@@ -1429,6 +1448,10 @@ cluster OperationalCredentials = 62 {
14291448
command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10;
14301449
/** This command SHALL add a Trusted Root CA Certificate, provided as its CHIP Certificate representation. */
14311450
command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11;
1451+
/** This command SHALL be used to update any of the accessing fabric's associated VendorID, VidVerificatioNStatement or VVSC (Vendor Verification Signing Certificate). */
1452+
fabric command access(invoke: administer) SetVidVerificationStatement(SetVidVerificationStatementRequest): DefaultSuccess = 12;
1453+
/** This command SHALL be used to request that the server authenticate the fabric associated with the FabricIndex given. */
1454+
command access(invoke: administer) SignVidVerificationRequest(SignVidVerificationRequestRequest): SignVidVerificationResponse = 13;
14321455
}
14331456

14341457
/** The Group Key Management Cluster is the mechanism by which group keys are managed. */

examples/chef/devices/rootnode_waterfreezedetector_dd94a13a16.matter

+25-2
Original file line numberDiff line numberDiff line change
@@ -1333,12 +1333,14 @@ cluster OperationalCredentials = 62 {
13331333
fabric_id fabricID = 3;
13341334
node_id nodeID = 4;
13351335
char_string<32> label = 5;
1336+
optional octet_string<85> vidVerificationStatement = 6;
13361337
fabric_idx fabricIndex = 254;
13371338
}
13381339

13391340
fabric_scoped struct NOCStruct {
1340-
fabric_sensitive octet_string noc = 1;
1341-
nullable fabric_sensitive octet_string icac = 2;
1341+
octet_string noc = 1;
1342+
nullable octet_string icac = 2;
1343+
optional octet_string vvsc = 3;
13421344
fabric_idx fabricIndex = 254;
13431345
}
13441346

@@ -1413,6 +1415,23 @@ cluster OperationalCredentials = 62 {
14131415
octet_string rootCACertificate = 0;
14141416
}
14151417

1418+
request struct SetVidVerificationStatementRequest {
1419+
optional vendor_id vendorID = 0;
1420+
optional octet_string vidVerificationStatement = 1;
1421+
optional octet_string vvsc = 2;
1422+
}
1423+
1424+
request struct SignVidVerificationRequestRequest {
1425+
fabric_idx fabricIndex = 0;
1426+
octet_string<32> clientChallenge = 1;
1427+
}
1428+
1429+
response struct SignVidVerificationResponse = 14 {
1430+
fabric_idx fabricIndex = 0;
1431+
int8u fabricBindingVersion = 1;
1432+
octet_string signature = 2;
1433+
}
1434+
14161435
/** Sender is requesting attestation information from the receiver. */
14171436
command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0;
14181437
/** Sender is requesting a device attestation certificate from the receiver. */
@@ -1429,6 +1448,10 @@ cluster OperationalCredentials = 62 {
14291448
command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10;
14301449
/** This command SHALL add a Trusted Root CA Certificate, provided as its CHIP Certificate representation. */
14311450
command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11;
1451+
/** This command SHALL be used to update any of the accessing fabric's associated VendorID, VidVerificatioNStatement or VVSC (Vendor Verification Signing Certificate). */
1452+
fabric command access(invoke: administer) SetVidVerificationStatement(SetVidVerificationStatementRequest): DefaultSuccess = 12;
1453+
/** This command SHALL be used to request that the server authenticate the fabric associated with the FabricIndex given. */
1454+
command access(invoke: administer) SignVidVerificationRequest(SignVidVerificationRequestRequest): SignVidVerificationResponse = 13;
14321455
}
14331456

14341457
/** The Group Key Management Cluster is the mechanism by which group keys are managed. */

scripts/py_matter_idl/matter_idl/lint/lint_rules_parser.py

+6
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ def DecodeClusterFromXml(element: xml.etree.ElementTree.Element):
9090
if 'optional' in attr.attrib and attr.attrib['optional'] == 'true':
9191
continue
9292

93+
if 'apiMaturity' in attr.attrib and attr.attrib['apiMaturity'] == 'provisional':
94+
continue
95+
9396
# when introducing access controls, the content of attributes may either be:
9497
# <attribute ...>myName</attribute>
9598
# or
@@ -112,6 +115,9 @@ def DecodeClusterFromXml(element: xml.etree.ElementTree.Element):
112115
if 'optional' in cmd.attrib and cmd.attrib['optional'] == 'true':
113116
continue
114117

118+
if 'apiMaturity' in cmd.attrib and cmd.attrib['apiMaturity'] == 'provisional':
119+
continue
120+
115121
required_commands.append(RequiredCommand(
116122
name=cmd.attrib["name"], code=parseNumberString(cmd.attrib['code'])))
117123

0 commit comments

Comments
 (0)