\doxysection{src/gsm/kdf/common.h File Reference}
\label{kdf_2common_8h}\index{src/gsm/kdf/common.h@{src/gsm/kdf/common.h}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ CONFIG\+\_\+\+CRYPTO\+\_\+\+INTERNAL}
\item 
\#define \textbf{ TEST\+\_\+\+FAIL}()~0
\item 
\#define \textbf{ MSG\+\_\+\+DEBUG}
\item 
\#define \textbf{ wpa\+\_\+hexdump}(\textbf{ x},  args...)
\item 
\#define \textbf{ wpa\+\_\+hexdump\+\_\+key}(\textbf{ x},  args...)
\item 
\#define \textbf{ wpa\+\_\+printf}(\textbf{ x},  args...)
\item 
\#define \textbf{ os\+\_\+memcpy}(\textbf{ x},  y,  z)~memcpy(\textbf{ x}, y, z)
\item 
\#define \textbf{ os\+\_\+memcmp}(\textbf{ x},  y,  z)~memcmp(\textbf{ x}, y, z)
\item 
\#define \textbf{ os\+\_\+memset}(\textbf{ x},  y,  z)~memset(\textbf{ x}, y, z)
\item 
\#define \textbf{ os\+\_\+malloc}(\textbf{ x})~malloc(\textbf{ x})
\item 
\#define \textbf{ os\+\_\+free}(\textbf{ x})~free(\textbf{ x})
\item 
\#define \textbf{ os\+\_\+strlen}(\textbf{ x})~strlen(\textbf{ x})
\item 
\#define \textbf{ forced\+\_\+memzero}(ptr,  \textbf{ len})~memset(ptr, 0, \textbf{ len});
\item 
\#define \textbf{ WPA\+\_\+\+GET\+\_\+\+BE16}(a)~((\textbf{ u16}) (((a)[0] $<$$<$ 8) $\vert$ (a)[1]))
\item 
\#define \textbf{ WPA\+\_\+\+PUT\+\_\+\+BE16}(a,  val)
\item 
\#define \textbf{ WPA\+\_\+\+GET\+\_\+\+LE16}(a)~((\textbf{ u16}) (((a)[1] $<$$<$ 8) $\vert$ (a)[0]))
\item 
\#define \textbf{ WPA\+\_\+\+PUT\+\_\+\+LE16}(a,  val)
\item 
\#define \textbf{ WPA\+\_\+\+GET\+\_\+\+BE24}(a)
\item 
\#define \textbf{ WPA\+\_\+\+PUT\+\_\+\+BE24}(a,  val)
\item 
\#define \textbf{ WPA\+\_\+\+GET\+\_\+\+BE32}(a)
\item 
\#define \textbf{ WPA\+\_\+\+PUT\+\_\+\+BE32}(a,  val)
\item 
\#define \textbf{ WPA\+\_\+\+GET\+\_\+\+LE32}(a)
\item 
\#define \textbf{ WPA\+\_\+\+PUT\+\_\+\+LE32}(a,  val)
\item 
\#define \textbf{ WPA\+\_\+\+GET\+\_\+\+BE64}(a)
\item 
\#define \textbf{ WPA\+\_\+\+PUT\+\_\+\+BE64}(a,  val)
\item 
\#define \textbf{ WPA\+\_\+\+GET\+\_\+\+LE64}(a)
\item 
\#define \textbf{ \+\_\+\+\_\+must\+\_\+check}
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef uint64\+\_\+t \textbf{ u64}
\item 
typedef uint32\+\_\+t \textbf{ u32}
\item 
typedef uint16\+\_\+t \textbf{ u16}
\item 
typedef uint8\+\_\+t \textbf{ u8}
\item 
typedef int64\+\_\+t \textbf{ s64}
\item 
typedef int32\+\_\+t \textbf{ s32}
\item 
typedef int16\+\_\+t \textbf{ s16}
\item 
typedef int8\+\_\+t \textbf{ s8}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{kdf_2common_8h_af7045eee1ccd9074250c3eba96f769ac}} 
\index{common.h@{common.h}!\_\_must\_check@{\_\_must\_check}}
\index{\_\_must\_check@{\_\_must\_check}!common.h@{common.h}}
\doxysubsubsection{\_\_must\_check}
{\footnotesize\ttfamily \#define \+\_\+\+\_\+must\+\_\+check}

\mbox{\label{kdf_2common_8h_a870a551af5388a290b84fcc92a082d50}} 
\index{common.h@{common.h}!CONFIG\_CRYPTO\_INTERNAL@{CONFIG\_CRYPTO\_INTERNAL}}
\index{CONFIG\_CRYPTO\_INTERNAL@{CONFIG\_CRYPTO\_INTERNAL}!common.h@{common.h}}
\doxysubsubsection{CONFIG\_CRYPTO\_INTERNAL}
{\footnotesize\ttfamily \#define CONFIG\+\_\+\+CRYPTO\+\_\+\+INTERNAL}

\mbox{\label{kdf_2common_8h_add1c3fb51ff9fc23d4897a3a2280e33b}} 
\index{common.h@{common.h}!forced\_memzero@{forced\_memzero}}
\index{forced\_memzero@{forced\_memzero}!common.h@{common.h}}
\doxysubsubsection{forced\_memzero}
{\footnotesize\ttfamily \#define forced\+\_\+memzero(\begin{DoxyParamCaption}\item[{}]{ptr,  }\item[{}]{\textbf{ len} }\end{DoxyParamCaption})~memset(ptr, 0, \textbf{ len});}

\mbox{\label{kdf_2common_8h_a18adf81be6937378e36183d54dba61e9}} 
\index{common.h@{common.h}!MSG\_DEBUG@{MSG\_DEBUG}}
\index{MSG\_DEBUG@{MSG\_DEBUG}!common.h@{common.h}}
\doxysubsubsection{MSG\_DEBUG}
{\footnotesize\ttfamily \#define MSG\+\_\+\+DEBUG}

\mbox{\label{kdf_2common_8h_a4f91e11a5b4047bb055948dd5b5c71a6}} 
\index{common.h@{common.h}!os\_free@{os\_free}}
\index{os\_free@{os\_free}!common.h@{common.h}}
\doxysubsubsection{os\_free}
{\footnotesize\ttfamily \#define os\+\_\+free(\begin{DoxyParamCaption}\item[{}]{\textbf{ x} }\end{DoxyParamCaption})~free(\textbf{ x})}

\mbox{\label{kdf_2common_8h_ae11a292e4ee073e9840bf94a2af0a3e9}} 
\index{common.h@{common.h}!os\_malloc@{os\_malloc}}
\index{os\_malloc@{os\_malloc}!common.h@{common.h}}
\doxysubsubsection{os\_malloc}
{\footnotesize\ttfamily \#define os\+\_\+malloc(\begin{DoxyParamCaption}\item[{}]{\textbf{ x} }\end{DoxyParamCaption})~malloc(\textbf{ x})}

\mbox{\label{kdf_2common_8h_ad5d8b5f13dc0ac78199ba02b9af43d93}} 
\index{common.h@{common.h}!os\_memcmp@{os\_memcmp}}
\index{os\_memcmp@{os\_memcmp}!common.h@{common.h}}
\doxysubsubsection{os\_memcmp}
{\footnotesize\ttfamily \#define os\+\_\+memcmp(\begin{DoxyParamCaption}\item[{}]{\textbf{ x},  }\item[{}]{y,  }\item[{}]{z }\end{DoxyParamCaption})~memcmp(\textbf{ x}, y, z)}

\mbox{\label{kdf_2common_8h_a0c402a0ddbd4a091e27aecdd712455a7}} 
\index{common.h@{common.h}!os\_memcpy@{os\_memcpy}}
\index{os\_memcpy@{os\_memcpy}!common.h@{common.h}}
\doxysubsubsection{os\_memcpy}
{\footnotesize\ttfamily \#define os\+\_\+memcpy(\begin{DoxyParamCaption}\item[{}]{\textbf{ x},  }\item[{}]{y,  }\item[{}]{z }\end{DoxyParamCaption})~memcpy(\textbf{ x}, y, z)}

\mbox{\label{kdf_2common_8h_a0e3b55d8666bb3439f339fe37ee52c1a}} 
\index{common.h@{common.h}!os\_memset@{os\_memset}}
\index{os\_memset@{os\_memset}!common.h@{common.h}}
\doxysubsubsection{os\_memset}
{\footnotesize\ttfamily \#define os\+\_\+memset(\begin{DoxyParamCaption}\item[{}]{\textbf{ x},  }\item[{}]{y,  }\item[{}]{z }\end{DoxyParamCaption})~memset(\textbf{ x}, y, z)}

\mbox{\label{kdf_2common_8h_ac7d91d2d35f688d3aaa6affe74f278d9}} 
\index{common.h@{common.h}!os\_strlen@{os\_strlen}}
\index{os\_strlen@{os\_strlen}!common.h@{common.h}}
\doxysubsubsection{os\_strlen}
{\footnotesize\ttfamily \#define os\+\_\+strlen(\begin{DoxyParamCaption}\item[{}]{\textbf{ x} }\end{DoxyParamCaption})~strlen(\textbf{ x})}

\mbox{\label{kdf_2common_8h_acf4d2a6eb579e0c4d02cd64c8f350aa2}} 
\index{common.h@{common.h}!TEST\_FAIL@{TEST\_FAIL}}
\index{TEST\_FAIL@{TEST\_FAIL}!common.h@{common.h}}
\doxysubsubsection{TEST\_FAIL}
{\footnotesize\ttfamily \#define TEST\+\_\+\+FAIL(\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})~0}

\mbox{\label{kdf_2common_8h_af253f60b04fd033bf2ef0c08a71a2def}} 
\index{common.h@{common.h}!WPA\_GET\_BE16@{WPA\_GET\_BE16}}
\index{WPA\_GET\_BE16@{WPA\_GET\_BE16}!common.h@{common.h}}
\doxysubsubsection{WPA\_GET\_BE16}
{\footnotesize\ttfamily \#define WPA\+\_\+\+GET\+\_\+\+BE16(\begin{DoxyParamCaption}\item[{}]{a }\end{DoxyParamCaption})~((\textbf{ u16}) (((a)[0] $<$$<$ 8) $\vert$ (a)[1]))}

\mbox{\label{kdf_2common_8h_a9edd6468ff4f4564f8a9ca8bc3a30443}} 
\index{common.h@{common.h}!WPA\_GET\_BE24@{WPA\_GET\_BE24}}
\index{WPA\_GET\_BE24@{WPA\_GET\_BE24}!common.h@{common.h}}
\doxysubsubsection{WPA\_GET\_BE24}
{\footnotesize\ttfamily \#define WPA\+\_\+\+GET\+\_\+\+BE24(\begin{DoxyParamCaption}\item[{}]{a }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{                         ((((u32) (a)[0]) << 16) | (((u32) (a)[1]) << 8) | \(\backslash\)}
\DoxyCodeLine{                         ((u32) (a)[2]))}

\end{DoxyCode}
\mbox{\label{kdf_2common_8h_afbbd2a7ace0c161a0f0b65938762c05a}} 
\index{common.h@{common.h}!WPA\_GET\_BE32@{WPA\_GET\_BE32}}
\index{WPA\_GET\_BE32@{WPA\_GET\_BE32}!common.h@{common.h}}
\doxysubsubsection{WPA\_GET\_BE32}
{\footnotesize\ttfamily \#define WPA\+\_\+\+GET\+\_\+\+BE32(\begin{DoxyParamCaption}\item[{}]{a }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{                         ((((u32) (a)[0]) << 24) | (((u32) (a)[1]) << 16) | \(\backslash\)}
\DoxyCodeLine{                         (((u32) (a)[2]) << 8) | ((u32) (a)[3]))}

\end{DoxyCode}
\mbox{\label{kdf_2common_8h_a53ed86f371ad4f6d7348eb3e845f1c69}} 
\index{common.h@{common.h}!WPA\_GET\_BE64@{WPA\_GET\_BE64}}
\index{WPA\_GET\_BE64@{WPA\_GET\_BE64}!common.h@{common.h}}
\doxysubsubsection{WPA\_GET\_BE64}
{\footnotesize\ttfamily \#define WPA\+\_\+\+GET\+\_\+\+BE64(\begin{DoxyParamCaption}\item[{}]{a }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{                         ((((u64) (a)[0]) << 56) | (((u64) (a)[1]) << 48) | \(\backslash\)}
\DoxyCodeLine{                         (((u64) (a)[2]) << 40) | (((u64) (a)[3]) << 32) | \(\backslash\)}
\DoxyCodeLine{                         (((u64) (a)[4]) << 24) | (((u64) (a)[5]) << 16) | \(\backslash\)}
\DoxyCodeLine{                         (((u64) (a)[6]) << 8) | ((u64) (a)[7]))}

\end{DoxyCode}
\mbox{\label{kdf_2common_8h_aa515d5a4d5a653d455219f843d3ed7f6}} 
\index{common.h@{common.h}!WPA\_GET\_LE16@{WPA\_GET\_LE16}}
\index{WPA\_GET\_LE16@{WPA\_GET\_LE16}!common.h@{common.h}}
\doxysubsubsection{WPA\_GET\_LE16}
{\footnotesize\ttfamily \#define WPA\+\_\+\+GET\+\_\+\+LE16(\begin{DoxyParamCaption}\item[{}]{a }\end{DoxyParamCaption})~((\textbf{ u16}) (((a)[1] $<$$<$ 8) $\vert$ (a)[0]))}

\mbox{\label{kdf_2common_8h_ac65c86fb516ed5d9efc3716a846945e0}} 
\index{common.h@{common.h}!WPA\_GET\_LE32@{WPA\_GET\_LE32}}
\index{WPA\_GET\_LE32@{WPA\_GET\_LE32}!common.h@{common.h}}
\doxysubsubsection{WPA\_GET\_LE32}
{\footnotesize\ttfamily \#define WPA\+\_\+\+GET\+\_\+\+LE32(\begin{DoxyParamCaption}\item[{}]{a }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{                         ((((u32) (a)[3]) << 24) | (((u32) (a)[2]) << 16) | \(\backslash\)}
\DoxyCodeLine{                         (((u32) (a)[1]) << 8) | ((u32) (a)[0]))}

\end{DoxyCode}
\mbox{\label{kdf_2common_8h_adcb9b9522be5a41c80d0131fc1b34913}} 
\index{common.h@{common.h}!WPA\_GET\_LE64@{WPA\_GET\_LE64}}
\index{WPA\_GET\_LE64@{WPA\_GET\_LE64}!common.h@{common.h}}
\doxysubsubsection{WPA\_GET\_LE64}
{\footnotesize\ttfamily \#define WPA\+\_\+\+GET\+\_\+\+LE64(\begin{DoxyParamCaption}\item[{}]{a }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{                         ((((u64) (a)[7]) << 56) | (((u64) (a)[6]) << 48) | \(\backslash\)}
\DoxyCodeLine{                         (((u64) (a)[5]) << 40) | (((u64) (a)[4]) << 32) | \(\backslash\)}
\DoxyCodeLine{                         (((u64) (a)[3]) << 24) | (((u64) (a)[2]) << 16) | \(\backslash\)}
\DoxyCodeLine{                         (((u64) (a)[1]) << 8) | ((u64) (a)[0]))}

\end{DoxyCode}
\mbox{\label{kdf_2common_8h_a13132c39ea281d4d69eef76adcd11ad2}} 
\index{common.h@{common.h}!wpa\_hexdump@{wpa\_hexdump}}
\index{wpa\_hexdump@{wpa\_hexdump}!common.h@{common.h}}
\doxysubsubsection{wpa\_hexdump}
{\footnotesize\ttfamily \#define wpa\+\_\+hexdump(\begin{DoxyParamCaption}\item[{}]{\textbf{ x},  }\item[{}]{args... }\end{DoxyParamCaption})}

\mbox{\label{kdf_2common_8h_a60a7e8f4814af402e6d7b9746a00a4c2}} 
\index{common.h@{common.h}!wpa\_hexdump\_key@{wpa\_hexdump\_key}}
\index{wpa\_hexdump\_key@{wpa\_hexdump\_key}!common.h@{common.h}}
\doxysubsubsection{wpa\_hexdump\_key}
{\footnotesize\ttfamily \#define wpa\+\_\+hexdump\+\_\+key(\begin{DoxyParamCaption}\item[{}]{\textbf{ x},  }\item[{}]{args... }\end{DoxyParamCaption})}

\mbox{\label{kdf_2common_8h_ad8b831fa2b74da3037e02be7e0517900}} 
\index{common.h@{common.h}!wpa\_printf@{wpa\_printf}}
\index{wpa\_printf@{wpa\_printf}!common.h@{common.h}}
\doxysubsubsection{wpa\_printf}
{\footnotesize\ttfamily \#define wpa\+\_\+printf(\begin{DoxyParamCaption}\item[{}]{\textbf{ x},  }\item[{}]{args... }\end{DoxyParamCaption})}

\mbox{\label{kdf_2common_8h_af62001daa3380422395d4e213068d7c4}} 
\index{common.h@{common.h}!WPA\_PUT\_BE16@{WPA\_PUT\_BE16}}
\index{WPA\_PUT\_BE16@{WPA\_PUT\_BE16}!common.h@{common.h}}
\doxysubsubsection{WPA\_PUT\_BE16}
{\footnotesize\ttfamily \#define WPA\+\_\+\+PUT\+\_\+\+BE16(\begin{DoxyParamCaption}\item[{}]{a,  }\item[{}]{val }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordflow}{do} \{                                    \(\backslash\)}
\DoxyCodeLine{                (a)[0] = ((u16) (val)) >> 8; \(\backslash\)}
\DoxyCodeLine{                (a)[1] = ((u16) (val)) \& 0xff;       \(\backslash\)}
\DoxyCodeLine{        \} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}
\mbox{\label{kdf_2common_8h_ae12968fd934a1a5b2306345d1b441eed}} 
\index{common.h@{common.h}!WPA\_PUT\_BE24@{WPA\_PUT\_BE24}}
\index{WPA\_PUT\_BE24@{WPA\_PUT\_BE24}!common.h@{common.h}}
\doxysubsubsection{WPA\_PUT\_BE24}
{\footnotesize\ttfamily \#define WPA\+\_\+\+PUT\+\_\+\+BE24(\begin{DoxyParamCaption}\item[{}]{a,  }\item[{}]{val }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordflow}{do} \{                                                    \(\backslash\)}
\DoxyCodeLine{                (a)[0] = (u8) ((((u32) (val)) >> 16) \& 0xff);      \(\backslash\)}
\DoxyCodeLine{                (a)[1] = (u8) ((((u32) (val)) >> 8) \& 0xff);       \(\backslash\)}
\DoxyCodeLine{                (a)[2] = (u8) (((u32) (val)) \& 0xff);              \(\backslash\)}
\DoxyCodeLine{        \} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}
\mbox{\label{kdf_2common_8h_ae9d5a359df26e8d86750f8b6f99a4a1b}} 
\index{common.h@{common.h}!WPA\_PUT\_BE32@{WPA\_PUT\_BE32}}
\index{WPA\_PUT\_BE32@{WPA\_PUT\_BE32}!common.h@{common.h}}
\doxysubsubsection{WPA\_PUT\_BE32}
{\footnotesize\ttfamily \#define WPA\+\_\+\+PUT\+\_\+\+BE32(\begin{DoxyParamCaption}\item[{}]{a,  }\item[{}]{val }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordflow}{do} \{                                                    \(\backslash\)}
\DoxyCodeLine{                (a)[0] = (u8) ((((u32) (val)) >> 24) \& 0xff);      \(\backslash\)}
\DoxyCodeLine{                (a)[1] = (u8) ((((u32) (val)) >> 16) \& 0xff);      \(\backslash\)}
\DoxyCodeLine{                (a)[2] = (u8) ((((u32) (val)) >> 8) \& 0xff);       \(\backslash\)}
\DoxyCodeLine{                (a)[3] = (u8) (((u32) (val)) \& 0xff);              \(\backslash\)}
\DoxyCodeLine{        \} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}
\mbox{\label{kdf_2common_8h_aa2c80799a75bddae682013edc1c07739}} 
\index{common.h@{common.h}!WPA\_PUT\_BE64@{WPA\_PUT\_BE64}}
\index{WPA\_PUT\_BE64@{WPA\_PUT\_BE64}!common.h@{common.h}}
\doxysubsubsection{WPA\_PUT\_BE64}
{\footnotesize\ttfamily \#define WPA\+\_\+\+PUT\+\_\+\+BE64(\begin{DoxyParamCaption}\item[{}]{a,  }\item[{}]{val }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordflow}{do} \{                                            \(\backslash\)}
\DoxyCodeLine{                (a)[0] = (u8) (((u64) (val)) >> 56);       \(\backslash\)}
\DoxyCodeLine{                (a)[1] = (u8) (((u64) (val)) >> 48);       \(\backslash\)}
\DoxyCodeLine{                (a)[2] = (u8) (((u64) (val)) >> 40);       \(\backslash\)}
\DoxyCodeLine{                (a)[3] = (u8) (((u64) (val)) >> 32);       \(\backslash\)}
\DoxyCodeLine{                (a)[4] = (u8) (((u64) (val)) >> 24);       \(\backslash\)}
\DoxyCodeLine{                (a)[5] = (u8) (((u64) (val)) >> 16);       \(\backslash\)}
\DoxyCodeLine{                (a)[6] = (u8) (((u64) (val)) >> 8);        \(\backslash\)}
\DoxyCodeLine{                (a)[7] = (u8) (((u64) (val)) \& 0xff);      \(\backslash\)}
\DoxyCodeLine{        \} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}
\mbox{\label{kdf_2common_8h_a9061cd716f5e4948464d9394962cc069}} 
\index{common.h@{common.h}!WPA\_PUT\_LE16@{WPA\_PUT\_LE16}}
\index{WPA\_PUT\_LE16@{WPA\_PUT\_LE16}!common.h@{common.h}}
\doxysubsubsection{WPA\_PUT\_LE16}
{\footnotesize\ttfamily \#define WPA\+\_\+\+PUT\+\_\+\+LE16(\begin{DoxyParamCaption}\item[{}]{a,  }\item[{}]{val }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordflow}{do} \{                                    \(\backslash\)}
\DoxyCodeLine{                (a)[1] = ((u16) (val)) >> 8; \(\backslash\)}
\DoxyCodeLine{                (a)[0] = ((u16) (val)) \& 0xff;       \(\backslash\)}
\DoxyCodeLine{        \} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}
\mbox{\label{kdf_2common_8h_a6793dee03c036cde26fbe70005840215}} 
\index{common.h@{common.h}!WPA\_PUT\_LE32@{WPA\_PUT\_LE32}}
\index{WPA\_PUT\_LE32@{WPA\_PUT\_LE32}!common.h@{common.h}}
\doxysubsubsection{WPA\_PUT\_LE32}
{\footnotesize\ttfamily \#define WPA\+\_\+\+PUT\+\_\+\+LE32(\begin{DoxyParamCaption}\item[{}]{a,  }\item[{}]{val }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{        \textcolor{keywordflow}{do} \{                                                    \(\backslash\)}
\DoxyCodeLine{                (a)[3] = (u8) ((((u32) (val)) >> 24) \& 0xff);      \(\backslash\)}
\DoxyCodeLine{                (a)[2] = (u8) ((((u32) (val)) >> 16) \& 0xff);      \(\backslash\)}
\DoxyCodeLine{                (a)[1] = (u8) ((((u32) (val)) >> 8) \& 0xff);       \(\backslash\)}
\DoxyCodeLine{                (a)[0] = (u8) (((u32) (val)) \& 0xff);              \(\backslash\)}
\DoxyCodeLine{        \} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}


\doxysubsection{Typedef Documentation}
\mbox{\label{kdf_2common_8h_aa980e2c02ba2305e0f489d5650655425}} 
\index{common.h@{common.h}!s16@{s16}}
\index{s16@{s16}!common.h@{common.h}}
\doxysubsubsection{s16}
{\footnotesize\ttfamily typedef int16\+\_\+t \textbf{ s16}}

\mbox{\label{kdf_2common_8h_ae9b1af5c037e57a98884758875d3a7c4}} 
\index{common.h@{common.h}!s32@{s32}}
\index{s32@{s32}!common.h@{common.h}}
\doxysubsubsection{s32}
{\footnotesize\ttfamily typedef int32\+\_\+t \textbf{ s32}}

\mbox{\label{kdf_2common_8h_a350c6fc928e3bdc6c6486268ac8fb269}} 
\index{common.h@{common.h}!s64@{s64}}
\index{s64@{s64}!common.h@{common.h}}
\doxysubsubsection{s64}
{\footnotesize\ttfamily typedef int64\+\_\+t \textbf{ s64}}

\mbox{\label{kdf_2common_8h_a9e382f207c65ca13ab4ae98363aeda80}} 
\index{common.h@{common.h}!s8@{s8}}
\index{s8@{s8}!common.h@{common.h}}
\doxysubsubsection{s8}
{\footnotesize\ttfamily typedef int8\+\_\+t \textbf{ s8}}

\mbox{\label{kdf_2common_8h_ace9d960e74685e2cd84b36132dbbf8aa}} 
\index{common.h@{common.h}!u16@{u16}}
\index{u16@{u16}!common.h@{common.h}}
\doxysubsubsection{u16}
{\footnotesize\ttfamily typedef uint16\+\_\+t \textbf{ u16}}

\mbox{\label{kdf_2common_8h_afaa62991928fb9fb18ff0db62a040aba}} 
\index{common.h@{common.h}!u32@{u32}}
\index{u32@{u32}!common.h@{common.h}}
\doxysubsubsection{u32}
{\footnotesize\ttfamily typedef uint32\+\_\+t \textbf{ u32}}

\mbox{\label{kdf_2common_8h_a3f7e2bcbb0b4c338f3c4f6c937cd4234}} 
\index{common.h@{common.h}!u64@{u64}}
\index{u64@{u64}!common.h@{common.h}}
\doxysubsubsection{u64}
{\footnotesize\ttfamily typedef uint64\+\_\+t \textbf{ u64}}

\mbox{\label{kdf_2common_8h_a92c50087ca0e64fa93fc59402c55f8ca}} 
\index{common.h@{common.h}!u8@{u8}}
\index{u8@{u8}!common.h@{common.h}}
\doxysubsubsection{u8}
{\footnotesize\ttfamily typedef uint8\+\_\+t \textbf{ u8}}

