\hypertarget{signal__protocol_8h}{}\section{src/signal\+\_\+protocol.h File Reference}
\label{signal__protocol_8h}\index{src/signal\+\_\+protocol.\+h@{src/signal\+\_\+protocol.\+h}}
{\ttfamily \#include $<$stdio.\+h$>$}\newline
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include \char`\"{}ratchet.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}curve.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}session\+\_\+record.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}session\+\_\+pre\+\_\+key.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}sender\+\_\+key\+\_\+record.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}signal\+\_\+protocol\+\_\+types.\+h\char`\"{}}\newline
Include dependency graph for signal\+\_\+protocol.\+h\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{signal__protocol_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{signal__protocol_8h__dep__incl}
\end{center}
\end{figure}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structsignal__crypto__provider}{signal\+\_\+crypto\+\_\+provider}
\item 
struct \hyperlink{structsignal__protocol__session__store}{signal\+\_\+protocol\+\_\+session\+\_\+store}
\item 
struct \hyperlink{structsignal__protocol__pre__key__store}{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store}
\item 
struct \hyperlink{structsignal__protocol__signed__pre__key__store}{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store}
\item 
struct \hyperlink{structsignal__protocol__identity__key__store}{signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store}
\item 
struct \hyperlink{structsignal__protocol__sender__key__store}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{signal__protocol_8h_a35463a2975c58c347c2c929d8a9e4c1b}{S\+G\+\_\+\+S\+U\+C\+C\+E\+SS}~0
\item 
\#define \hyperlink{signal__protocol_8h_ac2d489504f3f915865dbe128c32c3d20}{S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+M\+EM}~-\/12   /$\ast$ Not enough space $\ast$/
\item 
\#define \hyperlink{signal__protocol_8h_a143309b7c67f65c4504e14f6f2d07052}{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+AL}~-\/22   /$\ast$ Invalid argument $\ast$/
\item 
\#define \hyperlink{signal__protocol_8h_a400b5f99baa2118f6901cc2e2f2de733}{S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+K\+N\+O\+WN}~-\/1000
\item 
\#define \hyperlink{signal__protocol_8h_a17836665b0888698e5775fe4937229ce}{S\+G\+\_\+\+E\+R\+R\+\_\+\+D\+U\+P\+L\+I\+C\+A\+T\+E\+\_\+\+M\+E\+S\+S\+A\+GE}~-\/1001
\item 
\#define \hyperlink{signal__protocol_8h_aea0f89437d9878c7de571d69731fca5d}{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+EY}~-\/1002
\item 
\#define \hyperlink{signal__protocol_8h_a4473aac1ac5f1e030fe8f4db2fd03231}{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+E\+Y\+\_\+\+ID}~-\/1003
\item 
\#define \hyperlink{signal__protocol_8h_af3be85fa88ade8aba9dd58aee2290110}{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+AC}~-\/1004
\item 
\#define \hyperlink{signal__protocol_8h_a8a0e985fce032bff80f4989335aa4be0}{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+E\+S\+S\+A\+GE}~-\/1005
\item 
\#define \hyperlink{signal__protocol_8h_a6e0b3cc4edc71576517c6f9fb688b1a9}{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+V\+E\+R\+S\+I\+ON}~-\/1006
\item 
\#define \hyperlink{signal__protocol_8h_a395f27c5a77a696f6d3aed851150a353}{S\+G\+\_\+\+E\+R\+R\+\_\+\+L\+E\+G\+A\+C\+Y\+\_\+\+M\+E\+S\+S\+A\+GE}~-\/1007
\item 
\#define \hyperlink{signal__protocol_8h_a95fe6d09f77c76adfe6e7b96cc2a284f}{S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+\_\+\+S\+E\+S\+S\+I\+ON}~-\/1008
\item 
\#define \hyperlink{signal__protocol_8h_ab16f58b8461e9572e8fe4aba4ba354d4}{S\+G\+\_\+\+E\+R\+R\+\_\+\+S\+T\+A\+L\+E\+\_\+\+K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+GE}~-\/1009
\item 
\#define \hyperlink{signal__protocol_8h_a3f88163d99530b1bbd3a1e8844c51a4c}{S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+T\+R\+U\+S\+T\+E\+D\+\_\+\+I\+D\+E\+N\+T\+I\+TY}~-\/1010
\item 
\#define \hyperlink{signal__protocol_8h_ad492c3f902a297ece45e8e1b461535ea}{S\+G\+\_\+\+E\+R\+R\+\_\+\+V\+R\+F\+\_\+\+S\+I\+G\+\_\+\+V\+E\+R\+I\+F\+\_\+\+F\+A\+I\+L\+ED}~-\/1011
\item 
\#define \hyperlink{signal__protocol_8h_add40a65b0fa7e7bfc0f99ecdeb8d4814}{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+P\+R\+O\+T\+O\+\_\+\+B\+UF}~-\/1100
\item 
\#define \hyperlink{signal__protocol_8h_a84927cc3ccf0578ef717cc9481da4729}{S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+I\+S\+M\+A\+T\+CH}~-\/1200
\item 
\#define \hyperlink{signal__protocol_8h_a6abdbc9ee660ff4d9d43d1808413b4cc}{S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+I\+D\+E\+N\+T\+\_\+\+M\+I\+S\+M\+A\+T\+CH}~-\/1201
\item 
\#define \hyperlink{signal__protocol_8h_ad14138979a40c9626c6a3aa27b452dad}{S\+G\+\_\+\+E\+R\+R\+\_\+\+M\+I\+N\+I\+M\+UM}~-\/9999
\item 
\#define \hyperlink{signal__protocol_8h_a30d215aa2c9f2daccf24bb77bd32cce1}{S\+G\+\_\+\+L\+O\+G\+\_\+\+E\+R\+R\+OR}~0
\item 
\#define \hyperlink{signal__protocol_8h_af1be82a02f7624b887dc6daec2309f7d}{S\+G\+\_\+\+L\+O\+G\+\_\+\+W\+A\+R\+N\+I\+NG}~1
\item 
\#define \hyperlink{signal__protocol_8h_a8fca5a65e63ce4b0014ad8ab0e1a9de1}{S\+G\+\_\+\+L\+O\+G\+\_\+\+N\+O\+T\+I\+CE}~2
\item 
\#define \hyperlink{signal__protocol_8h_af25f829f9a168bc4e7045fc44261b573}{S\+G\+\_\+\+L\+O\+G\+\_\+\+I\+N\+FO}~3
\item 
\#define \hyperlink{signal__protocol_8h_a932ca074b6dd0940dc67995462b412f5}{S\+G\+\_\+\+L\+O\+G\+\_\+\+D\+E\+B\+UG}~4
\item 
\#define \hyperlink{signal__protocol_8h_aa453a1771a40f8227594f8c201571062}{S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+T\+R\+\_\+\+N\+O\+P\+A\+D\+D\+I\+NG}~1
\item 
\#define \hyperlink{signal__protocol_8h_aa63c3be24634f809c59eb32689bac3bd}{S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+B\+C\+\_\+\+P\+K\+C\+S5}~2
\item 
\#define \hyperlink{signal__protocol_8h_afed628c1d3c8e27893b3ecd16118869b}{S\+I\+G\+N\+A\+L\+\_\+\+R\+EF}(instance)~\hyperlink{signal__protocol_8h_a75ea1e2d2f8791c4878f636e8efa02f4}{signal\+\_\+type\+\_\+ref}((\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$)instance)
\item 
\#define \hyperlink{signal__protocol_8h_a24cc5948b7a156359945113bbee09786}{S\+I\+G\+N\+A\+L\+\_\+\+U\+N\+R\+EF}(instance)~do \{ \hyperlink{signal__protocol_8h_aebcd97e4ee38031457af88c08fbd24de}{signal\+\_\+type\+\_\+unref}((\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$)instance); instance = 0; \} while(0)
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \hyperlink{structsignal__crypto__provider}{signal\+\_\+crypto\+\_\+provider} \hyperlink{signal__protocol_8h_a2319a1a3bbbf522722ac5885bb0109cb}{signal\+\_\+crypto\+\_\+provider}
\item 
typedef struct \hyperlink{structsignal__protocol__session__store}{signal\+\_\+protocol\+\_\+session\+\_\+store} \hyperlink{signal__protocol_8h_acba7f0995079db60746070762e1fe44a}{signal\+\_\+protocol\+\_\+session\+\_\+store}
\item 
typedef struct \hyperlink{structsignal__protocol__pre__key__store}{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store} \hyperlink{signal__protocol_8h_a71b7280471c32b388f6b822f65fdfd13}{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store}
\item 
typedef struct \hyperlink{structsignal__protocol__signed__pre__key__store}{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store} \hyperlink{signal__protocol_8h_adfdd31ee2010eacef317294b36980ef2}{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store}
\item 
typedef struct \hyperlink{structsignal__protocol__identity__key__store}{signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store} \hyperlink{signal__protocol_8h_a54dc6bdfdcf61b531a0e69deb5698f53}{signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store}
\item 
typedef struct \hyperlink{structsignal__protocol__sender__key__store}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store} \hyperlink{signal__protocol_8h_a5443b8481e78607d2443593825c5854e}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{signal__protocol_8h_a75ea1e2d2f8791c4878f636e8efa02f4}{signal\+\_\+type\+\_\+ref} (\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$instance)
\item 
void \hyperlink{signal__protocol_8h_aebcd97e4ee38031457af88c08fbd24de}{signal\+\_\+type\+\_\+unref} (\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$instance)
\item 
\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$ \hyperlink{signal__protocol_8h_a4158c20e6e934bb5465adf1ea93ed257}{signal\+\_\+buffer\+\_\+alloc} (size\+\_\+t len)
\item 
\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$ \hyperlink{signal__protocol_8h_a48d64296b3bf307d76ccc01a6052e328}{signal\+\_\+buffer\+\_\+create} (const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, size\+\_\+t len)
\item 
\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$ \hyperlink{signal__protocol_8h_ac2252d35d1a67ac3222dc760662074c1}{signal\+\_\+buffer\+\_\+copy} (const \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$buffer)
\item 
\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$ \hyperlink{signal__protocol_8h_ae37728b8298b545b27f913fca22c7aa8}{signal\+\_\+buffer\+\_\+n\+\_\+copy} (const \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$buffer, size\+\_\+t n)
\item 
\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$ \hyperlink{signal__protocol_8h_a0c2190f15e7589413be13b8b2dcc201b}{signal\+\_\+buffer\+\_\+append} (\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$buffer, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data, size\+\_\+t len)
\item 
\hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$ \hyperlink{signal__protocol_8h_ad7b6d0f65995ff6d3fbe8c0fa8148bbb}{signal\+\_\+buffer\+\_\+data} (\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$buffer)
\item 
const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$ \hyperlink{signal__protocol_8h_aa0066fa8afa6d99a840b7ae188287819}{signal\+\_\+buffer\+\_\+const\+\_\+data} (const \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$buffer)
\item 
size\+\_\+t \hyperlink{signal__protocol_8h_a8970783ebd66dc5b04d9a722d95e1927}{signal\+\_\+buffer\+\_\+len} (const \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$buffer)
\item 
int \hyperlink{signal__protocol_8h_acb1191d87d2907c6760ad0be53e18326}{signal\+\_\+buffer\+\_\+compare} (\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$buffer1, \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$buffer2)
\item 
void \hyperlink{signal__protocol_8h_abd2b0cfb4df9d11f8903c01d19facdf5}{signal\+\_\+buffer\+\_\+free} (\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$buffer)
\item 
void \hyperlink{signal__protocol_8h_a39d5a335128917c3e7161a615779f9f6}{signal\+\_\+buffer\+\_\+bzero\+\_\+free} (\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$buffer)
\item 
\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$ \hyperlink{signal__protocol_8h_a22595f489d9717ae7c28076dbf62ed3f}{signal\+\_\+buffer\+\_\+list\+\_\+alloc} (void)
\item 
\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$ \hyperlink{signal__protocol_8h_a818c994680adeeba639f1bbdf7afb815}{signal\+\_\+buffer\+\_\+list\+\_\+copy} (const \hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$list)
\item 
int \hyperlink{signal__protocol_8h_a5ea2c482bdd6054026fc4c80c07d40be}{signal\+\_\+buffer\+\_\+list\+\_\+push\+\_\+back} (\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$list, \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$buffer)
\item 
unsigned int \hyperlink{signal__protocol_8h_a74bf909705909c68cfabd9bb41bb5af4}{signal\+\_\+buffer\+\_\+list\+\_\+size} (\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$list)
\item 
\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$ \hyperlink{signal__protocol_8h_ac35711e0840cb085de5cc15a3cb8232d}{signal\+\_\+buffer\+\_\+list\+\_\+at} (\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$list, unsigned int index)
\item 
void \hyperlink{signal__protocol_8h_a313c5b96e3b50cf8752f680e993a14b9}{signal\+\_\+buffer\+\_\+list\+\_\+free} (\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$list)
\item 
void \hyperlink{signal__protocol_8h_a12c2d5536ff6fb2c156024c132f9af14}{signal\+\_\+buffer\+\_\+list\+\_\+bzero\+\_\+free} (\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$list)
\item 
\hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list} $\ast$ \hyperlink{signal__protocol_8h_a7093f2ccec6008b809c0790cb6e99a2b}{signal\+\_\+int\+\_\+list\+\_\+alloc} (void)
\item 
int \hyperlink{signal__protocol_8h_a5a6c49c0343b61d86b17a639331684b5}{signal\+\_\+int\+\_\+list\+\_\+push\+\_\+back} (\hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list} $\ast$list, int value)
\item 
unsigned int \hyperlink{signal__protocol_8h_ae6daf5d2e8456880b269802b2ad606b3}{signal\+\_\+int\+\_\+list\+\_\+size} (\hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list} $\ast$list)
\item 
int \hyperlink{signal__protocol_8h_a5b0535f761638aff5584d66f9f182382}{signal\+\_\+int\+\_\+list\+\_\+at} (\hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list} $\ast$list, unsigned int index)
\item 
void \hyperlink{signal__protocol_8h_a86591d1d2e3d44856ad2d8a7f19d5869}{signal\+\_\+int\+\_\+list\+\_\+free} (\hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list} $\ast$list)
\item 
int \hyperlink{signal__protocol_8h_a0fefc02f9def73205022340f7fd1a2cb}{signal\+\_\+context\+\_\+create} (\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$$\ast$context, void $\ast$user\+\_\+data)
\item 
int \hyperlink{signal__protocol_8h_a1e464669c9419eea988f556158a49d57}{signal\+\_\+context\+\_\+set\+\_\+crypto\+\_\+provider} (\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$context, const \hyperlink{structsignal__crypto__provider}{signal\+\_\+crypto\+\_\+provider} $\ast$crypto\+\_\+provider)
\item 
int \hyperlink{signal__protocol_8h_a116e09ff4b2faae8aa8fcf5fa062598a}{signal\+\_\+context\+\_\+set\+\_\+locking\+\_\+functions} (\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$context, void($\ast$lock)(void $\ast$user\+\_\+data), void($\ast$unlock)(void $\ast$user\+\_\+data))
\item 
int \hyperlink{signal__protocol_8h_a835336ad1e397f1140087401b130dcd1}{signal\+\_\+context\+\_\+set\+\_\+log\+\_\+function} (\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$context, void($\ast$log)(int level, const char $\ast$message, size\+\_\+t len, void $\ast$user\+\_\+data))
\item 
void \hyperlink{signal__protocol_8h_a6ae8f603d3b43c85d3df85bfdae73812}{signal\+\_\+context\+\_\+destroy} (\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$context)
\item 
int \hyperlink{signal__protocol_8h_ac17720b2167025e1d3368808a01de185}{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+create} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$$\ast$context, \hyperlink{structsignal__context}{signal\+\_\+context} $\ast$global\+\_\+context)
\item 
int \hyperlink{signal__protocol_8h_a4ace03a45ac3f9ce7ca4ebab6ab97a5e}{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+session\+\_\+store} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const \hyperlink{structsignal__protocol__session__store}{signal\+\_\+protocol\+\_\+session\+\_\+store} $\ast$store)
\item 
int \hyperlink{signal__protocol_8h_aea613bbb75c1404b132830b654ff9c85}{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+pre\+\_\+key\+\_\+store} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const \hyperlink{structsignal__protocol__pre__key__store}{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store} $\ast$store)
\item 
int \hyperlink{signal__protocol_8h_aaad8dbbe3ff22fdee2e90277e82a7fa9}{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const \hyperlink{structsignal__protocol__signed__pre__key__store}{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store} $\ast$store)
\item 
int \hyperlink{signal__protocol_8h_aa90fcd85fe954044eb9e2a47393d320c}{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+identity\+\_\+key\+\_\+store} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const \hyperlink{structsignal__protocol__identity__key__store}{signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store} $\ast$store)
\item 
int \hyperlink{signal__protocol_8h_a77318476112398ebb29dd0c17142b52c}{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+sender\+\_\+key\+\_\+store} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const \hyperlink{structsignal__protocol__sender__key__store}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store} $\ast$store)
\item 
void \hyperlink{signal__protocol_8h_ad17110e922daad3b470eb9a7c854eb18}{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+destroy} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context)
\item 
int \hyperlink{signal__protocol_8h_a2b117e69150f0cb48fea1cf5346565c0}{signal\+\_\+protocol\+\_\+session\+\_\+load\+\_\+session} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$$\ast$record, const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$address)
\item 
int \hyperlink{signal__protocol_8h_aef8db57d77b9e2277630fec02bace0a3}{signal\+\_\+protocol\+\_\+session\+\_\+get\+\_\+sub\+\_\+device\+\_\+sessions} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list} $\ast$$\ast$sessions, const char $\ast$name, size\+\_\+t name\+\_\+len)
\item 
int \hyperlink{signal__protocol_8h_ac81c096092b7c2b4d5f1f99dc5f3af94}{signal\+\_\+protocol\+\_\+session\+\_\+store\+\_\+session} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$address, \hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$record)
\item 
int \hyperlink{signal__protocol_8h_ae16084ba25db9a341d9d258a396513b4}{signal\+\_\+protocol\+\_\+session\+\_\+contains\+\_\+session} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$address)
\item 
int \hyperlink{signal__protocol_8h_a2a55ac117c4fa304093c51e48285b5bf}{signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+session} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$address)
\item 
int \hyperlink{signal__protocol_8h_aff83040856fdda120cd5e169efb51253}{signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+all\+\_\+sessions} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const char $\ast$name, size\+\_\+t name\+\_\+len)
\item 
int \hyperlink{signal__protocol_8h_affea7ba4e29d75d422bdcf1a4dc84f25}{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+load\+\_\+key} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{signal__protocol__types_8h_a91cbd5e46d509a69d7fd018d5018c889}{session\+\_\+pre\+\_\+key} $\ast$$\ast$pre\+\_\+key, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} pre\+\_\+key\+\_\+id)
\item 
int \hyperlink{signal__protocol_8h_a3676975fe6f94f4492e581c971740cd8}{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store\+\_\+key} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{signal__protocol__types_8h_a91cbd5e46d509a69d7fd018d5018c889}{session\+\_\+pre\+\_\+key} $\ast$pre\+\_\+key)
\item 
int \hyperlink{signal__protocol_8h_a9ae1c2844107eb1f7521a43a5427a56d}{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} pre\+\_\+key\+\_\+id)
\item 
int \hyperlink{signal__protocol_8h_abc1726b7b71e06c08e7979161a1fca27}{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} pre\+\_\+key\+\_\+id)
\item 
int \hyperlink{signal__protocol_8h_abb3e61a84a50a675834a8171f78f1823}{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+load\+\_\+key} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{signal__protocol__types_8h_a52e43d2d7af0b108957939886064be81}{session\+\_\+signed\+\_\+pre\+\_\+key} $\ast$$\ast$pre\+\_\+key, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} signed\+\_\+pre\+\_\+key\+\_\+id)
\item 
int \hyperlink{signal__protocol_8h_af80037a340dd82b0f943d6abc4d088a7}{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store\+\_\+key} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{signal__protocol__types_8h_a52e43d2d7af0b108957939886064be81}{session\+\_\+signed\+\_\+pre\+\_\+key} $\ast$pre\+\_\+key)
\item 
int \hyperlink{signal__protocol_8h_aa152c83c43847adebfbd663880630fff}{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} signed\+\_\+pre\+\_\+key\+\_\+id)
\item 
int \hyperlink{signal__protocol_8h_a5175a7c7f076f87feae8f2a0cee46a0c}{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} signed\+\_\+pre\+\_\+key\+\_\+id)
\item 
int \hyperlink{signal__protocol_8h_a4e69971612af44282163af37ffe7e5e1}{signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+key\+\_\+pair} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{signal__protocol__types_8h_a2b29fe6c645390a72526c774c35ad457}{ratchet\+\_\+identity\+\_\+key\+\_\+pair} $\ast$$\ast$key\+\_\+pair)
\item 
int \hyperlink{signal__protocol_8h_a26acbf1cc969b898c5c1ba2547cb8fcc}{signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+local\+\_\+registration\+\_\+id} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} $\ast$registration\+\_\+id)
\item 
int \hyperlink{signal__protocol_8h_a6d03f243c04aac10ac3803b0e2358f61}{signal\+\_\+protocol\+\_\+identity\+\_\+save\+\_\+identity} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$address, \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$identity\+\_\+key)
\item 
int \hyperlink{signal__protocol_8h_a49f14459316fb2914031c58ed90da279}{signal\+\_\+protocol\+\_\+identity\+\_\+is\+\_\+trusted\+\_\+identity} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$address, \hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$identity\+\_\+key)
\item 
int \hyperlink{signal__protocol_8h_a3e35289d20637f0424ce8513c256f843}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store\+\_\+key} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$sender\+\_\+key\+\_\+name, \hyperlink{signal__protocol__types_8h_aa95d06c1f651b34d405477325f4600b9}{sender\+\_\+key\+\_\+record} $\ast$record)
\item 
int \hyperlink{signal__protocol_8h_a3ce51dcf43d096c66a721b135abefcad}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+load\+\_\+key} (\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$context, \hyperlink{signal__protocol__types_8h_aa95d06c1f651b34d405477325f4600b9}{sender\+\_\+key\+\_\+record} $\ast$$\ast$record, const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$sender\+\_\+key\+\_\+name)
\end{DoxyCompactItemize}


