pub struct InnerOnionDataRequest {
pub destination_pk: PublicKey,
pub nonce: Nonce,
pub temporary_pk: PublicKey,
pub payload: Vec<u8>,
}
Expand description
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§
Source§impl InnerOnionDataRequest
impl InnerOnionDataRequest
Sourcepub fn new(
shared_secret: &PrecomputedKey,
destination_pk: PublicKey,
temporary_pk: PublicKey,
nonce: Nonce,
payload: &OnionDataResponsePayload,
) -> InnerOnionDataRequest
pub fn new( 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
Sourcepub fn get_payload(
&self,
shared_secret: &PrecomputedKey,
) -> Result<OnionDataResponsePayload, GetPayloadError>
pub fn get_payload( &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§
Source§impl Clone for InnerOnionDataRequest
impl Clone for InnerOnionDataRequest
Source§fn clone(&self) -> InnerOnionDataRequest
fn clone(&self) -> InnerOnionDataRequest
Returns a copy 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 InnerOnionDataRequest
impl Debug for InnerOnionDataRequest
Source§impl FromBytes for InnerOnionDataRequest
impl FromBytes for InnerOnionDataRequest
Source§fn from_bytes(
i: &[u8],
) -> IResult<&[u8], InnerOnionDataRequest, (&[u8], ErrorKind)>
fn from_bytes( i: &[u8], ) -> IResult<&[u8], InnerOnionDataRequest, (&[u8], ErrorKind)>
Deserialize struct using
nom
from raw bytesSource§impl PartialEq for InnerOnionDataRequest
impl PartialEq for InnerOnionDataRequest
Source§impl ToBytes for InnerOnionDataRequest
impl ToBytes for InnerOnionDataRequest
impl Eq for InnerOnionDataRequest
impl StructuralPartialEq for InnerOnionDataRequest
Auto Trait Implementations§
impl Freeze for InnerOnionDataRequest
impl RefUnwindSafe for InnerOnionDataRequest
impl Send for InnerOnionDataRequest
impl Sync for InnerOnionDataRequest
impl Unpin for InnerOnionDataRequest
impl UnwindSafe for InnerOnionDataRequest
Blanket Implementations§
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