Skip to main content

AaPath

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>

Source

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.

Source

pub fn certificates(&self) -> &[&Certificate<'a>]

Exact supplied path, including its explicitly chosen final AA CA.

Source

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.

Trait Implementations§

Source§

impl<'p, 'a> Debug for AaPath<'p, 'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'p, 'a> !Freeze for AaPath<'p, 'a>

§

impl<'p, 'a> !RefUnwindSafe for AaPath<'p, 'a>

§

impl<'p, 'a> !Send for AaPath<'p, 'a>

§

impl<'p, 'a> !Sync for AaPath<'p, 'a>

§

impl<'p, 'a> !UnwindSafe for AaPath<'p, 'a>

§

impl<'p, 'a> Unpin for AaPath<'p, 'a>

§

impl<'p, 'a> UnsafeUnpin for AaPath<'p, 'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.