@@ -10247,6 +10247,121 @@ cluster CommissionerControl = 1873 {
10247
10247
command access(invoke: manage) CommissionNode(CommissionNodeRequest): ReverseOpenCommissioningWindow = 1;
10248
10248
}
10249
10249
10250
+ /** This Cluster is used to manage TLS Client Certificates and to provision
10251
+ TLS endpoints with enough information to facilitate subsequent connection. */
10252
+ provisional cluster TlsCertificateManagement = 2049 {
10253
+ revision 1;
10254
+
10255
+ struct TLSCertStruct {
10256
+ int16u caid = 0;
10257
+ long_octet_string<3000> certificate = 1;
10258
+ }
10259
+
10260
+ struct TLSClientCertificateDetailStruct {
10261
+ int16u ccdid = 0;
10262
+ long_octet_string<3000> clientCertificate = 1;
10263
+ octet_string intermediateCertificates[] = 2;
10264
+ }
10265
+
10266
+ readonly attribute int8u maxRootCertificates = 0;
10267
+ readonly attribute int8u currentRootCertificates = 1;
10268
+ readonly attribute int8u maxClientCertificates = 2;
10269
+ readonly attribute int8u currentClientCertificates = 3;
10270
+ readonly attribute command_id generatedCommandList[] = 65528;
10271
+ readonly attribute command_id acceptedCommandList[] = 65529;
10272
+ readonly attribute event_id eventList[] = 65530;
10273
+ readonly attribute attrib_id attributeList[] = 65531;
10274
+ readonly attribute bitmap32 featureMap = 65532;
10275
+ readonly attribute int16u clusterRevision = 65533;
10276
+
10277
+ request struct ProvisionRootCertificateRequest {
10278
+ long_octet_string<3000> certificate = 0;
10279
+ nullable int16u caid = 1;
10280
+ }
10281
+
10282
+ response struct ProvisionRootCertificateResponse = 1 {
10283
+ int16u caid = 0;
10284
+ }
10285
+
10286
+ request struct FindRootCertificateRequest {
10287
+ nullable int16u caid = 0;
10288
+ }
10289
+
10290
+ response struct FindRootCertificateResponse = 3 {
10291
+ TLSCertStruct certificateDetails[] = 0;
10292
+ }
10293
+
10294
+ request struct LookupRootCertificateRequest {
10295
+ octet_string<64> fingerprint = 0;
10296
+ }
10297
+
10298
+ response struct LookupRootCertificateResponse = 5 {
10299
+ int16u caid = 0;
10300
+ }
10301
+
10302
+ request struct RemoveRootCertificateRequest {
10303
+ int16u caid = 0;
10304
+ }
10305
+
10306
+ request struct TLSClientCSRRequest {
10307
+ octet_string nonce = 0;
10308
+ }
10309
+
10310
+ response struct TLSClientCSRResponse = 8 {
10311
+ int16u ccdid = 0;
10312
+ octet_string csr = 1;
10313
+ octet_string nonce = 2;
10314
+ }
10315
+
10316
+ request struct ProvisionClientCertificateRequest {
10317
+ int16u ccdid = 0;
10318
+ TLSClientCertificateDetailStruct clientCertificateDetails = 1;
10319
+ }
10320
+
10321
+ response struct ProvisionClientCertificateResponse = 10 {
10322
+ int16u ccdid = 0;
10323
+ }
10324
+
10325
+ request struct FindClientCertificateRequest {
10326
+ int16u ccdid = 0;
10327
+ }
10328
+
10329
+ response struct FindClientCertificateResponse = 12 {
10330
+ TLSClientCertificateDetailStruct certificateDetails[] = 0;
10331
+ }
10332
+
10333
+ request struct LookupClientCertificateRequest {
10334
+ octet_string<64> fingerprint = 0;
10335
+ }
10336
+
10337
+ response struct LookupClientCertificateResponse = 14 {
10338
+ int16u ccdid = 0;
10339
+ }
10340
+
10341
+ request struct RemoveClientCertificateRequest {
10342
+ int16u ccdid = 0;
10343
+ }
10344
+
10345
+ /** This command SHALL provision the provided certificate for the passed in CAID. */
10346
+ command access(invoke: administer) ProvisionRootCertificate(ProvisionRootCertificateRequest): ProvisionRootCertificateResponse = 0;
10347
+ /** This command SHALL return the TLSCertStruct for the passed in CAID. */
10348
+ command FindRootCertificate(FindRootCertificateRequest): FindRootCertificateResponse = 2;
10349
+ /** This command SHALL return the CAID for the passed in fingerprint. */
10350
+ command LookupRootCertificate(LookupRootCertificateRequest): LookupRootCertificateResponse = 4;
10351
+ /** This command SHALL be generated to request the server removes the certificate provisioned to the provided Certificate Authority ID. */
10352
+ command access(invoke: administer) RemoveRootCertificate(RemoveRootCertificateRequest): DefaultSuccess = 6;
10353
+ /** This command SHALL be generated to request the Node generates a Certificate Signing Request. */
10354
+ command access(invoke: administer) TLSClientCSR(TLSClientCSRRequest): TLSClientCSRResponse = 7;
10355
+ /** This command SHALL be generated to request the Node provisions the provided Client Certificate Details. */
10356
+ command access(invoke: administer) ProvisionClientCertificate(ProvisionClientCertificateRequest): ProvisionClientCertificateResponse = 9;
10357
+ /** This command SHALL return the TLSClientCertificateDetailStruct for the passed in CCDID. */
10358
+ command FindClientCertificate(FindClientCertificateRequest): FindClientCertificateResponse = 11;
10359
+ /** This command SHALL return the CCDID for the passed in Fingerprint. */
10360
+ command LookupClientCertificate(LookupClientCertificateRequest): LookupClientCertificateResponse = 13;
10361
+ /** This command SHALL be generated to request the Node removes the certificate provisioned to the provided Client Certificate Details ID. */
10362
+ command access(invoke: administer) RemoveClientCertificate(RemoveClientCertificateRequest): DefaultSuccess = 15;
10363
+ }
10364
+
10250
10365
/** The Test Cluster is meant to validate the generated code */
10251
10366
internal cluster UnitTesting = 4294048773 {
10252
10367
revision 1; // NOTE: Default/not specifically set
0 commit comments