\hypertarget{classMD5AuthHandler_1_1MD5Key}{
\section{MD5AuthHandler::MD5Key Class Reference}
\label{classMD5AuthHandler_1_1MD5Key}\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
}


Class to hold MD5 key information.  




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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classMD5AuthHandler_1_1MD5Key_a1c9944ebd8a3e2c6d0810d53dc03c15b}{MD5Key} (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, \hyperlink{classXorpTimer}{XorpTimer} start\_\-timer, \hyperlink{classXorpTimer}{XorpTimer} end\_\-timer)
\begin{DoxyCompactList}\small\item\em Construct an MD5 Key. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a10cf5aa19dd481e5361b9127c84d055f}{
uint8\_\-t \hyperlink{classMD5AuthHandler_1_1MD5Key_a10cf5aa19dd481e5361b9127c84d055f}{id} () const }
\label{classMD5AuthHandler_1_1MD5Key_a10cf5aa19dd481e5361b9127c84d055f}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} ID associated with \hyperlink{protocolthe-p}{the} key. \item\end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{classMD5AuthHandler_1_1MD5Key_a91d43e1868f4851c6f73c5a4b4faf1aa}{key\_\-data} () const 
\begin{DoxyCompactList}\small\item\em Get pointer to key data. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_ab143d823a8ef9efe7f6e01d2ebb29a6f}{
uint32\_\-t \hyperlink{classMD5AuthHandler_1_1MD5Key_ab143d823a8ef9efe7f6e01d2ebb29a6f}{key\_\-data\_\-bytes} () const }
\label{classMD5AuthHandler_1_1MD5Key_ab143d823a8ef9efe7f6e01d2ebb29a6f}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} size of \hyperlink{protocolthe-p}{the} key data in bytes. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a617fdacbd13d6d8889c4dd27b3a02068}{
string \hyperlink{classMD5AuthHandler_1_1MD5Key_a617fdacbd13d6d8889c4dd27b3a02068}{key} () const }
\label{classMD5AuthHandler_1_1MD5Key_a617fdacbd13d6d8889c4dd27b3a02068}

\begin{DoxyCompactList}\small\item\em Get key data as a string. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a81fe317431e961d160906ed39a668f8b}{
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMD5AuthHandler_1_1MD5Key_a81fe317431e961d160906ed39a668f8b}{start\_\-timeval} () const }
\label{classMD5AuthHandler_1_1MD5Key_a81fe317431e961d160906ed39a668f8b}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} start time of \hyperlink{protocolthe-p}{the} key. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_ab0e27c6b43e9869e3bd3fa616b2e3227}{
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMD5AuthHandler_1_1MD5Key_ab0e27c6b43e9869e3bd3fa616b2e3227}{end\_\-timeval} () const }
\label{classMD5AuthHandler_1_1MD5Key_ab0e27c6b43e9869e3bd3fa616b2e3227}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} end time of \hyperlink{protocolthe-p}{the} key. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a99c973addc8a8299697bf162af2827a8}{
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMD5AuthHandler_1_1MD5Key_a99c973addc8a8299697bf162af2827a8}{max\_\-time\_\-drift} () const }
\label{classMD5AuthHandler_1_1MD5Key_a99c973addc8a8299697bf162af2827a8}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} maximum time drift among all routers. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a2be6ad3ff7208056874dddb9107ef8bb}{
bool \hyperlink{classMD5AuthHandler_1_1MD5Key_a2be6ad3ff7208056874dddb9107ef8bb}{is\_\-persistent} () const }
\label{classMD5AuthHandler_1_1MD5Key_a2be6ad3ff7208056874dddb9107ef8bb}

\begin{DoxyCompactList}\small\item\em Get indication of whether key is persistent. \item\end{DoxyCompactList}\item 
void \hyperlink{classMD5AuthHandler_1_1MD5Key_aabd6e5347c8b59b37e578aac976b9a72}{set\_\-persistent} (bool v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} flag whether \hyperlink{protocolthe-p}{the} key is persistent. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a80d23435d72c363a71a108e97e765ac1}{
bool \hyperlink{classMD5AuthHandler_1_1MD5Key_a80d23435d72c363a71a108e97e765ac1}{id\_\-matches} (uint8\_\-t o) const }
\label{classMD5AuthHandler_1_1MD5Key_a80d23435d72c363a71a108e97e765ac1}

