\hypertarget{group__wickr__transport__ctx}{}\doxysection{Wickr\+\_\+transport\+\_\+ctx}
\label{group__wickr__transport__ctx}\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx}}
\begin{DoxyCompactList}\small\item\em Transport context to manage the state machine of a point to point connection using fundamentals of the Wickr protocol as building blocks. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structwickr__transport__callbacks}{wickr\+\_\+transport\+\_\+callbacks}}
\begin{DoxyCompactList}\small\item\em callbacks to notify the user of events within the transport \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__wickr__transport__ctx_gaf657713b03e0de48b75bcab0a4706bfe}{wickr\+\_\+transport\+\_\+error}} \{ \newline
{\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+NONE}
, {\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+HANDSHAKE\+\_\+\+FAILED}
, {\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+CREATE\+\_\+\+HANDSHAKE\+\_\+\+FAILED}
, {\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+START\+\_\+\+HANDSHAKE\+\_\+\+FAILED}
, \newline
{\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+PROCESS\+\_\+\+HANDSHAKE\+\_\+\+FAILED}
, {\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+HANDSHAKE\+\_\+\+VOLLEY\+\_\+\+FAILED}
, {\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+BAD\+\_\+\+START\+\_\+\+STATUS}
, {\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+BAD\+\_\+\+RX\+\_\+\+STATE}
, \newline
{\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+BAD\+\_\+\+TX\+\_\+\+STATE}
, {\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+PACKET\+\_\+\+ENCODE\+\_\+\+FAILED}
, {\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+PACKET\+\_\+\+DECODE\+\_\+\+FAILED}
, {\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+PACKET\+\_\+\+SERIALIZATION\+\_\+\+FAILED}
, \newline
{\bfseries TRANSPORT\+\_\+\+ERROR\+\_\+\+INVALID\+\_\+\+RXDATA}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__transport__ctx_ga7f53518b7025b4d8b782efd9a5f37b0b}{wickr\+\_\+transport\+\_\+ctx\+\_\+create}} (const \mbox{\hyperlink{structwickr__crypto__engine}{wickr\+\_\+crypto\+\_\+engine\+\_\+t}} engine, \mbox{\hyperlink{structwickr__identity__chain}{wickr\+\_\+identity\+\_\+chain\+\_\+t}} $\ast$local\+\_\+identity, \mbox{\hyperlink{structwickr__identity__chain}{wickr\+\_\+identity\+\_\+chain\+\_\+t}} $\ast$remote\+\_\+identity, uint32\+\_\+t evo\+\_\+count, \mbox{\hyperlink{structwickr__transport__callbacks}{wickr\+\_\+transport\+\_\+callbacks\+\_\+t}} callbacks, void $\ast$user)
\item 
\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__transport__ctx_gaa49b2cf44bcb02d656598a17e5ae1c52}{wickr\+\_\+transport\+\_\+ctx\+\_\+copy}} (const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ctx)
\item 
void \mbox{\hyperlink{group__wickr__transport__ctx_gabe547b01f4f02efea3f518d7445a71ee}{wickr\+\_\+transport\+\_\+ctx\+\_\+destroy}} (\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$$\ast$ctx)
\item 
void \mbox{\hyperlink{group__wickr__transport__ctx_gaee74761e31d5f0a6fc97e2ccf5ac1e29}{wickr\+\_\+transport\+\_\+ctx\+\_\+start}} (\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ctx)
\item 
void \mbox{\hyperlink{group__wickr__transport__ctx_gad9d2f86832cfb9c1948ba679fabbedbc}{wickr\+\_\+transport\+\_\+ctx\+\_\+process\+\_\+tx\+\_\+buffer}} (\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ctx, const \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$buffer)
\item 
void \mbox{\hyperlink{group__wickr__transport__ctx_gad982fd3463a81a667592e18d7bf90822}{wickr\+\_\+transport\+\_\+ctx\+\_\+process\+\_\+rx\+\_\+buffer}} (\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ctx, const \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$buffer)
\item 
wickr\+\_\+transport\+\_\+status \mbox{\hyperlink{group__wickr__transport__ctx_ga3d3ffde9ec2f9f12ecb6999a048e2437}{wickr\+\_\+transport\+\_\+ctx\+\_\+get\+\_\+status}} (const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ctx)
\item 
const \mbox{\hyperlink{structwickr__identity__chain}{wickr\+\_\+identity\+\_\+chain\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__transport__ctx_gab34681a2ef000180aef01bdd4505c2bd}{wickr\+\_\+transport\+\_\+ctx\+\_\+get\+\_\+local\+\_\+identity\+\_\+ptr}} (const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ctx)
\item 
const \mbox{\hyperlink{structwickr__identity__chain}{wickr\+\_\+identity\+\_\+chain\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__transport__ctx_gae1bc092c12a170e80b3794913dbe6860}{wickr\+\_\+transport\+\_\+ctx\+\_\+get\+\_\+remote\+\_\+identity\+\_\+ptr}} (const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ctx)
\item 
const void $\ast$ \mbox{\hyperlink{group__wickr__transport__ctx_gaea14ff3de739f7bf4f85516fdefd1ea9}{wickr\+\_\+transport\+\_\+ctx\+\_\+get\+\_\+user\+\_\+ctx}} (const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ctx)
\item 
void \mbox{\hyperlink{group__wickr__transport__ctx_gac1865750950d6ff5ba3850c5f03ab3c9}{wickr\+\_\+transport\+\_\+ctx\+\_\+set\+\_\+user\+\_\+ctx}} (\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ctx, void $\ast$user)
\item 
\mbox{\hyperlink{group__wickr__transport__ctx_gaf657713b03e0de48b75bcab0a4706bfe}{wickr\+\_\+transport\+\_\+error}} \mbox{\hyperlink{group__wickr__transport__ctx_ga0a2a071752ce5c8c2a27f318c0655c58}{wickr\+\_\+transport\+\_\+ctx\+\_\+get\+\_\+last\+\_\+error}} (const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$ctx)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__wickr__transport__ctx_gaf657713b03e0de48b75bcab0a4706bfe}\label{group__wickr__transport__ctx_gaf657713b03e0de48b75bcab0a4706bfe}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_error@{wickr\_transport\_error}}
\index{wickr\_transport\_error@{wickr\_transport\_error}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_error}{wickr\_transport\_error}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__wickr__transport__ctx_gaf657713b03e0de48b75bcab0a4706bfe}{wickr\+\_\+transport\+\_\+error}}}

