pub struct CommissionerConfig<'a> {Show 13 fields
pub pase_attestation_challenge: [u8; 16],
pub fabric: &'a FabricRecord,
pub setup_payload: &'a SetupPayload,
pub paa_trust_store: &'a PaaTrustStore,
pub cd_signing_roots: &'a CdSigningRoots,
pub commissioner_node_id: u64,
pub assigned_node_id: u64,
pub ipk_epoch_key: [u8; 16],
pub case_admin_subject: u64,
pub admin_vendor_id: u16,
pub now: MatterTime,
pub rng: Arc<dyn NocRng>,
pub network: NetworkCredentials,
}Expand description
Configuration passed to Commissioner::new.
All fields are by-reference where possible so the state machine can share long-lived caller-owned resources (the fabric record, the trust store, the setup payload) without copying.
Not #[non_exhaustive] — callers build this as a struct literal
with all public fields populated. Adding a field is a breaking change,
accepted for a pre-1.0 unpublished crate. #[non_exhaustive] stays on
Action, Expectation, Stage, and CommissioningError —
those are read by callers, not constructed by them.
Fields§
§pase_attestation_challenge: [u8; 16]16-byte attestation challenge derived from the active PASE
session. Matter Core Spec §3.6.4: bytes [32..48] of the
48-byte PASE session key blob (exposed as
PaseSessionKeys::attestation_key).
fabric: &'a FabricRecordThe commissioner’s fabric record (RCAC keypair + signer + IPK).
Constructed via FabricRecord::new_root_only from M6.3.
setup_payload: &'a SetupPayloadThe setup payload parsed from QR or manual code (M6.1). Used to cross-check VID/PID against the DAC’s subject during attestation verification.
paa_trust_store: &'a PaaTrustStoreTrusted PAA roots for attestation chain validation (M6.2).
cd_signing_roots: &'a CdSigningRootsTrusted CSA Certification Declaration signing roots (M6.4.3).
Tests can use CdSigningRoots::with_example_device_roots(); production
callers supply CSA-published roots via CdSigningRoots::from_pem.
commissioner_node_id: u64The commissioner’s own operational node ID on this fabric. Must be non-zero.
assigned_node_id: u64The operational node ID being assigned to the device on this
fabric. Must be non-zero and distinct from
commissioner_node_id.
ipk_epoch_key: [u8; 16]16-byte Identity Protection Key (IPK) epoch key for AddNOC.
Matter Core Spec §4.15.2. Must not be all-zero (rejected by
the device-side AddNOC handler).
case_admin_subject: u64CASE admin subject for AddNOC (typically the commissioner’s
own operational node ID).
admin_vendor_id: u16Admin vendor ID for AddNOC.
now: MatterTimeWall-clock time at construction. Used for NOC + RCAC validity
windows and for chain verification’s not_before / not_after
checks.
rng: Arc<dyn NocRng>RNG for nonces (CSRNonce, AttestationNonce) and NOC serials.
network: NetworkCredentialsOperational-network credentials for the commissionee.
NetworkCredentials::AlreadyOnNetwork skips the network
sub-cursor entirely, mirroring chip’s AutoCommissioner: network
provisioning runs ONLY when concrete credentials are supplied. It is
correct both for Ethernet-only devices and for devices already
reachable on their operational network (the usual case for IP
commissioning, e.g. a second-fabric commission). Supplying
NetworkCredentials::WiFi or NetworkCredentials::Thread
forces provisioning via Stage::NetworkSetup.