\begin{DoxyCompactList}\small\item\em Get whether ID matches a particular value (convenient for STL algorithms). \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_1_1MD5Key_abe57321c9ee49e0036abef815712ac21}{valid\_\-at} (const \hyperlink{classTimeVal}{TimeVal} \&when) const 
\begin{DoxyCompactList}\small\item\em Get key validity status of key at a particular time. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a475321b809bfd64233fe59389d5daacd}{
void \hyperlink{classMD5AuthHandler_1_1MD5Key_a475321b809bfd64233fe59389d5daacd}{reset} ()}
\label{classMD5AuthHandler_1_1MD5Key_a475321b809bfd64233fe59389d5daacd}

\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} key for all sources. \item\end{DoxyCompactList}\item 
void \hyperlink{classMD5AuthHandler_1_1MD5Key_aae4df725fb939ace8bbbe5f68cf815d8}{reset} (const \hyperlink{classIPv4}{IPv4} \&src\_\-addr)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} key for a particular source. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_1_1MD5Key_a4f449a9b3d6fb91c88911ef0e74232c4}{packets\_\-received} (const \hyperlink{classIPv4}{IPv4} \&src\_\-addr) const 
\begin{DoxyCompactList}\small\item\em Indicate whether valid packets have been received from a source with this key ID. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classMD5AuthHandler_1_1MD5Key_a02c48fac9e2ff5064a86a002f61ae111}{last\_\-seqno\_\-recv} (const \hyperlink{classIPv4}{IPv4} \&src\_\-addr) const 
\begin{DoxyCompactList}\small\item\em Get last received sequence number from a source. \item\end{DoxyCompactList}\item 
void \hyperlink{classMD5AuthHandler_1_1MD5Key_a99ecfd6f41117e1ac55bfef033194292}{set\_\-last\_\-seqno\_\-recv} (const \hyperlink{classIPv4}{IPv4} \&src\_\-addr, uint32\_\-t seqno)
\begin{DoxyCompactList}\small\item\em Set last sequence number received from a source. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classMD5AuthHandler_1_1MD5Key_a7085fcccd62ded9103aa325e99dddd80}{next\_\-seqno\_\-out} ()
\begin{DoxyCompactList}\small\item\em Get next sequence number for outbound packets. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_aff956b47f9572d0e53197d3d54db75e1}{
\hyperlink{classMD5AuthHandler_1_1MD5Key_aff956b47f9572d0e53197d3d54db75e1}{MD5Key} (uint8\_\-t key\_\-id, const string \&key, const \hyperlink{classTimeVal}{TimeVal} \&start\_\-timeval, const \hyperlink{classTimeVal}{TimeVal} \&end\_\-timeval, \hyperlink{classXorpTimer}{XorpTimer} start\_\-timer, \hyperlink{classXorpTimer}{XorpTimer} end\_\-timer)}
\label{classMD5AuthHandler_1_1MD5Key_aff956b47f9572d0e53197d3d54db75e1}

\begin{DoxyCompactList}\small\item\em Construct an MD5 Key. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a10cf5aa19dd481e5361b9127c84d055f}{
uint8\_\-t \hyperlink{classMD5AuthHandler_1_1MD5Key_a10cf5aa19dd481e5361b9127c84d055f}{id} () const }
\label{classMD5AuthHandler_1_1MD5Key_a10cf5aa19dd481e5361b9127c84d055f}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} ID associated with \hyperlink{protocolthe-p}{the} key. \item\end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{classMD5AuthHandler_1_1MD5Key_a91d43e1868f4851c6f73c5a4b4faf1aa}{key\_\-data} () const 
\begin{DoxyCompactList}\small\item\em Get pointer to key data. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_ab143d823a8ef9efe7f6e01d2ebb29a6f}{
uint32\_\-t \hyperlink{classMD5AuthHandler_1_1MD5Key_ab143d823a8ef9efe7f6e01d2ebb29a6f}{key\_\-data\_\-bytes} () const }
\label{classMD5AuthHandler_1_1MD5Key_ab143d823a8ef9efe7f6e01d2ebb29a6f}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} size of \hyperlink{protocolthe-p}{the} key data in bytes. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a617fdacbd13d6d8889c4dd27b3a02068}{
string \hyperlink{classMD5AuthHandler_1_1MD5Key_a617fdacbd13d6d8889c4dd27b3a02068}{key} () const }
\label{classMD5AuthHandler_1_1MD5Key_a617fdacbd13d6d8889c4dd27b3a02068}

