\hypertarget{group__wickr__cipher}{}\doxysection{wickr\+\_\+cipher\+\_\+t}
\label{group__wickr__cipher}\index{wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structwickr__cipher}{wickr\+\_\+cipher}}
\begin{DoxyCompactList}\small\item\em Represents a cipher that can be used in the crypto\+\_\+engine. This meta object holds parameters for the cipher algorithms and maintains an identifier that can be used to look up the desired parameters for an algorithm. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result}}
\item 
struct \mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
const \mbox{\hyperlink{structwickr__cipher}{wickr\+\_\+cipher\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__cipher_ga2b7a8bc33e1fd5af61763398ea9a4013}{wickr\+\_\+cipher\+\_\+find}} (uint8\+\_\+t cipher\+\_\+id)
\item 
\mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__cipher_ga234b60967d0b3ef0088ca3ac30755dde}{wickr\+\_\+cipher\+\_\+result\+\_\+create}} (\mbox{\hyperlink{structwickr__cipher}{wickr\+\_\+cipher\+\_\+t}} cipher, \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$iv, \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$cipher\+\_\+text, \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$auth\+\_\+tag)
\item 
\mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__cipher_gace82050fcc8b7932df9a9e8109a2fc1d}{wickr\+\_\+cipher\+\_\+result\+\_\+copy}} (const \mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}} $\ast$result)
\item 
void \mbox{\hyperlink{group__wickr__cipher_gad5d22ca53abc4397d88040f0f8003021}{wickr\+\_\+cipher\+\_\+result\+\_\+destroy}} (\mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}} $\ast$$\ast$result)
\item 
bool \mbox{\hyperlink{group__wickr__cipher_ga3f1b679c199987148952816b6fc4c009}{wickr\+\_\+cipher\+\_\+result\+\_\+is\+\_\+valid}} (const \mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}} $\ast$result)
\item 
\mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__cipher_gacda386115dc52f83a0518f8ac0dad6a2}{wickr\+\_\+cipher\+\_\+result\+\_\+serialize}} (const \mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}} $\ast$result)
\item 
\mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__cipher_gad42314812c457855c3799632494c91a7}{wickr\+\_\+cipher\+\_\+result\+\_\+from\+\_\+buffer}} (const \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$buffer)
\item 
\mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__cipher_ga73e2a916ba0ff19517e30a65a68390f0}{wickr\+\_\+cipher\+\_\+key\+\_\+create}} (\mbox{\hyperlink{structwickr__cipher}{wickr\+\_\+cipher\+\_\+t}} cipher, \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$key\+\_\+data)
\item 
\mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__cipher_gaa473bc83f82d6353aa6f4cb4e36bf4f0}{wickr\+\_\+cipher\+\_\+key\+\_\+copy}} (const \mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}} $\ast$key)
\item 
void \mbox{\hyperlink{group__wickr__cipher_ga45790b3023ccb261c03346b069aca763}{wickr\+\_\+cipher\+\_\+key\+\_\+destroy}} (\mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}} $\ast$$\ast$key)
\item 
\mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__cipher_ga8716aebf03497c379d5ff81fe32cde32}{wickr\+\_\+cipher\+\_\+key\+\_\+serialize}} (const \mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}} $\ast$key)
\item 
\mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}} $\ast$ \mbox{\hyperlink{group__wickr__cipher_ga1c073b87f2141cf35a1d91ba10f9e5ba}{wickr\+\_\+cipher\+\_\+key\+\_\+from\+\_\+buffer}} (const \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$buffer)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__wickr__cipher_ga2b7a8bc33e1fd5af61763398ea9a4013}\label{group__wickr__cipher_ga2b7a8bc33e1fd5af61763398ea9a4013}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_find@{wickr\_cipher\_find}}
\index{wickr\_cipher\_find@{wickr\_cipher\_find}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_find()}{wickr\_cipher\_find()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{structwickr__cipher}{wickr\+\_\+cipher\+\_\+t}}$\ast$ wickr\+\_\+cipher\+\_\+find (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{cipher\+\_\+id }\end{DoxyParamCaption})}