\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{signal__protocol_8h_aa63c3be24634f809c59eb32689bac3bd}\label{signal__protocol_8h_aa63c3be24634f809c59eb32689bac3bd}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+B\+C\+\_\+\+P\+K\+C\+S5@{S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+B\+C\+\_\+\+P\+K\+C\+S5}}
\index{S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+B\+C\+\_\+\+P\+K\+C\+S5@{S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+B\+C\+\_\+\+P\+K\+C\+S5}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+B\+C\+\_\+\+P\+K\+C\+S5}{SG\_CIPHER\_AES\_CBC\_PKCS5}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+B\+C\+\_\+\+P\+K\+C\+S5~2}



Definition at line 59 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_aa453a1771a40f8227594f8c201571062}\label{signal__protocol_8h_aa453a1771a40f8227594f8c201571062}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+T\+R\+\_\+\+N\+O\+P\+A\+D\+D\+I\+NG@{S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+T\+R\+\_\+\+N\+O\+P\+A\+D\+D\+I\+NG}}
\index{S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+T\+R\+\_\+\+N\+O\+P\+A\+D\+D\+I\+NG@{S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+T\+R\+\_\+\+N\+O\+P\+A\+D\+D\+I\+NG}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+T\+R\+\_\+\+N\+O\+P\+A\+D\+D\+I\+NG}{SG\_CIPHER\_AES\_CTR\_NOPADDING}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+C\+I\+P\+H\+E\+R\+\_\+\+A\+E\+S\+\_\+\+C\+T\+R\+\_\+\+N\+O\+P\+A\+D\+D\+I\+NG~1}



