pub struct Ed25519FamilyCert {
pub family_ed25519: Ed25519Identity,
}Expand description
An Ed25519 family certificate.
This is a certificate of CertType::FAMILY_V_IDENTITY where the
family key signs the long-term ed25519 identity key of the given relay.
It purposely does not store the long-term ed25519 identity key of the relay because the idea of this type should be equal only to other types with the same family key.
Fields§
§family_ed25519: Ed25519IdentityThe public key of the family.
Implementations§
Source§impl Ed25519FamilyCert
impl Ed25519FamilyCert
Sourcepub fn verify(
id_ed25519: Ed25519Identity,
cert: KeyUnknownCert,
) -> StdResult<TimerangeBound<Self>, VerifyFailed>
pub fn verify( id_ed25519: Ed25519Identity, cert: KeyUnknownCert, ) -> StdResult<TimerangeBound<Self>, VerifyFailed>
Verifies the validity of an Ed25519FamilyCert.
For such a certificate to be valid, the caller must provide a known Ed25519 identity key of the relay beforehand.
§Requirements
- MUST have the
signed-with-ed25519-keyextension containing the family key. - MUST have a valid signature by the family key.
- MUST be of of
CertType::FAMILY_V_IDENTITY. - Certified key MUST BE of
tor_cert::CertifiedKey::Ed25519. id_ed25519MUST be the certified key.- Both keys MUST be valid mappings to a
ed25519::PublicKey.
Sourcepub fn new_signed(
family_ed25519: &Keypair,
id_ed25519: Ed25519Identity,
expiry: SystemTime,
) -> StdResult<EmbeddedCert<Self, KeyUnknownCert>, Bug>
pub fn new_signed( family_ed25519: &Keypair, id_ed25519: Ed25519Identity, expiry: SystemTime, ) -> StdResult<EmbeddedCert<Self, KeyUnknownCert>, Bug>
Creates a new signed Ed25519FamilyCert.
Trait Implementations§
Source§impl Clone for Ed25519FamilyCert
impl Clone for Ed25519FamilyCert
Source§fn clone(&self) -> Ed25519FamilyCert
fn clone(&self) -> Ed25519FamilyCert
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 Ed25519FamilyCert
impl Debug for Ed25519FamilyCert
impl Eq for Ed25519FamilyCert
Source§impl PartialEq for Ed25519FamilyCert
impl PartialEq for Ed25519FamilyCert
Source§fn eq(&self, other: &Ed25519FamilyCert) -> bool
fn eq(&self, other: &Ed25519FamilyCert) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for Ed25519FamilyCert
Auto Trait Implementations§
impl Freeze for Ed25519FamilyCert
impl RefUnwindSafe for Ed25519FamilyCert
impl Send for Ed25519FamilyCert
impl Sync for Ed25519FamilyCert
impl Unpin for Ed25519FamilyCert
impl UnsafeUnpin for Ed25519FamilyCert
impl UnwindSafe for Ed25519FamilyCert
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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