Find a supported cipher by identifier. When cipher results are serialized they contain the identifier of the cipher that was used to create them as the first byte


\begin{DoxyParams}{Parameters}
{\em cipher\+\_\+id} & the identifier of the cipher \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a cipher with identifier \textquotesingle{}cipher\+\_\+id\textquotesingle{}. NULL if cipher is not found 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__cipher_gaa473bc83f82d6353aa6f4cb4e36bf4f0}\label{group__wickr__cipher_gaa473bc83f82d6353aa6f4cb4e36bf4f0}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_key\_copy@{wickr\_cipher\_key\_copy}}
\index{wickr\_cipher\_key\_copy@{wickr\_cipher\_key\_copy}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_key\_copy()}{wickr\_cipher\_key\_copy()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}}$\ast$ wickr\+\_\+cipher\+\_\+key\+\_\+copy (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}} $\ast$}]{key }\end{DoxyParamCaption})}

Copy a cipher key


\begin{DoxyParams}{Parameters}
{\em key} & the key to copy \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a newly allocated cipher key holding a deep copy of the properties of \textquotesingle{}key\textquotesingle{} 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__cipher_ga73e2a916ba0ff19517e30a65a68390f0}\label{group__wickr__cipher_ga73e2a916ba0ff19517e30a65a68390f0}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_key\_create@{wickr\_cipher\_key\_create}}
\index{wickr\_cipher\_key\_create@{wickr\_cipher\_key\_create}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_key\_create()}{wickr\_cipher\_key\_create()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}}$\ast$ wickr\+\_\+cipher\+\_\+key\+\_\+create (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structwickr__cipher}{wickr\+\_\+cipher\+\_\+t}}}]{cipher,  }\item[{\mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$}]{key\+\_\+data }\end{DoxyParamCaption})}

Create a key from components


\begin{DoxyParams}{Parameters}
{\em cipher} & the cipher this key is to be used by \\
\hline
{\em key\+\_\+data} & a buffer representing the raw bytes of the key \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a newly allocated cipher key that takes ownership over \textquotesingle{}key\+\_\+data\textquotesingle{} 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__cipher_ga45790b3023ccb261c03346b069aca763}\label{group__wickr__cipher_ga45790b3023ccb261c03346b069aca763}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_key\_destroy@{wickr\_cipher\_key\_destroy}}
\index{wickr\_cipher\_key\_destroy@{wickr\_cipher\_key\_destroy}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_key\_destroy()}{wickr\_cipher\_key\_destroy()}}
{\footnotesize\ttfamily void wickr\+\_\+cipher\+\_\+key\+\_\+destroy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}} $\ast$$\ast$}]{key }\end{DoxyParamCaption})}

Destroy a cipher key


\begin{DoxyParams}{Parameters}
{\em key} & a pointer to the key to destroy. All properties of \textquotesingle{}$\ast$key\textquotesingle{} will also be destroyed \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__wickr__cipher_ga1c073b87f2141cf35a1d91ba10f9e5ba}\label{group__wickr__cipher_ga1c073b87f2141cf35a1d91ba10f9e5ba}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_key\_from\_buffer@{wickr\_cipher\_key\_from\_buffer}}
\index{wickr\_cipher\_key\_from\_buffer@{wickr\_cipher\_key\_from\_buffer}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_key\_from\_buffer()}{wickr\_cipher\_key\_from\_buffer()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}}$\ast$ wickr\+\_\+cipher\+\_\+key\+\_\+from\+\_\+buffer (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$}]{buffer }\end{DoxyParamCaption})}

Create a cipher key from serialized bytes


