pub struct EvidenceRecord<'d> { /* private fields */ }Expand description
Original evidence record. Flat ownership makes traversal and drop stack-safe.
Implementations§
Source§impl<'document> EvidenceRecord<'document>
impl<'document> EvidenceRecord<'document>
Sourcepub fn input_plan(
&self,
operation: &Reader<'_>,
) -> Result<InputPlan<'_, 'document>, PlanError>
pub fn input_plan( &self, operation: &Reader<'_>, ) -> Result<InputPlan<'_, 'document>, PlanError>
Validates every timestamp format/tree width/digest advertisement and same-chain algorithm before covered-object acquisition or provider work.
Sourcepub fn verify<'a, P, PE, A, S, RE, HE>(
&'a self,
provider: &'a P,
operation: &Reader<'a>,
authorities: &'a A,
utc: &LeapTable<'a>,
reference: Instant,
objects: &mut [S],
membership: Membership,
recognizes: impl FnMut(usize, &TokenExtension<'_>, &Execution<'_>) -> Result<bool, RE>,
historical: impl FnMut(Historical<'_, 'a>, &Execution<'_>) -> Result<Decision, HE>,
) -> VerificationResult<'a, 'document, S::Error, PE, RE, A::Error, HE>where
P: for<'scope> SignatureProvider<'scope, Error = PE>,
A: Authorities<'document>,
S: Source,
'document: 'a,
pub fn verify<'a, P, PE, A, S, RE, HE>(
&'a self,
provider: &'a P,
operation: &Reader<'a>,
authorities: &'a A,
utc: &LeapTable<'a>,
reference: Instant,
objects: &mut [S],
membership: Membership,
recognizes: impl FnMut(usize, &TokenExtension<'_>, &Execution<'_>) -> Result<bool, RE>,
historical: impl FnMut(Historical<'_, 'a>, &Execution<'_>) -> Result<Decision, HE>,
) -> VerificationResult<'a, 'document, S::Error, PE, RE, A::Error, HE>where
P: for<'scope> SignatureProvider<'scope, Error = PE>,
A: Authorities<'document>,
S: Source,
'document: 'a,
Verifies every timestamp, both renewal relations, the digest union and
actual chronology. Objects are read ONCE with all chain algorithms in
DigestBatch’s shared fan-out. Reverse execution exposes the next
already checked participant to the caller’s historical validator.
Historical Valid must cover actual path/status, signed ESS restrictions, signature/hash suitability at the next token and tree suitability through the next chain’s first token. The last participant is validated at the explicit verification reference. Unprotected hints never satisfy this.
Sourcepub fn verify_with_profile<'a, P, PE, A, S, RE, HE, FE>(
&'a self,
provider: &'a P,
operation: &Reader<'a>,
authorities: &'a A,
utc: &LeapTable<'a>,
reference: Instant,
objects: &mut [S],
membership: Membership,
recognizes: impl FnMut(usize, &TokenExtension<'_>, &Execution<'_>) -> Result<bool, RE>,
historical: impl FnMut(Historical<'_, 'a>, &Execution<'_>) -> Result<Decision, HE>,
profile: impl for<'view, 'scope> FnMut(usize, ProfileInput<'view, 'document, 'a, 'scope>) -> Result<(), ProfileFailure<FE>>,
) -> VerificationResult<'a, 'document, S::Error, PE, RE, A::Error, HE, FE>where
P: for<'scope> SignatureProvider<'scope, Error = PE>,
A: Authorities<'document>,
S: Source,
'document: 'a,
pub fn verify_with_profile<'a, P, PE, A, S, RE, HE, FE>(
&'a self,
provider: &'a P,
operation: &Reader<'a>,
authorities: &'a A,
utc: &LeapTable<'a>,
reference: Instant,
objects: &mut [S],
membership: Membership,
recognizes: impl FnMut(usize, &TokenExtension<'_>, &Execution<'_>) -> Result<bool, RE>,
historical: impl FnMut(Historical<'_, 'a>, &Execution<'_>) -> Result<Decision, HE>,
profile: impl for<'view, 'scope> FnMut(usize, ProfileInput<'view, 'document, 'a, 'scope>) -> Result<(), ProfileFailure<FE>>,
) -> VerificationResult<'a, 'document, S::Error, PE, RE, A::Error, HE, FE>where
P: for<'scope> SignatureProvider<'scope, Error = PE>,
A: Authorities<'document>,
S: Source,
'document: 'a,
Same complete sequence check with one schema/profile callback per actual
timestamp. It sees the SAME ESS and TSTInfo readings before signature
or covered-input callbacks; no second token parse or provider is used.
Sourcepub fn verify_requests_with_profile<'a, P, PE, A, S, RE, HE, FE>(
&'a self,
provider: &'a P,
operation: &Reader<'a>,
authorities: &'a A,
utc: &LeapTable<'a>,
reference: Instant,
objects: &mut [S],
membership: Membership,
recognizes: impl FnMut(usize, &TokenExtension<'_>, &Execution<'_>) -> Result<bool, RE>,
historical: impl FnMut(Historical<'_, 'a>, &Execution<'_>) -> Result<Decision, HE>,
profile: impl for<'view, 'scope> FnMut(usize, ProfileInput<'view, 'document, 'a, 'scope>) -> Result<(), ProfileFailure<FE>>,
) -> VerificationResult<'a, 'document, S::Error, PE, RE, A::Error, HE, FE>where
P: for<'scope> SignatureProvider<'scope, Error = PE>,
A: Authorities<'document>,
S: RequestSource<'a, P>,
'document: 'a,
pub fn verify_requests_with_profile<'a, P, PE, A, S, RE, HE, FE>(
&'a self,
provider: &'a P,
operation: &Reader<'a>,
authorities: &'a A,
utc: &LeapTable<'a>,
reference: Instant,
objects: &mut [S],
membership: Membership,
recognizes: impl FnMut(usize, &TokenExtension<'_>, &Execution<'_>) -> Result<bool, RE>,
historical: impl FnMut(Historical<'_, 'a>, &Execution<'_>) -> Result<Decision, HE>,
profile: impl for<'view, 'scope> FnMut(usize, ProfileInput<'view, 'document, 'a, 'scope>) -> Result<(), ProfileFailure<FE>>,
) -> VerificationResult<'a, 'document, S::Error, PE, RE, A::Error, HE, FE>where
P: for<'scope> SignatureProvider<'scope, Error = PE>,
A: Authorities<'document>,
S: RequestSource<'a, P>,
'document: 'a,
Checks schema-defined algorithm-dependent object preimages (for example
the TS101733 PoE eight-hash recipe) through the SAME sequence kernel.
Request ordinals refer to original chains; repeated identities share
their completed output. No arbitrary finalized digest is accepted.
Source§impl<'d> EvidenceRecord<'d>
impl<'d> EvidenceRecord<'d>
Sourcepub fn read(parent: &Reader<'d>, element: &Element<'d>) -> Result<Self>
pub fn read(parent: &Reader<'d>, element: &Element<'d>) -> Result<Self>
Reads one original embedded record. Parent encoding/depth are inherited.
Sourcepub fn original(&self) -> Original<'d>
pub fn original(&self) -> Original<'d>
Whole original record, without serializing its retained views.
Sourcepub fn digest_algorithms(&self) -> &[AlgorithmIdentifier<'d>]
pub fn digest_algorithms(&self) -> &[AlgorithmIdentifier<'d>]
Declared union; semantic membership is checked with the selected provider.
Sourcepub fn crypto_infos(&self) -> Option<&[Attribute<'d>]>
pub fn crypto_infos(&self) -> Option<&[Attribute<'d>]>
Unprotected validation hints; no trust is inferred from their presence.
Sourcepub fn encryption_info(&self) -> Option<&EncryptionInfo<'d>>
pub fn encryption_info(&self) -> Option<&EncryptionInfo<'d>>
Unprotected exact re-encryption context.
Sourcepub fn chains(&self) -> &[Chain<'d>]
pub fn chains(&self) -> &[Chain<'d>]
Actual chain order; not a trusted chronology before verification.
Sourcepub fn timestamps(&self) -> &[ArchiveTimeStamp<'d>]
pub fn timestamps(&self) -> &[ArchiveTimeStamp<'d>]
Flat original timestamp catalogue; chain ranges select their members.