\hypertarget{classMD5AuthHandler}{
\section{MD5AuthHandler Class Reference}
\label{classMD5AuthHandler}\index{MD5AuthHandler@{MD5AuthHandler}}
}


OSPFv2 Authentication handler for MD5 scheme.  




{\ttfamily \#include $<$auth.hh$>$}

Inheritance diagram for MD5AuthHandler:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classMD5AuthHandler}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classMD5AuthHandler_1_1MD5Key}{MD5Key}
\begin{DoxyCompactList}\small\item\em Class to hold MD5 key information. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classMD5AuthHandler_a6b16fb68c6cb54d11835fc91bd1d5b85}{
typedef list$<$ \hyperlink{classMD5AuthHandler_1_1MD5Key}{MD5Key} $>$ {\bfseries KeyChain}}
\label{classMD5AuthHandler_a6b16fb68c6cb54d11835fc91bd1d5b85}

\item 
\hypertarget{classMD5AuthHandler_a6b16fb68c6cb54d11835fc91bd1d5b85}{
typedef list$<$ \hyperlink{classMD5AuthHandler_1_1MD5Key}{MD5Key} $>$ {\bfseries KeyChain}}
\label{classMD5AuthHandler_a6b16fb68c6cb54d11835fc91bd1d5b85}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classMD5AuthHandler_a7974c67f783f40053f31fbd77ef2bf52}{MD5AuthHandler} (\hyperlink{classEventLoop}{EventLoop} \&eventloop)
\begin{DoxyCompactList}\small\item\em Constructor. \item\end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{classMD5AuthHandler_a751cd777bce4cea284f9288e9a740005}{effective\_\-name} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} effective name of \hyperlink{protocolthe-p}{the} authentication scheme. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_a75c7605fe9c9ea77f4124319375e3906}{
void \hyperlink{classMD5AuthHandler_a75c7605fe9c9ea77f4124319375e3906}{reset} ()}
\label{classMD5AuthHandler_a75c7605fe9c9ea77f4124319375e3906}

\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} authentication state. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classMD5AuthHandler_a656f27cadafbccb51b2dd3321ea88c84}{additional\_\-payload} () const 
\begin{DoxyCompactList}\small\item\em Additional bytes that will be added to \hyperlink{protocolthe-p}{the} payload. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_a54106bbd34108d1b3d69761b0a0b7c9d}{authenticate\_\-inbound} (const vector$<$ uint8\_\-t $>$ \&packet, const \hyperlink{classIPv4}{IPv4} \&src\_\-addr, bool new\_\-peer)
\begin{DoxyCompactList}\small\item\em Inbound authentication method. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_aacb15778b6eb0bfb20dcef4643dc7a6e}{authenticate\_\-outbound} (vector$<$ uint8\_\-t $>$ \&packet)
\begin{DoxyCompactList}\small\item\em Outbound authentication method. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_a9c1dd628d2d2edfefa3730620587a8fc}{add\_\-key} (uint8\_\-t key\_\-id, const string \&key, const \hyperlink{classTimeVal}{TimeVal} \&start\_\-timeval, const \hyperlink{classTimeVal}{TimeVal} \&end\_\-timeval, const \hyperlink{classTimeVal}{TimeVal} \&max\_\-time\_\-drift, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Add a key to \hyperlink{protocolthe-p}{the} MD5 key chain. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_a0887e9633d88923504263d0d7dfdce65}{remove\_\-key} (uint8\_\-t key\_\-id, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Remove a key from \hyperlink{protocolthe-p}{the} MD5 key chain. \item\end{DoxyCompactList}\item 
void \hyperlink{classMD5AuthHandler_a550f4f719518e6b7cf58f228d2853ae3}{key\_\-start\_\-cb} (uint8\_\-t key\_\-id)
\begin{DoxyCompactList}\small\item\em A callback that a key from \hyperlink{protocolthe-p}{the} MD5 key chain has become valid. \item\end{DoxyCompactList}\item 
void \hyperlink{classMD5AuthHandler_a74109e5923a1084903fba65c220779b0}{key\_\-stop\_\-cb} (uint8\_\-t key\_\-id)
\begin{DoxyCompactList}\small\item\em A callback that a key from \hyperlink{protocolthe-p}{the} MD5 key chain has expired and is invalid. \item\end{DoxyCompactList}\item 
\hyperlink{classMD5AuthHandler_1_1MD5Key}{MD5Key} $\ast$ \hyperlink{classMD5AuthHandler_a0dc13128bbb8e4c0172fd109fe54bd0d}{best\_\-outbound\_\-key} (const \hyperlink{classTimeVal}{TimeVal} \&now)
\begin{DoxyCompactList}\small\item\em Select \hyperlink{protocolthe-p}{the} best key for outbound messages. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_a7a294121fcfb6b657fc5e7d1d1b5cc88}{
void \hyperlink{classMD5AuthHandler_a7a294121fcfb6b657fc5e7d1d1b5cc88}{reset\_\-keys} ()}
\label{classMD5AuthHandler_a7a294121fcfb6b657fc5e7d1d1b5cc88}

