@@ -10176,6 +10176,189 @@ cluster CommissionerControl = 1873 {
10176
10176
command access(invoke: manage) CommissionNode(CommissionNodeRequest): ReverseOpenCommissioningWindow = 1;
10177
10177
}
10178
10178
10179
+ /** This Cluster is used to manage TLS Client Certificates and to provision
10180
+ TLS endpoints with enough information to facilitate subsequent connection. */
10181
+ cluster TlsCertificateManagement = 2049 {
10182
+ revision 1;
10183
+
10184
+ struct TLSCertStruct {
10185
+ int16u caid = 0;
10186
+ long_octet_string<3000> certificate = 1;
10187
+ }
10188
+
10189
+ struct TLSClientCertificateDetailStruct {
10190
+ int16u ccdid = 0;
10191
+ long_octet_string<3000> clientCertificate = 1;
10192
+ octet_string intermediateCerts[] = 2;
10193
+ }
10194
+
10195
+ readonly attribute int8u maxRootCertificates = 0;
10196
+ readonly attribute int8u currentRootCertificates = 1;
10197
+ readonly attribute int8u maxClientCertificates = 2;
10198
+ readonly attribute int8u currentClientCertificates = 3;
10199
+ readonly attribute command_id generatedCommandList[] = 65528;
10200
+ readonly attribute command_id acceptedCommandList[] = 65529;
10201
+ readonly attribute event_id eventList[] = 65530;
10202
+ readonly attribute attrib_id attributeList[] = 65531;
10203
+ readonly attribute bitmap32 featureMap = 65532;
10204
+ readonly attribute int16u clusterRevision = 65533;
10205
+
10206
+ request struct ProvisionRootCertificateRequest {
10207
+ long_octet_string<3000> certificate = 0;
10208
+ optional nullable int16u caid = 1;
10209
+ }
10210
+
10211
+ response struct ProvisionRootCertificateResponse = 1 {
10212
+ int16u caid = 0;
10213
+ }
10214
+
10215
+ request struct FindRootCertificateRequest {
10216
+ optional nullable int16u caid = 0;
10217
+ }
10218
+
10219
+ response struct FindRootCertificateResponse = 3 {
10220
+ TLSCertStruct certificateDetails[] = 0;
10221
+ }
10222
+
10223
+ request struct LookupRootCertificateRequest {
10224
+ octet_string<64> fingerprint = 0;
10225
+ }
10226
+
10227
+ response struct LookupRootCertificateResponse = 5 {
10228
+ int16u caid = 0;
10229
+ }
10230
+
10231
+ request struct RemoveRootCertificateRequest {
10232
+ int16u caid = 0;
10233
+ }
10234
+
10235
+ request struct TLSClientCSRRequest {
10236
+ octet_string nonce = 0;
10237
+ }
10238
+
10239
+ response struct TLSClientCSRResponse = 8 {
10240
+ int16u ccdid = 0;
10241
+ octet_string csr = 1;
10242
+ octet_string nonce = 2;
10243
+ }
10244
+
10245
+ request struct ProvisionClientCertificateRequest {
10246
+ int16u ccdid = 0;
10247
+ TLSClientCertificateDetailStruct clientCertificateDetails = 1;
10248
+ }
10249
+
10250
+ response struct ProvisionClientCertificateResponse = 10 {
10251
+ int16u ccdid = 0;
10252
+ }
10253
+
10254
+ request struct FindClientCertificateRequest {
10255
+ int16u ccdid = 0;
10256
+ }
10257
+
10258
+ response struct FindClientCertificateResponse = 12 {
10259
+ TLSClientCertificateDetailStruct certificateDetails[] = 0;
10260
+ }
10261
+
10262
+ request struct LookupClientCertificateRequest {
10263
+ octet_string<64> fingerprint = 0;
10264
+ }
10265
+
10266
+ response struct LookupClientCertificateResponse = 14 {
10267
+ int16u ccdid = 0;
10268
+ }
10269
+
10270
+ request struct RemoveClientCertificateRequest {
10271
+ int16u ccdid = 0;
10272
+ }
10273
+
10274
+ /** This command SHALL provision the provided certificate for the passed in CAID. */
10275
+ command access(invoke: administer) ProvisionRootCertificate(ProvisionRootCertificateRequest): ProvisionRootCertificateResponse = 0;
10276
+ /** This command SHALL return the TLSCertStruct for the passed in CAID. */
10277
+ command FindRootCertificate(FindRootCertificateRequest): FindRootCertificateResponse = 2;
10278
+ /** This command SHALL return the CAID for the passed in fingerprint. */
10279
+ command LookupRootCertificate(LookupRootCertificateRequest): LookupRootCertificateResponse = 4;
10280
+ /** This command SHALL be generated to request the server removes the certificate provisioned to the provided Certificate Authority ID. */
10281
+ command access(invoke: administer) RemoveRootCertificate(RemoveRootCertificateRequest): DefaultSuccess = 6;
10282
+ /** This command SHALL be generated to request the Node generates a Certificate Signing Request. */
10283
+ command access(invoke: administer) TLSClientCSR(TLSClientCSRRequest): TLSClientCSRResponse = 7;
10284
+ /** This command SHALL be generated to request the Node provisions the provided Client Certificate Details. */
10285
+ command access(invoke: administer) ProvisionClientCertificate(ProvisionClientCertificateRequest): ProvisionClientCertificateResponse = 9;
10286
+ /** This command SHALL return the TLSClientCertificateDetailStruct for the passed in CCDID. */
10287
+ command FindClientCertificate(FindClientCertificateRequest): FindClientCertificateResponse = 11;
10288
+ /** This command SHALL return the CCDID for the passed in Fingerprint. */
10289
+ command LookupClientCertificate(LookupClientCertificateRequest): LookupClientCertificateResponse = 13;
10290
+ /** This command SHALL be generated to request the Node removes the certificate provisioned to the provided Client Certificate Details ID. */
10291
+ command access(invoke: administer) RemoveClientCertificate(RemoveClientCertificateRequest): DefaultSuccess = 15;
10292
+ }
10293
+
10294
+ /** This Cluster is used to provision TLS Endpoints with enough information to facilitate subsequent connection. */
10295
+ cluster TlsClientManagement = 2050 {
10296
+ revision 1;
10297
+
10298
+ enum TLSEndpointStatusEnum : enum8 {
10299
+ kProvisioned = 0;
10300
+ kInUse = 1;
10301
+ }
10302
+
10303
+ struct TLSEndpointStruct {
10304
+ int16u endpointID = 0;
10305
+ octet_string hostname = 1;
10306
+ int16u port = 2;
10307
+ int16u caid = 3;
10308
+ optional nullable int16u ccdid = 4;
10309
+ TLSEndpointStatusEnum status = 5;
10310
+ }
10311
+
10312
+ info event EndpointProvisioned = 0 {
10313
+ int16u endpointID = 0;
10314
+ }
10315
+
10316
+ info event EndpointRemoved = 1 {
10317
+ }
10318
+
10319
+ readonly attribute int8u maxProvisioned = 0;
10320
+ readonly attribute int8u currentProvisioned = 1;
10321
+ readonly attribute int8u maxInUse = 2;
10322
+ readonly attribute int8u currentInUse = 3;
10323
+ readonly attribute command_id generatedCommandList[] = 65528;
10324
+ readonly attribute command_id acceptedCommandList[] = 65529;
10325
+ readonly attribute event_id eventList[] = 65530;
10326
+ readonly attribute attrib_id attributeList[] = 65531;
10327
+ readonly attribute bitmap32 featureMap = 65532;
10328
+ readonly attribute int16u clusterRevision = 65533;
10329
+
10330
+ request struct ProvisionEndpointRequest {
10331
+ octet_string hostname = 0;
10332
+ int16u port = 1;
10333
+ int16u caid = 2;
10334
+ optional nullable int16u ccdid = 3;
10335
+ optional nullable int16u endpointID = 4;
10336
+ }
10337
+
10338
+ response struct ProvisionEndpointResponse = 1 {
10339
+ int16u endpointID = 0;
10340
+ }
10341
+
10342
+ request struct FindEndpointRequest {
10343
+ optional nullable int16u endpointID = 0;
10344
+ }
10345
+
10346
+ response struct FindEndpointResponse = 3 {
10347
+ TLSEndpointStruct endpoints[] = 0;
10348
+ }
10349
+
10350
+ request struct RemoveEndpointRequest {
10351
+ int16u endpointID = 0;
10352
+ }
10353
+
10354
+ /** This command SHALL provision a TLS Endpoint for the provided HostName / Port combination. */
10355
+ command access(invoke: administer) ProvisionEndpoint(ProvisionEndpointRequest): ProvisionEndpointResponse = 0;
10356
+ /** This command SHALL return the TLS Endpoint details for the passed in EndpointID. */
10357
+ command FindEndpoint(FindEndpointRequest): FindEndpointResponse = 2;
10358
+ /** This command SHALL be generated to request the Node terminates the TLS Connection. */
10359
+ command access(invoke: administer) RemoveEndpoint(RemoveEndpointRequest): DefaultSuccess = 4;
10360
+ }
10361
+
10179
10362
/** The Test Cluster is meant to validate the generated code */
10180
10363
internal cluster UnitTesting = 4294048773 {
10181
10364
revision 1; // NOTE: Default/not specifically set
0 commit comments