\begin{DoxyParams}{Parameters}
{\em buffer} & a buffer created by \textquotesingle{}wickr\+\_\+cipher\+\_\+key\+\_\+serialize\textquotesingle{} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
cipher key parsed from \textquotesingle{}buffer\textquotesingle{}. This function makes a copy of all bytes as it is parsing, so the resulting cipher key owns its properties. Returns NULL on parsing failure 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__cipher_ga8716aebf03497c379d5ff81fe32cde32}\label{group__wickr__cipher_ga8716aebf03497c379d5ff81fe32cde32}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_key\_serialize@{wickr\_cipher\_key\_serialize}}
\index{wickr\_cipher\_key\_serialize@{wickr\_cipher\_key\_serialize}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_key\_serialize()}{wickr\_cipher\_key\_serialize()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}}$\ast$ wickr\+\_\+cipher\+\_\+key\+\_\+serialize (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__cipher__key}{wickr\+\_\+cipher\+\_\+key\+\_\+t}} $\ast$}]{key }\end{DoxyParamCaption})}

Serialize a cipher key


\begin{DoxyParams}{Parameters}
{\em key} & the key to serialize to a buffer \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a newly allocated buffer containing properties of \textquotesingle{}key\textquotesingle{} in the following format\+: $\vert$ CIPHER\+\_\+\+ID $\vert$ KEY\+\_\+\+DATA $\vert$ 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__cipher_gace82050fcc8b7932df9a9e8109a2fc1d}\label{group__wickr__cipher_gace82050fcc8b7932df9a9e8109a2fc1d}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_result\_copy@{wickr\_cipher\_result\_copy}}
\index{wickr\_cipher\_result\_copy@{wickr\_cipher\_result\_copy}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_result\_copy()}{wickr\_cipher\_result\_copy()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}}$\ast$ wickr\+\_\+cipher\+\_\+result\+\_\+copy (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}} $\ast$}]{result }\end{DoxyParamCaption})}

Copy a cipher result


\begin{DoxyParams}{Parameters}
{\em result} & the source of the copy \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A newly allocated cipher\+\_\+result that contains deep copies of all the properties of \textquotesingle{}result\textquotesingle{} 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__cipher_ga234b60967d0b3ef0088ca3ac30755dde}\label{group__wickr__cipher_ga234b60967d0b3ef0088ca3ac30755dde}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_result\_create@{wickr\_cipher\_result\_create}}
\index{wickr\_cipher\_result\_create@{wickr\_cipher\_result\_create}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_result\_create()}{wickr\_cipher\_result\_create()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}}$\ast$ wickr\+\_\+cipher\+\_\+result\+\_\+create (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structwickr__cipher}{wickr\+\_\+cipher\+\_\+t}}}]{cipher,  }\item[{\mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$}]{iv,  }\item[{\mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$}]{cipher\+\_\+text,  }\item[{\mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$}]{auth\+\_\+tag }\end{DoxyParamCaption})}

Construct a cipher result from individual components.


\begin{DoxyParams}{Parameters}
{\em cipher} & the cipher used in the cipher operation \\
\hline
{\em iv} & the initialization vector used in the cipher operation \\
\hline
{\em cipher\+\_\+text} & the output bytes of a cipher function using \textquotesingle{}cipher\textquotesingle{} and \textquotesingle{}iv\textquotesingle{} \\
\hline
{\em auth\+\_\+tag} & the authentication tag associated with \textquotesingle{}cipher\+\_\+text\textquotesingle{}. If \textquotesingle{}cipher\textquotesingle{} is authenticated this property is required, otherwise it should be NULL \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A newly allocated cipher result that takes ownership of the passed inputs, or NULL if allocation fails 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__cipher_gad5d22ca53abc4397d88040f0f8003021}\label{group__wickr__cipher_gad5d22ca53abc4397d88040f0f8003021}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_result\_destroy@{wickr\_cipher\_result\_destroy}}
\index{wickr\_cipher\_result\_destroy@{wickr\_cipher\_result\_destroy}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_result\_destroy()}{wickr\_cipher\_result\_destroy()}}
{\footnotesize\ttfamily void wickr\+\_\+cipher\+\_\+result\+\_\+destroy (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}} $\ast$$\ast$}]{result }\end{DoxyParamCaption})}