\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} keys for all sources. \item\end{DoxyCompactList}\item 
const KeyChain \& \hyperlink{classMD5AuthHandler_afc97e2a51ba8ab01186bcd64ed85e8e1}{valid\_\-key\_\-chain} () const 
\begin{DoxyCompactList}\small\item\em Get all valid keys managed by \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler}. \item\end{DoxyCompactList}\item 
const KeyChain \& \hyperlink{classMD5AuthHandler_a5e19f6cb88200fb9e7d3affa88cbd04d}{invalid\_\-key\_\-chain} () const 
\begin{DoxyCompactList}\small\item\em Get all invalid keys managed by \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler}. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_a4aceb34aad367df1aa5125dc4dd9acd6}{empty} () const 
\begin{DoxyCompactList}\small\item\em Test where \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler} contains any keys. \item\end{DoxyCompactList}\item 
\hyperlink{classMD5AuthHandler_a7974c67f783f40053f31fbd77ef2bf52}{MD5AuthHandler} (\hyperlink{classEventLoop}{EventLoop} \&eventloop)
\begin{DoxyCompactList}\small\item\em Constructor. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_afbec76608a30b32044ee9e63b1e7e0c3}{
const char $\ast$ \hyperlink{classMD5AuthHandler_afbec76608a30b32044ee9e63b1e7e0c3}{effective\_\-name} () const }
\label{classMD5AuthHandler_afbec76608a30b32044ee9e63b1e7e0c3}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} effective name of \hyperlink{protocolthe-p}{the} authentication scheme. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_a75c7605fe9c9ea77f4124319375e3906}{
void \hyperlink{classMD5AuthHandler_a75c7605fe9c9ea77f4124319375e3906}{reset} ()}
\label{classMD5AuthHandler_a75c7605fe9c9ea77f4124319375e3906}

\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} authentication state. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classMD5AuthHandler_ab73bb17463142357dd24673fda20e17f}{head\_\-entries} () const 
\begin{DoxyCompactList}\small\item\em Get number of routing entries used by authentication scheme at \hyperlink{protocolthe-p}{the} head of \hyperlink{protocolthe-p}{the} RIP packet. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_aaefb26f7d097997869f1c30c448537fe}{
uint32\_\-t \hyperlink{classMD5AuthHandler_aaefb26f7d097997869f1c30c448537fe}{max\_\-routing\_\-entries} () const }
\label{classMD5AuthHandler_aaefb26f7d097997869f1c30c448537fe}

\begin{DoxyCompactList}\small\item\em Get maximum number of non-\/authentication scheme use routing entries in a RIP packet. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_a7d17fb9c85789cb6d8777d4d6f707e23}{authenticate\_\-inbound} (const uint8\_\-t $\ast$packet, size\_\-t packet\_\-bytes, const uint8\_\-t $\ast$\&entries\_\-ptr, uint32\_\-t \&n\_\-entries, const \hyperlink{classIPv4}{IPv4} \&src\_\-addr, bool new\_\-peer)
\begin{DoxyCompactList}\small\item\em Inbound authentication method. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_a4ca6f4bcc4999b652f94cb9c19d94a97}{authenticate\_\-outbound} (\hyperlink{classRipPacket}{RipPacket}$<$ \hyperlink{classIPv4}{IPv4} $>$ \&packet, list$<$ \hyperlink{classRipPacket}{RipPacket}$<$ \hyperlink{classIPv4}{IPv4} $>$ $\ast$ $>$ \&auth\_\-packets, size\_\-t \&n\_\-routes)
\begin{DoxyCompactList}\small\item\em Outbound authentication method. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_aee4ec5c0f6e2a346bc50996b00822fed}{add\_\-key} (uint8\_\-t key\_\-id, const string \&key, const \hyperlink{classTimeVal}{TimeVal} \&start\_\-timeval, const \hyperlink{classTimeVal}{TimeVal} \&end\_\-timeval, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Add a key to \hyperlink{protocolthe-p}{the} MD5 key chain. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_a0887e9633d88923504263d0d7dfdce65}{remove\_\-key} (uint8\_\-t key\_\-id, string \&error\_\-msg)
\begin{DoxyCompactList}\small\item\em Remove a key from \hyperlink{protocolthe-p}{the} MD5 key chain. \item\end{DoxyCompactList}\item 
void \hyperlink{classMD5AuthHandler_a550f4f719518e6b7cf58f228d2853ae3}{key\_\-start\_\-cb} (uint8\_\-t key\_\-id)
\begin{DoxyCompactList}\small\item\em A callback that a key from \hyperlink{protocolthe-p}{the} MD5 key chain has become valid. \item\end{DoxyCompactList}\item 
void \hyperlink{classMD5AuthHandler_a74109e5923a1084903fba65c220779b0}{key\_\-stop\_\-cb} (uint8\_\-t key\_\-id)
\begin{DoxyCompactList}\small\item\em A callback that a key from \hyperlink{protocolthe-p}{the} MD5 key chain has expired and is invalid. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_a7a294121fcfb6b657fc5e7d1d1b5cc88}{
void \hyperlink{classMD5AuthHandler_a7a294121fcfb6b657fc5e7d1d1b5cc88}{reset\_\-keys} ()}
\label{classMD5AuthHandler_a7a294121fcfb6b657fc5e7d1d1b5cc88}