Wickr Transport Context Errors 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__wickr__transport__ctx_gaa49b2cf44bcb02d656598a17e5ae1c52}\label{group__wickr__transport__ctx_gaa49b2cf44bcb02d656598a17e5ae1c52}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_copy@{wickr\_transport\_ctx\_copy}}
\index{wickr\_transport\_ctx\_copy@{wickr\_transport\_ctx\_copy}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_copy()}{wickr\_transport\_ctx\_copy()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}}$\ast$ wickr\+\_\+transport\+\_\+ctx\+\_\+copy (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$}]{ctx }\end{DoxyParamCaption})}

Copy a transport context


\begin{DoxyParams}{Parameters}
{\em ctx} & the transport context to copy \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a newly allocated transport context holding a deep copy of properties from \textquotesingle{}ctx\textquotesingle{} 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__transport__ctx_ga7f53518b7025b4d8b782efd9a5f37b0b}\label{group__wickr__transport__ctx_ga7f53518b7025b4d8b782efd9a5f37b0b}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_create@{wickr\_transport\_ctx\_create}}
\index{wickr\_transport\_ctx\_create@{wickr\_transport\_ctx\_create}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_create()}{wickr\_transport\_ctx\_create()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}}$\ast$ wickr\+\_\+transport\+\_\+ctx\+\_\+create (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__crypto__engine}{wickr\+\_\+crypto\+\_\+engine\+\_\+t}}}]{engine,  }\item[{\mbox{\hyperlink{structwickr__identity__chain}{wickr\+\_\+identity\+\_\+chain\+\_\+t}} $\ast$}]{local\+\_\+identity,  }\item[{\mbox{\hyperlink{structwickr__identity__chain}{wickr\+\_\+identity\+\_\+chain\+\_\+t}} $\ast$}]{remote\+\_\+identity,  }\item[{uint32\+\_\+t}]{evo\+\_\+count,  }\item[{\mbox{\hyperlink{structwickr__transport__callbacks}{wickr\+\_\+transport\+\_\+callbacks\+\_\+t}}}]{callbacks,  }\item[{void $\ast$}]{user }\end{DoxyParamCaption})}

Create a transport context from components


