@@ -10441,6 +10441,121 @@ cluster CommissionerControl = 1873 {
10441
10441
command access(invoke: manage) CommissionNode(CommissionNodeRequest): ReverseOpenCommissioningWindow = 1;
10442
10442
}
10443
10443
10444
+ /** This Cluster is used to manage TLS Client Certificates and to provision
10445
+ TLS endpoints with enough information to facilitate subsequent connection. */
10446
+ provisional cluster TlsCertificateManagement = 2049 {
10447
+ revision 1;
10448
+
10449
+ struct TLSCertStruct {
10450
+ int16u caid = 0;
10451
+ long_octet_string<3000> certificate = 1;
10452
+ }
10453
+
10454
+ struct TLSClientCertificateDetailStruct {
10455
+ int16u ccdid = 0;
10456
+ long_octet_string<3000> clientCertificate = 1;
10457
+ octet_string intermediateCertificates[] = 2;
10458
+ }
10459
+
10460
+ readonly attribute int8u maxRootCertificates = 0;
10461
+ readonly attribute int8u currentRootCertificates = 1;
10462
+ readonly attribute int8u maxClientCertificates = 2;
10463
+ readonly attribute int8u currentClientCertificates = 3;
10464
+ readonly attribute command_id generatedCommandList[] = 65528;
10465
+ readonly attribute command_id acceptedCommandList[] = 65529;
10466
+ readonly attribute event_id eventList[] = 65530;
10467
+ readonly attribute attrib_id attributeList[] = 65531;
10468
+ readonly attribute bitmap32 featureMap = 65532;
10469
+ readonly attribute int16u clusterRevision = 65533;
10470
+
10471
+ request struct ProvisionRootCertificateRequest {
10472
+ long_octet_string<3000> certificate = 0;
10473
+ nullable int16u caid = 1;
10474
+ }
10475
+
10476
+ response struct ProvisionRootCertificateResponse = 1 {
10477
+ int16u caid = 0;
10478
+ }
10479
+
10480
+ request struct FindRootCertificateRequest {
10481
+ nullable int16u caid = 0;
10482
+ }
10483
+
10484
+ response struct FindRootCertificateResponse = 3 {
10485
+ TLSCertStruct certificateDetails[] = 0;
10486
+ }
10487
+
10488
+ request struct LookupRootCertificateRequest {
10489
+ octet_string<64> fingerprint = 0;
10490
+ }
10491
+
10492
+ response struct LookupRootCertificateResponse = 5 {
10493
+ int16u caid = 0;
10494
+ }
10495
+
10496
+ request struct RemoveRootCertificateRequest {
10497
+ int16u caid = 0;
10498
+ }
10499
+
10500
+ request struct TLSClientCSRRequest {
10501
+ octet_string nonce = 0;
10502
+ }
10503
+
10504
+ response struct TLSClientCSRResponse = 8 {
10505
+ int16u ccdid = 0;
10506
+ octet_string csr = 1;
10507
+ octet_string nonce = 2;
10508
+ }
10509
+
10510
+ request struct ProvisionClientCertificateRequest {
10511
+ int16u ccdid = 0;
10512
+ TLSClientCertificateDetailStruct clientCertificateDetails = 1;
10513
+ }
10514
+
10515
+ response struct ProvisionClientCertificateResponse = 10 {
10516
+ int16u ccdid = 0;
10517
+ }
10518
+
10519
+ request struct FindClientCertificateRequest {
10520
+ int16u ccdid = 0;
10521
+ }
10522
+
10523
+ response struct FindClientCertificateResponse = 12 {
10524
+ TLSClientCertificateDetailStruct certificateDetails[] = 0;
10525
+ }
10526
+
10527
+ request struct LookupClientCertificateRequest {
10528
+ octet_string<64> fingerprint = 0;
10529
+ }
10530
+
10531
+ response struct LookupClientCertificateResponse = 14 {
10532
+ int16u ccdid = 0;
10533
+ }
10534
+
10535
+ request struct RemoveClientCertificateRequest {
10536
+ int16u ccdid = 0;
10537
+ }
10538
+
10539
+ /** This command SHALL provision the provided certificate for the passed in CAID. */
10540
+ command access(invoke: administer) ProvisionRootCertificate(ProvisionRootCertificateRequest): ProvisionRootCertificateResponse = 0;
10541
+ /** This command SHALL return the TLSCertStruct for the passed in CAID. */
10542
+ command FindRootCertificate(FindRootCertificateRequest): FindRootCertificateResponse = 2;
10543
+ /** This command SHALL return the CAID for the passed in fingerprint. */
10544
+ command LookupRootCertificate(LookupRootCertificateRequest): LookupRootCertificateResponse = 4;
10545
+ /** This command SHALL be generated to request the server removes the certificate provisioned to the provided Certificate Authority ID. */
10546
+ command access(invoke: administer) RemoveRootCertificate(RemoveRootCertificateRequest): DefaultSuccess = 6;
10547
+ /** This command SHALL be generated to request the Node generates a Certificate Signing Request. */
10548
+ command access(invoke: administer) TLSClientCSR(TLSClientCSRRequest): TLSClientCSRResponse = 7;
10549
+ /** This command SHALL be generated to request the Node provisions the provided Client Certificate Details. */
10550
+ command access(invoke: administer) ProvisionClientCertificate(ProvisionClientCertificateRequest): ProvisionClientCertificateResponse = 9;
10551
+ /** This command SHALL return the TLSClientCertificateDetailStruct for the passed in CCDID. */
10552
+ command FindClientCertificate(FindClientCertificateRequest): FindClientCertificateResponse = 11;
10553
+ /** This command SHALL return the CCDID for the passed in Fingerprint. */
10554
+ command LookupClientCertificate(LookupClientCertificateRequest): LookupClientCertificateResponse = 13;
10555
+ /** This command SHALL be generated to request the Node removes the certificate provisioned to the provided Client Certificate Details ID. */
10556
+ command access(invoke: administer) RemoveClientCertificate(RemoveClientCertificateRequest): DefaultSuccess = 15;
10557
+ }
10558
+
10444
10559
/** The Test Cluster is meant to validate the generated code */
10445
10560
internal cluster UnitTesting = 4294048773 {
10446
10561
revision 1; // NOTE: Default/not specifically set
0 commit comments