@@ -2444,6 +2444,68 @@ cluster AdministratorCommissioning = 60 {
2444
2444
timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2;
2445
2445
}
2446
2446
2447
+ /** Joint Fabric Pki Cluster. */
2448
+ cluster JointFabricPki = 61 {
2449
+ revision 1; // NOTE: Default/not specifically set
2450
+
2451
+ enum JointFabricStatusEnum : enum8 {
2452
+ kOK = 0;
2453
+ kInvalidPublicKey = 1;
2454
+ kInvalidNodeOpId = 2;
2455
+ kInvalidNOC = 3;
2456
+ kMissingCsr = 4;
2457
+ kTableFull = 5;
2458
+ kInvalidAdminSubject = 6;
2459
+ kFabricConflict = 9;
2460
+ kLabelConflict = 10;
2461
+ kInvalidFabricIndex = 11;
2462
+ }
2463
+
2464
+ enum SignNOCIssuerRequestStatusEnum : enum8 {
2465
+ kOK = 0;
2466
+ kFailSafeRequired = 1;
2467
+ kInvalidNOCIssuerCSR = 2;
2468
+ kChainValidationFailed = 3;
2469
+ kTrustQuotientThreshold = 4;
2470
+ kSignNOCIssuerFailed = 5;
2471
+ }
2472
+
2473
+ readonly attribute command_id generatedCommandList[] = 65528;
2474
+ readonly attribute command_id acceptedCommandList[] = 65529;
2475
+ readonly attribute event_id eventList[] = 65530;
2476
+ readonly attribute attrib_id attributeList[] = 65531;
2477
+ readonly attribute bitmap32 featureMap = 65532;
2478
+ readonly attribute int16u clusterRevision = 65533;
2479
+
2480
+ request struct JointFabricRequestRequest {
2481
+ int64u fabricIndex = 0;
2482
+ }
2483
+
2484
+ response struct SignNOCIssuerRequest = 1 {
2485
+ octet_string<400> NOCIssuerCSR = 0;
2486
+ }
2487
+
2488
+ request struct SignNOCIssuerResponseRequest {
2489
+ SignNOCIssuerRequestStatusEnum statusCode = 0;
2490
+ octet_string<400> NOCIssuerCert = 1;
2491
+ node_id nodeId = 2;
2492
+ fabric_id fabricId = 3;
2493
+ vendor_id adminVendorId = 4;
2494
+ int64u caseAdminSubject = 5;
2495
+ }
2496
+
2497
+ response struct JointFabricResponse = 3 {
2498
+ JointFabricStatusEnum statusCode = 0;
2499
+ optional fabric_idx fabricIndex = 1;
2500
+ optional char_string<128> debugText = 2;
2501
+ }
2502
+
2503
+ /** Client requests Server's ICA CSR and CA Chain. */
2504
+ command access(invoke: administer) JointFabricRequest(JointFabricRequestRequest): SignNOCIssuerRequest = 0;
2505
+ /** Joint Fabric ICA generated. */
2506
+ command access(invoke: administer) SignNOCIssuerResponse(SignNOCIssuerResponseRequest): JointFabricResponse = 2;
2507
+ }
2508
+
2447
2509
/** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */
2448
2510
cluster OperationalCredentials = 62 {
2449
2511
revision 1; // NOTE: Default/not specifically set
@@ -7863,6 +7925,15 @@ endpoint 0 {
7863
7925
handle command RevokeCommissioning;
7864
7926
}
7865
7927
7928
+ server cluster JointFabricPki {
7929
+ ram attribute clusterRevision default = 1;
7930
+
7931
+ handle command JointFabricRequest;
7932
+ handle command SignNOCIssuerRequest;
7933
+ handle command SignNOCIssuerResponse;
7934
+ handle command JointFabricResponse;
7935
+ }
7936
+
7866
7937
server cluster OperationalCredentials {
7867
7938
callback attribute NOCs;
7868
7939
callback attribute fabrics;
0 commit comments