\begin{DoxyCompactList}\small\item\em Get key data as a string. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a81fe317431e961d160906ed39a668f8b}{
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMD5AuthHandler_1_1MD5Key_a81fe317431e961d160906ed39a668f8b}{start\_\-timeval} () const }
\label{classMD5AuthHandler_1_1MD5Key_a81fe317431e961d160906ed39a668f8b}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} start time of \hyperlink{protocolthe-p}{the} key. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_ab0e27c6b43e9869e3bd3fa616b2e3227}{
const \hyperlink{classTimeVal}{TimeVal} \& \hyperlink{classMD5AuthHandler_1_1MD5Key_ab0e27c6b43e9869e3bd3fa616b2e3227}{end\_\-timeval} () const }
\label{classMD5AuthHandler_1_1MD5Key_ab0e27c6b43e9869e3bd3fa616b2e3227}

\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} end time of \hyperlink{protocolthe-p}{the} key. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a2be6ad3ff7208056874dddb9107ef8bb}{
bool \hyperlink{classMD5AuthHandler_1_1MD5Key_a2be6ad3ff7208056874dddb9107ef8bb}{is\_\-persistent} () const }
\label{classMD5AuthHandler_1_1MD5Key_a2be6ad3ff7208056874dddb9107ef8bb}

\begin{DoxyCompactList}\small\item\em Get indication of whether key is persistent. \item\end{DoxyCompactList}\item 
void \hyperlink{classMD5AuthHandler_1_1MD5Key_aabd6e5347c8b59b37e578aac976b9a72}{set\_\-persistent} (bool v)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} flag whether \hyperlink{protocolthe-p}{the} key is persistent. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a80d23435d72c363a71a108e97e765ac1}{
bool \hyperlink{classMD5AuthHandler_1_1MD5Key_a80d23435d72c363a71a108e97e765ac1}{id\_\-matches} (uint8\_\-t o) const }
\label{classMD5AuthHandler_1_1MD5Key_a80d23435d72c363a71a108e97e765ac1}

\begin{DoxyCompactList}\small\item\em Get whether ID matches a particular value (convenient for STL algorithms). \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_1_1MD5Key_abe57321c9ee49e0036abef815712ac21}{valid\_\-at} (const \hyperlink{classTimeVal}{TimeVal} \&when) const 
\begin{DoxyCompactList}\small\item\em Get key validity status of key at a particular time. \item\end{DoxyCompactList}\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a475321b809bfd64233fe59389d5daacd}{
void \hyperlink{classMD5AuthHandler_1_1MD5Key_a475321b809bfd64233fe59389d5daacd}{reset} ()}
\label{classMD5AuthHandler_1_1MD5Key_a475321b809bfd64233fe59389d5daacd}

\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} key for all sources. \item\end{DoxyCompactList}\item 
void \hyperlink{classMD5AuthHandler_1_1MD5Key_aae4df725fb939ace8bbbe5f68cf815d8}{reset} (const \hyperlink{classIPv4}{IPv4} \&src\_\-addr)
\begin{DoxyCompactList}\small\item\em Reset \hyperlink{protocolthe-p}{the} key for a particular source. \item\end{DoxyCompactList}\item 
bool \hyperlink{classMD5AuthHandler_1_1MD5Key_a4f449a9b3d6fb91c88911ef0e74232c4}{packets\_\-received} (const \hyperlink{classIPv4}{IPv4} \&src\_\-addr) const 
\begin{DoxyCompactList}\small\item\em Indicate whether valid packets have been received from a source with this key ID. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classMD5AuthHandler_1_1MD5Key_a02c48fac9e2ff5064a86a002f61ae111}{last\_\-seqno\_\-recv} (const \hyperlink{classIPv4}{IPv4} \&src\_\-addr) const 
\begin{DoxyCompactList}\small\item\em Get last received sequence number from a source. \item\end{DoxyCompactList}\item 
void \hyperlink{classMD5AuthHandler_1_1MD5Key_a99ecfd6f41117e1ac55bfef033194292}{set\_\-last\_\-seqno\_\-recv} (const \hyperlink{classIPv4}{IPv4} \&src\_\-addr, uint32\_\-t seqno)
\begin{DoxyCompactList}\small\item\em Set last sequence number received from a source. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classMD5AuthHandler_1_1MD5Key_a7085fcccd62ded9103aa325e99dddd80}{next\_\-seqno\_\-out} ()
\begin{DoxyCompactList}\small\item\em Get next sequence number for outbound packets. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a2d78c17288ceb80be7d1dcb68ef56e68}{
uint8\_\-t {\bfseries \_\-id}}
\label{classMD5AuthHandler_1_1MD5Key_a2d78c17288ceb80be7d1dcb68ef56e68}

