\doxysection{src/gsm/auth\+\_\+tuak.c File Reference}
\label{auth__tuak_8c}\index{src/gsm/auth\_tuak.c@{src/gsm/auth\_tuak.c}}


GSM/\+GPRS/3G authentication core infrastructure.  


{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/crypt/auth.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/bits.\+h$>$}\newline
{\ttfamily \#include \char`\"{}tuak/tuak.\+h\char`\"{}}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static const uint8\+\_\+t $\ast$ \textbf{ gen\+\_\+opc\+\_\+if\+\_\+needed} (const struct \textbf{ osmo\+\_\+sub\+\_\+auth\+\_\+data2} $\ast$aud, uint8\+\_\+t $\ast$gen\+\_\+opc)
\item 
static int \textbf{ tuak\+\_\+gen\+\_\+vec} (struct \textbf{ osmo\+\_\+auth\+\_\+vector} $\ast$vec, struct \textbf{ osmo\+\_\+sub\+\_\+auth\+\_\+data2} $\ast$aud, const uint8\+\_\+t $\ast$\+\_\+rand)
\item 
static int \textbf{ tuak\+\_\+gen\+\_\+vec\+\_\+auts} (struct \textbf{ osmo\+\_\+auth\+\_\+vector} $\ast$vec, struct \textbf{ osmo\+\_\+sub\+\_\+auth\+\_\+data2} $\ast$aud, const uint8\+\_\+t $\ast$auts, const uint8\+\_\+t $\ast$rand\+\_\+auts, const uint8\+\_\+t $\ast$\+\_\+rand)
\item 
static \textbf{ \+\_\+\+\_\+attribute\+\_\+\+\_\+} ((constructor))
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static struct \textbf{ osmo\+\_\+auth\+\_\+impl} \textbf{ tuak\+\_\+alg}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
GSM/\+GPRS/3G authentication core infrastructure. 



\doxysubsection{Function Documentation}
\mbox{\label{auth__tuak_8c_ga9ed16867a9394d9ccf1132194edae298}} 
\index{auth\_tuak.c@{auth\_tuak.c}!\_\_attribute\_\_@{\_\_attribute\_\_}}
\index{\_\_attribute\_\_@{\_\_attribute\_\_}!auth\_tuak.c@{auth\_tuak.c}}
\doxysubsubsection{\_\_attribute\_\_()}
{\footnotesize\ttfamily static \+\_\+\+\_\+attribute\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{(constructor)}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+auth\+\_\+register()}, and \textbf{ tuak\+\_\+alg}.

\mbox{\label{auth__tuak_8c_gaa5bdf73c23c626f4b2b5540b8ff4b929}} 
\index{auth\_tuak.c@{auth\_tuak.c}!gen\_opc\_if\_needed@{gen\_opc\_if\_needed}}
\index{gen\_opc\_if\_needed@{gen\_opc\_if\_needed}!auth\_tuak.c@{auth\_tuak.c}}
\doxysubsubsection{gen\_opc\_if\_needed()}
{\footnotesize\ttfamily static const uint8\+\_\+t $\ast$ gen\+\_\+opc\+\_\+if\+\_\+needed (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sub\+\_\+auth\+\_\+data2} $\ast$}]{aud,  }\item[{uint8\+\_\+t $\ast$}]{gen\+\_\+opc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+sub\+\_\+auth\+\_\+data2\+::k}, \textbf{ osmo\+\_\+sub\+\_\+auth\+\_\+data2\+::k\+\_\+len}, \textbf{ osmo\+\_\+sub\+\_\+auth\+\_\+data2\+::opc}, \textbf{ osmo\+\_\+sub\+\_\+auth\+\_\+data2\+::opc\+\_\+is\+\_\+op}, \textbf{ OSMO\+\_\+\+AUTH\+\_\+\+TYPE\+\_\+\+UMTS}, \textbf{ tuak\+\_\+opc\+\_\+gen()}, \textbf{ osmo\+\_\+sub\+\_\+auth\+\_\+data2\+::type}, \textbf{ osmo\+\_\+sub\+\_\+auth\+\_\+data2\+::u}, and \textbf{ osmo\+\_\+sub\+\_\+auth\+\_\+data2\+::umts}.



Referenced by \textbf{ tuak\+\_\+gen\+\_\+vec()}, and \textbf{ tuak\+\_\+gen\+\_\+vec\+\_\+auts()}.

