#[non_exhaustive]
pub enum ChanMsg {
Show 19 variants
Padding(Padding),
VPadding(VPadding),
Create(Create),
CreateFast(CreateFast),
Create2(Create2),
Created(Created),
CreatedFast(CreatedFast),
Created2(Created2),
Relay(Relay),
RelayEarly(Relay),
Destroy(Destroy),
Netinfo(Netinfo),
Versions(Versions),
PaddingNegotiate(PaddingNegotiate),
Certs(Certs),
AuthChallenge(AuthChallenge),
Authenticate(Authenticate),
Authorize(Authorize),
Unrecognized(Unrecognized),
}Expand description
Decoded message from a channel.
A ChanMsg is an item received on a channel – a message from another Tor client or relay that we are connected to directly over a TLS connection.
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
Padding(Padding)
A Padding message
VPadding(VPadding)
Variable-length padding message
Create(Create)
(Deprecated) TAP-based cell to create a new circuit.
CreateFast(CreateFast)
(Mostly deprecated) HMAC-based cell to create a new circuit.
Create2(Create2)
Cell to create a new circuit
Created(Created)
(Deprecated) Answer to a Create cell
CreatedFast(CreatedFast)
(Mostly Deprecated) Answer to a CreateFast cell
Created2(Created2)
Answer to a Create2 cell
Relay(Relay)
A message sent along a circuit, likely to a more-distant relay.
RelayEarly(Relay)
A message sent along a circuit (limited supply)
Destroy(Destroy)
Tear down a circuit
Netinfo(Netinfo)
Part of channel negotiation: describes our position on the network
Versions(Versions)
Part of channel negotiation: describes what link protocol versions we support
PaddingNegotiate(PaddingNegotiate)
Negotiates what kind of channel padding to send
Certs(Certs)
Part of channel negotiation: additional certificates not in the TLS handshake
AuthChallenge(AuthChallenge)
Part of channel negotiation: additional random material to be used as part of authentication
Authenticate(Authenticate)
Part of channel negotiation: used to authenticate relays when they initiate the channel.
Authorize(Authorize)
Not yet used
Unrecognized(Unrecognized)
Any cell whose command we don’t recognize
Implementations
sourceimpl ChanMsg
impl ChanMsg
sourcepub fn write_body_onto<W: Writer + ?Sized>(self, w: &mut W) -> EncodeResult<()>
pub fn write_body_onto<W: Writer + ?Sized>(self, w: &mut W) -> EncodeResult<()>
Write the body of this message (not including length or command).