\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} keys for all sources. \item\end{DoxyCompactList}\item 
const KeyChain \& \hyperlink{classMD5AuthHandler_afc97e2a51ba8ab01186bcd64ed85e8e1}{valid\_\-key\_\-chain} () const 
\begin{DoxyCompactList}\small\item\em Get all valid keys managed by \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler}. \item\end{DoxyCompactList}\item 
const KeyChain \& \hyperlink{classMD5AuthHandler_a5e19f6cb88200fb9e7d3affa88cbd04d}{invalid\_\-key\_\-chain} () const 
\begin{DoxyCompactList}\small\item\em Get all invalid keys managed by \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler}. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_a4aceb34aad367df1aa5125dc4dd9acd6}{empty} () const 
\begin{DoxyCompactList}\small\item\em Test where \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler} contains any keys. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static const char $\ast$ \hyperlink{classMD5AuthHandler_ac5a665d7353700a10c8b5df1d023b040}{auth\_\-type\_\-name} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} method-\/specific name of \hyperlink{protocolthe-p}{the} authentication scheme. \item\end{DoxyCompactList}\item 
static const char $\ast$ \hyperlink{classMD5AuthHandler_ad519921605e287d6da80da6114994fe7}{auth\_\-type\_\-name} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} method-\/specific name of \hyperlink{protocolthe-p}{the} authentication scheme. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static const \hyperlink{structOspfTypes_aa9ff5527ceed0789d66d95912c1bdf52}{OspfTypes::AuType} {\bfseries AUTH\_\-TYPE}
\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classMD5AuthHandler_a2fddd6654fa064f9b295c44d602de2ed}{
\hyperlink{classEventLoop}{EventLoop} \& {\bfseries \_\-eventloop}}
\label{classMD5AuthHandler_a2fddd6654fa064f9b295c44d602de2ed}

\item 
\hypertarget{classMD5AuthHandler_aa782945b072615e30352fb65d6512a02}{
KeyChain {\bfseries \_\-valid\_\-key\_\-chain}}
\label{classMD5AuthHandler_aa782945b072615e30352fb65d6512a02}

\item 
\hypertarget{classMD5AuthHandler_a339c0644a2650af334c79a2816889559}{
KeyChain {\bfseries \_\-invalid\_\-key\_\-chain}}
\label{classMD5AuthHandler_a339c0644a2650af334c79a2816889559}

\item 
\hypertarget{classMD5AuthHandler_af789df26d7b456a7010be945a7c9fe08}{
\hyperlink{classNullAuthHandler}{NullAuthHandler} {\bfseries \_\-null\_\-handler}}
\label{classMD5AuthHandler_af789df26d7b456a7010be945a7c9fe08}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
OSPFv2 Authentication handler for MD5 scheme. RIPv2 Authentication handler for MD5 scheme.

Class to check inbound MD5 authenticated packets and add authentication data to outbound OSPF packets. The OSPFv2 MD5 authentication scheme is described in Section D.3 of RFC 2328.

