#[non_exhaustive]pub struct FabricEntry {
pub fabric_id: u64,
pub ipk: [u8; 16],
pub rcac_cert: MatterCertificate,
pub rcac_pkcs8: Vec<u8>,
pub commissioner: CommissionerIdentity,
pub devices: Vec<DeviceEntry>,
pub group_keys: Vec<GroupKeySetConfig>,
pub outbound_group_counter: u32,
pub icd_clients: Vec<IcdRegistration>,
pub icac: Option<IcacIdentity>,
}Expand description
One fabric the controller administers: trust root, IPK, the commissioner identity, and the devices commissioned onto it.
#[non_exhaustive]: persisted record that may gain fields (e.g. an ICAC
tier, fabric label); marking it keeps such additions non-breaking. Only
constructed inside matter-controller.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.fabric_id: u64Matter fabric identifier.
ipk: [u8; 16]16-byte Identity Protection Key for this fabric.
rcac_cert: MatterCertificateSelf-signed root (RCAC) certificate.
rcac_pkcs8: Vec<u8>The RCAC root signing key, PKCS#8 DER.
commissioner: CommissionerIdentityThe controller’s stable identity on this fabric.
devices: Vec<DeviceEntry>Devices commissioned onto this fabric.
group_keys: Vec<GroupKeySetConfig>Group key sets programmed on this fabric (persisted for outbound group message encryption). Empty until the controller programs group keys.
outbound_group_counter: u32The outbound group message counter for this fabric.
Monotonically incremented each time the controller sends a group message. Persisted so the counter survives restarts (spec §4.6.7 prohibits counter reuse across sessions / resets).
icd_clients: Vec<IcdRegistration>ICD (Intermittently Connected Device) client registrations on this
fabric. Each holds the shared key + counter floor the check-in listener
uses to verify a registered device’s Check-In messages. Empty until the
controller calls register_icd_client.
icac: Option<IcacIdentity>Optional per-fabric intermediate CA. None for a flat RCAC->NOC
fabric (the default); Some once the fabric adopts an ICAC tier.
Implementations§
Source§impl FabricEntry
impl FabricEntry
Sourcepub fn rcac_signer(&self) -> Result<RingSigner, Error>
pub fn rcac_signer(&self) -> Result<RingSigner, Error>
Reconstruct the RCAC root signer from the stored PKCS#8 key.
§Errors
Returns Error::Signer if the stored key is not valid PKCS#8.
Sourcepub fn commissioner_signer(&self) -> Result<RingSigner, Error>
pub fn commissioner_signer(&self) -> Result<RingSigner, Error>
Reconstruct the commissioner operational signer from PKCS#8.
§Errors
Returns Error::Signer if the stored key is not valid PKCS#8.
Sourcepub fn to_fabric_record(&self) -> Result<FabricRecord, Error>
pub fn to_fabric_record(&self) -> Result<FabricRecord, Error>
Build a FabricRecord view (used by later sub-phases for NOC
issuance and CASE). Reconstructs the RCAC signer from PKCS#8.
§Errors
Returns Error::Signer if the RCAC key cannot be reconstructed.
Trait Implementations§
Source§impl Clone for FabricEntry
impl Clone for FabricEntry
Source§fn clone(&self) -> FabricEntry
fn clone(&self) -> FabricEntry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more