\hypertarget{protocol_8h}{}\section{src/protocol.h File Reference}
\label{protocol_8h}\index{src/protocol.\+h@{src/protocol.\+h}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$stddef.\+h$>$}\newline
{\ttfamily \#include \char`\"{}signal\+\_\+protocol\+\_\+types.\+h\char`\"{}}\newline
Include dependency graph for protocol.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=282pt]{protocol_8h__incl}
\end{center}
\end{figure}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{protocol_8h_a7d95159308dafe83cd4456183095557e}{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG}~0x01
\item 
\#define \hyperlink{protocol_8h_ae20296adbf4db2fe94fd83749209762b}{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+R\+E\+S\+P\+O\+N\+S\+E\+\_\+\+F\+L\+AG}~0\+X02
\item 
\#define \hyperlink{protocol_8h_aaa2619d8e4f994ed87b83e95a5f378aa}{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+S\+I\+M\+U\+L\+T\+A\+E\+N\+O\+U\+S\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG}~0x04
\item 
\#define \hyperlink{protocol_8h_a182847392aed6eaa19efbbcaca88c57f}{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+U\+N\+S\+U\+P\+P\+O\+R\+T\+E\+D\+\_\+\+V\+E\+R\+S\+I\+ON}~1
\item 
\#define \hyperlink{protocol_8h_a9cd60ee8ca3819436db000c77899bd31}{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+C\+U\+R\+R\+E\+N\+T\+\_\+\+V\+E\+R\+S\+I\+ON}~3
\item 
\#define \hyperlink{protocol_8h_aea05a05b3c2b2ca59d03d12f3a15deb8}{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+T\+Y\+PE}~2
\item 
\#define \hyperlink{protocol_8h_af05337fb6cf602bcfb6e30cfcaeed5b8}{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+P\+R\+E\+K\+E\+Y\+\_\+\+T\+Y\+PE}~3
\item 
\#define \hyperlink{protocol_8h_ac37e8107e7a24c006ef1678c0ecd2c89}{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+T\+Y\+PE}~4
\item 
\#define \hyperlink{protocol_8h_a56c67fcd0c4bf6854bdb53556a4fa4f3}{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+D\+I\+S\+T\+R\+I\+B\+U\+T\+I\+O\+N\+\_\+\+T\+Y\+PE}~5
\item 
\#define \hyperlink{protocol_8h_a81f47d99a26d0d8dd07e669b1869b5eb}{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+E\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+O\+V\+E\+R\+H\+E\+AD}~53
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{protocol_8h_a810b3b8091076d63e23741426b3369e9}{ciphertext\+\_\+message\+\_\+get\+\_\+type} (const \hyperlink{signal__protocol__types_8h_abd86bf8290e33b6f12e5b7122085aab0}{ciphertext\+\_\+message} $\ast$message)
\item 
\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$ \hyperlink{protocol_8h_a116e6e50cc9d4e464dd89eb7688b694b}{ciphertext\+\_\+message\+\_\+get\+\_\+serialized} (const \hyperlink{signal__protocol__types_8h_abd86bf8290e33b6f12e5b7122085aab0}{ciphertext\+\_\+message} $\ast$message)
\item 
int \hyperlink{protocol_8h_af54fae2c193b17caed52c81222b12de8}{signal\+\_\+message\+\_\+create} (\hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$$\ast$message, \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} message\+\_\+version, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$mac\+\_\+key, size\+\_\+t mac\+\_\+key\+\_\+len, \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$sender\+\_\+ratchet\+\_\+key, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} counter, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} previous\+\_\+counter, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$ciphertext, size\+\_\+t ciphertext\+\_\+len, \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$sender\+\_\+identity\+\_\+key, \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$receiver\+\_\+identity\+\_\+key, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{protocol_8h_a11df824f0acfbe7a7c08c8fcc4849487}{signal\+\_\+message\+\_\+deserialize} (\hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$$\ast$message, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, size\+\_\+t len, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{protocol_8h_aa488b6c81cc2f1b34bf5320f7388a324}{signal\+\_\+message\+\_\+copy} (\hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$$\ast$message, \hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$other\+\_\+message, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$ \hyperlink{protocol_8h_a3e86faaa16bcdbf8f7197705b6aa714c}{signal\+\_\+message\+\_\+get\+\_\+sender\+\_\+ratchet\+\_\+key} (const \hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$message)
\item 
\hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} \hyperlink{protocol_8h_a73b1463264d84b051333487055d05a99}{signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version} (const \hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$message)
\item 
\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{protocol_8h_a20b92b75e205729cd53951e1e34f00a2}{signal\+\_\+message\+\_\+get\+\_\+counter} (const \hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$message)
\item 
\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$ \hyperlink{protocol_8h_adc5c0165c54494310bd9c4e007c6b337}{signal\+\_\+message\+\_\+get\+\_\+body} (const \hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$message)
\item 
int \hyperlink{protocol_8h_a8b0c0d23bab905929894eaf5710c4b22}{signal\+\_\+message\+\_\+verify\+\_\+mac} (\hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$message, \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$sender\+\_\+identity\+\_\+key, \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$receiver\+\_\+identity\+\_\+key, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$mac\+\_\+key, size\+\_\+t mac\+\_\+key\+\_\+len, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{protocol_8h_a9338bfcbb5ea2f818f3f8068588a92d6}{signal\+\_\+message\+\_\+is\+\_\+legacy} (const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, size\+\_\+t len)
\item 
void \hyperlink{protocol_8h_ae7f8208651b101a2644e275b857e6823}{signal\+\_\+message\+\_\+destroy} (\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$type)
\item 
int \hyperlink{protocol_8h_a293f597352fddd68982256248b21eb30}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+create} (\hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$$\ast$pre\+\_\+key\+\_\+message, \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} message\+\_\+version, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} registration\+\_\+id, const \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} $\ast$pre\+\_\+key\+\_\+id, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} signed\+\_\+pre\+\_\+key\+\_\+id, \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$base\+\_\+key, \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$identity\+\_\+key, \hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$message, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{protocol_8h_ab64f904027f01d55deb3f2cc77d460e3}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+deserialize} (\hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$$\ast$message, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, size\+\_\+t len, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{protocol_8h_ac18f7ee58e70ed7002b66cfec58e71aa}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+copy} (\hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$$\ast$message, \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$other\+\_\+message, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
\hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} \hyperlink{protocol_8h_ae3ce39e184f7a5aadcb0c87d33dbbbd3}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version} (const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$message)
\item 
\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$ \hyperlink{protocol_8h_aacbffe783529d091ca9561c977e00d1f}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+identity\+\_\+key} (const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$message)
\item 
\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{protocol_8h_a31738c13291ba2d56ba996c7ceebb4da}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+registration\+\_\+id} (const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$message)
\item 
int \hyperlink{protocol_8h_a6a4d8d96c6f7e2cd3114be11bfa7662f}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+has\+\_\+pre\+\_\+key\+\_\+id} (const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$message)
\item 
\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{protocol_8h_a013ae1e7618d30c39c168809be467bd6}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+pre\+\_\+key\+\_\+id} (const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$message)
\item 
\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{protocol_8h_aa8cf8b1d882ef85bc797f9c886dd1a41}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signed\+\_\+pre\+\_\+key\+\_\+id} (const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$message)
\item 
\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$ \hyperlink{protocol_8h_ab6368164a99eb0b06affb84d23947f3d}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+base\+\_\+key} (const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$message)
\item 
\hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$ \hyperlink{protocol_8h_ade9a44bded0493a18dd851b1cba685c4}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signal\+\_\+message} (const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$message)
\item 
void \hyperlink{protocol_8h_af44df668396025f22dc0bb00e174403c}{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+destroy} (\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$type)
\item 
int \hyperlink{protocol_8h_a24a2ed6cd6e66a60829b885e09317998}{sender\+\_\+key\+\_\+message\+\_\+create} (\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$$\ast$message, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} key\+\_\+id, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} iteration, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$ciphertext, size\+\_\+t ciphertext\+\_\+len, \hyperlink{signal__protocol__types_8h_a06d963e532f25681dd462897f844205d}{ec\+\_\+private\+\_\+key} $\ast$signature\+\_\+key, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{protocol_8h_a7d401b9421bc5f514009f9b8da37ad00}{sender\+\_\+key\+\_\+message\+\_\+deserialize} (\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$$\ast$message, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, size\+\_\+t len, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{protocol_8h_a9449735243f318fa2ec681f6f3f62730}{sender\+\_\+key\+\_\+message\+\_\+copy} (\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$$\ast$message, \hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$other\+\_\+message, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{protocol_8h_adde53b8bc0e62e0a7a65bd0b50ade761}{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+key\+\_\+id} (\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$message)
\item 
\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{protocol_8h_a158e38e8b8f556fa5a4cf58af88a25f7}{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+iteration} (\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$message)
\item 
\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$ \hyperlink{protocol_8h_a3679e662797e3ddb8625d76627702818}{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+ciphertext} (\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$message)
\item 
int \hyperlink{protocol_8h_ae3d2b5ec85421babb9239637170f7d39}{sender\+\_\+key\+\_\+message\+\_\+verify\+\_\+signature} (\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$message, \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$signature\+\_\+key)
\item 
void \hyperlink{protocol_8h_a9eb4551010c20f52ab5091a353547fd6}{sender\+\_\+key\+\_\+message\+\_\+destroy} (\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$type)
\item 
int \hyperlink{protocol_8h_ac9b6123acf8c2936737da7a8113dee16}{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+create} (\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$$\ast$message, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} id, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} iteration, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$chain\+\_\+key, size\+\_\+t chain\+\_\+key\+\_\+len, \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$signature\+\_\+key, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{protocol_8h_a9eef38946e1d680c6ff413fc6d07ea47}{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+deserialize} (\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$$\ast$message, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, size\+\_\+t len, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{protocol_8h_ac8596399e642a04087d5f735545ff649}{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+copy} (\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$$\ast$message, \hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$other\+\_\+message, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{protocol_8h_a0d69e9d5239ac4b1a68fd5477d58bf26}{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+id} (\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$message)
\item 
\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{protocol_8h_abb861c1509d5a99890ed45a71ee72ece}{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+iteration} (\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$message)
\item 
\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$ \hyperlink{protocol_8h_a04c2bff1c192f656db1a998075e04b71}{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+chain\+\_\+key} (\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$message)
\item 
\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$ \hyperlink{protocol_8h_a6439e96f0cfb58872648845e6df08f58}{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+signature\+\_\+key} (\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$message)
\item 
void \hyperlink{protocol_8h_ab25e4a1c5c1734b954fd5abd4fcbe41f}{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+destroy} (\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$type)
\end{DoxyCompactItemize}


\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{protocol_8h_a9cd60ee8ca3819436db000c77899bd31}\label{protocol_8h_a9cd60ee8ca3819436db000c77899bd31}} 
\index{protocol.\+h@{protocol.\+h}!C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+C\+U\+R\+R\+E\+N\+T\+\_\+\+V\+E\+R\+S\+I\+ON@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+C\+U\+R\+R\+E\+N\+T\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+C\+U\+R\+R\+E\+N\+T\+\_\+\+V\+E\+R\+S\+I\+ON@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+C\+U\+R\+R\+E\+N\+T\+\_\+\+V\+E\+R\+S\+I\+ON}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+C\+U\+R\+R\+E\+N\+T\+\_\+\+V\+E\+R\+S\+I\+ON}{CIPHERTEXT\_CURRENT\_VERSION}}
{\footnotesize\ttfamily \#define C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+C\+U\+R\+R\+E\+N\+T\+\_\+\+V\+E\+R\+S\+I\+ON~3}



Definition at line 17 of file protocol.\+h.

\mbox{\Hypertarget{protocol_8h_a81f47d99a26d0d8dd07e669b1869b5eb}\label{protocol_8h_a81f47d99a26d0d8dd07e669b1869b5eb}} 
\index{protocol.\+h@{protocol.\+h}!C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+E\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+O\+V\+E\+R\+H\+E\+AD@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+E\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+O\+V\+E\+R\+H\+E\+AD}}
\index{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+E\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+O\+V\+E\+R\+H\+E\+AD@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+E\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+O\+V\+E\+R\+H\+E\+AD}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+E\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+O\+V\+E\+R\+H\+E\+AD}{CIPHERTEXT\_ENCRYPTED\_MESSAGE\_OVERHEAD}}
{\footnotesize\ttfamily \#define C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+E\+N\+C\+R\+Y\+P\+T\+E\+D\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+O\+V\+E\+R\+H\+E\+AD~53}



Definition at line 25 of file protocol.\+h.

\mbox{\Hypertarget{protocol_8h_af05337fb6cf602bcfb6e30cfcaeed5b8}\label{protocol_8h_af05337fb6cf602bcfb6e30cfcaeed5b8}} 
\index{protocol.\+h@{protocol.\+h}!C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+P\+R\+E\+K\+E\+Y\+\_\+\+T\+Y\+PE@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+P\+R\+E\+K\+E\+Y\+\_\+\+T\+Y\+PE}}
\index{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+P\+R\+E\+K\+E\+Y\+\_\+\+T\+Y\+PE@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+P\+R\+E\+K\+E\+Y\+\_\+\+T\+Y\+PE}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+P\+R\+E\+K\+E\+Y\+\_\+\+T\+Y\+PE}{CIPHERTEXT\_PREKEY\_TYPE}}
{\footnotesize\ttfamily \#define C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+P\+R\+E\+K\+E\+Y\+\_\+\+T\+Y\+PE~3}



Definition at line 20 of file protocol.\+h.

\mbox{\Hypertarget{protocol_8h_a56c67fcd0c4bf6854bdb53556a4fa4f3}\label{protocol_8h_a56c67fcd0c4bf6854bdb53556a4fa4f3}} 
\index{protocol.\+h@{protocol.\+h}!C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+D\+I\+S\+T\+R\+I\+B\+U\+T\+I\+O\+N\+\_\+\+T\+Y\+PE@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+D\+I\+S\+T\+R\+I\+B\+U\+T\+I\+O\+N\+\_\+\+T\+Y\+PE}}
\index{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+D\+I\+S\+T\+R\+I\+B\+U\+T\+I\+O\+N\+\_\+\+T\+Y\+PE@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+D\+I\+S\+T\+R\+I\+B\+U\+T\+I\+O\+N\+\_\+\+T\+Y\+PE}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+D\+I\+S\+T\+R\+I\+B\+U\+T\+I\+O\+N\+\_\+\+T\+Y\+PE}{CIPHERTEXT\_SENDERKEY\_DISTRIBUTION\_TYPE}}
{\footnotesize\ttfamily \#define C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+D\+I\+S\+T\+R\+I\+B\+U\+T\+I\+O\+N\+\_\+\+T\+Y\+PE~5}



Definition at line 22 of file protocol.\+h.

\mbox{\Hypertarget{protocol_8h_ac37e8107e7a24c006ef1678c0ecd2c89}\label{protocol_8h_ac37e8107e7a24c006ef1678c0ecd2c89}} 
\index{protocol.\+h@{protocol.\+h}!C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+T\+Y\+PE@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+T\+Y\+PE}}
\index{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+T\+Y\+PE@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+T\+Y\+PE}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+T\+Y\+PE}{CIPHERTEXT\_SENDERKEY\_TYPE}}
{\footnotesize\ttfamily \#define C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+E\+N\+D\+E\+R\+K\+E\+Y\+\_\+\+T\+Y\+PE~4}



Definition at line 21 of file protocol.\+h.

\mbox{\Hypertarget{protocol_8h_aea05a05b3c2b2ca59d03d12f3a15deb8}\label{protocol_8h_aea05a05b3c2b2ca59d03d12f3a15deb8}} 
\index{protocol.\+h@{protocol.\+h}!C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+T\+Y\+PE@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+T\+Y\+PE}}
\index{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+T\+Y\+PE@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+T\+Y\+PE}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+T\+Y\+PE}{CIPHERTEXT\_SIGNAL\_TYPE}}
{\footnotesize\ttfamily \#define C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+S\+I\+G\+N\+A\+L\+\_\+\+T\+Y\+PE~2}



Definition at line 19 of file protocol.\+h.

\mbox{\Hypertarget{protocol_8h_a182847392aed6eaa19efbbcaca88c57f}\label{protocol_8h_a182847392aed6eaa19efbbcaca88c57f}} 
\index{protocol.\+h@{protocol.\+h}!C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+U\+N\+S\+U\+P\+P\+O\+R\+T\+E\+D\+\_\+\+V\+E\+R\+S\+I\+ON@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+U\+N\+S\+U\+P\+P\+O\+R\+T\+E\+D\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+U\+N\+S\+U\+P\+P\+O\+R\+T\+E\+D\+\_\+\+V\+E\+R\+S\+I\+ON@{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+U\+N\+S\+U\+P\+P\+O\+R\+T\+E\+D\+\_\+\+V\+E\+R\+S\+I\+ON}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+U\+N\+S\+U\+P\+P\+O\+R\+T\+E\+D\+\_\+\+V\+E\+R\+S\+I\+ON}{CIPHERTEXT\_UNSUPPORTED\_VERSION}}
{\footnotesize\ttfamily \#define C\+I\+P\+H\+E\+R\+T\+E\+X\+T\+\_\+\+U\+N\+S\+U\+P\+P\+O\+R\+T\+E\+D\+\_\+\+V\+E\+R\+S\+I\+ON~1}



Definition at line 16 of file protocol.\+h.

\mbox{\Hypertarget{protocol_8h_a7d95159308dafe83cd4456183095557e}\label{protocol_8h_a7d95159308dafe83cd4456183095557e}} 
\index{protocol.\+h@{protocol.\+h}!K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG@{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG}}
\index{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG@{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG}{KEY\_EXCHANGE\_INITIATE\_FLAG}}
{\footnotesize\ttfamily \#define K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG~0x01}



Definition at line 12 of file protocol.\+h.

\mbox{\Hypertarget{protocol_8h_ae20296adbf4db2fe94fd83749209762b}\label{protocol_8h_ae20296adbf4db2fe94fd83749209762b}} 
\index{protocol.\+h@{protocol.\+h}!K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+R\+E\+S\+P\+O\+N\+S\+E\+\_\+\+F\+L\+AG@{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+R\+E\+S\+P\+O\+N\+S\+E\+\_\+\+F\+L\+AG}}
\index{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+R\+E\+S\+P\+O\+N\+S\+E\+\_\+\+F\+L\+AG@{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+R\+E\+S\+P\+O\+N\+S\+E\+\_\+\+F\+L\+AG}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+R\+E\+S\+P\+O\+N\+S\+E\+\_\+\+F\+L\+AG}{KEY\_EXCHANGE\_RESPONSE\_FLAG}}
{\footnotesize\ttfamily \#define K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+R\+E\+S\+P\+O\+N\+S\+E\+\_\+\+F\+L\+AG~0\+X02}



Definition at line 13 of file protocol.\+h.

\mbox{\Hypertarget{protocol_8h_aaa2619d8e4f994ed87b83e95a5f378aa}\label{protocol_8h_aaa2619d8e4f994ed87b83e95a5f378aa}} 
\index{protocol.\+h@{protocol.\+h}!K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+S\+I\+M\+U\+L\+T\+A\+E\+N\+O\+U\+S\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG@{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+S\+I\+M\+U\+L\+T\+A\+E\+N\+O\+U\+S\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG}}
\index{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+S\+I\+M\+U\+L\+T\+A\+E\+N\+O\+U\+S\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG@{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+S\+I\+M\+U\+L\+T\+A\+E\+N\+O\+U\+S\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+S\+I\+M\+U\+L\+T\+A\+E\+N\+O\+U\+S\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG}{KEY\_EXCHANGE\_SIMULTAENOUS\_INITIATE\_FLAG}}
{\footnotesize\ttfamily \#define K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+G\+E\+\_\+\+S\+I\+M\+U\+L\+T\+A\+E\+N\+O\+U\+S\+\_\+\+I\+N\+I\+T\+I\+A\+T\+E\+\_\+\+F\+L\+AG~0x04}



Definition at line 14 of file protocol.\+h.



\subsection{Function Documentation}
\mbox{\Hypertarget{protocol_8h_a116e6e50cc9d4e464dd89eb7688b694b}\label{protocol_8h_a116e6e50cc9d4e464dd89eb7688b694b}} 
\index{protocol.\+h@{protocol.\+h}!ciphertext\+\_\+message\+\_\+get\+\_\+serialized@{ciphertext\+\_\+message\+\_\+get\+\_\+serialized}}
\index{ciphertext\+\_\+message\+\_\+get\+\_\+serialized@{ciphertext\+\_\+message\+\_\+get\+\_\+serialized}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{ciphertext\+\_\+message\+\_\+get\+\_\+serialized()}{ciphertext\_message\_get\_serialized()}}
{\footnotesize\ttfamily \hyperlink{structsignal__buffer}{signal\+\_\+buffer}$\ast$ ciphertext\+\_\+message\+\_\+get\+\_\+serialized (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_abd86bf8290e33b6f12e5b7122085aab0}{ciphertext\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a810b3b8091076d63e23741426b3369e9}\label{protocol_8h_a810b3b8091076d63e23741426b3369e9}} 
\index{protocol.\+h@{protocol.\+h}!ciphertext\+\_\+message\+\_\+get\+\_\+type@{ciphertext\+\_\+message\+\_\+get\+\_\+type}}
\index{ciphertext\+\_\+message\+\_\+get\+\_\+type@{ciphertext\+\_\+message\+\_\+get\+\_\+type}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{ciphertext\+\_\+message\+\_\+get\+\_\+type()}{ciphertext\_message\_get\_type()}}
{\footnotesize\ttfamily int ciphertext\+\_\+message\+\_\+get\+\_\+type (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_abd86bf8290e33b6f12e5b7122085aab0}{ciphertext\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_ac18f7ee58e70ed7002b66cfec58e71aa}\label{protocol_8h_ac18f7ee58e70ed7002b66cfec58e71aa}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+copy@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+copy}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+copy@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+copy}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+copy()}{pre\_key\_signal\_message\_copy()}}
{\footnotesize\ttfamily int pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+copy (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$$\ast$}]{message,  }\item[{\hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$}]{other\+\_\+message,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a293f597352fddd68982256248b21eb30}\label{protocol_8h_a293f597352fddd68982256248b21eb30}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+create@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+create}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+create@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+create}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+create()}{pre\_key\_signal\_message\_create()}}
{\footnotesize\ttfamily int pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+create (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$$\ast$}]{pre\+\_\+key\+\_\+message,  }\item[{\hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}}]{message\+\_\+version,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{registration\+\_\+id,  }\item[{const \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} $\ast$}]{pre\+\_\+key\+\_\+id,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{signed\+\_\+pre\+\_\+key\+\_\+id,  }\item[{\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{base\+\_\+key,  }\item[{\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{identity\+\_\+key,  }\item[{\hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$}]{message,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_ab64f904027f01d55deb3f2cc77d460e3}\label{protocol_8h_ab64f904027f01d55deb3f2cc77d460e3}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+deserialize@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+deserialize}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+deserialize@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+deserialize}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+deserialize()}{pre\_key\_signal\_message\_deserialize()}}
{\footnotesize\ttfamily int pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+deserialize (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$$\ast$}]{message,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{data,  }\item[{size\+\_\+t}]{len,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_af44df668396025f22dc0bb00e174403c}\label{protocol_8h_af44df668396025f22dc0bb00e174403c}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+destroy@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+destroy}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+destroy@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+destroy}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+destroy()}{pre\_key\_signal\_message\_destroy()}}
{\footnotesize\ttfamily void pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+destroy (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$}]{type }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_ab6368164a99eb0b06affb84d23947f3d}\label{protocol_8h_ab6368164a99eb0b06affb84d23947f3d}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+base\+\_\+key@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+base\+\_\+key}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+base\+\_\+key@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+base\+\_\+key}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+base\+\_\+key()}{pre\_key\_signal\_message\_get\_base\_key()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key}$\ast$ pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+base\+\_\+key (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_aacbffe783529d091ca9561c977e00d1f}\label{protocol_8h_aacbffe783529d091ca9561c977e00d1f}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+identity\+\_\+key@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+identity\+\_\+key}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+identity\+\_\+key@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+identity\+\_\+key}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+identity\+\_\+key()}{pre\_key\_signal\_message\_get\_identity\_key()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key}$\ast$ pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+identity\+\_\+key (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_ae3ce39e184f7a5aadcb0c87d33dbbbd3}\label{protocol_8h_ae3ce39e184f7a5aadcb0c87d33dbbbd3}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version()}{pre\_key\_signal\_message\_get\_message\_version()}}
{\footnotesize\ttfamily \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a013ae1e7618d30c39c168809be467bd6}\label{protocol_8h_a013ae1e7618d30c39c168809be467bd6}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+pre\+\_\+key\+\_\+id@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+pre\+\_\+key\+\_\+id}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+pre\+\_\+key\+\_\+id@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+pre\+\_\+key\+\_\+id}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+pre\+\_\+key\+\_\+id()}{pre\_key\_signal\_message\_get\_pre\_key\_id()}}
{\footnotesize\ttfamily \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+pre\+\_\+key\+\_\+id (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a31738c13291ba2d56ba996c7ceebb4da}\label{protocol_8h_a31738c13291ba2d56ba996c7ceebb4da}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+registration\+\_\+id@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+registration\+\_\+id}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+registration\+\_\+id@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+registration\+\_\+id}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+registration\+\_\+id()}{pre\_key\_signal\_message\_get\_registration\_id()}}
{\footnotesize\ttfamily \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+registration\+\_\+id (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_ade9a44bded0493a18dd851b1cba685c4}\label{protocol_8h_ade9a44bded0493a18dd851b1cba685c4}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signal\+\_\+message@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signal\+\_\+message}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signal\+\_\+message@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signal\+\_\+message}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signal\+\_\+message()}{pre\_key\_signal\_message\_get\_signal\_message()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message}$\ast$ pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signal\+\_\+message (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_aa8cf8b1d882ef85bc797f9c886dd1a41}\label{protocol_8h_aa8cf8b1d882ef85bc797f9c886dd1a41}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signed\+\_\+pre\+\_\+key\+\_\+id@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signed\+\_\+pre\+\_\+key\+\_\+id}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signed\+\_\+pre\+\_\+key\+\_\+id@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signed\+\_\+pre\+\_\+key\+\_\+id}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signed\+\_\+pre\+\_\+key\+\_\+id()}{pre\_key\_signal\_message\_get\_signed\_pre\_key\_id()}}
{\footnotesize\ttfamily \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+get\+\_\+signed\+\_\+pre\+\_\+key\+\_\+id (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a6a4d8d96c6f7e2cd3114be11bfa7662f}\label{protocol_8h_a6a4d8d96c6f7e2cd3114be11bfa7662f}} 
\index{protocol.\+h@{protocol.\+h}!pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+has\+\_\+pre\+\_\+key\+\_\+id@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+has\+\_\+pre\+\_\+key\+\_\+id}}
\index{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+has\+\_\+pre\+\_\+key\+\_\+id@{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+has\+\_\+pre\+\_\+key\+\_\+id}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+has\+\_\+pre\+\_\+key\+\_\+id()}{pre\_key\_signal\_message\_has\_pre\_key\_id()}}
{\footnotesize\ttfamily int pre\+\_\+key\+\_\+signal\+\_\+message\+\_\+has\+\_\+pre\+\_\+key\+\_\+id (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a8469b9f45a4e727fb35f36a053f0ffe5}{pre\+\_\+key\+\_\+signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_ac8596399e642a04087d5f735545ff649}\label{protocol_8h_ac8596399e642a04087d5f735545ff649}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+copy@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+copy}}
\index{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+copy@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+copy}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+copy()}{sender\_key\_distribution\_message\_copy()}}
{\footnotesize\ttfamily int sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+copy (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$$\ast$}]{message,  }\item[{\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$}]{other\+\_\+message,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_ac9b6123acf8c2936737da7a8113dee16}\label{protocol_8h_ac9b6123acf8c2936737da7a8113dee16}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+create@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+create}}
\index{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+create@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+create}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+create()}{sender\_key\_distribution\_message\_create()}}
{\footnotesize\ttfamily int sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+create (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$$\ast$}]{message,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{id,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{iteration,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{chain\+\_\+key,  }\item[{size\+\_\+t}]{chain\+\_\+key\+\_\+len,  }\item[{\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{signature\+\_\+key,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a9eef38946e1d680c6ff413fc6d07ea47}\label{protocol_8h_a9eef38946e1d680c6ff413fc6d07ea47}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+deserialize@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+deserialize}}
\index{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+deserialize@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+deserialize}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+deserialize()}{sender\_key\_distribution\_message\_deserialize()}}
{\footnotesize\ttfamily int sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+deserialize (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$$\ast$}]{message,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{data,  }\item[{size\+\_\+t}]{len,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_ab25e4a1c5c1734b954fd5abd4fcbe41f}\label{protocol_8h_ab25e4a1c5c1734b954fd5abd4fcbe41f}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+destroy@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+destroy}}
\index{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+destroy@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+destroy}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+destroy()}{sender\_key\_distribution\_message\_destroy()}}
{\footnotesize\ttfamily void sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+destroy (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$}]{type }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a04c2bff1c192f656db1a998075e04b71}\label{protocol_8h_a04c2bff1c192f656db1a998075e04b71}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+chain\+\_\+key@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+chain\+\_\+key}}
\index{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+chain\+\_\+key@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+chain\+\_\+key}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+chain\+\_\+key()}{sender\_key\_distribution\_message\_get\_chain\_key()}}
{\footnotesize\ttfamily \hyperlink{structsignal__buffer}{signal\+\_\+buffer}$\ast$ sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+chain\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a0d69e9d5239ac4b1a68fd5477d58bf26}\label{protocol_8h_a0d69e9d5239ac4b1a68fd5477d58bf26}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+id@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+id}}
\index{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+id@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+id}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+id()}{sender\_key\_distribution\_message\_get\_id()}}
{\footnotesize\ttfamily \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+id (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_abb861c1509d5a99890ed45a71ee72ece}\label{protocol_8h_abb861c1509d5a99890ed45a71ee72ece}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+iteration@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+iteration}}
\index{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+iteration@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+iteration}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+iteration()}{sender\_key\_distribution\_message\_get\_iteration()}}
{\footnotesize\ttfamily \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+iteration (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a6439e96f0cfb58872648845e6df08f58}\label{protocol_8h_a6439e96f0cfb58872648845e6df08f58}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+signature\+\_\+key@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+signature\+\_\+key}}
\index{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+signature\+\_\+key@{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+signature\+\_\+key}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+signature\+\_\+key()}{sender\_key\_distribution\_message\_get\_signature\_key()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key}$\ast$ sender\+\_\+key\+\_\+distribution\+\_\+message\+\_\+get\+\_\+signature\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_aab7bd35af0cda4d7f4c91af0e28003e7}{sender\+\_\+key\+\_\+distribution\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a9449735243f318fa2ec681f6f3f62730}\label{protocol_8h_a9449735243f318fa2ec681f6f3f62730}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+message\+\_\+copy@{sender\+\_\+key\+\_\+message\+\_\+copy}}
\index{sender\+\_\+key\+\_\+message\+\_\+copy@{sender\+\_\+key\+\_\+message\+\_\+copy}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+message\+\_\+copy()}{sender\_key\_message\_copy()}}
{\footnotesize\ttfamily int sender\+\_\+key\+\_\+message\+\_\+copy (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$$\ast$}]{message,  }\item[{\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$}]{other\+\_\+message,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a24a2ed6cd6e66a60829b885e09317998}\label{protocol_8h_a24a2ed6cd6e66a60829b885e09317998}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+message\+\_\+create@{sender\+\_\+key\+\_\+message\+\_\+create}}
\index{sender\+\_\+key\+\_\+message\+\_\+create@{sender\+\_\+key\+\_\+message\+\_\+create}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+message\+\_\+create()}{sender\_key\_message\_create()}}
{\footnotesize\ttfamily int sender\+\_\+key\+\_\+message\+\_\+create (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$$\ast$}]{message,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{key\+\_\+id,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{iteration,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{ciphertext,  }\item[{size\+\_\+t}]{ciphertext\+\_\+len,  }\item[{\hyperlink{signal__protocol__types_8h_a06d963e532f25681dd462897f844205d}{ec\+\_\+private\+\_\+key} $\ast$}]{signature\+\_\+key,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a7d401b9421bc5f514009f9b8da37ad00}\label{protocol_8h_a7d401b9421bc5f514009f9b8da37ad00}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+message\+\_\+deserialize@{sender\+\_\+key\+\_\+message\+\_\+deserialize}}
\index{sender\+\_\+key\+\_\+message\+\_\+deserialize@{sender\+\_\+key\+\_\+message\+\_\+deserialize}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+message\+\_\+deserialize()}{sender\_key\_message\_deserialize()}}
{\footnotesize\ttfamily int sender\+\_\+key\+\_\+message\+\_\+deserialize (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$$\ast$}]{message,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{data,  }\item[{size\+\_\+t}]{len,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a9eb4551010c20f52ab5091a353547fd6}\label{protocol_8h_a9eb4551010c20f52ab5091a353547fd6}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+message\+\_\+destroy@{sender\+\_\+key\+\_\+message\+\_\+destroy}}
\index{sender\+\_\+key\+\_\+message\+\_\+destroy@{sender\+\_\+key\+\_\+message\+\_\+destroy}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+message\+\_\+destroy()}{sender\_key\_message\_destroy()}}
{\footnotesize\ttfamily void sender\+\_\+key\+\_\+message\+\_\+destroy (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$}]{type }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a3679e662797e3ddb8625d76627702818}\label{protocol_8h_a3679e662797e3ddb8625d76627702818}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+message\+\_\+get\+\_\+ciphertext@{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+ciphertext}}
\index{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+ciphertext@{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+ciphertext}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+ciphertext()}{sender\_key\_message\_get\_ciphertext()}}
{\footnotesize\ttfamily \hyperlink{structsignal__buffer}{signal\+\_\+buffer}$\ast$ sender\+\_\+key\+\_\+message\+\_\+get\+\_\+ciphertext (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a158e38e8b8f556fa5a4cf58af88a25f7}\label{protocol_8h_a158e38e8b8f556fa5a4cf58af88a25f7}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+message\+\_\+get\+\_\+iteration@{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+iteration}}
\index{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+iteration@{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+iteration}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+iteration()}{sender\_key\_message\_get\_iteration()}}
{\footnotesize\ttfamily \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} sender\+\_\+key\+\_\+message\+\_\+get\+\_\+iteration (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_adde53b8bc0e62e0a7a65bd0b50ade761}\label{protocol_8h_adde53b8bc0e62e0a7a65bd0b50ade761}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+message\+\_\+get\+\_\+key\+\_\+id@{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+key\+\_\+id}}
\index{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+key\+\_\+id@{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+key\+\_\+id}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+message\+\_\+get\+\_\+key\+\_\+id()}{sender\_key\_message\_get\_key\_id()}}
{\footnotesize\ttfamily \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} sender\+\_\+key\+\_\+message\+\_\+get\+\_\+key\+\_\+id (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_ae3d2b5ec85421babb9239637170f7d39}\label{protocol_8h_ae3d2b5ec85421babb9239637170f7d39}} 
\index{protocol.\+h@{protocol.\+h}!sender\+\_\+key\+\_\+message\+\_\+verify\+\_\+signature@{sender\+\_\+key\+\_\+message\+\_\+verify\+\_\+signature}}
\index{sender\+\_\+key\+\_\+message\+\_\+verify\+\_\+signature@{sender\+\_\+key\+\_\+message\+\_\+verify\+\_\+signature}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{sender\+\_\+key\+\_\+message\+\_\+verify\+\_\+signature()}{sender\_key\_message\_verify\_signature()}}
{\footnotesize\ttfamily int sender\+\_\+key\+\_\+message\+\_\+verify\+\_\+signature (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a46b224236473e63e6ed6788d4a2e820c}{sender\+\_\+key\+\_\+message} $\ast$}]{message,  }\item[{\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{signature\+\_\+key }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_aa488b6c81cc2f1b34bf5320f7388a324}\label{protocol_8h_aa488b6c81cc2f1b34bf5320f7388a324}} 
\index{protocol.\+h@{protocol.\+h}!signal\+\_\+message\+\_\+copy@{signal\+\_\+message\+\_\+copy}}
\index{signal\+\_\+message\+\_\+copy@{signal\+\_\+message\+\_\+copy}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+message\+\_\+copy()}{signal\_message\_copy()}}
{\footnotesize\ttfamily int signal\+\_\+message\+\_\+copy (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$$\ast$}]{message,  }\item[{\hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$}]{other\+\_\+message,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_af54fae2c193b17caed52c81222b12de8}\label{protocol_8h_af54fae2c193b17caed52c81222b12de8}} 
\index{protocol.\+h@{protocol.\+h}!signal\+\_\+message\+\_\+create@{signal\+\_\+message\+\_\+create}}
\index{signal\+\_\+message\+\_\+create@{signal\+\_\+message\+\_\+create}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+message\+\_\+create()}{signal\_message\_create()}}
{\footnotesize\ttfamily int signal\+\_\+message\+\_\+create (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$$\ast$}]{message,  }\item[{\hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}}]{message\+\_\+version,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{mac\+\_\+key,  }\item[{size\+\_\+t}]{mac\+\_\+key\+\_\+len,  }\item[{\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{sender\+\_\+ratchet\+\_\+key,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{counter,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{previous\+\_\+counter,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{ciphertext,  }\item[{size\+\_\+t}]{ciphertext\+\_\+len,  }\item[{\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{sender\+\_\+identity\+\_\+key,  }\item[{\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{receiver\+\_\+identity\+\_\+key,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a11df824f0acfbe7a7c08c8fcc4849487}\label{protocol_8h_a11df824f0acfbe7a7c08c8fcc4849487}} 
\index{protocol.\+h@{protocol.\+h}!signal\+\_\+message\+\_\+deserialize@{signal\+\_\+message\+\_\+deserialize}}
\index{signal\+\_\+message\+\_\+deserialize@{signal\+\_\+message\+\_\+deserialize}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+message\+\_\+deserialize()}{signal\_message\_deserialize()}}
{\footnotesize\ttfamily int signal\+\_\+message\+\_\+deserialize (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$$\ast$}]{message,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{data,  }\item[{size\+\_\+t}]{len,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_ae7f8208651b101a2644e275b857e6823}\label{protocol_8h_ae7f8208651b101a2644e275b857e6823}} 
\index{protocol.\+h@{protocol.\+h}!signal\+\_\+message\+\_\+destroy@{signal\+\_\+message\+\_\+destroy}}
\index{signal\+\_\+message\+\_\+destroy@{signal\+\_\+message\+\_\+destroy}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+message\+\_\+destroy()}{signal\_message\_destroy()}}
{\footnotesize\ttfamily void signal\+\_\+message\+\_\+destroy (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$}]{type }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_adc5c0165c54494310bd9c4e007c6b337}\label{protocol_8h_adc5c0165c54494310bd9c4e007c6b337}} 
\index{protocol.\+h@{protocol.\+h}!signal\+\_\+message\+\_\+get\+\_\+body@{signal\+\_\+message\+\_\+get\+\_\+body}}
\index{signal\+\_\+message\+\_\+get\+\_\+body@{signal\+\_\+message\+\_\+get\+\_\+body}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+message\+\_\+get\+\_\+body()}{signal\_message\_get\_body()}}
{\footnotesize\ttfamily \hyperlink{structsignal__buffer}{signal\+\_\+buffer}$\ast$ signal\+\_\+message\+\_\+get\+\_\+body (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a20b92b75e205729cd53951e1e34f00a2}\label{protocol_8h_a20b92b75e205729cd53951e1e34f00a2}} 
\index{protocol.\+h@{protocol.\+h}!signal\+\_\+message\+\_\+get\+\_\+counter@{signal\+\_\+message\+\_\+get\+\_\+counter}}
\index{signal\+\_\+message\+\_\+get\+\_\+counter@{signal\+\_\+message\+\_\+get\+\_\+counter}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+message\+\_\+get\+\_\+counter()}{signal\_message\_get\_counter()}}
{\footnotesize\ttfamily \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} signal\+\_\+message\+\_\+get\+\_\+counter (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a73b1463264d84b051333487055d05a99}\label{protocol_8h_a73b1463264d84b051333487055d05a99}} 
\index{protocol.\+h@{protocol.\+h}!signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version@{signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version}}
\index{signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version@{signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version()}{signal\_message\_get\_message\_version()}}
{\footnotesize\ttfamily \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} signal\+\_\+message\+\_\+get\+\_\+message\+\_\+version (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a3e86faaa16bcdbf8f7197705b6aa714c}\label{protocol_8h_a3e86faaa16bcdbf8f7197705b6aa714c}} 
\index{protocol.\+h@{protocol.\+h}!signal\+\_\+message\+\_\+get\+\_\+sender\+\_\+ratchet\+\_\+key@{signal\+\_\+message\+\_\+get\+\_\+sender\+\_\+ratchet\+\_\+key}}
\index{signal\+\_\+message\+\_\+get\+\_\+sender\+\_\+ratchet\+\_\+key@{signal\+\_\+message\+\_\+get\+\_\+sender\+\_\+ratchet\+\_\+key}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+message\+\_\+get\+\_\+sender\+\_\+ratchet\+\_\+key()}{signal\_message\_get\_sender\_ratchet\_key()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key}$\ast$ signal\+\_\+message\+\_\+get\+\_\+sender\+\_\+ratchet\+\_\+key (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$}]{message }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a9338bfcbb5ea2f818f3f8068588a92d6}\label{protocol_8h_a9338bfcbb5ea2f818f3f8068588a92d6}} 
\index{protocol.\+h@{protocol.\+h}!signal\+\_\+message\+\_\+is\+\_\+legacy@{signal\+\_\+message\+\_\+is\+\_\+legacy}}
\index{signal\+\_\+message\+\_\+is\+\_\+legacy@{signal\+\_\+message\+\_\+is\+\_\+legacy}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+message\+\_\+is\+\_\+legacy()}{signal\_message\_is\_legacy()}}
{\footnotesize\ttfamily int signal\+\_\+message\+\_\+is\+\_\+legacy (\begin{DoxyParamCaption}\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{data,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}

\mbox{\Hypertarget{protocol_8h_a8b0c0d23bab905929894eaf5710c4b22}\label{protocol_8h_a8b0c0d23bab905929894eaf5710c4b22}} 
\index{protocol.\+h@{protocol.\+h}!signal\+\_\+message\+\_\+verify\+\_\+mac@{signal\+\_\+message\+\_\+verify\+\_\+mac}}
\index{signal\+\_\+message\+\_\+verify\+\_\+mac@{signal\+\_\+message\+\_\+verify\+\_\+mac}!protocol.\+h@{protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+message\+\_\+verify\+\_\+mac()}{signal\_message\_verify\_mac()}}
{\footnotesize\ttfamily int signal\+\_\+message\+\_\+verify\+\_\+mac (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a99a243404a335c930047b749c75fc75a}{signal\+\_\+message} $\ast$}]{message,  }\item[{\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{sender\+\_\+identity\+\_\+key,  }\item[{\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{receiver\+\_\+identity\+\_\+key,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{mac\+\_\+key,  }\item[{size\+\_\+t}]{mac\+\_\+key\+\_\+len,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

Verify the M\+AC on the Signal message.

\begin{DoxyReturn}{Returns}
1 if verified, 0 if invalid, negative on error 
\end{DoxyReturn}
