[−][src]Struct cashweb_relay::Message
The primary message used in communication over the relay protocol.
Fields
source_public_key: Vec<u8>
The source public key.
destination_public_key: Vec<u8>
The destinations public key.
received_time: i64
Maleable server time.
payload_digest: Vec<u8>
The SHA-256 digest of the payload.
stamp: Option<Stamp>
The stamp attached to the message.
scheme: i32
The encryption scheme used on the serialized Payload
to produce the
payload
field.
salt: Vec<u8>
The salt
is used to salt both the payload_hmac
and the encryption key.
payload_hmac: Vec<u8>
The HMAC of the payload
, specifically HMAC(HMAC(sdG, salt), payload_digest)
.
payload_size: u64
The size, in bytes, of the payload
.
payload: Vec<u8>
The encrypted payload
.
Implementations
impl Message
[src]
pub fn scheme(&self) -> EncryptionScheme
[src]
Returns the enum value of scheme
, or the default if the field is set to an invalid enum value.
pub fn set_scheme(&mut self, value: EncryptionScheme)
[src]
Sets scheme
to the provided enum value.
impl Message
[src]
pub fn digest(&self) -> Result<[u8; 32], DigestError>
[src]
Get the SHA-256 digest of the payload
, if payload_digest
is missing then calculate it.
pub fn parse(self) -> Result<ParsedMessage, ParseError>
[src]
Parse the Message to construct a ParsedMessage.
The involves deserialization of both public keys, calculation of the payload digest, and coercion of byte fields into arrays.
Trait Implementations
impl Clone for Message
[src]
impl Debug for Message
[src]
impl Default for Message
[src]
impl Message for Message
[src]
fn encode_raw<B>(&self, buf: &mut B) where
B: BufMut,
[src]
B: BufMut,
fn merge_field<B>(
&mut self,
tag: u32,
wire_type: WireType,
buf: &mut B,
ctx: DecodeContext
) -> Result<(), DecodeError> where
B: Buf,
[src]
&mut self,
tag: u32,
wire_type: WireType,
buf: &mut B,
ctx: DecodeContext
) -> Result<(), DecodeError> where
B: Buf,
fn encoded_len(&self) -> usize
[src]
fn clear(&mut self)
[src]
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
[src]
B: BufMut,
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
[src]
B: BufMut,
fn decode<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
[src]
B: Buf,
Self: Default,
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
[src]
B: Buf,
Self: Default,
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
[src]
B: Buf,
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
[src]
B: Buf,
impl PartialEq<Message> for Message
[src]
impl StructuralPartialEq for Message
[src]
Auto Trait Implementations
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnwindSafe for Message
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,
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> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
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.
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>,