\begin{DoxyParams}{Parameters}
{\em engine} & a crypto engine to be used for the underlying signature, and cipher operations \\
\hline
{\em local\+\_\+identity} & the identity chain information of the person creating the transport context. This should include private signature keys \\
\hline
{\em remote\+\_\+identity} & the identity chain information of the endpoint \textquotesingle{}local\+\_\+identity\textquotesingle{} is connecting too. This field is OPTIONAL. If this field is set, the signature keys provided inside this property will be pinned, and the \textquotesingle{}on\+\_\+identity\+\_\+verify\textquotesingle{} callback will not be called during connection. The remote\+\_\+identity passed in here does not need to contain an \textquotesingle{}ephemeral\+\_\+keypair\textquotesingle{} property, because it will be provided by the remote party during connection, and verified by the node / root signature keys inside the identity \\
\hline
{\em evo\+\_\+count} & the evolution packet count to be passed to the creation of underlying \textquotesingle{}wickr\+\_\+stream\+\_\+ctx\+\_\+t\textquotesingle{} that are created by this transport internally, see \textquotesingle{}wickr\+\_\+stream\+\_\+ctx\+\_\+t\textquotesingle{} for more information \\
\hline
{\em callbacks} & a set of function pointers the \textquotesingle{}wickr\+\_\+transport\+\_\+ctx\+\_\+t\textquotesingle{} will use to pass data, state change information, and identity verification prompts up to the user for processing. This is the I/O of the transport\+\_\+ctx \\
\hline
{\em user} & a pointer to be held and passed to all callbacks \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a newly allocated transport context owning the properties passed in 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__transport__ctx_gabe547b01f4f02efea3f518d7445a71ee}\label{group__wickr__transport__ctx_gabe547b01f4f02efea3f518d7445a71ee}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_destroy@{wickr\_transport\_ctx\_destroy}}
\index{wickr\_transport\_ctx\_destroy@{wickr\_transport\_ctx\_destroy}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_destroy()}{wickr\_transport\_ctx\_destroy()}}
{\footnotesize\ttfamily void wickr\+\_\+transport\+\_\+ctx\+\_\+destroy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$$\ast$}]{ctx }\end{DoxyParamCaption})}

Destroy a transport context


\begin{DoxyParams}{Parameters}
{\em ctx} & a pointer to the transport context to destroy. All properties of \textquotesingle{}$\ast$ctx\textquotesingle{} will also be destroyed \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__wickr__transport__ctx_ga0a2a071752ce5c8c2a27f318c0655c58}\label{group__wickr__transport__ctx_ga0a2a071752ce5c8c2a27f318c0655c58}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_get\_last\_error@{wickr\_transport\_ctx\_get\_last\_error}}
\index{wickr\_transport\_ctx\_get\_last\_error@{wickr\_transport\_ctx\_get\_last\_error}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_get\_last\_error()}{wickr\_transport\_ctx\_get\_last\_error()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__wickr__transport__ctx_gaf657713b03e0de48b75bcab0a4706bfe}{wickr\+\_\+transport\+\_\+error}} wickr\+\_\+transport\+\_\+ctx\+\_\+get\+\_\+last\+\_\+error (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$}]{ctx }\end{DoxyParamCaption})}

Get the most recent error from the context,set whenever the status of the context changes to {\ttfamily TRANSPORT\+\_\+\+STATUS\+\_\+\+ERROR}


\begin{DoxyParams}{Parameters}
{\em ctx} & the transport context to get the most recent error of \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the most recent error inside the transport context 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__transport__ctx_gab34681a2ef000180aef01bdd4505c2bd}\label{group__wickr__transport__ctx_gab34681a2ef000180aef01bdd4505c2bd}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_get\_local\_identity\_ptr@{wickr\_transport\_ctx\_get\_local\_identity\_ptr}}
\index{wickr\_transport\_ctx\_get\_local\_identity\_ptr@{wickr\_transport\_ctx\_get\_local\_identity\_ptr}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_get\_local\_identity\_ptr()}{wickr\_transport\_ctx\_get\_local\_identity\_ptr()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{structwickr__identity__chain}{wickr\+\_\+identity\+\_\+chain\+\_\+t}}$\ast$ wickr\+\_\+transport\+\_\+ctx\+\_\+get\+\_\+local\+\_\+identity\+\_\+ptr (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$}]{ctx }\end{DoxyParamCaption})}

Get the local node information


