Skip to main content

validate

Function validate 

Source
pub fn validate<'p, 'a, V, T, R, W>(
    certificates: &'p [&'a Certificate<'a>],
    trusted_aa_ca: &'a Certificate<'a>,
    context: &ValidationContext<'a, '_, V, T, R, W>,
) -> PathResult<'p, 'a, <V as Verify<W>>::Error, R::Error>
where W: Work, for<'op> V: Verify<W> + Verify<Execution<'op>, Error = <V as Verify<W>>::Error>, T: Watch, R: Recognizer<W>,
Expand description

Validate one full AA path ending in a caller-selected, directly trusted AA CA.

Input includes the AA issuer first and the selected AA CA last. The final position must be the exact trusted_aa_ca object supplied separately from the path; trust is never inferred from the final element of an input pool. Equal encodings can be represented by using that trusted object in the final position, without copying or re-parsing its contents. All lower certificates must have AAControls; the AA CA’s optional control also applies. One position alone is not an AA-CA path: use explicit direct-AA authentication instead. No self-signed certificate discovered in a pool becomes trusted.

The existing PKIX context controls policy, interval and path processing bounds. Its Work bounds the entire operation, including the control census. Only the PKIX phase consumes ValidationBounds.work; no new policy settings are added. All control syntax/distance checks run before provider callbacks. Critical AAControls is understood only because this operation enforces its complete census; the caller’s remaining recognizer capabilities are forwarded unchanged. No successful prefix or key is returned on processing/callback refusal. RFC5755 §7.4: https://www.rfc-editor.org/rfc/rfc5755#section-7.4