\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_ad210e0a97471bbeebae8dbec48f124b4}{
char {\bfseries \_\-key\_\-data} \mbox{[}KEY\_\-BYTES\mbox{]}}
\label{classMD5AuthHandler_1_1MD5Key_ad210e0a97471bbeebae8dbec48f124b4}

\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a0b2e16bd8164b6c3b09a26b64f771744}{
\hyperlink{classTimeVal}{TimeVal} {\bfseries \_\-start\_\-timeval}}
\label{classMD5AuthHandler_1_1MD5Key_a0b2e16bd8164b6c3b09a26b64f771744}

\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a7c03961ef6bcc0bd3a0d43062d7c121c}{
\hyperlink{classTimeVal}{TimeVal} {\bfseries \_\-end\_\-timeval}}
\label{classMD5AuthHandler_1_1MD5Key_a7c03961ef6bcc0bd3a0d43062d7c121c}

\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a61a21c124daa2ed8a0fc64afffb63dba}{
\hyperlink{classTimeVal}{TimeVal} {\bfseries \_\-max\_\-time\_\-drift}}
\label{classMD5AuthHandler_1_1MD5Key_a61a21c124daa2ed8a0fc64afffb63dba}

\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a7d5c2e6ff27bd56c45107070df42a49b}{
bool {\bfseries \_\-is\_\-persistent}}
\label{classMD5AuthHandler_1_1MD5Key_a7d5c2e6ff27bd56c45107070df42a49b}

\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a15675e627365655a9564c51633350b08}{
map$<$ \hyperlink{classIPv4}{IPv4}, bool $>$ {\bfseries \_\-pkts\_\-recv}}
\label{classMD5AuthHandler_1_1MD5Key_a15675e627365655a9564c51633350b08}

\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_afd0344d3fcebcf3a672613f0abb9bc3f}{
map$<$ \hyperlink{classIPv4}{IPv4}, uint32\_\-t $>$ {\bfseries \_\-lr\_\-seqno}}
\label{classMD5AuthHandler_1_1MD5Key_afd0344d3fcebcf3a672613f0abb9bc3f}

\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_adcf72b4bc2e63057f508c5ac3fa7acee}{
uint32\_\-t {\bfseries \_\-o\_\-seqno}}
\label{classMD5AuthHandler_1_1MD5Key_adcf72b4bc2e63057f508c5ac3fa7acee}

\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_ab8529cc787f620a59d51333600ba511c}{
\hyperlink{classXorpTimer}{XorpTimer} {\bfseries \_\-start\_\-timer}}
\label{classMD5AuthHandler_1_1MD5Key_ab8529cc787f620a59d51333600ba511c}

\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a3637d1a5f0003bb2df2c4bf1d4f7169b}{
\hyperlink{classXorpTimer}{XorpTimer} {\bfseries \_\-stop\_\-timer}}
\label{classMD5AuthHandler_1_1MD5Key_a3637d1a5f0003bb2df2c4bf1d4f7169b}

\end{DoxyCompactItemize}
\subsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_ad0f59f7bcd69fee8b22460780035c8fe}{
static const uint32\_\-t {\bfseries KEY\_\-BYTES} = 16}
\label{classMD5AuthHandler_1_1MD5Key_ad0f59f7bcd69fee8b22460780035c8fe}