Definition at line 58 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a17836665b0888698e5775fe4937229ce}\label{signal__protocol_8h_a17836665b0888698e5775fe4937229ce}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+D\+U\+P\+L\+I\+C\+A\+T\+E\+\_\+\+M\+E\+S\+S\+A\+GE@{S\+G\+\_\+\+E\+R\+R\+\_\+\+D\+U\+P\+L\+I\+C\+A\+T\+E\+\_\+\+M\+E\+S\+S\+A\+GE}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+D\+U\+P\+L\+I\+C\+A\+T\+E\+\_\+\+M\+E\+S\+S\+A\+GE@{S\+G\+\_\+\+E\+R\+R\+\_\+\+D\+U\+P\+L\+I\+C\+A\+T\+E\+\_\+\+M\+E\+S\+S\+A\+GE}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+D\+U\+P\+L\+I\+C\+A\+T\+E\+\_\+\+M\+E\+S\+S\+A\+GE}{SG\_ERR\_DUPLICATE\_MESSAGE}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+D\+U\+P\+L\+I\+C\+A\+T\+E\+\_\+\+M\+E\+S\+S\+A\+GE~-\/1001}



Definition at line 27 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a6abdbc9ee660ff4d9d43d1808413b4cc}\label{signal__protocol_8h_a6abdbc9ee660ff4d9d43d1808413b4cc}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+I\+D\+E\+N\+T\+\_\+\+M\+I\+S\+M\+A\+T\+CH@{S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+I\+D\+E\+N\+T\+\_\+\+M\+I\+S\+M\+A\+T\+CH}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+I\+D\+E\+N\+T\+\_\+\+M\+I\+S\+M\+A\+T\+CH@{S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+I\+D\+E\+N\+T\+\_\+\+M\+I\+S\+M\+A\+T\+CH}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+I\+D\+E\+N\+T\+\_\+\+M\+I\+S\+M\+A\+T\+CH}{SG\_ERR\_FP\_IDENT\_MISMATCH}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+I\+D\+E\+N\+T\+\_\+\+M\+I\+S\+M\+A\+T\+CH~-\/1201}



Definition at line 40 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a84927cc3ccf0578ef717cc9481da4729}\label{signal__protocol_8h_a84927cc3ccf0578ef717cc9481da4729}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+I\+S\+M\+A\+T\+CH@{S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+I\+S\+M\+A\+T\+CH}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+I\+S\+M\+A\+T\+CH@{S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+I\+S\+M\+A\+T\+CH}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+I\+S\+M\+A\+T\+CH}{SG\_ERR\_FP\_VERSION\_MISMATCH}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+F\+P\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+M\+I\+S\+M\+A\+T\+CH~-\/1200}



Definition at line 39 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a143309b7c67f65c4504e14f6f2d07052}\label{signal__protocol_8h_a143309b7c67f65c4504e14f6f2d07052}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+AL@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+AL}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+AL@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+AL}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+AL}{SG\_ERR\_INVAL}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+AL~-\/22   /$\ast$ Invalid argument $\ast$/}



Definition at line 23 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_aea0f89437d9878c7de571d69731fca5d}\label{signal__protocol_8h_aea0f89437d9878c7de571d69731fca5d}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+EY@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+EY}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+EY@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+EY}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+EY}{SG\_ERR\_INVALID\_KEY}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+EY~-\/1002}



Definition at line 28 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a4473aac1ac5f1e030fe8f4db2fd03231}\label{signal__protocol_8h_a4473aac1ac5f1e030fe8f4db2fd03231}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+E\+Y\+\_\+\+ID@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+E\+Y\+\_\+\+ID}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+E\+Y\+\_\+\+ID@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+E\+Y\+\_\+\+ID}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+E\+Y\+\_\+\+ID}{SG\_ERR\_INVALID\_KEY\_ID}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+K\+E\+Y\+\_\+\+ID~-\/1003}



Definition at line 29 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_af3be85fa88ade8aba9dd58aee2290110}\label{signal__protocol_8h_af3be85fa88ade8aba9dd58aee2290110}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+AC@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+AC}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+AC@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+AC}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+AC}{SG\_ERR\_INVALID\_MAC}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+AC~-\/1004}



Definition at line 30 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a8a0e985fce032bff80f4989335aa4be0}\label{signal__protocol_8h_a8a0e985fce032bff80f4989335aa4be0}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+E\+S\+S\+A\+GE@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+E\+S\+S\+A\+GE}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+E\+S\+S\+A\+GE@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+E\+S\+S\+A\+GE}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+E\+S\+S\+A\+GE}{SG\_ERR\_INVALID\_MESSAGE}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+M\+E\+S\+S\+A\+GE~-\/1005}



Definition at line 31 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_add40a65b0fa7e7bfc0f99ecdeb8d4814}\label{signal__protocol_8h_add40a65b0fa7e7bfc0f99ecdeb8d4814}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+P\+R\+O\+T\+O\+\_\+\+B\+UF@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+P\+R\+O\+T\+O\+\_\+\+B\+UF}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+P\+R\+O\+T\+O\+\_\+\+B\+UF@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+P\+R\+O\+T\+O\+\_\+\+B\+UF}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+P\+R\+O\+T\+O\+\_\+\+B\+UF}{SG\_ERR\_INVALID\_PROTO\_BUF}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+P\+R\+O\+T\+O\+\_\+\+B\+UF~-\/1100}



Definition at line 38 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a6e0b3cc4edc71576517c6f9fb688b1a9}\label{signal__protocol_8h_a6e0b3cc4edc71576517c6f9fb688b1a9}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+V\+E\+R\+S\+I\+ON@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+V\+E\+R\+S\+I\+ON@{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+V\+E\+R\+S\+I\+ON}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+V\+E\+R\+S\+I\+ON}{SG\_ERR\_INVALID\_VERSION}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+I\+N\+V\+A\+L\+I\+D\+\_\+\+V\+E\+R\+S\+I\+ON~-\/1006}



Definition at line 32 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a395f27c5a77a696f6d3aed851150a353}\label{signal__protocol_8h_a395f27c5a77a696f6d3aed851150a353}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+L\+E\+G\+A\+C\+Y\+\_\+\+M\+E\+S\+S\+A\+GE@{S\+G\+\_\+\+E\+R\+R\+\_\+\+L\+E\+G\+A\+C\+Y\+\_\+\+M\+E\+S\+S\+A\+GE}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+L\+E\+G\+A\+C\+Y\+\_\+\+M\+E\+S\+S\+A\+GE@{S\+G\+\_\+\+E\+R\+R\+\_\+\+L\+E\+G\+A\+C\+Y\+\_\+\+M\+E\+S\+S\+A\+GE}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+L\+E\+G\+A\+C\+Y\+\_\+\+M\+E\+S\+S\+A\+GE}{SG\_ERR\_LEGACY\_MESSAGE}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+L\+E\+G\+A\+C\+Y\+\_\+\+M\+E\+S\+S\+A\+GE~-\/1007}



Definition at line 33 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_ad14138979a40c9626c6a3aa27b452dad}\label{signal__protocol_8h_ad14138979a40c9626c6a3aa27b452dad}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+M\+I\+N\+I\+M\+UM@{S\+G\+\_\+\+E\+R\+R\+\_\+\+M\+I\+N\+I\+M\+UM}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+M\+I\+N\+I\+M\+UM@{S\+G\+\_\+\+E\+R\+R\+\_\+\+M\+I\+N\+I\+M\+UM}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+M\+I\+N\+I\+M\+UM}{SG\_ERR\_MINIMUM}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+M\+I\+N\+I\+M\+UM~-\/9999}



Definition at line 48 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a95fe6d09f77c76adfe6e7b96cc2a284f}\label{signal__protocol_8h_a95fe6d09f77c76adfe6e7b96cc2a284f}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+\_\+\+S\+E\+S\+S\+I\+ON@{S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+\_\+\+S\+E\+S\+S\+I\+ON}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+\_\+\+S\+E\+S\+S\+I\+ON@{S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+\_\+\+S\+E\+S\+S\+I\+ON}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+\_\+\+S\+E\+S\+S\+I\+ON}{SG\_ERR\_NO\_SESSION}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+\_\+\+S\+E\+S\+S\+I\+ON~-\/1008}



Definition at line 34 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_ac2d489504f3f915865dbe128c32c3d20}\label{signal__protocol_8h_ac2d489504f3f915865dbe128c32c3d20}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+M\+EM@{S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+M\+EM}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+M\+EM@{S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+M\+EM}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+M\+EM}{SG\_ERR\_NOMEM}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+N\+O\+M\+EM~-\/12   /$\ast$ Not enough space $\ast$/}



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