\begin{DoxyParams}{Parameters}
{\em ctx} & the transport context to get the local identity chain information of \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
identity chain information or NULL if no information is available due to the state of the transport context 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__transport__ctx_gae1bc092c12a170e80b3794913dbe6860}\label{group__wickr__transport__ctx_gae1bc092c12a170e80b3794913dbe6860}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_get\_remote\_identity\_ptr@{wickr\_transport\_ctx\_get\_remote\_identity\_ptr}}
\index{wickr\_transport\_ctx\_get\_remote\_identity\_ptr@{wickr\_transport\_ctx\_get\_remote\_identity\_ptr}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_get\_remote\_identity\_ptr()}{wickr\_transport\_ctx\_get\_remote\_identity\_ptr()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{structwickr__identity__chain}{wickr\+\_\+identity\+\_\+chain\+\_\+t}}$\ast$ wickr\+\_\+transport\+\_\+ctx\+\_\+get\+\_\+remote\+\_\+identity\+\_\+ptr (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$}]{ctx }\end{DoxyParamCaption})}

Get the remote node information


\begin{DoxyParams}{Parameters}
{\em ctx} & the transport context to get the remote identity chain information of \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
identity chain information or NULL if no information is available due to the state of the transport context 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__transport__ctx_ga3d3ffde9ec2f9f12ecb6999a048e2437}\label{group__wickr__transport__ctx_ga3d3ffde9ec2f9f12ecb6999a048e2437}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_get\_status@{wickr\_transport\_ctx\_get\_status}}
\index{wickr\_transport\_ctx\_get\_status@{wickr\_transport\_ctx\_get\_status}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_get\_status()}{wickr\_transport\_ctx\_get\_status()}}
{\footnotesize\ttfamily wickr\+\_\+transport\+\_\+status wickr\+\_\+transport\+\_\+ctx\+\_\+get\+\_\+status (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$}]{ctx }\end{DoxyParamCaption})}

Get the current status of a transport context


\begin{DoxyParams}{Parameters}
{\em ctx} & the transport context to get the status of \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the current status of \textquotesingle{}ctx\textquotesingle{} 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__transport__ctx_gaea14ff3de739f7bf4f85516fdefd1ea9}\label{group__wickr__transport__ctx_gaea14ff3de739f7bf4f85516fdefd1ea9}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_get\_user\_ctx@{wickr\_transport\_ctx\_get\_user\_ctx}}
\index{wickr\_transport\_ctx\_get\_user\_ctx@{wickr\_transport\_ctx\_get\_user\_ctx}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_get\_user\_ctx()}{wickr\_transport\_ctx\_get\_user\_ctx()}}
{\footnotesize\ttfamily const void$\ast$ wickr\+\_\+transport\+\_\+ctx\+\_\+get\+\_\+user\+\_\+ctx (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$}]{ctx }\end{DoxyParamCaption})}

Get the current user context pointer


\begin{DoxyParams}{Parameters}
{\em ctx} & the context to get the user context pointer of \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the current user context pointer 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__transport__ctx_gad982fd3463a81a667592e18d7bf90822}\label{group__wickr__transport__ctx_gad982fd3463a81a667592e18d7bf90822}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_process\_rx\_buffer@{wickr\_transport\_ctx\_process\_rx\_buffer}}
\index{wickr\_transport\_ctx\_process\_rx\_buffer@{wickr\_transport\_ctx\_process\_rx\_buffer}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_process\_rx\_buffer()}{wickr\_transport\_ctx\_process\_rx\_buffer()}}
{\footnotesize\ttfamily void wickr\+\_\+transport\+\_\+ctx\+\_\+process\+\_\+rx\+\_\+buffer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$}]{ctx,  }\item[{const \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$}]{buffer }\end{DoxyParamCaption})}

Process a buffer that was received from the remote via a transport layer. This may include handshake data or encrypted content


\begin{DoxyParams}{Parameters}
{\em ctx} & the context to process the buffer with \\
\hline
{\em buffer} & the buffer to be processed by by \textquotesingle{}ctx\textquotesingle{} \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__wickr__transport__ctx_gad9d2f86832cfb9c1948ba679fabbedbc}\label{group__wickr__transport__ctx_gad9d2f86832cfb9c1948ba679fabbedbc}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_process\_tx\_buffer@{wickr\_transport\_ctx\_process\_tx\_buffer}}
\index{wickr\_transport\_ctx\_process\_tx\_buffer@{wickr\_transport\_ctx\_process\_tx\_buffer}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_process\_tx\_buffer()}{wickr\_transport\_ctx\_process\_tx\_buffer()}}
{\footnotesize\ttfamily void wickr\+\_\+transport\+\_\+ctx\+\_\+process\+\_\+tx\+\_\+buffer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$}]{ctx,  }\item[{const \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$}]{buffer }\end{DoxyParamCaption})}