Destroy a cipher result


\begin{DoxyParams}{Parameters}
{\em result} & a pointer to the cipher result to destroy. Destruction will also destroy the individual properties of \textquotesingle{}result\textquotesingle{} \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__wickr__cipher_gad42314812c457855c3799632494c91a7}\label{group__wickr__cipher_gad42314812c457855c3799632494c91a7}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_result\_from\_buffer@{wickr\_cipher\_result\_from\_buffer}}
\index{wickr\_cipher\_result\_from\_buffer@{wickr\_cipher\_result\_from\_buffer}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_result\_from\_buffer()}{wickr\_cipher\_result\_from\_buffer()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}}$\ast$ wickr\+\_\+cipher\+\_\+result\+\_\+from\+\_\+buffer (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}} $\ast$}]{buffer }\end{DoxyParamCaption})}

Create a cipher result from a serialized cipher result buffer


\begin{DoxyParams}{Parameters}
{\em buffer} & a buffer created by \textquotesingle{}wickr\+\_\+cipher\+\_\+result\+\_\+serialize\textquotesingle{} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
cipher result parsed from \textquotesingle{}buffer\textquotesingle{}. This function makes a copy of all bytes as it is parsing, so the resulting cipher result owns its properties. Returns NULL on parsing failure 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__cipher_ga3f1b679c199987148952816b6fc4c009}\label{group__wickr__cipher_ga3f1b679c199987148952816b6fc4c009}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_result\_is\_valid@{wickr\_cipher\_result\_is\_valid}}
\index{wickr\_cipher\_result\_is\_valid@{wickr\_cipher\_result\_is\_valid}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_result\_is\_valid()}{wickr\_cipher\_result\_is\_valid()}}
{\footnotesize\ttfamily bool wickr\+\_\+cipher\+\_\+result\+\_\+is\+\_\+valid (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}} $\ast$}]{result }\end{DoxyParamCaption})}

Determine if a cipher result is formed correctly


\begin{DoxyParams}{Parameters}
{\em result} & the cipher result to validate \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if result is structured correctly, false if a required field is missing 
\end{DoxyReturn}
\mbox{\Hypertarget{group__wickr__cipher_gacda386115dc52f83a0518f8ac0dad6a2}\label{group__wickr__cipher_gacda386115dc52f83a0518f8ac0dad6a2}} 
\index{wickr\_cipher\_t@{wickr\_cipher\_t}!wickr\_cipher\_result\_serialize@{wickr\_cipher\_result\_serialize}}
\index{wickr\_cipher\_result\_serialize@{wickr\_cipher\_result\_serialize}!wickr\_cipher\_t@{wickr\_cipher\_t}}
\doxysubsubsection{\texorpdfstring{wickr\_cipher\_result\_serialize()}{wickr\_cipher\_result\_serialize()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structwickr__buffer}{wickr\+\_\+buffer\+\_\+t}}$\ast$ wickr\+\_\+cipher\+\_\+result\+\_\+serialize (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{structwickr__cipher__result}{wickr\+\_\+cipher\+\_\+result\+\_\+t}} $\ast$}]{result }\end{DoxyParamCaption})}

Serialize a cipher result


\begin{DoxyParams}{Parameters}
{\em result} & the cipher result to serialize \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a buffer containing bytes representing the cipher result in the following format\+: $\vert$ CIPHER\+\_\+\+ID $\vert$ IV $\vert$ AUTH\+\_\+\+TAG (IF REQUIRED) $\vert$ CIPHER\+\_\+\+TEXT $\vert$ 
\end{DoxyReturn}
