pub struct AaPath<'p, 'a> { /* private fields */ }Expand description
Complete restriction census from the AA issuer through the chosen AA CA.
Implementations§
Source§impl<'p, 'a> AaPath<'p, 'a>
impl<'p, 'a> AaPath<'p, 'a>
Sourcepub fn read<W: Work>(
certificates: &'p [&'p Certificate<'a>],
work: &W,
) -> Result<Check<Self>>
pub fn read<W: Work>( certificates: &'p [&'p Certificate<'a>], work: &W, ) -> Result<Check<Self>>
Collect every control before returning a usable attribute query.
Every PKC below the selected final AA CA must contain AAControls; the AA
CA’s own control is optional but applies if present. An array containing
just the directly trusted AA issuer therefore need not have a control.
The distance excludes the target AA issuer and self-issued intermediate
PKCs, as RFC5280 §4.2.1.9 prescribes for pathLenConstraint.
Malformed/control-resource failures are terminal Result errors. A missing
control or excessive distance produces a completed located rejection;
no successful prefix census is returned. Certificate path authenticity
and final-AA selection are preconditions supplied by the caller.
Sourcepub fn certificates(&self) -> &[&Certificate<'a>]
pub fn certificates(&self) -> &[&Certificate<'a>]
Exact supplied path, including its explicitly chosen final AA CA.
Sourcepub fn allows<W: Work>(
&self,
attribute: Oid<'_>,
work: &W,
) -> Result<Permission>
pub fn allows<W: Work>( &self, attribute: Oid<'_>, work: &W, ) -> Result<Permission>
Intersect all controls for one attribute, retaining the denying source.
Call this for every actual attribute after decryption, including encAttrs itself (§7.4). An exclusion means ignore this attribute for authorization, not that every other attribute or the complete AC must be discarded. Original stored controls keep their capacity charges; current Work pays the traversal and each deferred comparison. No result is cached across requests and no failed query becomes a successful permission.