\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classMD5AuthHandler_1_1MD5Key_a75943560dc526aa7bfd46f827c9094f1}{
class \hyperlink{classMD5AuthHandler_1_1MD5Key_a75943560dc526aa7bfd46f827c9094f1}{MD5AuthHandler}}
\label{classMD5AuthHandler_1_1MD5Key_a75943560dc526aa7bfd46f827c9094f1}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
Class to hold MD5 key information. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classMD5AuthHandler_1_1MD5Key_a1c9944ebd8a3e2c6d0810d53dc03c15b}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!MD5Key@{MD5Key}}
\index{MD5Key@{MD5Key}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{MD5Key}]{\setlength{\rightskip}{0pt plus 5cm}MD5AuthHandler::MD5Key::MD5Key (
\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[{{\bf XorpTimer}}]{start\_\-timer, }
\item[{{\bf XorpTimer}}]{end\_\-timer}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_1_1MD5Key_a1c9944ebd8a3e2c6d0810d53dc03c15b}


Construct an MD5 Key. 


\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 start\_\-timer} & \hyperlink{protocolthe-p}{the} timer to mark when \hyperlink{protocolthe-p}{the} key becomes valid. \\
\hline
{\em end\_\-timer} & \hyperlink{protocolthe-p}{the} timer to mark when \hyperlink{protocolthe-p}{the} key becomes invalid. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classMD5AuthHandler_1_1MD5Key_a91d43e1868f4851c6f73c5a4b4faf1aa}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!key\_\-data@{key\_\-data}}
\index{key\_\-data@{key\_\-data}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{key\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ MD5AuthHandler::MD5Key::key\_\-data (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMD5AuthHandler_1_1MD5Key_a91d43e1868f4851c6f73c5a4b4faf1aa}


Get pointer to key data. 

The data is of size KEY\_\-BYTES. \hypertarget{classMD5AuthHandler_1_1MD5Key_a91d43e1868f4851c6f73c5a4b4faf1aa}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!key\_\-data@{key\_\-data}}
\index{key\_\-data@{key\_\-data}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{key\_\-data}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ MD5AuthHandler::MD5Key::key\_\-data (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMD5AuthHandler_1_1MD5Key_a91d43e1868f4851c6f73c5a4b4faf1aa}


Get pointer to key data. 

The data is of size KEY\_\-BYTES. \hypertarget{classMD5AuthHandler_1_1MD5Key_a02c48fac9e2ff5064a86a002f61ae111}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!last\_\-seqno\_\-recv@{last\_\-seqno\_\-recv}}
\index{last\_\-seqno\_\-recv@{last\_\-seqno\_\-recv}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{last\_\-seqno\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t MD5AuthHandler::MD5Key::last\_\-seqno\_\-recv (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{src\_\-addr}
\end{DoxyParamCaption}
) const}}
\label{classMD5AuthHandler_1_1MD5Key_a02c48fac9e2ff5064a86a002f61ae111}


Get last received sequence number from a source. 


\begin{DoxyParams}{Parameters}
{\em src\_\-addr} & \hyperlink{protocolthe-p}{the} source address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
last sequence number seen from \hyperlink{protocolthe-p}{the} source. Value may be garbage if no packets have been received (check first with \hyperlink{classMD5AuthHandler_1_1MD5Key_a4f449a9b3d6fb91c88911ef0e74232c4}{packets\_\-received()}). 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_1_1MD5Key_a02c48fac9e2ff5064a86a002f61ae111}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!last\_\-seqno\_\-recv@{last\_\-seqno\_\-recv}}
\index{last\_\-seqno\_\-recv@{last\_\-seqno\_\-recv}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{last\_\-seqno\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t MD5AuthHandler::MD5Key::last\_\-seqno\_\-recv (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{src\_\-addr}
\end{DoxyParamCaption}
) const}}
\label{classMD5AuthHandler_1_1MD5Key_a02c48fac9e2ff5064a86a002f61ae111}


Get last received sequence number from a source. 


