pub struct AuthCertSigned {
pub signatures: AuthCertSignatures,
/* private fields */
}Expand description
Signed (unverified) form of AuthCert
Embodies:
AuthCert: document bodyAuthCertSignatures: signatures
If this type was parsed from a document text, the signatures have not yet been verified.
Use a .verify_... method to obtain useable, verified, contents.
Fields§
§signatures: AuthCertSignaturesSignatures
Implementations§
Source§impl AuthCertSigned
impl AuthCertSigned
Sourcepub fn verify_self_signed(
self,
v3idents: &[RsaIdentity],
pre_tolerance: Duration,
post_tolerance: Duration,
now: SystemTime,
) -> StdResult<AuthCert, VerifyFailed>
Available on crate feature parse2 only.
pub fn verify_self_signed( self, v3idents: &[RsaIdentity], pre_tolerance: Duration, post_tolerance: Duration, now: SystemTime, ) -> StdResult<AuthCert, VerifyFailed>
parse2 only.Verifies the signature of a AuthCert
§Algorithm
- Check whether this comes from a valid authority in
v3idents. - Check whether the timestamps are valid (± tolerance).
- Check whether the fingerprint and long-term identity key match.
- Check the cross-certificate (proof-of-ownership of signing key).
- Check the outer certificate (proof-of-ownership of identity key).
TODO: Replace pre_tolerance and post_tolerance with
tor_dircommon::config::DirTolerance which is not possible at the
moment due to a circular dependency of tor-dircommon depending
upon tor-netdoc.
TODO: Consider whether to try to deduplicate this signature checking
somehow, wrt to UncheckedAuthCert.
Trait Implementations§
Source§impl Clone for AuthCertSigned
impl Clone for AuthCertSigned
Source§fn clone(&self) -> AuthCertSigned
fn clone(&self) -> AuthCertSigned
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AuthCertSigned
impl Debug for AuthCertSigned
Source§impl NetdocParseable for AuthCertSigned
impl NetdocParseable for AuthCertSigned
Source§fn doctype_for_error() -> &'static str
fn doctype_for_error() -> &'static str
Available on crate feature
parse2 only.Document type for errors, normally its intro keyword
Source§fn is_intro_item_keyword(kw: KeywordRef<'_>) -> bool
fn is_intro_item_keyword(kw: KeywordRef<'_>) -> bool
Available on crate feature
parse2 only.Is
Keyword an intro Item Keyword for this kind of document? Read moreSource§fn from_items<'s>(
input: &mut ItemStream<'s>,
outer_stop: StopAt<impl StopPredicate>,
) -> Result<AuthCertSigned, ErrorProblem>
fn from_items<'s>( input: &mut ItemStream<'s>, outer_stop: StopAt<impl StopPredicate>, ) -> Result<AuthCertSigned, ErrorProblem>
Available on crate feature
parse2 only.Parse the document from a stream of Items Read more
Source§impl NetdocSigned for AuthCertSigned
impl NetdocSigned for AuthCertSigned
Source§type Body = AuthCert
type Body = AuthCert
Available on crate feature
parse2 only.The body, ie not including the signatures
Source§type Signatures = AuthCertSignatures
type Signatures = AuthCertSignatures
Available on crate feature
parse2 only.The signatures (the whole signature section)
Source§fn inspect_unverified(&self) -> (&Self::Body, &Self::Signatures)
fn inspect_unverified(&self) -> (&Self::Body, &Self::Signatures)
Available on crate feature
parse2 only.Inspect the document (and its signatures) Read more
Source§fn unwrap_unverified(self) -> (Self::Body, Self::Signatures)
fn unwrap_unverified(self) -> (Self::Body, Self::Signatures)
Available on crate feature
parse2 only.Obtain the actual document (and signatures), without verifying Read more
Source§fn from_parts(body: Self::Body, signatures: Self::Signatures) -> Self
fn from_parts(body: Self::Body, signatures: Self::Signatures) -> Self
Available on crate feature
parse2 only.Construct a new
NetdocSigned from a body and signatures Read moreAuto Trait Implementations§
impl Freeze for AuthCertSigned
impl RefUnwindSafe for AuthCertSigned
impl Send for AuthCertSigned
impl Sync for AuthCertSigned
impl Unpin for AuthCertSigned
impl UnwindSafe for AuthCertSigned
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more