\mbox{\Hypertarget{signal__protocol_8h_ab16f58b8461e9572e8fe4aba4ba354d4}\label{signal__protocol_8h_ab16f58b8461e9572e8fe4aba4ba354d4}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+S\+T\+A\+L\+E\+\_\+\+K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+GE@{S\+G\+\_\+\+E\+R\+R\+\_\+\+S\+T\+A\+L\+E\+\_\+\+K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+GE}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+S\+T\+A\+L\+E\+\_\+\+K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+GE@{S\+G\+\_\+\+E\+R\+R\+\_\+\+S\+T\+A\+L\+E\+\_\+\+K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+GE}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+S\+T\+A\+L\+E\+\_\+\+K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+GE}{SG\_ERR\_STALE\_KEY\_EXCHANGE}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+S\+T\+A\+L\+E\+\_\+\+K\+E\+Y\+\_\+\+E\+X\+C\+H\+A\+N\+GE~-\/1009}



Definition at line 35 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a400b5f99baa2118f6901cc2e2f2de733}\label{signal__protocol_8h_a400b5f99baa2118f6901cc2e2f2de733}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+K\+N\+O\+WN@{S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+K\+N\+O\+WN}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+K\+N\+O\+WN@{S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+K\+N\+O\+WN}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+K\+N\+O\+WN}{SG\_ERR\_UNKNOWN}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+K\+N\+O\+WN~-\/1000}



Definition at line 26 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a3f88163d99530b1bbd3a1e8844c51a4c}\label{signal__protocol_8h_a3f88163d99530b1bbd3a1e8844c51a4c}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+T\+R\+U\+S\+T\+E\+D\+\_\+\+I\+D\+E\+N\+T\+I\+TY@{S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+T\+R\+U\+S\+T\+E\+D\+\_\+\+I\+D\+E\+N\+T\+I\+TY}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+T\+R\+U\+S\+T\+E\+D\+\_\+\+I\+D\+E\+N\+T\+I\+TY@{S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+T\+R\+U\+S\+T\+E\+D\+\_\+\+I\+D\+E\+N\+T\+I\+TY}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+T\+R\+U\+S\+T\+E\+D\+\_\+\+I\+D\+E\+N\+T\+I\+TY}{SG\_ERR\_UNTRUSTED\_IDENTITY}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+U\+N\+T\+R\+U\+S\+T\+E\+D\+\_\+\+I\+D\+E\+N\+T\+I\+TY~-\/1010}



Definition at line 36 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_ad492c3f902a297ece45e8e1b461535ea}\label{signal__protocol_8h_ad492c3f902a297ece45e8e1b461535ea}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+E\+R\+R\+\_\+\+V\+R\+F\+\_\+\+S\+I\+G\+\_\+\+V\+E\+R\+I\+F\+\_\+\+F\+A\+I\+L\+ED@{S\+G\+\_\+\+E\+R\+R\+\_\+\+V\+R\+F\+\_\+\+S\+I\+G\+\_\+\+V\+E\+R\+I\+F\+\_\+\+F\+A\+I\+L\+ED}}
\index{S\+G\+\_\+\+E\+R\+R\+\_\+\+V\+R\+F\+\_\+\+S\+I\+G\+\_\+\+V\+E\+R\+I\+F\+\_\+\+F\+A\+I\+L\+ED@{S\+G\+\_\+\+E\+R\+R\+\_\+\+V\+R\+F\+\_\+\+S\+I\+G\+\_\+\+V\+E\+R\+I\+F\+\_\+\+F\+A\+I\+L\+ED}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+E\+R\+R\+\_\+\+V\+R\+F\+\_\+\+S\+I\+G\+\_\+\+V\+E\+R\+I\+F\+\_\+\+F\+A\+I\+L\+ED}{SG\_ERR\_VRF\_SIG\_VERIF\_FAILED}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+E\+R\+R\+\_\+\+V\+R\+F\+\_\+\+S\+I\+G\+\_\+\+V\+E\+R\+I\+F\+\_\+\+F\+A\+I\+L\+ED~-\/1011}



Definition at line 37 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a932ca074b6dd0940dc67995462b412f5}\label{signal__protocol_8h_a932ca074b6dd0940dc67995462b412f5}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+L\+O\+G\+\_\+\+D\+E\+B\+UG@{S\+G\+\_\+\+L\+O\+G\+\_\+\+D\+E\+B\+UG}}
\index{S\+G\+\_\+\+L\+O\+G\+\_\+\+D\+E\+B\+UG@{S\+G\+\_\+\+L\+O\+G\+\_\+\+D\+E\+B\+UG}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+L\+O\+G\+\_\+\+D\+E\+B\+UG}{SG\_LOG\_DEBUG}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+L\+O\+G\+\_\+\+D\+E\+B\+UG~4}



Definition at line 55 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a30d215aa2c9f2daccf24bb77bd32cce1}\label{signal__protocol_8h_a30d215aa2c9f2daccf24bb77bd32cce1}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+L\+O\+G\+\_\+\+E\+R\+R\+OR@{S\+G\+\_\+\+L\+O\+G\+\_\+\+E\+R\+R\+OR}}
\index{S\+G\+\_\+\+L\+O\+G\+\_\+\+E\+R\+R\+OR@{S\+G\+\_\+\+L\+O\+G\+\_\+\+E\+R\+R\+OR}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+L\+O\+G\+\_\+\+E\+R\+R\+OR}{SG\_LOG\_ERROR}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+L\+O\+G\+\_\+\+E\+R\+R\+OR~0}



Definition at line 51 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_af25f829f9a168bc4e7045fc44261b573}\label{signal__protocol_8h_af25f829f9a168bc4e7045fc44261b573}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+L\+O\+G\+\_\+\+I\+N\+FO@{S\+G\+\_\+\+L\+O\+G\+\_\+\+I\+N\+FO}}
\index{S\+G\+\_\+\+L\+O\+G\+\_\+\+I\+N\+FO@{S\+G\+\_\+\+L\+O\+G\+\_\+\+I\+N\+FO}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+L\+O\+G\+\_\+\+I\+N\+FO}{SG\_LOG\_INFO}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+L\+O\+G\+\_\+\+I\+N\+FO~3}



Definition at line 54 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a8fca5a65e63ce4b0014ad8ab0e1a9de1}\label{signal__protocol_8h_a8fca5a65e63ce4b0014ad8ab0e1a9de1}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+L\+O\+G\+\_\+\+N\+O\+T\+I\+CE@{S\+G\+\_\+\+L\+O\+G\+\_\+\+N\+O\+T\+I\+CE}}
\index{S\+G\+\_\+\+L\+O\+G\+\_\+\+N\+O\+T\+I\+CE@{S\+G\+\_\+\+L\+O\+G\+\_\+\+N\+O\+T\+I\+CE}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+L\+O\+G\+\_\+\+N\+O\+T\+I\+CE}{SG\_LOG\_NOTICE}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+L\+O\+G\+\_\+\+N\+O\+T\+I\+CE~2}



Definition at line 53 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_af1be82a02f7624b887dc6daec2309f7d}\label{signal__protocol_8h_af1be82a02f7624b887dc6daec2309f7d}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+L\+O\+G\+\_\+\+W\+A\+R\+N\+I\+NG@{S\+G\+\_\+\+L\+O\+G\+\_\+\+W\+A\+R\+N\+I\+NG}}
\index{S\+G\+\_\+\+L\+O\+G\+\_\+\+W\+A\+R\+N\+I\+NG@{S\+G\+\_\+\+L\+O\+G\+\_\+\+W\+A\+R\+N\+I\+NG}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+L\+O\+G\+\_\+\+W\+A\+R\+N\+I\+NG}{SG\_LOG\_WARNING}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+L\+O\+G\+\_\+\+W\+A\+R\+N\+I\+NG~1}



Definition at line 52 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a35463a2975c58c347c2c929d8a9e4c1b}\label{signal__protocol_8h_a35463a2975c58c347c2c929d8a9e4c1b}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+G\+\_\+\+S\+U\+C\+C\+E\+SS@{S\+G\+\_\+\+S\+U\+C\+C\+E\+SS}}
\index{S\+G\+\_\+\+S\+U\+C\+C\+E\+SS@{S\+G\+\_\+\+S\+U\+C\+C\+E\+SS}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+G\+\_\+\+S\+U\+C\+C\+E\+SS}{SG\_SUCCESS}}
{\footnotesize\ttfamily \#define S\+G\+\_\+\+S\+U\+C\+C\+E\+SS~0}



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

\mbox{\Hypertarget{signal__protocol_8h_afed628c1d3c8e27893b3ecd16118869b}\label{signal__protocol_8h_afed628c1d3c8e27893b3ecd16118869b}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+I\+G\+N\+A\+L\+\_\+\+R\+EF@{S\+I\+G\+N\+A\+L\+\_\+\+R\+EF}}
\index{S\+I\+G\+N\+A\+L\+\_\+\+R\+EF@{S\+I\+G\+N\+A\+L\+\_\+\+R\+EF}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+I\+G\+N\+A\+L\+\_\+\+R\+EF}{SIGNAL\_REF}}
{\footnotesize\ttfamily \#define S\+I\+G\+N\+A\+L\+\_\+\+R\+EF(\begin{DoxyParamCaption}\item[{}]{instance }\end{DoxyParamCaption})~\hyperlink{signal__protocol_8h_a75ea1e2d2f8791c4878f636e8efa02f4}{signal\+\_\+type\+\_\+ref}((\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$)instance)}



Definition at line 76 of file signal\+\_\+protocol.\+h.

\mbox{\Hypertarget{signal__protocol_8h_a24cc5948b7a156359945113bbee09786}\label{signal__protocol_8h_a24cc5948b7a156359945113bbee09786}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!S\+I\+G\+N\+A\+L\+\_\+\+U\+N\+R\+EF@{S\+I\+G\+N\+A\+L\+\_\+\+U\+N\+R\+EF}}
\index{S\+I\+G\+N\+A\+L\+\_\+\+U\+N\+R\+EF@{S\+I\+G\+N\+A\+L\+\_\+\+U\+N\+R\+EF}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{S\+I\+G\+N\+A\+L\+\_\+\+U\+N\+R\+EF}{SIGNAL\_UNREF}}
{\footnotesize\ttfamily \#define S\+I\+G\+N\+A\+L\+\_\+\+U\+N\+R\+EF(\begin{DoxyParamCaption}\item[{}]{instance }\end{DoxyParamCaption})~do \{ \hyperlink{signal__protocol_8h_aebcd97e4ee38031457af88c08fbd24de}{signal\+\_\+type\+\_\+unref}((\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$)instance); instance = 0; \} while(0)}



Definition at line 77 of file signal\+\_\+protocol.\+h.



\subsection{Typedef Documentation}
\mbox{\Hypertarget{signal__protocol_8h_a2319a1a3bbbf522722ac5885bb0109cb}\label{signal__protocol_8h_a2319a1a3bbbf522722ac5885bb0109cb}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+crypto\+\_\+provider@{signal\+\_\+crypto\+\_\+provider}}
\index{signal\+\_\+crypto\+\_\+provider@{signal\+\_\+crypto\+\_\+provider}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+crypto\+\_\+provider}{signal\_crypto\_provider}}
{\footnotesize\ttfamily typedef struct \hyperlink{structsignal__crypto__provider}{signal\+\_\+crypto\+\_\+provider}  \hyperlink{structsignal__crypto__provider}{signal\+\_\+crypto\+\_\+provider}}

\mbox{\Hypertarget{signal__protocol_8h_a54dc6bdfdcf61b531a0e69deb5698f53}\label{signal__protocol_8h_a54dc6bdfdcf61b531a0e69deb5698f53}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store}}
\index{signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store}{signal\_protocol\_identity\_key\_store}}
{\footnotesize\ttfamily typedef struct \hyperlink{structsignal__protocol__identity__key__store}{signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store}  \hyperlink{structsignal__protocol__identity__key__store}{signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store}}

