pub struct SigningAttributes<'a> { /* private fields */ }Expand description
Both independently evaluated ESS attributes, with placement/cardinality diagnostics separate from certificate/hash/path checking.
Implementations§
Source§impl<'a> SigningAttributes<'a>
impl<'a> SigningAttributes<'a>
Sourcepub fn bind_certificate<P: AsnDigest<'a>>(
&self,
provider: &'a P,
certificate: &Certificate<'_>,
parent: &Reader<'a>,
) -> Result<Bindings, BindingError<P::Error>>
pub fn bind_certificate<P: AsnDigest<'a>>( &self, provider: &'a P, certificate: &Certificate<'_>, parent: &Reader<'a>, ) -> Result<Bindings, BindingError<P::Error>>
Checks both first identifiers over one complete original DER certificate.
Resolution and known-width checks precede every state/input side effect. Semantic digest identities are deduplicated through the selected provider; neither digest states nor output identities are cloned. Each version keeps its own outcome, while the target issuer is prepared at most once. Later identifiers and policy terms remain signed validation-set restrictions in this object; the caller must enforce them and signature/path/time policy.
Source§impl<'a> SigningAttributes<'a>
impl<'a> SigningAttributes<'a>
Sourcepub fn read(signer: &SignerInfo<'a>, parent: &Reader<'a>) -> Result<Self>
pub fn read(signer: &SignerInfo<'a>, parent: &Reader<'a>) -> Result<Self>
Reads the recognized signed fields using original value provenance.
RFC5035 §§3/5 require one instance and one value in signed attributes. Byte-identical repeats retain one reading plus a cardinality fault; conflicting values refuse selection. Unsigned instances are retained as placement faults, never used as certificate bindings. No resolver, hash state, signature or caller payload is accessed during this step. https://www.rfc-editor.org/rfc/rfc5035#section-3
Sourcepub fn inspect(signer: &SignerInfo<'a>, parent: &Reader<'a>) -> Result<Self>
pub fn inspect(signer: &SignerInfo<'a>, parent: &Reader<'a>) -> Result<Self>
Reads the same ESS grammar while retaining nonterminal selection/schema
failures. A conflicting or unreadable version has no selected binding;
its original cause remains in Self::faults. This permits protocol
inspection without choosing a certificate or hiding later obligations.
§Errors
Source/session, depth, memory or work refusal, including refusal to retain a diagnostic. None becomes a recoverable document finding.
Sourcepub fn signed_attributes_present(&self) -> bool
pub fn signed_attributes_present(&self) -> bool
Whether any signed attributes existed, independently of ESS presence.
Sourcepub fn v1(&self) -> Option<&SigningCertificate<'a>>
pub fn v1(&self) -> Option<&SigningCertificate<'a>>
Original V1 signer/path restrictions, when written.
Sourcepub fn v2(&self) -> Option<&SigningCertificate<'a>>
pub fn v2(&self) -> Option<&SigningCertificate<'a>>
Independently evaluated original V2 signer/path restrictions.
Sourcepub fn faults(&self) -> &[Error]
pub fn faults(&self) -> &[Error]
Placement and identical-repetition diagnostics; nested schema faults
remain with each SigningCertificate::faults collection.