Process a buffer that should be sent to the remote party

NOTE\+: This function requires the transport context to be in ACTIVE status, attempting to process a tx buffer in any other state will cause the transport to enter the error status. When the buffer has completed processing the encrypted payload will be passed back via the wickr\+\_\+transport\+\_\+tx\+\_\+func callback.


\begin{DoxyParams}{Parameters}
{\em ctx} & the context to process the buffer with \\
\hline
{\em buffer} & the buffer to be encrypted and sent over the transport \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__wickr__transport__ctx_gac1865750950d6ff5ba3850c5f03ab3c9}\label{group__wickr__transport__ctx_gac1865750950d6ff5ba3850c5f03ab3c9}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_set\_user\_ctx@{wickr\_transport\_ctx\_set\_user\_ctx}}
\index{wickr\_transport\_ctx\_set\_user\_ctx@{wickr\_transport\_ctx\_set\_user\_ctx}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_set\_user\_ctx()}{wickr\_transport\_ctx\_set\_user\_ctx()}}
{\footnotesize\ttfamily void wickr\+\_\+transport\+\_\+ctx\+\_\+set\+\_\+user\+\_\+ctx (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$}]{ctx,  }\item[{void $\ast$}]{user }\end{DoxyParamCaption})}

Set a user context pointer


\begin{DoxyParams}{Parameters}
{\em ctx} & the transport context to set the user supplied context info to \\
\hline
{\em user} & the pointer for the transport context to hold and be passed back in callbacks \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__wickr__transport__ctx_gaee74761e31d5f0a6fc97e2ccf5ac1e29}\label{group__wickr__transport__ctx_gaee74761e31d5f0a6fc97e2ccf5ac1e29}} 
\index{Wickr\_transport\_ctx@{Wickr\_transport\_ctx}!wickr\_transport\_ctx\_start@{wickr\_transport\_ctx\_start}}
\index{wickr\_transport\_ctx\_start@{wickr\_transport\_ctx\_start}!Wickr\_transport\_ctx@{Wickr\_transport\_ctx}}
\doxysubsubsection{\texorpdfstring{wickr\_transport\_ctx\_start()}{wickr\_transport\_ctx\_start()}}
{\footnotesize\ttfamily void wickr\+\_\+transport\+\_\+ctx\+\_\+start (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structwickr__transport__ctx}{wickr\+\_\+transport\+\_\+ctx\+\_\+t}} $\ast$}]{ctx }\end{DoxyParamCaption})}

Start the transport handshake to establish stream cipher keys and begin secure communication

When handshake data is generated, the \textquotesingle{}wickr\+\_\+transport\+\_\+tx\+\_\+func\textquotesingle{} callback will be fired so that it can be forwarded via the proper communication channel. Handshake responses can be passed back into the transport context via the \textquotesingle{}wickr\+\_\+transport\+\_\+ctx\+\_\+process\+\_\+rx\+\_\+buffer\textquotesingle{} function. The \textquotesingle{}on\+\_\+state\textquotesingle{} callback of the transport will be fired to indicate the various stages of the handshake reaching completion, or an error occuring. User data may be passed into the \textquotesingle{}wickr\+\_\+transport\+\_\+ctx\+\_\+process\+\_\+tx\+\_\+buffer\textquotesingle{} function after the transport status reaches \textquotesingle{}TRANSPORT\+\_\+\+STATUS\+\_\+\+ACTIVE\textquotesingle{}. If \textquotesingle{}remote\+\_\+identity\textquotesingle{} was not set during creation, and thus no remote key information is pinned, the \textquotesingle{}on\+\_\+identity\+\_\+verify\textquotesingle{} callback will be called for the application to verify the integrity of the remote\textquotesingle{}s identity via cached information, or whatever other means it has.


\begin{DoxyParams}{Parameters}
{\em ctx} & the transport to start the handshake on \\
\hline
\end{DoxyParams}