\mbox{\Hypertarget{signal__protocol_8h_a71b7280471c32b388f6b822f65fdfd13}\label{signal__protocol_8h_a71b7280471c32b388f6b822f65fdfd13}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store}}
\index{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store}{signal\_protocol\_pre\_key\_store}}
{\footnotesize\ttfamily typedef struct \hyperlink{structsignal__protocol__pre__key__store}{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store}  \hyperlink{structsignal__protocol__pre__key__store}{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store}}

\mbox{\Hypertarget{signal__protocol_8h_a5443b8481e78607d2443593825c5854e}\label{signal__protocol_8h_a5443b8481e78607d2443593825c5854e}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}}
\index{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}{signal\_protocol\_sender\_key\_store}}
{\footnotesize\ttfamily typedef struct \hyperlink{structsignal__protocol__sender__key__store}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}  \hyperlink{structsignal__protocol__sender__key__store}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store}}

\mbox{\Hypertarget{signal__protocol_8h_acba7f0995079db60746070762e1fe44a}\label{signal__protocol_8h_acba7f0995079db60746070762e1fe44a}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+session\+\_\+store@{signal\+\_\+protocol\+\_\+session\+\_\+store}}
\index{signal\+\_\+protocol\+\_\+session\+\_\+store@{signal\+\_\+protocol\+\_\+session\+\_\+store}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+session\+\_\+store}{signal\_protocol\_session\_store}}
{\footnotesize\ttfamily typedef struct \hyperlink{structsignal__protocol__session__store}{signal\+\_\+protocol\+\_\+session\+\_\+store}  \hyperlink{structsignal__protocol__session__store}{signal\+\_\+protocol\+\_\+session\+\_\+store}}

\mbox{\Hypertarget{signal__protocol_8h_adfdd31ee2010eacef317294b36980ef2}\label{signal__protocol_8h_adfdd31ee2010eacef317294b36980ef2}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store}}
\index{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store}{signal\_protocol\_signed\_pre\_key\_store}}
{\footnotesize\ttfamily typedef struct \hyperlink{structsignal__protocol__signed__pre__key__store}{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store}  \hyperlink{structsignal__protocol__signed__pre__key__store}{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store}}



\subsection{Function Documentation}
\mbox{\Hypertarget{signal__protocol_8h_a4158c20e6e934bb5465adf1ea93ed257}\label{signal__protocol_8h_a4158c20e6e934bb5465adf1ea93ed257}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+alloc@{signal\+\_\+buffer\+\_\+alloc}}
\index{signal\+\_\+buffer\+\_\+alloc@{signal\+\_\+buffer\+\_\+alloc}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+alloc()}{signal\_buffer\_alloc()}}
{\footnotesize\ttfamily \hyperlink{structsignal__buffer}{signal\+\_\+buffer}$\ast$ signal\+\_\+buffer\+\_\+alloc (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}

Allocate a new buffer to store data of the provided length.


\begin{DoxyParams}{Parameters}
{\em len} & length of the buffer to allocate \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to the allocated buffer, or 0 on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a0c2190f15e7589413be13b8b2dcc201b}\label{signal__protocol_8h_a0c2190f15e7589413be13b8b2dcc201b}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+append@{signal\+\_\+buffer\+\_\+append}}
\index{signal\+\_\+buffer\+\_\+append@{signal\+\_\+buffer\+\_\+append}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+append()}{signal\_buffer\_append()}}
{\footnotesize\ttfamily \hyperlink{structsignal__buffer}{signal\+\_\+buffer}$\ast$ signal\+\_\+buffer\+\_\+append (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{buffer,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{data,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}

Append the provided data to an existing buffer. Note\+: The underlying buffer is only expanded by an amount sufficient to hold the data being appended. There is no additional reserved space to reduce the need for memory allocations.


\begin{DoxyParams}{Parameters}
{\em buffer} & the existing buffer to append to \\
\hline
{\em data} & pointer to the start of the data \\
\hline
{\em len} & length of the data \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to the updated buffer, or 0 on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a39d5a335128917c3e7161a615779f9f6}\label{signal__protocol_8h_a39d5a335128917c3e7161a615779f9f6}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+bzero\+\_\+free@{signal\+\_\+buffer\+\_\+bzero\+\_\+free}}
\index{signal\+\_\+buffer\+\_\+bzero\+\_\+free@{signal\+\_\+buffer\+\_\+bzero\+\_\+free}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+bzero\+\_\+free()}{signal\_buffer\_bzero\_free()}}
{\footnotesize\ttfamily void signal\+\_\+buffer\+\_\+bzero\+\_\+free (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{buffer }\end{DoxyParamCaption})}

Zero and free the data buffer. This function should be used when the buffer contains sensitive data, to make sure the memory is cleared before being freed.


\begin{DoxyParams}{Parameters}
{\em buffer} & pointer to the buffer instance to free \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{signal__protocol_8h_acb1191d87d2907c6760ad0be53e18326}\label{signal__protocol_8h_acb1191d87d2907c6760ad0be53e18326}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+compare@{signal\+\_\+buffer\+\_\+compare}}
\index{signal\+\_\+buffer\+\_\+compare@{signal\+\_\+buffer\+\_\+compare}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+compare()}{signal\_buffer\_compare()}}
{\footnotesize\ttfamily int signal\+\_\+buffer\+\_\+compare (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{buffer1,  }\item[{\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{buffer2 }\end{DoxyParamCaption})}

Compare two buffers.


\begin{DoxyParams}{Parameters}
{\em buffer1} & first buffer to compare \\
\hline
{\em buffer2} & second buffer to compare \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if the two buffers are equal, negative or positive otherwise 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_aa0066fa8afa6d99a840b7ae188287819}\label{signal__protocol_8h_aa0066fa8afa6d99a840b7ae188287819}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+const\+\_\+data@{signal\+\_\+buffer\+\_\+const\+\_\+data}}
\index{signal\+\_\+buffer\+\_\+const\+\_\+data@{signal\+\_\+buffer\+\_\+const\+\_\+data}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+const\+\_\+data()}{signal\_buffer\_const\_data()}}
{\footnotesize\ttfamily const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}$\ast$ signal\+\_\+buffer\+\_\+const\+\_\+data (\begin{DoxyParamCaption}\item[{const \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{buffer }\end{DoxyParamCaption})}

Gets the data pointer for the buffer. This can be used to read and write data stored in the buffer.


\begin{DoxyParams}{Parameters}
{\em buffer} & pointer to the buffer instance \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
data pointer 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_ac2252d35d1a67ac3222dc760662074c1}\label{signal__protocol_8h_ac2252d35d1a67ac3222dc760662074c1}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+copy@{signal\+\_\+buffer\+\_\+copy}}
\index{signal\+\_\+buffer\+\_\+copy@{signal\+\_\+buffer\+\_\+copy}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+copy()}{signal\_buffer\_copy()}}
{\footnotesize\ttfamily \hyperlink{structsignal__buffer}{signal\+\_\+buffer}$\ast$ signal\+\_\+buffer\+\_\+copy (\begin{DoxyParamCaption}\item[{const \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{buffer }\end{DoxyParamCaption})}

Create a copy of an existing buffer.


\begin{DoxyParams}{Parameters}
{\em buffer} & the existing buffer to copy \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to the updated buffer, or 0 on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a48d64296b3bf307d76ccc01a6052e328}\label{signal__protocol_8h_a48d64296b3bf307d76ccc01a6052e328}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+create@{signal\+\_\+buffer\+\_\+create}}
\index{signal\+\_\+buffer\+\_\+create@{signal\+\_\+buffer\+\_\+create}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+create()}{signal\_buffer\_create()}}
{\footnotesize\ttfamily \hyperlink{structsignal__buffer}{signal\+\_\+buffer}$\ast$ signal\+\_\+buffer\+\_\+create (\begin{DoxyParamCaption}\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{data,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}

Create a new buffer and copy the provided data into it.


\begin{DoxyParams}{Parameters}
{\em data} & pointer to the start of the data \\
\hline
{\em len} & length of the data \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to the allocated buffer, or 0 on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_ad7b6d0f65995ff6d3fbe8c0fa8148bbb}\label{signal__protocol_8h_ad7b6d0f65995ff6d3fbe8c0fa8148bbb}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+data@{signal\+\_\+buffer\+\_\+data}}
\index{signal\+\_\+buffer\+\_\+data@{signal\+\_\+buffer\+\_\+data}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+data()}{signal\_buffer\_data()}}
{\footnotesize\ttfamily \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t}$\ast$ signal\+\_\+buffer\+\_\+data (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{buffer }\end{DoxyParamCaption})}

Gets the data pointer for the buffer. This can be used to read and write data stored in the buffer.


\begin{DoxyParams}{Parameters}
{\em buffer} & pointer to the buffer instance \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
data pointer 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_abd2b0cfb4df9d11f8903c01d19facdf5}\label{signal__protocol_8h_abd2b0cfb4df9d11f8903c01d19facdf5}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+free@{signal\+\_\+buffer\+\_\+free}}
\index{signal\+\_\+buffer\+\_\+free@{signal\+\_\+buffer\+\_\+free}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+free()}{signal\_buffer\_free()}}
{\footnotesize\ttfamily void signal\+\_\+buffer\+\_\+free (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{buffer }\end{DoxyParamCaption})}

Free the data buffer.