\begin{DoxyParams}{Parameters}
{\em src\_\-addr} & \hyperlink{protocolthe-p}{the} source address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
last sequence number seen from \hyperlink{protocolthe-p}{the} source. Value may be garbage if no packets have been received (check first with \hyperlink{classMD5AuthHandler_1_1MD5Key_a4f449a9b3d6fb91c88911ef0e74232c4}{packets\_\-received()}). 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_1_1MD5Key_a7085fcccd62ded9103aa325e99dddd80}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!next\_\-seqno\_\-out@{next\_\-seqno\_\-out}}
\index{next\_\-seqno\_\-out@{next\_\-seqno\_\-out}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{next\_\-seqno\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t MD5AuthHandler::MD5Key::next\_\-seqno\_\-out (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMD5AuthHandler_1_1MD5Key_a7085fcccd62ded9103aa325e99dddd80}


Get next sequence number for outbound packets. 

The counter is automatically updated with each call of this method. \hypertarget{classMD5AuthHandler_1_1MD5Key_a7085fcccd62ded9103aa325e99dddd80}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!next\_\-seqno\_\-out@{next\_\-seqno\_\-out}}
\index{next\_\-seqno\_\-out@{next\_\-seqno\_\-out}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{next\_\-seqno\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t MD5AuthHandler::MD5Key::next\_\-seqno\_\-out (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMD5AuthHandler_1_1MD5Key_a7085fcccd62ded9103aa325e99dddd80}


Get next sequence number for outbound packets. 

The counter is automatically updated with each call of this method. \hypertarget{classMD5AuthHandler_1_1MD5Key_a4f449a9b3d6fb91c88911ef0e74232c4}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!packets\_\-received@{packets\_\-received}}
\index{packets\_\-received@{packets\_\-received}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{packets\_\-received}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::MD5Key::packets\_\-received (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{src\_\-addr}
\end{DoxyParamCaption}
) const}}
\label{classMD5AuthHandler_1_1MD5Key_a4f449a9b3d6fb91c88911ef0e74232c4}


Indicate whether valid packets have been received from a source with this key ID. 


\begin{DoxyParams}{Parameters}
{\em src\_\-addr} & \hyperlink{protocolthe-p}{the} source address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if a packet has been received from \hyperlink{protocolthe-p}{the} source, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_1_1MD5Key_a4f449a9b3d6fb91c88911ef0e74232c4}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!packets\_\-received@{packets\_\-received}}
\index{packets\_\-received@{packets\_\-received}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{packets\_\-received}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::MD5Key::packets\_\-received (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{src\_\-addr}
\end{DoxyParamCaption}
) const}}
\label{classMD5AuthHandler_1_1MD5Key_a4f449a9b3d6fb91c88911ef0e74232c4}


Indicate whether valid packets have been received from a source with this key ID. 


\begin{DoxyParams}{Parameters}
{\em src\_\-addr} & \hyperlink{protocolthe-p}{the} source address. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if a packet has been received from \hyperlink{protocolthe-p}{the} source, otherwise false. 
\end{DoxyReturn}
\hypertarget{classMD5AuthHandler_1_1MD5Key_aae4df725fb939ace8bbbe5f68cf815d8}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!reset@{reset}}
\index{reset@{reset}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{reset}]{\setlength{\rightskip}{0pt plus 5cm}void MD5AuthHandler::MD5Key::reset (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{src\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_1_1MD5Key_aae4df725fb939ace8bbbe5f68cf815d8}


Reset \hyperlink{protocolthe-p}{the} key for a particular source. 


\begin{DoxyParams}{Parameters}
{\em src\_\-addr} & \hyperlink{protocolthe-p}{the} source address. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_1_1MD5Key_aae4df725fb939ace8bbbe5f68cf815d8}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!reset@{reset}}
\index{reset@{reset}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{reset}]{\setlength{\rightskip}{0pt plus 5cm}void MD5AuthHandler::MD5Key::reset (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{src\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_1_1MD5Key_aae4df725fb939ace8bbbe5f68cf815d8}


Reset \hyperlink{protocolthe-p}{the} key for a particular source. 


\begin{DoxyParams}{Parameters}
{\em src\_\-addr} & \hyperlink{protocolthe-p}{the} source address. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_1_1MD5Key_a99ecfd6f41117e1ac55bfef033194292}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!set\_\-last\_\-seqno\_\-recv@{set\_\-last\_\-seqno\_\-recv}}
\index{set\_\-last\_\-seqno\_\-recv@{set\_\-last\_\-seqno\_\-recv}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{set\_\-last\_\-seqno\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}void MD5AuthHandler::MD5Key::set\_\-last\_\-seqno\_\-recv (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{src\_\-addr, }
\item[{uint32\_\-t}]{seqno}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_1_1MD5Key_a99ecfd6f41117e1ac55bfef033194292}


Set last sequence number received from a source. 

This method implicitly set packets received to true.


\begin{DoxyParams}{Parameters}
{\em src\_\-addr} & \hyperlink{protocolthe-p}{the} source address. \\
\hline
{\em seqno} & \hyperlink{protocolthe-p}{the} last sequence number received from \hyperlink{protocolthe-p}{the} source. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_1_1MD5Key_a99ecfd6f41117e1ac55bfef033194292}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!set\_\-last\_\-seqno\_\-recv@{set\_\-last\_\-seqno\_\-recv}}
\index{set\_\-last\_\-seqno\_\-recv@{set\_\-last\_\-seqno\_\-recv}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{set\_\-last\_\-seqno\_\-recv}]{\setlength{\rightskip}{0pt plus 5cm}void MD5AuthHandler::MD5Key::set\_\-last\_\-seqno\_\-recv (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{src\_\-addr, }
\item[{uint32\_\-t}]{seqno}
\end{DoxyParamCaption}
)}}
\label{classMD5AuthHandler_1_1MD5Key_a99ecfd6f41117e1ac55bfef033194292}


