\hypertarget{g__eli__hmac_8c}{}\doxysection{geom/eli/g\+\_\+eli\+\_\+hmac.c File Reference}
\label{g__eli__hmac_8c}\index{geom/eli/g\_eli\_hmac.c@{geom/eli/g\_eli\_hmac.c}}
{\ttfamily \#include $<$sys/cdefs.\+h$>$}\newline
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$geom/eli/g\+\_\+eli.\+h$>$}\newline
Include dependency graph for g\+\_\+eli\+\_\+hmac.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d8/d02/g__eli__hmac_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{g__eli__hmac_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\+\_\+\+\_\+\+FBSDID}} (\char`\"{}\$Free\+BSD\$\char`\"{})
\item 
void \mbox{\hyperlink{g__eli__hmac_8c_a043228f1ea776ea3cb70412a7c5cee76}{g\+\_\+eli\+\_\+crypto\+\_\+hmac\+\_\+init}} (struct \mbox{\hyperlink{structhmac__ctx}{hmac\+\_\+ctx}} $\ast$ctx, const char $\ast$hkey, size\+\_\+t hkeylen)
\item 
void \mbox{\hyperlink{g__eli__hmac_8c_a30bc80ea7c5963579dd5083e15a78176}{g\+\_\+eli\+\_\+crypto\+\_\+hmac\+\_\+update}} (struct \mbox{\hyperlink{structhmac__ctx}{hmac\+\_\+ctx}} $\ast$ctx, const \mbox{\hyperlink{binstream_8h_ab077fa1127453be2bd9d4c3c8a768fa7}{uint8\+\_\+t}} $\ast$\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, size\+\_\+t datasize)
\item 
void \mbox{\hyperlink{g__eli__hmac_8c_abc72d045d3fee2a84c89f1168191207a}{g\+\_\+eli\+\_\+crypto\+\_\+hmac\+\_\+final}} (struct \mbox{\hyperlink{structhmac__ctx}{hmac\+\_\+ctx}} $\ast$ctx, \mbox{\hyperlink{binstream_8h_ab077fa1127453be2bd9d4c3c8a768fa7}{uint8\+\_\+t}} $\ast$md, size\+\_\+t mdsize)
\item 
void \mbox{\hyperlink{g__eli__hmac_8c_a7568712ca711b91d055948e2bed38865}{g\+\_\+eli\+\_\+crypto\+\_\+hmac}} (const char $\ast$hkey, size\+\_\+t hkeysize, const \mbox{\hyperlink{binstream_8h_ab077fa1127453be2bd9d4c3c8a768fa7}{uint8\+\_\+t}} $\ast$\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, size\+\_\+t datasize, \mbox{\hyperlink{binstream_8h_ab077fa1127453be2bd9d4c3c8a768fa7}{uint8\+\_\+t}} $\ast$md, size\+\_\+t mdsize)
\item 
void \mbox{\hyperlink{g__eli__hmac_8c_ab07921ca3b88d093ec9b2b33a0d8d226}{g\+\_\+eli\+\_\+crypto\+\_\+ivgen}} (struct \mbox{\hyperlink{structg__eli__softc}{g\+\_\+eli\+\_\+softc}} $\ast$sc, off\+\_\+t \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}}, u\+\_\+char $\ast$iv, size\+\_\+t size)
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{g__eli__hmac_8c_a8c3ef283470a68cd30afe9b8a72cb60f}\label{g__eli__hmac_8c_a8c3ef283470a68cd30afe9b8a72cb60f}} 
\index{g\_eli\_hmac.c@{g\_eli\_hmac.c}!\_\_FBSDID@{\_\_FBSDID}}
\index{\_\_FBSDID@{\_\_FBSDID}!g\_eli\_hmac.c@{g\_eli\_hmac.c}}
\doxysubsubsection{\texorpdfstring{\_\_FBSDID()}{\_\_FBSDID()}}
{\footnotesize\ttfamily \+\_\+\+\_\+\+FBSDID (\begin{DoxyParamCaption}\item[{\char`\"{}\$Free\+BSD\$\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{g__eli__hmac_8c_a7568712ca711b91d055948e2bed38865}\label{g__eli__hmac_8c_a7568712ca711b91d055948e2bed38865}} 
\index{g\_eli\_hmac.c@{g\_eli\_hmac.c}!g\_eli\_crypto\_hmac@{g\_eli\_crypto\_hmac}}
\index{g\_eli\_crypto\_hmac@{g\_eli\_crypto\_hmac}!g\_eli\_hmac.c@{g\_eli\_hmac.c}}
\doxysubsubsection{\texorpdfstring{g\_eli\_crypto\_hmac()}{g\_eli\_crypto\_hmac()}}
{\footnotesize\ttfamily void g\+\_\+eli\+\_\+crypto\+\_\+hmac (\begin{DoxyParamCaption}\item[{const char $\ast$}]{hkey,  }\item[{size\+\_\+t}]{hkeysize,  }\item[{const \mbox{\hyperlink{binstream_8h_ab077fa1127453be2bd9d4c3c8a768fa7}{uint8\+\_\+t}} $\ast$}]{data,  }\item[{size\+\_\+t}]{datasize,  }\item[{\mbox{\hyperlink{binstream_8h_ab077fa1127453be2bd9d4c3c8a768fa7}{uint8\+\_\+t}} $\ast$}]{md,  }\item[{size\+\_\+t}]{mdsize }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{g__eli__hmac_8c_source_l00113}{113}} of file \mbox{\hyperlink{g__eli__hmac_8c_source}{g\+\_\+eli\+\_\+hmac.\+c}}.



References \mbox{\hyperlink{g__part__if_8m_source_l00180}{data}}, \mbox{\hyperlink{g__eli__hmac_8c_source_l00093}{g\+\_\+eli\+\_\+crypto\+\_\+hmac\+\_\+final()}}, \mbox{\hyperlink{g__eli__hmac_8c_source_l00049}{g\+\_\+eli\+\_\+crypto\+\_\+hmac\+\_\+init()}}, and \mbox{\hyperlink{g__eli__hmac_8c_source_l00085}{g\+\_\+eli\+\_\+crypto\+\_\+hmac\+\_\+update()}}.



Referenced by \mbox{\hyperlink{g__eli__key__cache_8c_source_l00077}{g\+\_\+eli\+\_\+key\+\_\+fill()}}, \mbox{\hyperlink{g__eli__key__cache_8c_source_l00181}{g\+\_\+eli\+\_\+key\+\_\+init()}}, \mbox{\hyperlink{g__eli__key_8c_source_l00110}{g\+\_\+eli\+\_\+mkey\+\_\+decrypt()}}, \mbox{\hyperlink{g__eli__key_8c_source_l00184}{g\+\_\+eli\+\_\+mkey\+\_\+encrypt()}}, \mbox{\hyperlink{g__eli__key_8c_source_l00087}{g\+\_\+eli\+\_\+mkey\+\_\+hmac()}}, \mbox{\hyperlink{g__eli__key_8c_source_l00217}{g\+\_\+eli\+\_\+mkey\+\_\+propagate()}}, and \mbox{\hyperlink{g__eli__key_8c_source_l00057}{g\+\_\+eli\+\_\+mkey\+\_\+verify()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{df/de4/g__eli__hmac_8c_a7568712ca711b91d055948e2bed38865_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{df/de4/g__eli__hmac_8c_a7568712ca711b91d055948e2bed38865_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__eli__hmac_8c_abc72d045d3fee2a84c89f1168191207a}\label{g__eli__hmac_8c_abc72d045d3fee2a84c89f1168191207a}} 
\index{g\_eli\_hmac.c@{g\_eli\_hmac.c}!g\_eli\_crypto\_hmac\_final@{g\_eli\_crypto\_hmac\_final}}
\index{g\_eli\_crypto\_hmac\_final@{g\_eli\_crypto\_hmac\_final}!g\_eli\_hmac.c@{g\_eli\_hmac.c}}
\doxysubsubsection{\texorpdfstring{g\_eli\_crypto\_hmac\_final()}{g\_eli\_crypto\_hmac\_final()}}
{\footnotesize\ttfamily void g\+\_\+eli\+\_\+crypto\+\_\+hmac\+\_\+final (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structhmac__ctx}{hmac\+\_\+ctx}} $\ast$}]{ctx,  }\item[{\mbox{\hyperlink{binstream_8h_ab077fa1127453be2bd9d4c3c8a768fa7}{uint8\+\_\+t}} $\ast$}]{md,  }\item[{size\+\_\+t}]{mdsize }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{g__eli__hmac_8c_source_l00093}{93}} of file \mbox{\hyperlink{g__eli__hmac_8c_source}{g\+\_\+eli\+\_\+hmac.\+c}}.



References \mbox{\hyperlink{g__eli_8h_source_l00732}{hmac\+\_\+ctx\+::innerctx}}, \mbox{\hyperlink{g__eli_8h_source_l00733}{hmac\+\_\+ctx\+::outerctx}}, and \mbox{\hyperlink{g__eli_8h_source_l00136}{SHA512\+\_\+\+MDLEN}}.



Referenced by \mbox{\hyperlink{g__eli__hmac_8c_source_l00113}{g\+\_\+eli\+\_\+crypto\+\_\+hmac()}}, \mbox{\hyperlink{g__eli_8c_source_l01317}{g\+\_\+eli\+\_\+taste()}}, and \mbox{\hyperlink{pkcs5v2_8c_source_l00054}{pkcs5v2\+\_\+genkey()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{df/de4/g__eli__hmac_8c_abc72d045d3fee2a84c89f1168191207a_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__eli__hmac_8c_a043228f1ea776ea3cb70412a7c5cee76}\label{g__eli__hmac_8c_a043228f1ea776ea3cb70412a7c5cee76}} 
\index{g\_eli\_hmac.c@{g\_eli\_hmac.c}!g\_eli\_crypto\_hmac\_init@{g\_eli\_crypto\_hmac\_init}}
\index{g\_eli\_crypto\_hmac\_init@{g\_eli\_crypto\_hmac\_init}!g\_eli\_hmac.c@{g\_eli\_hmac.c}}
\doxysubsubsection{\texorpdfstring{g\_eli\_crypto\_hmac\_init()}{g\_eli\_crypto\_hmac\_init()}}
{\footnotesize\ttfamily void g\+\_\+eli\+\_\+crypto\+\_\+hmac\+\_\+init (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structhmac__ctx}{hmac\+\_\+ctx}} $\ast$}]{ctx,  }\item[{const char $\ast$}]{hkey,  }\item[{size\+\_\+t}]{hkeylen }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{g__eli__hmac_8c_source_l00049}{49}} of file \mbox{\hyperlink{g__eli__hmac_8c_source}{g\+\_\+eli\+\_\+hmac.\+c}}.



References \mbox{\hyperlink{g__eli_8h_source_l00732}{hmac\+\_\+ctx\+::innerctx}}, and \mbox{\hyperlink{g__eli_8h_source_l00733}{hmac\+\_\+ctx\+::outerctx}}.



Referenced by \mbox{\hyperlink{g__eli__hmac_8c_source_l00113}{g\+\_\+eli\+\_\+crypto\+\_\+hmac()}}, \mbox{\hyperlink{g__eli_8c_source_l01317}{g\+\_\+eli\+\_\+taste()}}, and \mbox{\hyperlink{pkcs5v2_8c_source_l00054}{pkcs5v2\+\_\+genkey()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{df/de4/g__eli__hmac_8c_a043228f1ea776ea3cb70412a7c5cee76_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__eli__hmac_8c_a30bc80ea7c5963579dd5083e15a78176}\label{g__eli__hmac_8c_a30bc80ea7c5963579dd5083e15a78176}} 
\index{g\_eli\_hmac.c@{g\_eli\_hmac.c}!g\_eli\_crypto\_hmac\_update@{g\_eli\_crypto\_hmac\_update}}
\index{g\_eli\_crypto\_hmac\_update@{g\_eli\_crypto\_hmac\_update}!g\_eli\_hmac.c@{g\_eli\_hmac.c}}
\doxysubsubsection{\texorpdfstring{g\_eli\_crypto\_hmac\_update()}{g\_eli\_crypto\_hmac\_update()}}
{\footnotesize\ttfamily void g\+\_\+eli\+\_\+crypto\+\_\+hmac\+\_\+update (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structhmac__ctx}{hmac\+\_\+ctx}} $\ast$}]{ctx,  }\item[{const \mbox{\hyperlink{binstream_8h_ab077fa1127453be2bd9d4c3c8a768fa7}{uint8\+\_\+t}} $\ast$}]{data,  }\item[{size\+\_\+t}]{datasize }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{g__eli__hmac_8c_source_l00085}{85}} of file \mbox{\hyperlink{g__eli__hmac_8c_source}{g\+\_\+eli\+\_\+hmac.\+c}}.



References \mbox{\hyperlink{g__part__if_8m_source_l00180}{data}}, and \mbox{\hyperlink{g__eli_8h_source_l00732}{hmac\+\_\+ctx\+::innerctx}}.



Referenced by \mbox{\hyperlink{g__eli__hmac_8c_source_l00113}{g\+\_\+eli\+\_\+crypto\+\_\+hmac()}}, \mbox{\hyperlink{g__eli_8c_source_l01249}{g\+\_\+eli\+\_\+keyfiles\+\_\+load()}}, \mbox{\hyperlink{g__eli_8c_source_l01317}{g\+\_\+eli\+\_\+taste()}}, and \mbox{\hyperlink{pkcs5v2_8c_source_l00054}{pkcs5v2\+\_\+genkey()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{df/de4/g__eli__hmac_8c_a30bc80ea7c5963579dd5083e15a78176_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{g__eli__hmac_8c_ab07921ca3b88d093ec9b2b33a0d8d226}\label{g__eli__hmac_8c_ab07921ca3b88d093ec9b2b33a0d8d226}} 
\index{g\_eli\_hmac.c@{g\_eli\_hmac.c}!g\_eli\_crypto\_ivgen@{g\_eli\_crypto\_ivgen}}
\index{g\_eli\_crypto\_ivgen@{g\_eli\_crypto\_ivgen}!g\_eli\_hmac.c@{g\_eli\_hmac.c}}
\doxysubsubsection{\texorpdfstring{g\_eli\_crypto\_ivgen()}{g\_eli\_crypto\_ivgen()}}
{\footnotesize\ttfamily void g\+\_\+eli\+\_\+crypto\+\_\+ivgen (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structg__eli__softc}{g\+\_\+eli\+\_\+softc}} $\ast$}]{sc,  }\item[{off\+\_\+t}]{offset,  }\item[{u\+\_\+char $\ast$}]{iv,  }\item[{size\+\_\+t}]{size }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{g__eli__hmac_8c_source_l00127}{127}} of file \mbox{\hyperlink{g__eli__hmac_8c_source}{g\+\_\+eli\+\_\+hmac.\+c}}.



References \mbox{\hyperlink{g__eli_8h_source_l00116}{G\+\_\+\+ELI\+\_\+\+FLAG\+\_\+\+NATIVE\+\_\+\+BYTE\+\_\+\+ORDER}}, \mbox{\hyperlink{g__raid__tr__if_8m_source_l00099}{offset}}, \mbox{\hyperlink{g__eli_8h_source_l00197}{g\+\_\+eli\+\_\+softc\+::sc\+\_\+ealgo}}, \mbox{\hyperlink{g__eli_8h_source_l00207}{g\+\_\+eli\+\_\+softc\+::sc\+\_\+flags}}, \mbox{\hyperlink{g__eli_8h_source_l00205}{g\+\_\+eli\+\_\+softc\+::sc\+\_\+ivctx}}, and \mbox{\hyperlink{binstream_8h_source_l00037}{uint8\+\_\+t}}.



Referenced by \mbox{\hyperlink{g__eli__integrity_8c_source_l00451}{g\+\_\+eli\+\_\+auth\+\_\+run()}}, and \mbox{\hyperlink{g__eli__privacy_8c_source_l00257}{g\+\_\+eli\+\_\+crypto\+\_\+run()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{df/de4/g__eli__hmac_8c_ab07921ca3b88d093ec9b2b33a0d8d226_icgraph}
\end{center}
\end{figure}