\begin{DoxyParams}{Parameters}
{\em buffer} & pointer to the buffer instance to free \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{signal__protocol_8h_a8970783ebd66dc5b04d9a722d95e1927}\label{signal__protocol_8h_a8970783ebd66dc5b04d9a722d95e1927}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+len@{signal\+\_\+buffer\+\_\+len}}
\index{signal\+\_\+buffer\+\_\+len@{signal\+\_\+buffer\+\_\+len}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+len()}{signal\_buffer\_len()}}
{\footnotesize\ttfamily size\+\_\+t signal\+\_\+buffer\+\_\+len (\begin{DoxyParamCaption}\item[{const \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{buffer }\end{DoxyParamCaption})}

Gets the length of the data stored within the buffer.


\begin{DoxyParams}{Parameters}
{\em buffer} & pointer to the buffer instance \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
data length 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a22595f489d9717ae7c28076dbf62ed3f}\label{signal__protocol_8h_a22595f489d9717ae7c28076dbf62ed3f}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+list\+\_\+alloc@{signal\+\_\+buffer\+\_\+list\+\_\+alloc}}
\index{signal\+\_\+buffer\+\_\+list\+\_\+alloc@{signal\+\_\+buffer\+\_\+list\+\_\+alloc}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+list\+\_\+alloc()}{signal\_buffer\_list\_alloc()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list}$\ast$ signal\+\_\+buffer\+\_\+list\+\_\+alloc (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Allocate a new buffer list.

\begin{DoxyReturn}{Returns}
pointer to the allocated buffer, or 0 on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_ac35711e0840cb085de5cc15a3cb8232d}\label{signal__protocol_8h_ac35711e0840cb085de5cc15a3cb8232d}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+list\+\_\+at@{signal\+\_\+buffer\+\_\+list\+\_\+at}}
\index{signal\+\_\+buffer\+\_\+list\+\_\+at@{signal\+\_\+buffer\+\_\+list\+\_\+at}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+list\+\_\+at()}{signal\_buffer\_list\_at()}}
{\footnotesize\ttfamily \hyperlink{structsignal__buffer}{signal\+\_\+buffer}$\ast$ signal\+\_\+buffer\+\_\+list\+\_\+at (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$}]{list,  }\item[{unsigned int}]{index }\end{DoxyParamCaption})}

Gets the value of the element at a particular index in the list


\begin{DoxyParams}{Parameters}
{\em list} & the list \\
\hline
{\em index} & the index within the list \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the value 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a12c2d5536ff6fb2c156024c132f9af14}\label{signal__protocol_8h_a12c2d5536ff6fb2c156024c132f9af14}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+list\+\_\+bzero\+\_\+free@{signal\+\_\+buffer\+\_\+list\+\_\+bzero\+\_\+free}}
\index{signal\+\_\+buffer\+\_\+list\+\_\+bzero\+\_\+free@{signal\+\_\+buffer\+\_\+list\+\_\+bzero\+\_\+free}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+list\+\_\+bzero\+\_\+free()}{signal\_buffer\_list\_bzero\_free()}}
{\footnotesize\ttfamily void signal\+\_\+buffer\+\_\+list\+\_\+bzero\+\_\+free (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$}]{list }\end{DoxyParamCaption})}

Free the buffer list, including all the buffers added to it. This function should be used when the buffer list contains sensitive data, to make sure the memory is cleared before being freed.


\begin{DoxyParams}{Parameters}
{\em list} & the buffer list \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{signal__protocol_8h_a818c994680adeeba639f1bbdf7afb815}\label{signal__protocol_8h_a818c994680adeeba639f1bbdf7afb815}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+list\+\_\+copy@{signal\+\_\+buffer\+\_\+list\+\_\+copy}}
\index{signal\+\_\+buffer\+\_\+list\+\_\+copy@{signal\+\_\+buffer\+\_\+list\+\_\+copy}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+list\+\_\+copy()}{signal\_buffer\_list\_copy()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list}$\ast$ signal\+\_\+buffer\+\_\+list\+\_\+copy (\begin{DoxyParamCaption}\item[{const \hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$}]{list }\end{DoxyParamCaption})}

Create a copy of an existing buffer list.


\begin{DoxyParams}{Parameters}
{\em list} & the existing buffer list to copy \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to the updated buffer, or 0 on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a313c5b96e3b50cf8752f680e993a14b9}\label{signal__protocol_8h_a313c5b96e3b50cf8752f680e993a14b9}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+list\+\_\+free@{signal\+\_\+buffer\+\_\+list\+\_\+free}}
\index{signal\+\_\+buffer\+\_\+list\+\_\+free@{signal\+\_\+buffer\+\_\+list\+\_\+free}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+list\+\_\+free()}{signal\_buffer\_list\_free()}}
{\footnotesize\ttfamily void signal\+\_\+buffer\+\_\+list\+\_\+free (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$}]{list }\end{DoxyParamCaption})}

Free the buffer list, including all the buffers added to it.


\begin{DoxyParams}{Parameters}
{\em list} & the buffer list \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{signal__protocol_8h_a5ea2c482bdd6054026fc4c80c07d40be}\label{signal__protocol_8h_a5ea2c482bdd6054026fc4c80c07d40be}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+list\+\_\+push\+\_\+back@{signal\+\_\+buffer\+\_\+list\+\_\+push\+\_\+back}}
\index{signal\+\_\+buffer\+\_\+list\+\_\+push\+\_\+back@{signal\+\_\+buffer\+\_\+list\+\_\+push\+\_\+back}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+list\+\_\+push\+\_\+back()}{signal\_buffer\_list\_push\_back()}}
{\footnotesize\ttfamily int signal\+\_\+buffer\+\_\+list\+\_\+push\+\_\+back (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$}]{list,  }\item[{\hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{buffer }\end{DoxyParamCaption})}

Push the provided buffer onto the end of the list. The list will take ownership of the buffer, and free it when the list is freed.


\begin{DoxyParams}{Parameters}
{\em list} & the buffer list \\
\hline
{\em buffer} & the buffer to push \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, or negative on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a74bf909705909c68cfabd9bb41bb5af4}\label{signal__protocol_8h_a74bf909705909c68cfabd9bb41bb5af4}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+list\+\_\+size@{signal\+\_\+buffer\+\_\+list\+\_\+size}}
\index{signal\+\_\+buffer\+\_\+list\+\_\+size@{signal\+\_\+buffer\+\_\+list\+\_\+size}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+list\+\_\+size()}{signal\_buffer\_list\_size()}}
{\footnotesize\ttfamily unsigned int signal\+\_\+buffer\+\_\+list\+\_\+size (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ac4948964653d00cd4335ab682ac26af4}{signal\+\_\+buffer\+\_\+list} $\ast$}]{list }\end{DoxyParamCaption})}

Gets the size of the buffer list.


\begin{DoxyParams}{Parameters}
{\em list} & the buffer list \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the size of the list 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_ae37728b8298b545b27f913fca22c7aa8}\label{signal__protocol_8h_ae37728b8298b545b27f913fca22c7aa8}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+buffer\+\_\+n\+\_\+copy@{signal\+\_\+buffer\+\_\+n\+\_\+copy}}
\index{signal\+\_\+buffer\+\_\+n\+\_\+copy@{signal\+\_\+buffer\+\_\+n\+\_\+copy}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+buffer\+\_\+n\+\_\+copy()}{signal\_buffer\_n\_copy()}}
{\footnotesize\ttfamily \hyperlink{structsignal__buffer}{signal\+\_\+buffer}$\ast$ signal\+\_\+buffer\+\_\+n\+\_\+copy (\begin{DoxyParamCaption}\item[{const \hyperlink{structsignal__buffer}{signal\+\_\+buffer} $\ast$}]{buffer,  }\item[{size\+\_\+t}]{n }\end{DoxyParamCaption})}

Create a copy of an existing buffer.


\begin{DoxyParams}{Parameters}
{\em buffer} & the existing buffer to copy \\
\hline
{\em n} & the maximum number of bytes to copy \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to the updated buffer, or 0 on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a0fefc02f9def73205022340f7fd1a2cb}\label{signal__protocol_8h_a0fefc02f9def73205022340f7fd1a2cb}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+context\+\_\+create@{signal\+\_\+context\+\_\+create}}
\index{signal\+\_\+context\+\_\+create@{signal\+\_\+context\+\_\+create}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+context\+\_\+create()}{signal\_context\_create()}}
{\footnotesize\ttfamily int signal\+\_\+context\+\_\+create (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$$\ast$}]{context,  }\item[{void $\ast$}]{user\+\_\+data }\end{DoxyParamCaption})}

Create a new instance of the global library context. \mbox{\Hypertarget{signal__protocol_8h_a6ae8f603d3b43c85d3df85bfdae73812}\label{signal__protocol_8h_a6ae8f603d3b43c85d3df85bfdae73812}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+context\+\_\+destroy@{signal\+\_\+context\+\_\+destroy}}
\index{signal\+\_\+context\+\_\+destroy@{signal\+\_\+context\+\_\+destroy}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+context\+\_\+destroy()}{signal\_context\_destroy()}}
{\footnotesize\ttfamily void signal\+\_\+context\+\_\+destroy (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a1e464669c9419eea988f556158a49d57}\label{signal__protocol_8h_a1e464669c9419eea988f556158a49d57}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+context\+\_\+set\+\_\+crypto\+\_\+provider@{signal\+\_\+context\+\_\+set\+\_\+crypto\+\_\+provider}}
\index{signal\+\_\+context\+\_\+set\+\_\+crypto\+\_\+provider@{signal\+\_\+context\+\_\+set\+\_\+crypto\+\_\+provider}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+context\+\_\+set\+\_\+crypto\+\_\+provider()}{signal\_context\_set\_crypto\_provider()}}
{\footnotesize\ttfamily int signal\+\_\+context\+\_\+set\+\_\+crypto\+\_\+provider (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__crypto__provider}{signal\+\_\+crypto\+\_\+provider} $\ast$}]{crypto\+\_\+provider }\end{DoxyParamCaption})}

Set the crypto provider to be used by the Signal Protocol library.


\begin{DoxyParams}{Parameters}
{\em crypto\+\_\+provider} & Populated structure of crypto provider function pointers. The contents of this structure are copied, so the caller does not need to maintain its instance. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, negative on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a116e09ff4b2faae8aa8fcf5fa062598a}\label{signal__protocol_8h_a116e09ff4b2faae8aa8fcf5fa062598a}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+context\+\_\+set\+\_\+locking\+\_\+functions@{signal\+\_\+context\+\_\+set\+\_\+locking\+\_\+functions}}
\index{signal\+\_\+context\+\_\+set\+\_\+locking\+\_\+functions@{signal\+\_\+context\+\_\+set\+\_\+locking\+\_\+functions}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+context\+\_\+set\+\_\+locking\+\_\+functions()}{signal\_context\_set\_locking\_functions()}}
{\footnotesize\ttfamily int signal\+\_\+context\+\_\+set\+\_\+locking\+\_\+functions (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{context,  }\item[{void($\ast$)(void $\ast$user\+\_\+data)}]{lock,  }\item[{void($\ast$)(void $\ast$user\+\_\+data)}]{unlock }\end{DoxyParamCaption})}

Set the locking functions to be used by the Signal Protocol library for synchronization.

Note\+: These functions must allow recursive locking (e.\+g. P\+T\+H\+R\+E\+A\+D\+\_\+\+M\+U\+T\+E\+X\+\_\+\+R\+E\+C\+U\+R\+S\+I\+VE)


\begin{DoxyParams}{Parameters}
{\em lock} & function to lock a mutex \\
\hline
{\em unlock} & function to unlock a mutex \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, negative on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a835336ad1e397f1140087401b130dcd1}\label{signal__protocol_8h_a835336ad1e397f1140087401b130dcd1}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+context\+\_\+set\+\_\+log\+\_\+function@{signal\+\_\+context\+\_\+set\+\_\+log\+\_\+function}}
\index{signal\+\_\+context\+\_\+set\+\_\+log\+\_\+function@{signal\+\_\+context\+\_\+set\+\_\+log\+\_\+function}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+context\+\_\+set\+\_\+log\+\_\+function()}{signal\_context\_set\_log\_function()}}
{\footnotesize\ttfamily int signal\+\_\+context\+\_\+set\+\_\+log\+\_\+function (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{context,  }\item[{void($\ast$)(int level, const char $\ast$message, size\+\_\+t len, void $\ast$user\+\_\+data)}]{log }\end{DoxyParamCaption})}

