DirectoryAuthority

Struct DirectoryAuthority 

Source
pub struct DirectoryAuthority {
    pub nickname: String,
    pub address: IpAddr,
    pub dir_port: u16,
    pub or_port: u16,
    pub fingerprint: String,
    pub v3ident: Option<String>,
}
Expand description

Information about a Tor directory authority.

Directory authorities are trusted servers that vote on the network consensus. They are hardcoded into Tor clients and are the root of trust for the Tor network.

§Fields

Each authority has:

  • A nickname for identification
  • Network addresses (IP, DirPort, ORPort)
  • A fingerprint (identity key hash)
  • A v3ident (v3 authority identity) for consensus voting

§Example

use stem_rs::descriptor::remote::get_authorities;

for auth in get_authorities() {
    println!("{}: {}:{}", auth.nickname, auth.address, auth.dir_port);
}

Fields§

§nickname: String

Human-readable name of the authority.

Examples: “moria1”, “tor26”, “gabelmoo”

§address: IpAddr

IP address of the authority.

§dir_port: u16

Port for directory requests (HTTP).

Used for downloading descriptors and consensus documents.

§or_port: u16

Port for onion routing connections (TLS).

Used for relay-to-relay communication.

§fingerprint: String

SHA-1 fingerprint of the authority’s identity key.

A 40-character hexadecimal string.

§v3ident: Option<String>

V3 directory authority identity.

Used for signing votes and the consensus. Some authorities may not have this if they don’t participate in v3 consensus voting.

Trait Implementations§

Source§

impl Clone for DirectoryAuthority

Source§

fn clone(&self) -> DirectoryAuthority

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DirectoryAuthority

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.