Class to check inbound MD5 authenticated packets and add authentication data to outbound RIP packets. The RIP MD5 authentication scheme is described in RFC 2082. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classMD5AuthHandler_a7974c67f783f40053f31fbd77ef2bf52}{
\index{MD5AuthHandler@{MD5AuthHandler}!MD5AuthHandler@{MD5AuthHandler}}
\index{MD5AuthHandler@{MD5AuthHandler}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{MD5AuthHandler}]{\setlength{\rightskip}{0pt plus 5cm}MD5AuthHandler::MD5AuthHandler (
\begin{DoxyParamCaption}
\item[{{\bf EventLoop} \&}]{eventloop}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_a7974c67f783f40053f31fbd77ef2bf52}


Constructor. 


\begin{DoxyParams}{Parameters}
{\em eventloop} & \hyperlink{protocolthe-p}{the} \hyperlink{classEventLoop}{EventLoop} instance to used for time reference. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_a7974c67f783f40053f31fbd77ef2bf52}{
\index{MD5AuthHandler@{MD5AuthHandler}!MD5AuthHandler@{MD5AuthHandler}}
\index{MD5AuthHandler@{MD5AuthHandler}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{MD5AuthHandler}]{\setlength{\rightskip}{0pt plus 5cm}MD5AuthHandler::MD5AuthHandler (
\begin{DoxyParamCaption}
\item[{{\bf EventLoop} \&}]{eventloop}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_a7974c67f783f40053f31fbd77ef2bf52}


Constructor. 


\begin{DoxyParams}{Parameters}
{\em eventloop} & \hyperlink{protocolthe-p}{the} \hyperlink{classEventLoop}{EventLoop} instance to used for time reference. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classMD5AuthHandler_a9c1dd628d2d2edfefa3730620587a8fc}{
\index{MD5AuthHandler@{MD5AuthHandler}!add\_\-key@{add\_\-key}}
\index{add\_\-key@{add\_\-key}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{add\_\-key}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::add\_\-key (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{key\_\-id, }
\item[{const string \&}]{key, }
\item[{const {\bf TimeVal} \&}]{start\_\-timeval, }
\item[{const {\bf TimeVal} \&}]{end\_\-timeval, }
\item[{const {\bf TimeVal} \&}]{max\_\-time\_\-drift, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_a9c1dd628d2d2edfefa3730620587a8fc}


Add a key to \hyperlink{protocolthe-p}{the} MD5 key chain. 

If \hyperlink{protocolthe-p}{the} key already exists, it is updated with \hyperlink{protocolthe-p}{the} new settings.


\begin{DoxyParams}{Parameters}
{\em key\_\-id} & unique ID associated with key. \\
\hline
{\em key} & phrase used for MD5 digest computation. \\
\hline
{\em start\_\-timeval} & start time when key becomes valid. \\
\hline
{\em end\_\-timeval} & end time when key becomes invalid. \\
\hline
{\em max\_\-time\_\-drift} & \hyperlink{protocolthe-p}{the} maximum time drift among all routers. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success, false if end time is less than start time or key has already expired. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_aee4ec5c0f6e2a346bc50996b00822fed}{
\index{MD5AuthHandler@{MD5AuthHandler}!add\_\-key@{add\_\-key}}
\index{add\_\-key@{add\_\-key}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{add\_\-key}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::add\_\-key (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{key\_\-id, }
\item[{const string \&}]{key, }
\item[{const {\bf TimeVal} \&}]{start\_\-timeval, }
\item[{const {\bf TimeVal} \&}]{end\_\-timeval, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_aee4ec5c0f6e2a346bc50996b00822fed}


Add a key to \hyperlink{protocolthe-p}{the} MD5 key chain. 

If \hyperlink{protocolthe-p}{the} key already exists, it is updated with \hyperlink{protocolthe-p}{the} new settings.


\begin{DoxyParams}{Parameters}
{\em key\_\-id} & unique ID associated with key. \\
\hline
{\em key} & phrase used for MD5 digest computation. \\
\hline
{\em start\_\-timeval} & start time when key becomes valid. \\
\hline
{\em end\_\-timeval} & end time when key becomes invalid. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true on success, false if end time is less than start time or key has already expired. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_a656f27cadafbccb51b2dd3321ea88c84}{
\index{MD5AuthHandler@{MD5AuthHandler}!additional\_\-payload@{additional\_\-payload}}
\index{additional\_\-payload@{additional\_\-payload}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{additional\_\-payload}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t MD5AuthHandler::additional\_\-payload (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classMD5AuthHandler_a656f27cadafbccb51b2dd3321ea88c84}


Additional bytes that will be added to \hyperlink{protocolthe-p}{the} payload. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of additional bytes that need to be added to \hyperlink{protocolthe-p}{the} payload. 
\end{DoxyReturn}


Implements \hyperlink{classAuthHandlerBase_a89d17f816687f2b7edb940726ed5d7dc}{AuthHandlerBase}.

\hypertarget{classMD5AuthHandler_ad519921605e287d6da80da6114994fe7}{
\index{MD5AuthHandler@{MD5AuthHandler}!auth\_\-type\_\-name@{auth\_\-type\_\-name}}
\index{auth\_\-type\_\-name@{auth\_\-type\_\-name}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{auth\_\-type\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}static const char$\ast$ MD5AuthHandler::auth\_\-type\_\-name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classMD5AuthHandler_ad519921605e287d6da80da6114994fe7}


Get \hyperlink{protocolthe-p}{the} method-\/specific name of \hyperlink{protocolthe-p}{the} authentication scheme. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} method-\/specific name of \hyperlink{protocolthe-p}{the} authentication scheme. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_ac5a665d7353700a10c8b5df1d023b040}{
\index{MD5AuthHandler@{MD5AuthHandler}!auth\_\-type\_\-name@{auth\_\-type\_\-name}}
\index{auth\_\-type\_\-name@{auth\_\-type\_\-name}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{auth\_\-type\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}const char $\ast$ MD5AuthHandler::auth\_\-type\_\-name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classMD5AuthHandler_ac5a665d7353700a10c8b5df1d023b040}


Get \hyperlink{protocolthe-p}{the} method-\/specific name of \hyperlink{protocolthe-p}{the} authentication scheme. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} method-\/specific name of \hyperlink{protocolthe-p}{the} authentication scheme. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_a7d17fb9c85789cb6d8777d4d6f707e23}{
\index{MD5AuthHandler@{MD5AuthHandler}!authenticate\_\-inbound@{authenticate\_\-inbound}}
\index{authenticate\_\-inbound@{authenticate\_\-inbound}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{authenticate\_\-inbound}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::authenticate\_\-inbound (
\begin{DoxyParamCaption}
\item[{const uint8\_\-t $\ast$}]{packet, }
\item[{size\_\-t}]{packet\_\-bytes, }
\item[{const uint8\_\-t $\ast$\&}]{entries\_\-ptr, }
\item[{uint32\_\-t \&}]{n\_\-entries, }
\item[{const {\bf IPv4} \&}]{src\_\-addr, }
\item[{bool}]{new\_\-peer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classMD5AuthHandler_a7d17fb9c85789cb6d8777d4d6f707e23}


Inbound authentication method. 


\begin{DoxyParams}{Parameters}
{\em packet} & pointer to first byte of RIP packet. \\
\hline
{\em packet\_\-bytes} & number of bytes in RIP packet. \\
\hline
{\em entries\_\-ptr} & output variable set to point to first entry in packet. Set to NULL if there are no entries, or on authentication failure. \\
\hline
{\em n\_\-entries} & number of entries in \hyperlink{protocolthe-p}{the} packet. \\
\hline
{\em src\_\-addr} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} packet. \\
\hline
{\em new\_\-peer} & true if this is a new peer.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if packet passes authentication checks, false otherwise. 
\end{DoxyReturn}


Implements \hyperlink{classAuthHandlerBase_a5ad3b25ba886a3b239a6cf6a37b01f48}{AuthHandlerBase}.

\hypertarget{classMD5AuthHandler_a54106bbd34108d1b3d69761b0a0b7c9d}{
\index{MD5AuthHandler@{MD5AuthHandler}!authenticate\_\-inbound@{authenticate\_\-inbound}}
\index{authenticate\_\-inbound@{authenticate\_\-inbound}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{authenticate\_\-inbound}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::authenticate\_\-inbound (
\begin{DoxyParamCaption}
\item[{const vector$<$ uint8\_\-t $>$ \&}]{packet, }
\item[{const {\bf IPv4} \&}]{src\_\-addr, }
\item[{bool}]{new\_\-peer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classMD5AuthHandler_a54106bbd34108d1b3d69761b0a0b7c9d}


Inbound authentication method. 


\begin{DoxyParams}{Parameters}
{\em packet} & \hyperlink{protocolthe-p}{the} packet to verify. \\
\hline
{\em src\_\-addr} & \hyperlink{protocolthe-p}{the} source address of \hyperlink{protocolthe-p}{the} packet. \\
\hline
{\em new\_\-peer} & true if this is a new peer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if packet passes authentication checks, false otherwise. 
\end{DoxyReturn}


Implements \hyperlink{classAuthHandlerBase_a8f24e1dbb92fc3f224e7e825248503ed}{AuthHandlerBase}.

\hypertarget{classMD5AuthHandler_a4ca6f4bcc4999b652f94cb9c19d94a97}{
\index{MD5AuthHandler@{MD5AuthHandler}!authenticate\_\-outbound@{authenticate\_\-outbound}}
\index{authenticate\_\-outbound@{authenticate\_\-outbound}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{authenticate\_\-outbound}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::authenticate\_\-outbound (
\begin{DoxyParamCaption}
\item[{{\bf RipPacket}$<$ {\bf IPv4} $>$ \&}]{packet, }
\item[{list$<$ {\bf RipPacket}$<$ {\bf IPv4} $>$ $\ast$ $>$ \&}]{auth\_\-packets, }
\item[{size\_\-t \&}]{n\_\-routes}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classMD5AuthHandler_a4ca6f4bcc4999b652f94cb9c19d94a97}


Outbound authentication method. 

Create a list of authenticated packets (one for each valid authentication key). Note that \hyperlink{protocolthe-p}{the} original packet is also modified and authenticated with \hyperlink{protocolthe-p}{the} first valid key.


\begin{DoxyParams}{Parameters}
{\em packet} & \hyperlink{protocolthe-p}{the} RIP packet to authenticate. \\
\hline
{\em auth\_\-packets} & a return-\/by-\/reference list with \hyperlink{protocolthe-p}{the} authenticated RIP packets (one for each valid authentication key). \\
\hline
{\em n\_\-routes} & \hyperlink{protocolthe-p}{the} return-\/by-\/reference number of routes in \hyperlink{protocolthe-p}{the} packet. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if packet was successfully authenticated, false when no valid keys are present. 
\end{DoxyReturn}


Implements \hyperlink{classAuthHandlerBase_a376564db371c98aa424c948d001b0616}{AuthHandlerBase}.

\hypertarget{classMD5AuthHandler_aacb15778b6eb0bfb20dcef4643dc7a6e}{
\index{MD5AuthHandler@{MD5AuthHandler}!authenticate\_\-outbound@{authenticate\_\-outbound}}
\index{authenticate\_\-outbound@{authenticate\_\-outbound}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{authenticate\_\-outbound}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::authenticate\_\-outbound (
\begin{DoxyParamCaption}
\item[{vector$<$ uint8\_\-t $>$ \&}]{packet}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classMD5AuthHandler_aacb15778b6eb0bfb20dcef4643dc7a6e}


Outbound authentication method. 


\begin{DoxyParams}{Parameters}
{\em packet} & \hyperlink{protocolthe-p}{the} packet to authenticate. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if packet was successfully authenticated, false when no valid keys are present. 
\end{DoxyReturn}


Implements \hyperlink{classAuthHandlerBase_a6ec0ffeeff1824135bd1ee0d830eb416}{AuthHandlerBase}.

\hypertarget{classMD5AuthHandler_a0dc13128bbb8e4c0172fd109fe54bd0d}{
\index{MD5AuthHandler@{MD5AuthHandler}!best\_\-outbound\_\-key@{best\_\-outbound\_\-key}}
\index{best\_\-outbound\_\-key@{best\_\-outbound\_\-key}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{best\_\-outbound\_\-key}]{\setlength{\rightskip}{0pt plus 5cm}{\bf MD5AuthHandler::MD5Key} $\ast$ MD5AuthHandler::best\_\-outbound\_\-key (
\begin{DoxyParamCaption}
\item[{const {\bf TimeVal} \&}]{now}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_a0dc13128bbb8e4c0172fd109fe54bd0d}


Select \hyperlink{protocolthe-p}{the} best key for outbound messages. 

The chosen key is \hyperlink{protocolthe-p}{the} one with most recent start-\/time in \hyperlink{protocolthe-p}{the} past. If there is more than one key that matches \hyperlink{protocolthe-p}{the} criteria, then select \hyperlink{protocolthe-p}{the} key with greatest ID.


\begin{DoxyParams}{Parameters}
{\em now} & current time. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_a751cd777bce4cea284f9288e9a740005}{
\index{MD5AuthHandler@{MD5AuthHandler}!effective\_\-name@{effective\_\-name}}
\index{effective\_\-name@{effective\_\-name}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{effective\_\-name}]{\setlength{\rightskip}{0pt plus 5cm}const char $\ast$ MD5AuthHandler::effective\_\-name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classMD5AuthHandler_a751cd777bce4cea284f9288e9a740005}


Get \hyperlink{protocolthe-p}{the} effective name of \hyperlink{protocolthe-p}{the} authentication scheme. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} name of \hyperlink{protocolthe-p}{the} authentication scheme. 
\end{DoxyReturn}


Implements \hyperlink{classAuthHandlerBase_ae7de23c1ed8c11bf3a9214236777b081}{AuthHandlerBase}.

\hypertarget{classMD5AuthHandler_a4aceb34aad367df1aa5125dc4dd9acd6}{
\index{MD5AuthHandler@{MD5AuthHandler}!empty@{empty}}
\index{empty@{empty}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{empty}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::empty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMD5AuthHandler_a4aceb34aad367df1aa5125dc4dd9acd6}


Test where \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler} contains any keys. 

\begin{DoxyReturn}{Returns}
if \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler} contains any keys, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_a4aceb34aad367df1aa5125dc4dd9acd6}{
\index{MD5AuthHandler@{MD5AuthHandler}!empty@{empty}}
\index{empty@{empty}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{empty}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::empty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classMD5AuthHandler_a4aceb34aad367df1aa5125dc4dd9acd6}


Test where \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler} contains any keys. 

\begin{DoxyReturn}{Returns}
if \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler} contains any keys, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_ab73bb17463142357dd24673fda20e17f}{
\index{MD5AuthHandler@{MD5AuthHandler}!head\_\-entries@{head\_\-entries}}
\index{head\_\-entries@{head\_\-entries}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{head\_\-entries}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t MD5AuthHandler::head\_\-entries (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classMD5AuthHandler_ab73bb17463142357dd24673fda20e17f}


Get number of routing entries used by authentication scheme at \hyperlink{protocolthe-p}{the} head of \hyperlink{protocolthe-p}{the} RIP packet. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of routing entries used by \hyperlink{protocolthe-p}{the} authentication scheme at \hyperlink{protocolthe-p}{the} head of \hyperlink{protocolthe-p}{the} RIP packet: 0 for unauthenticated packets, 1 otherwise. 
\end{DoxyReturn}


Implements \hyperlink{classAuthHandlerBase_a0c5a74a5248a62e035b68f4754de6d5d}{AuthHandlerBase}.

\hypertarget{classMD5AuthHandler_a5e19f6cb88200fb9e7d3affa88cbd04d}{
\index{MD5AuthHandler@{MD5AuthHandler}!invalid\_\-key\_\-chain@{invalid\_\-key\_\-chain}}
\index{invalid\_\-key\_\-chain@{invalid\_\-key\_\-chain}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{invalid\_\-key\_\-chain}]{\setlength{\rightskip}{0pt plus 5cm}const KeyChain\& MD5AuthHandler::invalid\_\-key\_\-chain (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMD5AuthHandler_a5e19f6cb88200fb9e7d3affa88cbd04d}


Get all invalid keys managed by \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler}. 

\begin{DoxyReturn}{Returns}
list of all invalid keys. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_a5e19f6cb88200fb9e7d3affa88cbd04d}{
\index{MD5AuthHandler@{MD5AuthHandler}!invalid\_\-key\_\-chain@{invalid\_\-key\_\-chain}}
\index{invalid\_\-key\_\-chain@{invalid\_\-key\_\-chain}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{invalid\_\-key\_\-chain}]{\setlength{\rightskip}{0pt plus 5cm}const KeyChain\& MD5AuthHandler::invalid\_\-key\_\-chain (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMD5AuthHandler_a5e19f6cb88200fb9e7d3affa88cbd04d}


Get all invalid keys managed by \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler}. 

\begin{DoxyReturn}{Returns}
list of all invalid keys. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_a550f4f719518e6b7cf58f228d2853ae3}{
\index{MD5AuthHandler@{MD5AuthHandler}!key\_\-start\_\-cb@{key\_\-start\_\-cb}}
\index{key\_\-start\_\-cb@{key\_\-start\_\-cb}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{key\_\-start\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}void MD5AuthHandler::key\_\-start\_\-cb (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{key\_\-id}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_a550f4f719518e6b7cf58f228d2853ae3}


A callback that a key from \hyperlink{protocolthe-p}{the} MD5 key chain has become valid. 


\begin{DoxyParams}{Parameters}
{\em key\_\-id} & unique ID of \hyperlink{protocolthe-p}{the} key that has become valid. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_a550f4f719518e6b7cf58f228d2853ae3}{
\index{MD5AuthHandler@{MD5AuthHandler}!key\_\-start\_\-cb@{key\_\-start\_\-cb}}
\index{key\_\-start\_\-cb@{key\_\-start\_\-cb}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{key\_\-start\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}void MD5AuthHandler::key\_\-start\_\-cb (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{key\_\-id}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_a550f4f719518e6b7cf58f228d2853ae3}


A callback that a key from \hyperlink{protocolthe-p}{the} MD5 key chain has become valid. 


\begin{DoxyParams}{Parameters}
{\em key\_\-id} & unique ID of \hyperlink{protocolthe-p}{the} key that has become valid. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_a74109e5923a1084903fba65c220779b0}{
\index{MD5AuthHandler@{MD5AuthHandler}!key\_\-stop\_\-cb@{key\_\-stop\_\-cb}}
\index{key\_\-stop\_\-cb@{key\_\-stop\_\-cb}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{key\_\-stop\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}void MD5AuthHandler::key\_\-stop\_\-cb (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{key\_\-id}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_a74109e5923a1084903fba65c220779b0}


A callback that a key from \hyperlink{protocolthe-p}{the} MD5 key chain has expired and is invalid. 


\begin{DoxyParams}{Parameters}
{\em key\_\-id} & unique ID of \hyperlink{protocolthe-p}{the} key that has expired. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_a74109e5923a1084903fba65c220779b0}{
\index{MD5AuthHandler@{MD5AuthHandler}!key\_\-stop\_\-cb@{key\_\-stop\_\-cb}}
\index{key\_\-stop\_\-cb@{key\_\-stop\_\-cb}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{key\_\-stop\_\-cb}]{\setlength{\rightskip}{0pt plus 5cm}void MD5AuthHandler::key\_\-stop\_\-cb (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{key\_\-id}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_a74109e5923a1084903fba65c220779b0}


A callback that a key from \hyperlink{protocolthe-p}{the} MD5 key chain has expired and is invalid. 


\begin{DoxyParams}{Parameters}
{\em key\_\-id} & unique ID of \hyperlink{protocolthe-p}{the} key that has expired. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_a0887e9633d88923504263d0d7dfdce65}{
\index{MD5AuthHandler@{MD5AuthHandler}!remove\_\-key@{remove\_\-key}}
\index{remove\_\-key@{remove\_\-key}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{remove\_\-key}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::remove\_\-key (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{key\_\-id, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_a0887e9633d88923504263d0d7dfdce65}


Remove a key from \hyperlink{protocolthe-p}{the} MD5 key chain. 


\begin{DoxyParams}{Parameters}
{\em key\_\-id} & unique ID of key to be removed. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} key was found and removed, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_a0887e9633d88923504263d0d7dfdce65}{
\index{MD5AuthHandler@{MD5AuthHandler}!remove\_\-key@{remove\_\-key}}
\index{remove\_\-key@{remove\_\-key}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{remove\_\-key}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::remove\_\-key (
\begin{DoxyParamCaption}
\item[{uint8\_\-t}]{key\_\-id, }
\item[{string \&}]{error\_\-msg}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_a0887e9633d88923504263d0d7dfdce65}


Remove a key from \hyperlink{protocolthe-p}{the} MD5 key chain. 


\begin{DoxyParams}{Parameters}
{\em key\_\-id} & unique ID of key to be removed. \\
\hline
{\em error\_\-msg} & \hyperlink{protocolthe-p}{the} error message (if error). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} key was found and removed, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_afc97e2a51ba8ab01186bcd64ed85e8e1}{
\index{MD5AuthHandler@{MD5AuthHandler}!valid\_\-key\_\-chain@{valid\_\-key\_\-chain}}
\index{valid\_\-key\_\-chain@{valid\_\-key\_\-chain}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{valid\_\-key\_\-chain}]{\setlength{\rightskip}{0pt plus 5cm}const KeyChain\& MD5AuthHandler::valid\_\-key\_\-chain (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMD5AuthHandler_afc97e2a51ba8ab01186bcd64ed85e8e1}


Get all valid keys managed by \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler}. 

\begin{DoxyReturn}{Returns}
list of all valid keys. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_afc97e2a51ba8ab01186bcd64ed85e8e1}{
\index{MD5AuthHandler@{MD5AuthHandler}!valid\_\-key\_\-chain@{valid\_\-key\_\-chain}}
\index{valid\_\-key\_\-chain@{valid\_\-key\_\-chain}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{valid\_\-key\_\-chain}]{\setlength{\rightskip}{0pt plus 5cm}const KeyChain\& MD5AuthHandler::valid\_\-key\_\-chain (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMD5AuthHandler_afc97e2a51ba8ab01186bcd64ed85e8e1}


Get all valid keys managed by \hyperlink{protocolthe-p}{the} \hyperlink{classMD5AuthHandler}{MD5AuthHandler}. 

\begin{DoxyReturn}{Returns}
list of all valid keys. 
\end{DoxyReturn}


\subsection{Member Data Documentation}
\hypertarget{classMD5AuthHandler_ae3b49776372776424d679d39bf201c0b}{
\index{MD5AuthHandler@{MD5AuthHandler}!AUTH\_\-TYPE@{AUTH\_\-TYPE}}
\index{AUTH\_\-TYPE@{AUTH\_\-TYPE}!MD5AuthHandler@{MD5AuthHandler}}
\subsubsection[{AUTH\_\-TYPE}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf OspfTypes::AuType} MD5AuthHandler::AUTH\_\-TYPE\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classMD5AuthHandler_ae3b49776372776424d679d39bf201c0b}
{\bfseries Initial value:}
\begin{DoxyCode}

    OspfTypes::CRYPTOGRAPHIC_AUTHENTICATION
\end{DoxyCode}


The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/ospf/auth.hh\item 
/home/greearb/git/xorp.ct.github/xorp/rip/auth.hh\item 
/home/greearb/git/xorp.ct.github/xorp/ospf/auth.cc\item 
/home/greearb/git/xorp.ct.github/xorp/rip/auth.cc\end{DoxyCompactItemize}
