\hypertarget{classBunnyAES}{
\section{BunnyAES$<$ nb\_\-key, nround $>$ Class Template Reference}
\label{classBunnyAES}\index{BunnyAES@{BunnyAES}}
}


\hyperlink{classBunnyAES}{BunnyAES} CLASS.  




{\ttfamily \#include $<$BunnyAES.h$>$}

Inheritance diagram for BunnyAES$<$ nb\_\-key, nround $>$:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classBunnyAES}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classBunnyAES_a38a3291b400089fda03cc9227d608607}{
typedef \hyperlink{classBunny}{Bunny}$<$ 128, nb\_\-key, 8, nround $>$ {\bfseries BUNNY}}
\label{classBunnyAES_a38a3291b400089fda03cc9227d608607}

\item 
\hypertarget{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{
typedef \hyperlink{classBunny_aac96f8b3957c2d967d5915ee512971d5}{BUNNY::msgType} \hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType}}
\label{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}

\begin{DoxyCompactList}\small\item\em Is the type of a message string (e.g., bitset$<$128$>$, bitset$<$24$>$, etc..) \end{DoxyCompactList}\item 
\hypertarget{classBunnyAES_a2fb1bc940faea7e7a6110820cbcf8ce2}{
typedef \hyperlink{classBunny_a33ebb94ff67c39a4a14af347d1f5d619}{BUNNY::keyType} \hyperlink{classBunnyAES_a2fb1bc940faea7e7a6110820cbcf8ce2}{keyType}}
\label{classBunnyAES_a2fb1bc940faea7e7a6110820cbcf8ce2}

\begin{DoxyCompactList}\small\item\em Is the type of a key string (e.g., bitset$<$256$>$, bitset$<$128$>$, etc..) \end{DoxyCompactList}\item 
\hypertarget{classBunnyAES_ab38d34d4be7c5b1b517f4690aff790d1}{
typedef \hyperlink{classBunny_a4d3368c8140d7c906daa86717bfeb05f}{BUNNY::sboxType} \hyperlink{classBunnyAES_ab38d34d4be7c5b1b517f4690aff790d1}{sboxType}}
\label{classBunnyAES_ab38d34d4be7c5b1b517f4690aff790d1}

\begin{DoxyCompactList}\small\item\em Is the type of a message string which is input into the sBox (e.g., bitset$<$8$>$, bitset$<$6$>$, etc..) \end{DoxyCompactList}\item 
\hypertarget{classBunnyAES_ac7406f615f03703451ab8b1ab755a95f}{
typedef \hyperlink{classBunny_a8e83ae2eddcaabb41e7c9a7a594a4f06}{BUNNY::wordType} \hyperlink{classBunnyAES_ac7406f615f03703451ab8b1ab755a95f}{wordType}}
\label{classBunnyAES_ac7406f615f03703451ab8b1ab755a95f}

\begin{DoxyCompactList}\small\item\em Is the type of a word string, used in the keyschedule or in the mixing layer (e.g., bitset$<$128$\ast$4$>$, etc..) \end{DoxyCompactList}\item 
\hypertarget{classBunnyAES_a844ea7a33903d122fbf6080500bdfa8a}{
typedef \hyperlink{classBunny_a493c28e9924920dc6422b6ec882b1f86}{BUNNY::roundkeyType} \hyperlink{classBunnyAES_a844ea7a33903d122fbf6080500bdfa8a}{roundkeyType}}
\label{classBunnyAES_a844ea7a33903d122fbf6080500bdfa8a}

\begin{DoxyCompactList}\small\item\em Is the type of the vector containing the round keys. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classBunnyAES_ac25540b5e720a0d94208a196506fcc16}{BunnyAES} ()
\item 
virtual \hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} \hyperlink{classBunnyAES_a08021ecb7d36a7cfe4551ef49979e5e8}{encode} (\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} m, \hyperlink{classBunnyAES_a2fb1bc940faea7e7a6110820cbcf8ce2}{keyType} k)
\begin{DoxyCompactList}\small\item\em Encoding function designed for AES block cipher. \end{DoxyCompactList}\item 
virtual \hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} \hyperlink{classBunnyAES_a0ffab46d67342fd171c480f50aa4b551}{decode} (\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} m, \hyperlink{classBunnyAES_a2fb1bc940faea7e7a6110820cbcf8ce2}{keyType} k)
\begin{DoxyCompactList}\small\item\em Decoding function designed for AES block cipher. \end{DoxyCompactList}\item 
virtual \hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} \hyperlink{classBunnyAES_a6446341df28410a45e85f8522e691b8f}{sBox} (\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} m)
\begin{DoxyCompactList}\small\item\em AES S-\/box STEP. \end{DoxyCompactList}\item 
\hypertarget{classBunnyAES_a6e2c49e8162951ff2d91e93380b048c7}{
virtual \hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} \hyperlink{classBunnyAES_a6e2c49e8162951ff2d91e93380b048c7}{sBoxInverse} (\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} m)}
\label{classBunnyAES_a6e2c49e8162951ff2d91e93380b048c7}