Set last sequence number received from a source. 

This method implicitly set packets received to true.


\begin{DoxyParams}{Parameters}
{\em src\_\-addr} & \hyperlink{protocolthe-p}{the} source address. \\
\hline
{\em seqno} & \hyperlink{protocolthe-p}{the} last sequence number received from \hyperlink{protocolthe-p}{the} source. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_1_1MD5Key_aabd6e5347c8b59b37e578aac976b9a72}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!set\_\-persistent@{set\_\-persistent}}
\index{set\_\-persistent@{set\_\-persistent}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{set\_\-persistent}]{\setlength{\rightskip}{0pt plus 5cm}void MD5AuthHandler::MD5Key::set\_\-persistent (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMD5AuthHandler_1_1MD5Key_aabd6e5347c8b59b37e578aac976b9a72}


Set \hyperlink{protocolthe-p}{the} flag whether \hyperlink{protocolthe-p}{the} key is persistent. 


\begin{DoxyParams}{Parameters}
{\em v} & if true \hyperlink{protocolthe-p}{the} key is persistent. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_1_1MD5Key_aabd6e5347c8b59b37e578aac976b9a72}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!set\_\-persistent@{set\_\-persistent}}
\index{set\_\-persistent@{set\_\-persistent}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{set\_\-persistent}]{\setlength{\rightskip}{0pt plus 5cm}void MD5AuthHandler::MD5Key::set\_\-persistent (
\begin{DoxyParamCaption}
\item[{bool}]{v}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classMD5AuthHandler_1_1MD5Key_aabd6e5347c8b59b37e578aac976b9a72}


Set \hyperlink{protocolthe-p}{the} flag whether \hyperlink{protocolthe-p}{the} key is persistent. 


\begin{DoxyParams}{Parameters}
{\em v} & if true \hyperlink{protocolthe-p}{the} key is persistent. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_1_1MD5Key_abe57321c9ee49e0036abef815712ac21}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!valid\_\-at@{valid\_\-at}}
\index{valid\_\-at@{valid\_\-at}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{valid\_\-at}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::MD5Key::valid\_\-at (
\begin{DoxyParamCaption}
\item[{const {\bf TimeVal} \&}]{when}
\end{DoxyParamCaption}
) const}}
\label{classMD5AuthHandler_1_1MD5Key_abe57321c9ee49e0036abef815712ac21}


Get key validity status of key at a particular time. 


\begin{DoxyParams}{Parameters}
{\em when} & \hyperlink{protocolthe-p}{the} time to test whether \hyperlink{protocolthe-p}{the} key is valid. \\
\hline
\end{DoxyParams}
\hypertarget{classMD5AuthHandler_1_1MD5Key_abe57321c9ee49e0036abef815712ac21}{
\index{MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}!valid\_\-at@{valid\_\-at}}
\index{valid\_\-at@{valid\_\-at}!MD5AuthHandler::MD5Key@{MD5AuthHandler::MD5Key}}
\subsubsection[{valid\_\-at}]{\setlength{\rightskip}{0pt plus 5cm}bool MD5AuthHandler::MD5Key::valid\_\-at (
\begin{DoxyParamCaption}
\item[{const {\bf TimeVal} \&}]{when}
\end{DoxyParamCaption}
) const}}
\label{classMD5AuthHandler_1_1MD5Key_abe57321c9ee49e0036abef815712ac21}


Get key validity status of key at a particular time. 


\begin{DoxyParams}{Parameters}
{\em when} & \hyperlink{protocolthe-p}{the} time to test whether \hyperlink{protocolthe-p}{the} key is valid. \\
\hline
\end{DoxyParams}


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}
