#[non_exhaustive]pub enum NocError {
NocsrParse(Box<dyn Error + Send + Sync + 'static>),
CsrParse(Box<dyn Error + Send + Sync + 'static>),
BadCsrSelfSignature,
NonceMismatch,
BadCsrAttestationSignature,
InvalidCsrPublicKey,
DnAttributeOverflow,
CertBuild(Error),
SigningFailed(SignerError),
Rng,
ClusterCodec(Error),
MalformedResponse(&'static str),
}Expand description
Errors produced by matter-commissioning::noc.
Variants are coarse-grained — each maps to a distinct caller-side remediation path. See the M6.3 design doc’s “Information leakage in error variants” table for the audit reasoning.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
NocsrParse(Box<dyn Error + Send + Sync + 'static>)
The NOCSR TLV outer envelope was malformed.
CsrParse(Box<dyn Error + Send + Sync + 'static>)
The embedded PKCS#10 CSR could not be parsed.
BadCsrSelfSignature
The PKCS#10 CSR’s self-signature did not verify.
NonceMismatch
The CSRNonce echoed by the device did not match the value the
commissioner sent in CSRRequest.
BadCsrAttestationSignature
The DAC’s signature over NOCSR_elements || attestation_challenge
did not verify. Coarse by design (see design doc).
InvalidCsrPublicKey
The CSR’s public key was not a valid P-256 SEC1 uncompressed point.
DnAttributeOverflow
A Matter DN attribute (e.g., a CaseAuthenticatedTag) could not be
constructed from the caller-supplied values.
CertBuild(Error)
NOC certificate construction via the matter-cert builder failed.
SigningFailed(SignerError)
The fabric’s root signer rejected the signing operation.
Rng
The system RNG (or a caller-supplied stub) failed.
ClusterCodec(Error)
An OpCreds cluster command codec failed.
MalformedResponse(&'static str)
An OpCreds cluster response was structurally malformed — the TLV
itself decoded, but its shape violated the expected schema (wrong
container kind / tag, duplicate field, a fixed-width field with the
wrong length, or a required field absent).
Distinct from NocError::ClusterCodec, which wraps a low-level codec
failure (e.g. a truncated buffer). A structural mismatch must not be
reported as a codec EOF — the carried &'static str names what was
expected so callers and logs get an accurate label.
Trait Implementations§
Source§impl Error for NocError
impl Error for NocError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()