\begin{DoxyCompactList}\small\item\em AES S-\/box Inverse STEP. \end{DoxyCompactList}\item 
virtual \hyperlink{classBunnyAES_ab38d34d4be7c5b1b517f4690aff790d1}{sboxType} \hyperlink{classBunnyAES_aa0ce40989f0c2661dd1a8b4ec293d317}{sbox} (unsigned nbox, \hyperlink{classBunnyAES_ab38d34d4be7c5b1b517f4690aff790d1}{sboxType} x)
\begin{DoxyCompactList}\small\item\em S-\/box table. \end{DoxyCompactList}\item 
virtual \hyperlink{classBunnyAES_ab38d34d4be7c5b1b517f4690aff790d1}{sboxType} \hyperlink{classBunnyAES_a8716bb1ac25ef47c008baa2b352b3c17}{sboxInverse} (unsigned nbox, \hyperlink{classBunnyAES_ab38d34d4be7c5b1b517f4690aff790d1}{sboxType} x)
\begin{DoxyCompactList}\small\item\em Inverse of the sbox. \end{DoxyCompactList}\item 
virtual \hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} \hyperlink{classBunnyAES_ad62f3c3b10079da65ff266838a4d2cdc}{mixingLayer} (\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} m)
\begin{DoxyCompactList}\small\item\em Mixing Layer STEP. \end{DoxyCompactList}\item 
virtual \hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} \hyperlink{classBunnyAES_a253e8c3c0f1bb5546d59d2b15f75fef2}{mixingLayerInverse} (\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} m)
\begin{DoxyCompactList}\small\item\em Mixing Layer Inverse STEP. \end{DoxyCompactList}\item 
\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} \hyperlink{classBunnyAES_a1df1442be28c0d9b21cf8fe0f226801f}{shiftRows} (\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} m) const 
\begin{DoxyCompactList}\small\item\em ShiftRows STEP. \end{DoxyCompactList}\item 
\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} \hyperlink{classBunnyAES_aeea48a3686fbea4a4948763a019d7af7}{shiftRowsInv} (\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} m) const 
\begin{DoxyCompactList}\small\item\em ShiftRows Inverse STEP. \end{DoxyCompactList}\item 
\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} \hyperlink{classBunnyAES_a6703084a73c7ad207e80992711deabd8}{mixColumns} (\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} m) const 
\begin{DoxyCompactList}\small\item\em MixColumns STEP. \end{DoxyCompactList}\item 
\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} \hyperlink{classBunnyAES_ac4f5d5ccdd1563049e9dc1e3571169e7}{mixColumnsInv} (\hyperlink{classBunnyAES_ac6387663ea11ca02856dcb8b032ca65a}{msgType} m) const 
\begin{DoxyCompactList}\small\item\em MixColumns Inverse STEP. \end{DoxyCompactList}\item 
virtual void \hyperlink{classBunnyAES_aa77172b1b2e3201a18d5f555cb9a3201}{keySchedule} (\hyperlink{classBunnyAES_a2fb1bc940faea7e7a6110820cbcf8ce2}{keyType} k)
\begin{DoxyCompactList}\small\item\em Key-\/Schedule STEP -\/ AES style. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classBunnyAES_a07f2af00a55a884a617c59b5be0337c9}{
\hyperlink{classBunnyAES_a844ea7a33903d122fbf6080500bdfa8a}{roundkeyType} \hyperlink{classBunnyAES_a07f2af00a55a884a617c59b5be0337c9}{rk}}
\label{classBunnyAES_a07f2af00a55a884a617c59b5be0337c9}

\begin{DoxyCompactList}\small\item\em Contains the round keys. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$unsigned nb\_\-key, unsigned nround$>$class BunnyAES$<$ nb\_\-key, nround $>$}

\hyperlink{classBunnyAES}{BunnyAES} CLASS. 

This class inherits the methods from \hyperlink{classBunny}{Bunny} class, and specifies the virtual methods which are different from Bunny's.

