Struct threema_gateway::IncomingMessage [−][src]
An incoming message received from Threema Gateway.
To receive the message, you’ll need to provide your own HTTP callback
server implementation. The request body bytes that are received this way
can then be parsed using IncomingMessage::from_urlencoded_bytes
.
Note: The IncomingMessage::from_urlencoded_bytes
function validates the
MAC, that’s why it’s not included in here again.
See https://gateway.threema.ch/de/developer/api for details.
Fields
from: String
Sender identity (8 characters)
to: String
Your API identity (8 characters, usually starts with ‘*’)
message_id: String
Message ID assigned by the sender (8 bytes, hex encoded)
date: usize
Message date set by the sender (UNIX timestamp)
nonce: Vec<u8>
Nonce used for encryption (24 bytes, hex encoded)
box_data: Vec<u8>
Encrypted message data (max. 4000 bytes, hex encoded)
nickname: Option<String>
Public nickname of the sender, if set
Implementations
impl IncomingMessage
[src]
pub fn from_urlencoded_bytes(
bytes: impl AsRef<[u8]>,
api_secret: &str
) -> Result<Self, ApiError>
[src]
bytes: impl AsRef<[u8]>,
api_secret: &str
) -> Result<Self, ApiError>
Deserialize an incoming Threema Gateway message in
application/x-www-form-urlencoded
format.
This will validate the MAC. If the MAC is invalid,
ApiError::InvalidMac
will be returned.
Note: You should probably not use this directly, but instead use
E2eApi::decode_incoming_message
!
pub fn decrypt_box(
&self,
public_key: &PublicKey,
private_key: &SecretKey
) -> Result<Vec<u8>, CryptoError>
[src]
&self,
public_key: &PublicKey,
private_key: &SecretKey
) -> Result<Vec<u8>, CryptoError>
Decrypt the box using the specified keys and remove padding.
The public key belongs to the sender in the from
field. The private
key belongs to the gateway ID in the to
field.
The PKCS#7 padding will be removed. If the padding is missing or
invalid, an CryptoError::BadPadding
will be returned.
Note: For more convenience, you might want to prefer the shortcut
E2eApi::decrypt_incoming_message
!
Trait Implementations
impl Debug for IncomingMessage
[src]
impl<'de> Deserialize<'de> for IncomingMessage
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
Auto Trait Implementations
impl RefUnwindSafe for IncomingMessage
impl Send for IncomingMessage
impl Sync for IncomingMessage
impl Unpin for IncomingMessage
impl UnwindSafe for IncomingMessage
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> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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>,