1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! Matter protocol certificate format — parsing and serialisation.
//!
//! Implements Matter Core Specification §6.5: a TLV-encoded variant of
//! X.509 used for both attestation chains (DAC → PAI → PAA) and
//! operational chains (NOC → ICAC → RCAC).
//!
//! # Scope
//!
//! M2.1: types, TLV parser, TLV serialiser. Byte-for-byte round-trip
//! is enforced by the integration test against captured CSA test
//! certificates.
//!
//! M2.2: public-key extraction + ECDSA-P256-SHA256 signature verification
//! primitive via `ring`.
//!
//! M2.3: Matter-TLV → X.509-DER `TBSCertificate` conversion that
//! lets `MatterCertificate::verify_signed_by` work on signatures
//! produced by matter.js (and the broader Matter ecosystem). Byte parity
//! against matter.js's `asUnsignedDer()` is the correctness gate.
//!
//! M2.4 (current): `CertificateChain::validate` against trusted roots,
//! plus `TrustAnchor` / `TrustedRoots`. Per-cert checks: time bounds,
//! CA bit (above the leaf), DN linkage, path-length constraint, and
//! signature verification via M2.3's `verify_signed_by`.
//!
//! crates.io publish remains user-driven (the crate is feature-complete
//! at `0.1.0-pre` after M2.4).
//!
//! Cryptographic verification is delegated to `ring`. This crate
//! never implements the underlying maths.
pub use ;
pub use MatterCertificate;
pub use ;
pub use ;
pub use ;
pub use ;
pub use PublicKey;
pub use Signature;
pub use MatterTime;