\hyperlink{classBunnyAES}{BunnyAES} allows to instantiate a block cipher as AES working on 128 bits, with a master key of nb\_\-key bits, whose s-\/box take input of 8 bits, and with nround rounds. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classBunnyAES_ac25540b5e720a0d94208a196506fcc16}{
\index{BunnyAES@{BunnyAES}!BunnyAES@{BunnyAES}}
\index{BunnyAES@{BunnyAES}!BunnyAES@{BunnyAES}}
\subsubsection[{BunnyAES}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf BunnyAES} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBunnyAES_ac25540b5e720a0d94208a196506fcc16}
Allocate the space needed to fill a vector containing all the round keys. 

\subsection{Member Function Documentation}
\hypertarget{classBunnyAES_a0ffab46d67342fd171c480f50aa4b551}{
\index{BunnyAES@{BunnyAES}!decode@{decode}}
\index{decode@{decode}!BunnyAES@{BunnyAES}}
\subsubsection[{decode}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf msgType} {\bf BunnyAES}$<$ nb\_\-key, nround $>$::decode (
\begin{DoxyParamCaption}
\item[{{\bf msgType}}]{m, }
\item[{{\bf keyType}}]{k}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classBunnyAES_a0ffab46d67342fd171c480f50aa4b551}


Decoding function designed for AES block cipher. 


\begin{DoxyItemize}
\item INPUT: a message m of type msgType (a bitset of dimension N) and a key k of type keyType (a bitset of dimension M).
\end{DoxyItemize}


\begin{DoxyItemize}
\item OUTPUT: an (encrypted) message c of the same type as m. 
\end{DoxyItemize}

Reimplemented from \hyperlink{classBunny_abd306e727a3e0892e745a6a3829155fa}{Bunny$<$ 128, nb\_\-key, 8, nround $>$}.

\hypertarget{classBunnyAES_a08021ecb7d36a7cfe4551ef49979e5e8}{
\index{BunnyAES@{BunnyAES}!encode@{encode}}
\index{encode@{encode}!BunnyAES@{BunnyAES}}
\subsubsection[{encode}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf msgType} {\bf BunnyAES}$<$ nb\_\-key, nround $>$::encode (
\begin{DoxyParamCaption}
\item[{{\bf msgType}}]{m, }
\item[{{\bf keyType}}]{k}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classBunnyAES_a08021ecb7d36a7cfe4551ef49979e5e8}


Encoding function designed for AES block cipher. 


\begin{DoxyItemize}
\item INPUT: a message m of type msgType (a bitset of dimension N) and a key k of type keyType (a bitset of dimension M).
\end{DoxyItemize}


\begin{DoxyItemize}
\item OUTPUT: an (encrypted) message c of the same type as m. 
\end{DoxyItemize}

Reimplemented from \hyperlink{classBunny_a33e3e8dc14fe1ef814a4b611a67adf26}{Bunny$<$ 128, nb\_\-key, 8, nround $>$}.

\hypertarget{classBunnyAES_aa77172b1b2e3201a18d5f555cb9a3201}{
\index{BunnyAES@{BunnyAES}!keySchedule@{keySchedule}}
\index{keySchedule@{keySchedule}!BunnyAES@{BunnyAES}}
\subsubsection[{keySchedule}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ void {\bf BunnyAES}$<$ nb\_\-key, nround $>$::keySchedule (
\begin{DoxyParamCaption}
\item[{{\bf keyType}}]{k}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classBunnyAES_aa77172b1b2e3201a18d5f555cb9a3201}


Key-\/Schedule STEP -\/ AES style. 


\begin{DoxyItemize}
\item INPUT: a master key k of type keyType.
\end{DoxyItemize}


\begin{DoxyItemize}
\item OUTPUT: return a pointer to a vector of msgType (this elements are the round key, which must be the same length/type as the message). 
\end{DoxyItemize}

Reimplemented from \hyperlink{classBunny_abc78cfde7c2bbd74199bbc34e3044413}{Bunny$<$ 128, nb\_\-key, 8, nround $>$}.

\hypertarget{classBunnyAES_a6703084a73c7ad207e80992711deabd8}{
\index{BunnyAES@{BunnyAES}!mixColumns@{mixColumns}}
\index{mixColumns@{mixColumns}!BunnyAES@{BunnyAES}}
\subsubsection[{mixColumns}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf msgType} {\bf BunnyAES}$<$ nb\_\-key, nround $>$::mixColumns (
\begin{DoxyParamCaption}
\item[{{\bf msgType}}]{m}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBunnyAES_a6703084a73c7ad207e80992711deabd8}


MixColumns STEP. 

It is AES mix columns step. It works for 128 bits messages. Takes 4 bytes at a time and creates a polynomial in $ F_2^8 $; this is then multiplied by another polynomial in the same field.


\begin{DoxyItemize}
\item INPUT: a message m of type msgType.
\end{DoxyItemize}


\begin{DoxyItemize}
\item OUTPUT: the message m elaborated by the mix columns step. 
\end{DoxyItemize}\hypertarget{classBunnyAES_ac4f5d5ccdd1563049e9dc1e3571169e7}{
\index{BunnyAES@{BunnyAES}!mixColumnsInv@{mixColumnsInv}}
\index{mixColumnsInv@{mixColumnsInv}!BunnyAES@{BunnyAES}}
\subsubsection[{mixColumnsInv}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf msgType} {\bf BunnyAES}$<$ nb\_\-key, nround $>$::mixColumnsInv (
\begin{DoxyParamCaption}
\item[{{\bf msgType}}]{m}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBunnyAES_ac4f5d5ccdd1563049e9dc1e3571169e7}


MixColumns Inverse STEP. 

Inverse of the mix columns step. \hypertarget{classBunnyAES_ad62f3c3b10079da65ff266838a4d2cdc}{
\index{BunnyAES@{BunnyAES}!mixingLayer@{mixingLayer}}
\index{mixingLayer@{mixingLayer}!BunnyAES@{BunnyAES}}
\subsubsection[{mixingLayer}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf msgType} {\bf BunnyAES}$<$ nb\_\-key, nround $>$::mixingLayer (
\begin{DoxyParamCaption}
\item[{{\bf msgType}}]{m}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classBunnyAES_ad62f3c3b10079da65ff266838a4d2cdc}


Mixing Layer STEP. 

Combinations of the ShiftRows and the MixColumns steps.


\begin{DoxyItemize}
\item INPUT: a message m of type msgType.
\end{DoxyItemize}


\begin{DoxyItemize}
\item OUTPUT: the message m elaborated by shift rows and mix columns steps. 
\end{DoxyItemize}

Implements \hyperlink{classBunny}{Bunny$<$ 128, nb\_\-key, 8, nround $>$}.

\hypertarget{classBunnyAES_a253e8c3c0f1bb5546d59d2b15f75fef2}{
\index{BunnyAES@{BunnyAES}!mixingLayerInverse@{mixingLayerInverse}}
\index{mixingLayerInverse@{mixingLayerInverse}!BunnyAES@{BunnyAES}}
\subsubsection[{mixingLayerInverse}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf msgType} {\bf BunnyAES}$<$ nb\_\-key, nround $>$::mixingLayerInverse (
\begin{DoxyParamCaption}
\item[{{\bf msgType}}]{m}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classBunnyAES_a253e8c3c0f1bb5546d59d2b15f75fef2}


Mixing Layer Inverse STEP. 

Combinations of the MixColumnsInverse and the ShiftRowsInverse steps.


\begin{DoxyItemize}
\item INPUT: a message m of type msgType.
\end{DoxyItemize}


\begin{DoxyItemize}
\item OUTPUT: the message m elaborated by the inverse of mix columns and then the inverse of shift rows steps. 
\end{DoxyItemize}

Implements \hyperlink{classBunny}{Bunny$<$ 128, nb\_\-key, 8, nround $>$}.

\hypertarget{classBunnyAES_aa0ce40989f0c2661dd1a8b4ec293d317}{
\index{BunnyAES@{BunnyAES}!sbox@{sbox}}
\index{sbox@{sbox}!BunnyAES@{BunnyAES}}
\subsubsection[{sbox}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf sboxType} {\bf BunnyAES}$<$ nb\_\-key, nround $>$::sbox (
\begin{DoxyParamCaption}
\item[{unsigned}]{nbox, }
\item[{{\bf sboxType}}]{x}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classBunnyAES_aa0ce40989f0c2661dd1a8b4ec293d317}


S-\/box table. 

This finction works with 8 bits.


\begin{DoxyItemize}
\item INPUT: an element x of type sboxType.
\end{DoxyItemize}


\begin{DoxyItemize}
\item OUTPUT: an element of type sboxType elaborated by the sbox.
\end{DoxyItemize}

Note: the parameter nbox is not used, but has to be inserted. 

Implements \hyperlink{classBunny}{Bunny$<$ 128, nb\_\-key, 8, nround $>$}.

\hypertarget{classBunnyAES_a6446341df28410a45e85f8522e691b8f}{
\index{BunnyAES@{BunnyAES}!sBox@{sBox}}
\index{sBox@{sBox}!BunnyAES@{BunnyAES}}
\subsubsection[{sBox}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf msgType} {\bf BunnyAES}$<$ nb\_\-key, nround $>$::sBox (
\begin{DoxyParamCaption}
\item[{{\bf msgType}}]{m}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classBunnyAES_a6446341df28410a45e85f8522e691b8f}


AES S-\/box STEP. 

This function receives a message and applies the sboxes as many times as needed (it uses alwayas the same sbox table):

m = (m\_\-1, m\_\-2, ..., m\_\-3) ===$>$ (sbox\_\-1(m\_\-1), sbox\_\-2(m\_\-2), ..., sbox\_\-r(m\_\-r))


\begin{DoxyItemize}
\item INPUT: a message m of type msgType.
\end{DoxyItemize}


\begin{DoxyItemize}
\item OUTPUT: the message m elaborated by the sbox. 
\end{DoxyItemize}

Reimplemented from \hyperlink{classBunny_abc2a9871d81718662a458253e132d93b}{Bunny$<$ 128, nb\_\-key, 8, nround $>$}.

\hypertarget{classBunnyAES_a8716bb1ac25ef47c008baa2b352b3c17}{
\index{BunnyAES@{BunnyAES}!sboxInverse@{sboxInverse}}
\index{sboxInverse@{sboxInverse}!BunnyAES@{BunnyAES}}
\subsubsection[{sboxInverse}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf sboxType} {\bf BunnyAES}$<$ nb\_\-key, nround $>$::sboxInverse (
\begin{DoxyParamCaption}
\item[{unsigned}]{nbox, }
\item[{{\bf sboxType}}]{x}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classBunnyAES_a8716bb1ac25ef47c008baa2b352b3c17}


Inverse of the sbox. 

This finction works with 8 bits.


\begin{DoxyItemize}
\item INPUT: an element x of type sboxType.
\end{DoxyItemize}


\begin{DoxyItemize}
\item OUTPUT: an element of type sboxType elaborated by the inverse of the sbox function.
\end{DoxyItemize}

Note: the parameter nbox is not used, but has to be inserted. 

Implements \hyperlink{classBunny}{Bunny$<$ 128, nb\_\-key, 8, nround $>$}.

\hypertarget{classBunnyAES_a1df1442be28c0d9b21cf8fe0f226801f}{
\index{BunnyAES@{BunnyAES}!shiftRows@{shiftRows}}
\index{shiftRows@{shiftRows}!BunnyAES@{BunnyAES}}
\subsubsection[{shiftRows}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf msgType} {\bf BunnyAES}$<$ nb\_\-key, nround $>$::shiftRows (
\begin{DoxyParamCaption}
\item[{{\bf msgType}}]{m}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBunnyAES_a1df1442be28c0d9b21cf8fe0f226801f}


ShiftRows STEP. 

It is AES shift rows. Works for msgType of 128 bits, grouped in a 4x4 matrix of 16 bytes.


\begin{DoxyItemize}
\item INPUT: a message m of type msgType.
\end{DoxyItemize}


\begin{DoxyItemize}
\item OUTPUT: the message m elaborated by the shiftrow step. 
\end{DoxyItemize}\hypertarget{classBunnyAES_aeea48a3686fbea4a4948763a019d7af7}{
\index{BunnyAES@{BunnyAES}!shiftRowsInv@{shiftRowsInv}}
\index{shiftRowsInv@{shiftRowsInv}!BunnyAES@{BunnyAES}}
\subsubsection[{shiftRowsInv}]{\setlength{\rightskip}{0pt plus 5cm}template$<$unsigned nb\_\-key, unsigned nround$>$ {\bf BunnyAES}$<$ nb\_\-key, nround $>$::{\bf msgType} {\bf BunnyAES}$<$ nb\_\-key, nround $>$::shiftRowsInv (
\begin{DoxyParamCaption}
\item[{{\bf msgType}}]{m}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classBunnyAES_aeea48a3686fbea4a4948763a019d7af7}


ShiftRows Inverse STEP. 

Does the opposite operation as the ShiftRows. 

The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
Headers/BunnyAES.h\item 
Headers/BunnyAES.hxx\end{DoxyCompactItemize}