Set the log function to be used by the Signal Protocol library for logging.

\begin{DoxyReturn}{Returns}
0 on success, negative on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a7093f2ccec6008b809c0790cb6e99a2b}\label{signal__protocol_8h_a7093f2ccec6008b809c0790cb6e99a2b}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+int\+\_\+list\+\_\+alloc@{signal\+\_\+int\+\_\+list\+\_\+alloc}}
\index{signal\+\_\+int\+\_\+list\+\_\+alloc@{signal\+\_\+int\+\_\+list\+\_\+alloc}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+int\+\_\+list\+\_\+alloc()}{signal\_int\_list\_alloc()}}
{\footnotesize\ttfamily \hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list}$\ast$ signal\+\_\+int\+\_\+list\+\_\+alloc (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Allocate a new int list

\begin{DoxyReturn}{Returns}
pointer to the allocated buffer, or 0 on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a5b0535f761638aff5584d66f9f182382}\label{signal__protocol_8h_a5b0535f761638aff5584d66f9f182382}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+int\+\_\+list\+\_\+at@{signal\+\_\+int\+\_\+list\+\_\+at}}
\index{signal\+\_\+int\+\_\+list\+\_\+at@{signal\+\_\+int\+\_\+list\+\_\+at}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+int\+\_\+list\+\_\+at()}{signal\_int\_list\_at()}}
{\footnotesize\ttfamily int signal\+\_\+int\+\_\+list\+\_\+at (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list} $\ast$}]{list,  }\item[{unsigned int}]{index }\end{DoxyParamCaption})}

Gets the value of the element at a particular index in the list


\begin{DoxyParams}{Parameters}
{\em list} & the list \\
\hline
{\em index} & the index within the list \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the value 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a86591d1d2e3d44856ad2d8a7f19d5869}\label{signal__protocol_8h_a86591d1d2e3d44856ad2d8a7f19d5869}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+int\+\_\+list\+\_\+free@{signal\+\_\+int\+\_\+list\+\_\+free}}
\index{signal\+\_\+int\+\_\+list\+\_\+free@{signal\+\_\+int\+\_\+list\+\_\+free}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+int\+\_\+list\+\_\+free()}{signal\_int\_list\_free()}}
{\footnotesize\ttfamily void signal\+\_\+int\+\_\+list\+\_\+free (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list} $\ast$}]{list }\end{DoxyParamCaption})}

Free the int list 
\begin{DoxyParams}{Parameters}
{\em list} & the list to free \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{signal__protocol_8h_a5a6c49c0343b61d86b17a639331684b5}\label{signal__protocol_8h_a5a6c49c0343b61d86b17a639331684b5}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+int\+\_\+list\+\_\+push\+\_\+back@{signal\+\_\+int\+\_\+list\+\_\+push\+\_\+back}}
\index{signal\+\_\+int\+\_\+list\+\_\+push\+\_\+back@{signal\+\_\+int\+\_\+list\+\_\+push\+\_\+back}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+int\+\_\+list\+\_\+push\+\_\+back()}{signal\_int\_list\_push\_back()}}
{\footnotesize\ttfamily int signal\+\_\+int\+\_\+list\+\_\+push\+\_\+back (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list} $\ast$}]{list,  }\item[{int}]{value }\end{DoxyParamCaption})}

Push a new value onto the end of the list


\begin{DoxyParams}{Parameters}
{\em list} & the list \\
\hline
{\em value} & the value to push \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, or negative on failure 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_ae6daf5d2e8456880b269802b2ad606b3}\label{signal__protocol_8h_ae6daf5d2e8456880b269802b2ad606b3}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+int\+\_\+list\+\_\+size@{signal\+\_\+int\+\_\+list\+\_\+size}}
\index{signal\+\_\+int\+\_\+list\+\_\+size@{signal\+\_\+int\+\_\+list\+\_\+size}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+int\+\_\+list\+\_\+size()}{signal\_int\_list\_size()}}
{\footnotesize\ttfamily unsigned int signal\+\_\+int\+\_\+list\+\_\+size (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list} $\ast$}]{list }\end{DoxyParamCaption})}

Gets the size of the list.


\begin{DoxyParams}{Parameters}
{\em list} & the list \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the size of the list 
\end{DoxyReturn}
\mbox{\Hypertarget{signal__protocol_8h_a4e69971612af44282163af37ffe7e5e1}\label{signal__protocol_8h_a4e69971612af44282163af37ffe7e5e1}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+key\+\_\+pair@{signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+key\+\_\+pair}}
\index{signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+key\+\_\+pair@{signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+key\+\_\+pair}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+key\+\_\+pair()}{signal\_protocol\_identity\_get\_key\_pair()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+key\+\_\+pair (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{signal__protocol__types_8h_a2b29fe6c645390a72526c774c35ad457}{ratchet\+\_\+identity\+\_\+key\+\_\+pair} $\ast$$\ast$}]{key\+\_\+pair }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a26acbf1cc969b898c5c1ba2547cb8fcc}\label{signal__protocol_8h_a26acbf1cc969b898c5c1ba2547cb8fcc}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+local\+\_\+registration\+\_\+id@{signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+local\+\_\+registration\+\_\+id}}
\index{signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+local\+\_\+registration\+\_\+id@{signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+local\+\_\+registration\+\_\+id}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+local\+\_\+registration\+\_\+id()}{signal\_protocol\_identity\_get\_local\_registration\_id()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+identity\+\_\+get\+\_\+local\+\_\+registration\+\_\+id (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} $\ast$}]{registration\+\_\+id }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a49f14459316fb2914031c58ed90da279}\label{signal__protocol_8h_a49f14459316fb2914031c58ed90da279}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+identity\+\_\+is\+\_\+trusted\+\_\+identity@{signal\+\_\+protocol\+\_\+identity\+\_\+is\+\_\+trusted\+\_\+identity}}
\index{signal\+\_\+protocol\+\_\+identity\+\_\+is\+\_\+trusted\+\_\+identity@{signal\+\_\+protocol\+\_\+identity\+\_\+is\+\_\+trusted\+\_\+identity}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+identity\+\_\+is\+\_\+trusted\+\_\+identity()}{signal\_protocol\_identity\_is\_trusted\_identity()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+identity\+\_\+is\+\_\+trusted\+\_\+identity (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$}]{address,  }\item[{\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{identity\+\_\+key }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a6d03f243c04aac10ac3803b0e2358f61}\label{signal__protocol_8h_a6d03f243c04aac10ac3803b0e2358f61}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+identity\+\_\+save\+\_\+identity@{signal\+\_\+protocol\+\_\+identity\+\_\+save\+\_\+identity}}
\index{signal\+\_\+protocol\+\_\+identity\+\_\+save\+\_\+identity@{signal\+\_\+protocol\+\_\+identity\+\_\+save\+\_\+identity}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+identity\+\_\+save\+\_\+identity()}{signal\_protocol\_identity\_save\_identity()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+identity\+\_\+save\+\_\+identity (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$}]{address,  }\item[{\hyperlink{signal__protocol__types_8h_a73ea701c5087163bba608c4706df6176}{ec\+\_\+public\+\_\+key} $\ast$}]{identity\+\_\+key }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a9ae1c2844107eb1f7521a43a5427a56d}\label{signal__protocol_8h_a9ae1c2844107eb1f7521a43a5427a56d}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key@{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key}}
\index{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key@{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key()}{signal\_protocol\_pre\_key\_contains\_key()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{pre\+\_\+key\+\_\+id }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_affea7ba4e29d75d422bdcf1a4dc84f25}\label{signal__protocol_8h_affea7ba4e29d75d422bdcf1a4dc84f25}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+load\+\_\+key@{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+load\+\_\+key}}
\index{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+load\+\_\+key@{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+load\+\_\+key}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+load\+\_\+key()}{signal\_protocol\_pre\_key\_load\_key()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+load\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{signal__protocol__types_8h_a91cbd5e46d509a69d7fd018d5018c889}{session\+\_\+pre\+\_\+key} $\ast$$\ast$}]{pre\+\_\+key,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{pre\+\_\+key\+\_\+id }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_abc1726b7b71e06c08e7979161a1fca27}\label{signal__protocol_8h_abc1726b7b71e06c08e7979161a1fca27}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key@{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key}}
\index{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key@{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key()}{signal\_protocol\_pre\_key\_remove\_key()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{pre\+\_\+key\+\_\+id }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a3676975fe6f94f4492e581c971740cd8}\label{signal__protocol_8h_a3676975fe6f94f4492e581c971740cd8}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store\+\_\+key@{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store\+\_\+key}}
\index{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store\+\_\+key@{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store\+\_\+key}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store\+\_\+key()}{signal\_protocol\_pre\_key\_store\_key()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{signal__protocol__types_8h_a91cbd5e46d509a69d7fd018d5018c889}{session\+\_\+pre\+\_\+key} $\ast$}]{pre\+\_\+key }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a3ce51dcf43d096c66a721b135abefcad}\label{signal__protocol_8h_a3ce51dcf43d096c66a721b135abefcad}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+load\+\_\+key@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+load\+\_\+key}}
\index{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+load\+\_\+key@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+load\+\_\+key}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+load\+\_\+key()}{signal\_protocol\_sender\_key\_load\_key()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+load\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{signal__protocol__types_8h_aa95d06c1f651b34d405477325f4600b9}{sender\+\_\+key\+\_\+record} $\ast$$\ast$}]{record,  }\item[{const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$}]{sender\+\_\+key\+\_\+name }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a3e35289d20637f0424ce8513c256f843}\label{signal__protocol_8h_a3e35289d20637f0424ce8513c256f843}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store\+\_\+key@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store\+\_\+key}}
\index{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store\+\_\+key@{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store\+\_\+key}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store\+\_\+key()}{signal\_protocol\_sender\_key\_store\_key()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__protocol__sender__key__name}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+name} $\ast$}]{sender\+\_\+key\+\_\+name,  }\item[{\hyperlink{signal__protocol__types_8h_aa95d06c1f651b34d405477325f4600b9}{sender\+\_\+key\+\_\+record} $\ast$}]{record }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_ae16084ba25db9a341d9d258a396513b4}\label{signal__protocol_8h_ae16084ba25db9a341d9d258a396513b4}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+session\+\_\+contains\+\_\+session@{signal\+\_\+protocol\+\_\+session\+\_\+contains\+\_\+session}}
\index{signal\+\_\+protocol\+\_\+session\+\_\+contains\+\_\+session@{signal\+\_\+protocol\+\_\+session\+\_\+contains\+\_\+session}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+session\+\_\+contains\+\_\+session()}{signal\_protocol\_session\_contains\_session()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+session\+\_\+contains\+\_\+session (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$}]{address }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_aff83040856fdda120cd5e169efb51253}\label{signal__protocol_8h_aff83040856fdda120cd5e169efb51253}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+all\+\_\+sessions@{signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+all\+\_\+sessions}}
\index{signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+all\+\_\+sessions@{signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+all\+\_\+sessions}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+all\+\_\+sessions()}{signal\_protocol\_session\_delete\_all\_sessions()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+all\+\_\+sessions (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const char $\ast$}]{name,  }\item[{size\+\_\+t}]{name\+\_\+len }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a2a55ac117c4fa304093c51e48285b5bf}\label{signal__protocol_8h_a2a55ac117c4fa304093c51e48285b5bf}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+session@{signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+session}}
\index{signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+session@{signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+session}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+session()}{signal\_protocol\_session\_delete\_session()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+session\+\_\+delete\+\_\+session (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$}]{address }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_aef8db57d77b9e2277630fec02bace0a3}\label{signal__protocol_8h_aef8db57d77b9e2277630fec02bace0a3}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+session\+\_\+get\+\_\+sub\+\_\+device\+\_\+sessions@{signal\+\_\+protocol\+\_\+session\+\_\+get\+\_\+sub\+\_\+device\+\_\+sessions}}
\index{signal\+\_\+protocol\+\_\+session\+\_\+get\+\_\+sub\+\_\+device\+\_\+sessions@{signal\+\_\+protocol\+\_\+session\+\_\+get\+\_\+sub\+\_\+device\+\_\+sessions}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+session\+\_\+get\+\_\+sub\+\_\+device\+\_\+sessions()}{signal\_protocol\_session\_get\_sub\_device\_sessions()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+session\+\_\+get\+\_\+sub\+\_\+device\+\_\+sessions (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{signal__protocol__types_8h_ad9b54e10dfdafa3f52ef80a00acd5d1d}{signal\+\_\+int\+\_\+list} $\ast$$\ast$}]{sessions,  }\item[{const char $\ast$}]{name,  }\item[{size\+\_\+t}]{name\+\_\+len }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a2b117e69150f0cb48fea1cf5346565c0}\label{signal__protocol_8h_a2b117e69150f0cb48fea1cf5346565c0}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+session\+\_\+load\+\_\+session@{signal\+\_\+protocol\+\_\+session\+\_\+load\+\_\+session}}
\index{signal\+\_\+protocol\+\_\+session\+\_\+load\+\_\+session@{signal\+\_\+protocol\+\_\+session\+\_\+load\+\_\+session}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+session\+\_\+load\+\_\+session()}{signal\_protocol\_session\_load\_session()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+session\+\_\+load\+\_\+session (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$$\ast$}]{record,  }\item[{const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$}]{address }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_ac81c096092b7c2b4d5f1f99dc5f3af94}\label{signal__protocol_8h_ac81c096092b7c2b4d5f1f99dc5f3af94}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+session\+\_\+store\+\_\+session@{signal\+\_\+protocol\+\_\+session\+\_\+store\+\_\+session}}
\index{signal\+\_\+protocol\+\_\+session\+\_\+store\+\_\+session@{signal\+\_\+protocol\+\_\+session\+\_\+store\+\_\+session}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+session\+\_\+store\+\_\+session()}{signal\_protocol\_session\_store\_session()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+session\+\_\+store\+\_\+session (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__protocol__address}{signal\+\_\+protocol\+\_\+address} $\ast$}]{address,  }\item[{\hyperlink{signal__protocol__types_8h_a727944115f7f956601279c81a821ba90}{session\+\_\+record} $\ast$}]{record }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_aa152c83c43847adebfbd663880630fff}\label{signal__protocol_8h_aa152c83c43847adebfbd663880630fff}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key@{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key}}
\index{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key@{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key()}{signal\_protocol\_signed\_pre\_key\_contains\_key()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+contains\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{signed\+\_\+pre\+\_\+key\+\_\+id }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_abb3e61a84a50a675834a8171f78f1823}\label{signal__protocol_8h_abb3e61a84a50a675834a8171f78f1823}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+load\+\_\+key@{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+load\+\_\+key}}
\index{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+load\+\_\+key@{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+load\+\_\+key}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+load\+\_\+key()}{signal\_protocol\_signed\_pre\_key\_load\_key()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+load\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{signal__protocol__types_8h_a52e43d2d7af0b108957939886064be81}{session\+\_\+signed\+\_\+pre\+\_\+key} $\ast$$\ast$}]{pre\+\_\+key,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{signed\+\_\+pre\+\_\+key\+\_\+id }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a5175a7c7f076f87feae8f2a0cee46a0c}\label{signal__protocol_8h_a5175a7c7f076f87feae8f2a0cee46a0c}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key@{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key}}
\index{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key@{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key()}{signal\_protocol\_signed\_pre\_key\_remove\_key()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+remove\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t}}]{signed\+\_\+pre\+\_\+key\+\_\+id }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_af80037a340dd82b0f943d6abc4d088a7}\label{signal__protocol_8h_af80037a340dd82b0f943d6abc4d088a7}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store\+\_\+key@{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store\+\_\+key}}
\index{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store\+\_\+key@{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store\+\_\+key}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store\+\_\+key()}{signal\_protocol\_signed\_pre\_key\_store\_key()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store\+\_\+key (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{\hyperlink{signal__protocol__types_8h_a52e43d2d7af0b108957939886064be81}{session\+\_\+signed\+\_\+pre\+\_\+key} $\ast$}]{pre\+\_\+key }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_ac17720b2167025e1d3368808a01de185}\label{signal__protocol_8h_ac17720b2167025e1d3368808a01de185}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+create@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+create}}
\index{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+create@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+create}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+create()}{signal\_protocol\_store\_context\_create()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+create (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$$\ast$}]{context,  }\item[{\hyperlink{structsignal__context}{signal\+\_\+context} $\ast$}]{global\+\_\+context }\end{DoxyParamCaption})}

