[−][src]Struct tox_packet::onion::InnerOnionDataRequest
It's used to send data requests to dht node using onion paths.
When DHT node receives OnionDataRequest
it sends OnionDataResponse
to
destination node for which data request is intended. Thus, data request will
go through 7 intermediate nodes until destination node gets it - 3 nodes with
OnionRequests, onion node that handles OnionDataRequest
and 3 nodes with
OnionResponses.
Serialized form:
Length | Content |
---|---|
1 | 0x85 |
32 | PublicKey of destination node |
24 | Nonce |
32 | Temporary PublicKey |
variable | Payload |
Fields
destination_pk: PublicKey
PublicKey
of destination node
nonce: Nonce
Nonce for the current encrypted payload
temporary_pk: PublicKey
Temporary PublicKey
for the current encrypted payload
payload: Vec<u8>
Encrypted payload
Implementations
impl InnerOnionDataRequest
[src]
pub fn new(
shared_secret: &PrecomputedKey,
destination_pk: PublicKey,
temporary_pk: PublicKey,
nonce: Nonce,
payload: &OnionDataResponsePayload
) -> InnerOnionDataRequest
[src]
shared_secret: &PrecomputedKey,
destination_pk: PublicKey,
temporary_pk: PublicKey,
nonce: Nonce,
payload: &OnionDataResponsePayload
) -> InnerOnionDataRequest
Create InnerOnionDataRequest
from OnionDataResponsePayload
encrypting it with shared_key
and nonce
pub fn get_payload(
&self,
shared_secret: &PrecomputedKey
) -> Result<OnionDataResponsePayload, GetPayloadError>
[src]
&self,
shared_secret: &PrecomputedKey
) -> Result<OnionDataResponsePayload, GetPayloadError>
Decrypt payload and try to parse it as OnionDataResponsePayload
.
Returns Error
in case of failure:
- fails to decrypt
- fails to parse as
OnionDataResponsePayload
Trait Implementations
impl Clone for InnerOnionDataRequest
[src]
pub fn clone(&self) -> InnerOnionDataRequest
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for InnerOnionDataRequest
[src]
impl Eq for InnerOnionDataRequest
[src]
impl FromBytes for InnerOnionDataRequest
[src]
impl PartialEq<InnerOnionDataRequest> for InnerOnionDataRequest
[src]
pub fn eq(&self, other: &InnerOnionDataRequest) -> bool
[src]
pub fn ne(&self, other: &InnerOnionDataRequest) -> bool
[src]
impl StructuralEq for InnerOnionDataRequest
[src]
impl StructuralPartialEq for InnerOnionDataRequest
[src]
impl ToBytes for InnerOnionDataRequest
[src]
Auto Trait Implementations
impl RefUnwindSafe for InnerOnionDataRequest
[src]
impl Send for InnerOnionDataRequest
[src]
impl Sync for InnerOnionDataRequest
[src]
impl Unpin for InnerOnionDataRequest
[src]
impl UnwindSafe for InnerOnionDataRequest
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,