\doxysection{src/gsm/tuak/\+Keccak\+P-\/1600-\/3gpp.c File Reference}
\label{KeccakP-1600-3gpp_8c}\index{src/gsm/tuak/KeccakP-\/1600-\/3gpp.c@{src/gsm/tuak/KeccakP-\/1600-\/3gpp.c}}
{\ttfamily \#include \char`\"{}Keccak\+P-\/1600-\/3gpp.\+h\char`\"{}}\newline
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ ROTATE64}(value,  \textbf{ n})~((((uint64\+\_\+t)(value))$<$$<$(\textbf{ n})) $\vert$ (((uint64\+\_\+t)(value))$>$$>$(64-\/(\textbf{ n}))))
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \textbf{ Keccak\+\_\+f\+\_\+64} (uint64\+\_\+t s[25])
\item 
void \textbf{ Keccak\+\_\+f\+\_\+8} (uint8\+\_\+t s[200])
\item 
void \textbf{ Keccak\+\_\+f\+\_\+32} (uint32\+\_\+t s[50])
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const uint8\+\_\+t \textbf{ Rho} [25]
\item 
const uint8\+\_\+t \textbf{ Pi} [25]
\item 
const uint8\+\_\+t \textbf{ Iota} [24]
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{KeccakP-1600-3gpp_8c_af38b534421d77211dff882c30d87b432}} 
\index{KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}!ROTATE64@{ROTATE64}}
\index{ROTATE64@{ROTATE64}!KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}}
\doxysubsubsection{ROTATE64}
{\footnotesize\ttfamily \#define ROTATE64(\begin{DoxyParamCaption}\item[{}]{value,  }\item[{}]{\textbf{ n} }\end{DoxyParamCaption})~((((uint64\+\_\+t)(value))$<$$<$(\textbf{ n})) $\vert$ (((uint64\+\_\+t)(value))$>$$>$(64-\/(\textbf{ n}))))}



\doxysubsection{Function Documentation}
\mbox{\label{KeccakP-1600-3gpp_8c_a9f56542385aff3c8a68e55610edeba39}} 
\index{KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}!Keccak\_f\_32@{Keccak\_f\_32}}
\index{Keccak\_f\_32@{Keccak\_f\_32}!KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}}
\doxysubsubsection{Keccak\_f\_32()}
{\footnotesize\ttfamily void Keccak\+\_\+f\+\_\+32 (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{s[50] }\end{DoxyParamCaption})}



References \textbf{ Iota}, \textbf{ Pi}, and \textbf{ Rho}.

\mbox{\label{KeccakP-1600-3gpp_8c_a8c426b22613cd162584c0a044ce52c3c}} 
\index{KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}!Keccak\_f\_64@{Keccak\_f\_64}}
\index{Keccak\_f\_64@{Keccak\_f\_64}!KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}}
\doxysubsubsection{Keccak\_f\_64()}
{\footnotesize\ttfamily void Keccak\+\_\+f\+\_\+64 (\begin{DoxyParamCaption}\item[{uint64\+\_\+t}]{s[25] }\end{DoxyParamCaption})}



References \textbf{ Iota}, \textbf{ Pi}, \textbf{ Rho}, and \textbf{ ROTATE64}.



Referenced by \textbf{ tuak\+\_\+core()}.

\mbox{\label{KeccakP-1600-3gpp_8c_af37c065f41e042eae8c8b52a6e9bd849}} 
\index{KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}!Keccak\_f\_8@{Keccak\_f\_8}}
\index{Keccak\_f\_8@{Keccak\_f\_8}!KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}}
\doxysubsubsection{Keccak\_f\_8()}
{\footnotesize\ttfamily void Keccak\+\_\+f\+\_\+8 (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{s[200] }\end{DoxyParamCaption})}



References \textbf{ Iota}, \textbf{ Pi}, and \textbf{ Rho}.



\doxysubsection{Variable Documentation}
\mbox{\label{KeccakP-1600-3gpp_8c_acefb59409c9cf800ad38c782b09105b7}} 
\index{KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}!Iota@{Iota}}
\index{Iota@{Iota}!KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}}
\doxysubsubsection{Iota}
{\footnotesize\ttfamily const uint8\+\_\+t Iota[24]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{1,146,218,112,155,33,241,89,138,136,57,42,187,203,}
\DoxyCodeLine{   217,83,82,192,26,106,241,208,33,120\}}

\end{DoxyCode}


Referenced by \textbf{ Keccak\+\_\+f\+\_\+32()}, \textbf{ Keccak\+\_\+f\+\_\+64()}, and \textbf{ Keccak\+\_\+f\+\_\+8()}.

\mbox{\label{KeccakP-1600-3gpp_8c_ac3ecc8d02e454a9608272cf7628c6010}} 
\index{KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}!Pi@{Pi}}
\index{Pi@{Pi}!KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}}
\doxysubsubsection{Pi}
{\footnotesize\ttfamily const uint8\+\_\+t Pi[25]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{0,6,12,18,24,3,9,10,16,22,1,7,13,19,20,4,5,11,17,}
\DoxyCodeLine{   23,2,8,14,15,21\}}

\end{DoxyCode}


Referenced by \textbf{ Keccak\+\_\+f\+\_\+32()}, \textbf{ Keccak\+\_\+f\+\_\+64()}, and \textbf{ Keccak\+\_\+f\+\_\+8()}.

\mbox{\label{KeccakP-1600-3gpp_8c_a0d6065eddd0458d9c7bd12e09c5148bf}} 
\index{KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}!Rho@{Rho}}
\index{Rho@{Rho}!KeccakP-\/1600-\/3gpp.c@{KeccakP-\/1600-\/3gpp.c}}
\doxysubsubsection{Rho}
{\footnotesize\ttfamily const uint8\+\_\+t Rho[25]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{0,1,62,28,27,36,44,6,55,20,3,10,43,25,39,41,45,}
\DoxyCodeLine{   15,21,8,18,2,61,56,14\}}

\end{DoxyCode}


Referenced by \textbf{ Keccak\+\_\+f\+\_\+32()}, \textbf{ Keccak\+\_\+f\+\_\+64()}, and \textbf{ Keccak\+\_\+f\+\_\+8()}.