Create a new instance of the Signal Protocol data store interface. \mbox{\Hypertarget{signal__protocol_8h_ad17110e922daad3b470eb9a7c854eb18}\label{signal__protocol_8h_ad17110e922daad3b470eb9a7c854eb18}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+destroy@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+destroy}}
\index{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+destroy@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+destroy}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+destroy()}{signal\_protocol\_store\_context\_destroy()}}
{\footnotesize\ttfamily void signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+destroy (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_aa90fcd85fe954044eb9e2a47393d320c}\label{signal__protocol_8h_aa90fcd85fe954044eb9e2a47393d320c}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+identity\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+identity\+\_\+key\+\_\+store}}
\index{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+identity\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+identity\+\_\+key\+\_\+store}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+identity\+\_\+key\+\_\+store()}{signal\_protocol\_store\_context\_set\_identity\_key\_store()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+identity\+\_\+key\+\_\+store (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__protocol__identity__key__store}{signal\+\_\+protocol\+\_\+identity\+\_\+key\+\_\+store} $\ast$}]{store }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_aea613bbb75c1404b132830b654ff9c85}\label{signal__protocol_8h_aea613bbb75c1404b132830b654ff9c85}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+pre\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+pre\+\_\+key\+\_\+store}}
\index{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+pre\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+pre\+\_\+key\+\_\+store}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+pre\+\_\+key\+\_\+store()}{signal\_protocol\_store\_context\_set\_pre\_key\_store()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+pre\+\_\+key\+\_\+store (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__protocol__pre__key__store}{signal\+\_\+protocol\+\_\+pre\+\_\+key\+\_\+store} $\ast$}]{store }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a77318476112398ebb29dd0c17142b52c}\label{signal__protocol_8h_a77318476112398ebb29dd0c17142b52c}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+sender\+\_\+key\+\_\+store}}
\index{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+sender\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+sender\+\_\+key\+\_\+store}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+sender\+\_\+key\+\_\+store()}{signal\_protocol\_store\_context\_set\_sender\_key\_store()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+sender\+\_\+key\+\_\+store (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__protocol__sender__key__store}{signal\+\_\+protocol\+\_\+sender\+\_\+key\+\_\+store} $\ast$}]{store }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a4ace03a45ac3f9ce7ca4ebab6ab97a5e}\label{signal__protocol_8h_a4ace03a45ac3f9ce7ca4ebab6ab97a5e}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+session\+\_\+store@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+session\+\_\+store}}
\index{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+session\+\_\+store@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+session\+\_\+store}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+session\+\_\+store()}{signal\_protocol\_store\_context\_set\_session\_store()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+session\+\_\+store (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__protocol__session__store}{signal\+\_\+protocol\+\_\+session\+\_\+store} $\ast$}]{store }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_aaad8dbbe3ff22fdee2e90277e82a7fa9}\label{signal__protocol_8h_aaad8dbbe3ff22fdee2e90277e82a7fa9}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store}}
\index{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store@{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store()}{signal\_protocol\_store\_context\_set\_signed\_pre\_key\_store()}}
{\footnotesize\ttfamily int signal\+\_\+protocol\+\_\+store\+\_\+context\+\_\+set\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store (\begin{DoxyParamCaption}\item[{\hyperlink{signal__protocol__types_8h_a407899f11766a172ae880601b8c3b4df}{signal\+\_\+protocol\+\_\+store\+\_\+context} $\ast$}]{context,  }\item[{const \hyperlink{structsignal__protocol__signed__pre__key__store}{signal\+\_\+protocol\+\_\+signed\+\_\+pre\+\_\+key\+\_\+store} $\ast$}]{store }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_a75ea1e2d2f8791c4878f636e8efa02f4}\label{signal__protocol_8h_a75ea1e2d2f8791c4878f636e8efa02f4}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+type\+\_\+ref@{signal\+\_\+type\+\_\+ref}}
\index{signal\+\_\+type\+\_\+ref@{signal\+\_\+type\+\_\+ref}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+type\+\_\+ref()}{signal\_type\_ref()}}
{\footnotesize\ttfamily void signal\+\_\+type\+\_\+ref (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$}]{instance }\end{DoxyParamCaption})}

\mbox{\Hypertarget{signal__protocol_8h_aebcd97e4ee38031457af88c08fbd24de}\label{signal__protocol_8h_aebcd97e4ee38031457af88c08fbd24de}} 
\index{signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}!signal\+\_\+type\+\_\+unref@{signal\+\_\+type\+\_\+unref}}
\index{signal\+\_\+type\+\_\+unref@{signal\+\_\+type\+\_\+unref}!signal\+\_\+protocol.\+h@{signal\+\_\+protocol.\+h}}
\subsubsection{\texorpdfstring{signal\+\_\+type\+\_\+unref()}{signal\_type\_unref()}}
{\footnotesize\ttfamily void signal\+\_\+type\+\_\+unref (\begin{DoxyParamCaption}\item[{\hyperlink{structsignal__type__base}{signal\+\_\+type\+\_\+base} $\ast$}]{instance }\end{DoxyParamCaption})}

