Skip to main content

CheckedPath

Struct CheckedPath 

Source
pub struct CheckedPath<'a> { /* private fields */ }
Expand description

Static checked chain used by the common material census.

This does not authenticate its association with a signature, credential or timestamp. Nor does it establish revocation, purpose, historical trust or application algorithm permission. The root operation must establish those separate facts against the actual selected source.

Implementations§

Source§

impl<'document> CheckedPath<'document>

Source

pub fn status_census<'view, 'certificate, W: Work>( &'view self, at: Reading, entries: &'view [MemberStatus<'view, 'certificate, 'document>], execution: &W, ) -> Result<PathStatuses<'view, 'certificate, 'document>, StatusCensusError>

Establish complete original status-input association for the actual path, before deriving conditional validation-material obligations. EN319132-1 V1.3.1 §6.3(aa) refers to the validation data actually needed for the signer, counters, credentials and earlier timestamps, rather than accepting a nonempty bag of statuses as the complete path set. Status/freshness acceptance and historical trust remain separate. https://www.etsi.org/deliver/etsi_en/319100_319199/31913201/01.03.01_60/en_31913201v010301p.pdf

Source§

impl<'document> CheckedPath<'document>

Source

pub fn bind_crl_coverage<'view, 'certificate, W: Work>( &'view self, member: usize, coverage: &'view Coverage<'certificate, 'document>, authorities: &'view [CrlAuthorities<'view, 'document>], utc: &LeapTable<'_>, execution: &W, ) -> Result<CrlCoverageBinding<'view, 'certificate, 'document>, CrlCoverageError>

Bind every original reason contributor using the same target/key/time kernel as a single source. RFC5280 §6.3.3’s reasons_mask union cannot inherit authenticated-path provenance from only its first contributor. This traversal adds no catalogue allocation or signature verification; shared Name comparison retains its ordinary scoped scratch admission. https://www.rfc-editor.org/rfc/rfc5280.html#section-6.3.3

Source

pub fn bind_crl<'view, 'certificate, W: Work>( &'view self, member: usize, evidence: &'view AbsenceEvidence<'certificate, 'document>, authorities: CrlAuthorities<'view, 'document>, utc: &LeapTable<'_>, execution: &W, ) -> Result<CrlBinding<'view, 'certificate, 'document>, CrlBindingError>

Bind one original qualified CRL source to this actual path member. RFC5280 §6.3.3(f) requires the CRL issuer’s path to use the same trust anchor as the target path. Shared CRL authentication already checks the actual signature and cRLSign; this operation binds its original signer and effective key to the supplied checked authority, without repeating math. An indirect CRL authority may differ from the target’s issuer. https://www.rfc-editor.org/rfc/rfc5280.html#section-6.3.3

§Panics

Only if the private nonempty checked-path invariant is violated.

Source§

impl<'document> CheckedPath<'document>

Source

pub fn bind_crl_reading<'view, 'certificate, W: Work>( &'view self, member: usize, reading: CrlReading<'view, 'certificate, 'document>, authorities: CrlAuthorities<'view, 'document>, utc: &LeapTable<'_>, execution: &W, ) -> Result<CrlReadingBinding<'view, 'certificate, 'document>, CrlBindingError>

Bind actual CRL facts using the same authority kernel as qualified absence. Unsuitable freshness/entries remain readable negative facts; only the common facts’ separate absence method can qualify absence.

Source§

impl<'document> CheckedPath<'document>

Source

pub fn bind_ocsp<'view, 'certificate, W: Work>( &'view self, member: usize, evidence: &'view BoundEvidence<'certificate, 'document, 'certificate, 'document>, execution: &W, ) -> Result<OcspBinding<'view, 'certificate, 'document>, OcspBindingError>

Attach a common OCSP target result to the actual path member and issuing key. A successful CertID match alone cannot establish that the caller supplied the issuer that actually certified this target.

RFC6960 §4.2.2.2 requires the same issuing key for direct delegation. Match that original SPKI and authenticated inherited parameter state, rather than reconstructing a standing key from a certificate or accepting a matching issuer DN. Both the common CertID evaluation and this common path already checked Name equality against the SAME original target. Explicit configured-responder trust used no issuing-key authentication; its separate branch is retained, with the same issuer SPKI check. https://www.rfc-editor.org/rfc/rfc6960#section-4.2.2.2

§Panics

Only if the private vector/index invariant is violated: a validated nonzero member index always has its immediately preceding issuer.

Source§

impl<'a> CheckedPath<'a>

Source

pub fn anchor(&self) -> Anchor<'a>

Caller-selected anchor, outside the prospective certification path. An anchor certificate, when supplied, is available for material census but never becomes a non-anchor revocation obligation.

Source

pub fn interval(&self) -> Interval

Exact lossless interval checked by the shared path processor.

Source

pub fn members(&self) -> &[Member<'a>]

Original non-anchor members in issuer-to-subject order. The final entry is the supplied target. Each needs its own status-processing outcome; the path’s existence alone never supplies a Good assertion.

Source

pub fn facts(&self) -> &ValidationFacts<'a>

Accepted static policies/effective target key from the same invocation.

Source

pub fn bind_timestamp<'view, 'certificate, N: Copy, D: Copy, G: Copy, I, W: Work>( &'view self, actor: &'view CheckedActor<'certificate, 'a, N, D, G, I>, utc: &LeapTable<'_>, execution: &W, ) -> TimestampBindingResult<'view, 'certificate, 'a, N, D, G, I>

Binds this actual path to the signer/key used by the complete token check. The checked path interval must contain the entire timestamp-generation interval, not just its bare genTime. This is static TSA path binding; unresolved revocation and application trust acceptance remain separate.

§Panics

Only if the private construction invariant is violated: an accepted common path always has its original nonempty target chain.

Trait Implementations§

Source§

impl<'a> Debug for CheckedPath<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> !Freeze for CheckedPath<'a>

§

impl<'a> !RefUnwindSafe for CheckedPath<'a>

§

impl<'a> !Send for CheckedPath<'a>

§

impl<'a> !Sync for CheckedPath<'a>

§

impl<'a> !UnwindSafe for CheckedPath<'a>

§

impl<'a> Unpin for CheckedPath<'a>

§

impl<'a> UnsafeUnpin for CheckedPath<'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.