\hypertarget{group__BC__m}{\section{Block ciphers} \label{group__BC__m}\index{Block ciphers@{Block ciphers}} } Collaboration diagram for Block ciphers\-: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{group__BC__m} \end{center} \end{figure} \subsection*{Files} \begin{DoxyCompactItemize} \item file \hyperlink{aes_8h}{aes.\-h} \begin{DoxyCompactList}\small\item\em A\-E\-S block cipher, as specified by N\-I\-S\-T F\-I\-P\-S 197. \end{DoxyCompactList}\item file \hyperlink{beecrypt_8h}{beecrypt.\-h} \begin{DoxyCompactList}\small\item\em Bee\-Crypt A\-P\-I, headers. \end{DoxyCompactList}\item file \hyperlink{blockmode_8h}{blockmode.\-h} \begin{DoxyCompactList}\small\item\em Blockcipher operation modes. \end{DoxyCompactList}\item file \hyperlink{blockpad_8h}{blockpad.\-h} \begin{DoxyCompactList}\small\item\em Blockcipher padding algorithms. \end{DoxyCompactList}\item file \hyperlink{blowfish_8h}{blowfish.\-h} \begin{DoxyCompactList}\small\item\em Blowfish block cipher. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Data Structures} \begin{DoxyCompactItemize} \item struct \hyperlink{structblockCipher}{block\-Cipher} \begin{DoxyCompactList}\small\item\em Holds information and pointers to code specific to each cipher. \end{DoxyCompactList}\item struct \hyperlink{structblockCipherContext}{block\-Cipher\-Context} \begin{DoxyCompactList}\small\item\em Holds a pointer to a blockcipher as well as its parameters. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Typedefs} \begin{DoxyCompactItemize} \item typedef int($\ast$ \hyperlink{group__BC__m_ga4bb0a804ab2c38ac56120f1cd35600b3}{block\-Cipher\-Setup} )(\hyperlink{group__BC__m_gaa6f6ba122e489fd3c3923c83cb55dae0}{block\-Cipher\-Param} $\ast$, const \hyperlink{api_8h_ab8ef12fab634c171394422d0ee8baf94}{byte} $\ast$, size\-\_\-t, \hyperlink{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558}{cipher\-Operation}) \begin{DoxyCompactList}\small\item\em Prototype definition for a setup function. \end{DoxyCompactList}\item typedef void \hyperlink{group__BC__m_gaa6f6ba122e489fd3c3923c83cb55dae0}{block\-Cipher\-Param} \begin{DoxyCompactList}\small\item\em Placeholder type definition for blockcipher parameters. \end{DoxyCompactList}\item typedef int($\ast$ \hyperlink{group__BC__m_ga40aeffa20f977393fbf10378ef466c25}{block\-Cipher\-Set\-I\-V} )(\hyperlink{group__BC__m_gaa6f6ba122e489fd3c3923c83cb55dae0}{block\-Cipher\-Param} $\ast$, const \hyperlink{api_8h_ab8ef12fab634c171394422d0ee8baf94}{byte} $\ast$) \begin{DoxyCompactList}\small\item\em Prototype definition for an initialization vector setup function. \end{DoxyCompactList}\item typedef int($\ast$ \hyperlink{group__BC__m_gae6164c8a42013a0b3aadba1bccd416af}{block\-Cipher\-Set\-C\-T\-R} )(\hyperlink{group__BC__m_gaa6f6ba122e489fd3c3923c83cb55dae0}{block\-Cipher\-Param} $\ast$, const \hyperlink{api_8h_ab8ef12fab634c171394422d0ee8baf94}{byte} $\ast$, size\-\_\-t) \begin{DoxyCompactList}\small\item\em Prototype definition for an initialization vector setup function. \end{DoxyCompactList}\item typedef int($\ast$ \hyperlink{group__BC__m_ga49ec3da318c2c3ab4464c8dbb38617c5}{block\-Cipher\-Rawcrypt} )(\hyperlink{group__BC__m_gaa6f6ba122e489fd3c3923c83cb55dae0}{block\-Cipher\-Param} $\ast$, uint32\-\_\-t $\ast$, const uint32\-\_\-t $\ast$) \begin{DoxyCompactList}\small\item\em Prototype for a {\itshape raw} encryption or decryption function. \end{DoxyCompactList}\item typedef int($\ast$ \hyperlink{group__BC__m_gacc003baa6ffa4b315283282b19f081ec}{block\-Cipher\-Modcrypt} )(\hyperlink{group__BC__m_gaa6f6ba122e489fd3c3923c83cb55dae0}{block\-Cipher\-Param} $\ast$, uint32\-\_\-t $\ast$, const uint32\-\_\-t $\ast$, unsigned int) \begin{DoxyCompactList}\small\item\em Prototype for a {\itshape encryption} or decryption function which operates on multiple blocks in a certain mode. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Enumerations} \begin{DoxyCompactItemize} \item enum \hyperlink{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558}{cipher\-Operation} \{ \hyperlink{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558a8d67fb0581b95ff8d49840ebfaedffd4}{N\-O\-C\-R\-Y\-P\-T}, \hyperlink{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558a606f7451c00ce2831f56eceb9ab6bb96}{E\-N\-C\-R\-Y\-P\-T}, \hyperlink{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558a3179dbaa639c5906029876801dcf4e11}{D\-E\-C\-R\-Y\-P\-T} \} \begin{DoxyCompactList}\small\item\em Specifies whether to perform encryption or decryption. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection{Detailed Description} \subsection{Typedef Documentation} \hypertarget{group__BC__m_gacc003baa6ffa4b315283282b19f081ec}{\index{Block ciphers@{Block ciphers}!block\-Cipher\-Modcrypt@{block\-Cipher\-Modcrypt}} \index{block\-Cipher\-Modcrypt@{block\-Cipher\-Modcrypt}!Block ciphers@{Block ciphers}} \subsubsection[{block\-Cipher\-Modcrypt}]{\setlength{\rightskip}{0pt plus 5cm}int($\ast$ block\-Cipher\-Modcrypt)({\bf block\-Cipher\-Param} $\ast$bp, uint32\-\_\-t $\ast$dst, const uint32\-\_\-t $\ast$src, unsigned int nblocks)}}\label{group__BC__m_gacc003baa6ffa4b315283282b19f081ec} Prototype for a {\itshape encryption} or decryption function which operates on multiple blocks in a certain mode. \begin{DoxyParams}{Parameters} {\em bp} & The blockcipher's parameters. \\ \hline {\em dst} & The ciphertext address; must be aligned on 32-\/bit boundary. \\ \hline {\em src} & The cleartext address; must be aligned on 32-\/bit boundary. \\ \hline {\em nblocks} & The number of blocks to process. \\ \hline \end{DoxyParams} \begin{DoxyRetVals}{Return values} {\em 0} & on success. \\ \hline {\em -\/1} & on failure. \\ \hline \end{DoxyRetVals} \hypertarget{group__BC__m_gaa6f6ba122e489fd3c3923c83cb55dae0}{\index{Block ciphers@{Block ciphers}!block\-Cipher\-Param@{block\-Cipher\-Param}} \index{block\-Cipher\-Param@{block\-Cipher\-Param}!Block ciphers@{Block ciphers}} \subsubsection[{block\-Cipher\-Param}]{\setlength{\rightskip}{0pt plus 5cm}void {\bf block\-Cipher\-Param}}}\label{group__BC__m_gaa6f6ba122e489fd3c3923c83cb55dae0} Placeholder type definition for blockcipher parameters. \begin{DoxySeeAlso}{See Also} \hyperlink{structaesParam}{aes\-Param}, \hyperlink{structblowfishParam}{blowfish\-Param}. \end{DoxySeeAlso} \hypertarget{group__BC__m_ga49ec3da318c2c3ab4464c8dbb38617c5}{\index{Block ciphers@{Block ciphers}!block\-Cipher\-Rawcrypt@{block\-Cipher\-Rawcrypt}} \index{block\-Cipher\-Rawcrypt@{block\-Cipher\-Rawcrypt}!Block ciphers@{Block ciphers}} \subsubsection[{block\-Cipher\-Rawcrypt}]{\setlength{\rightskip}{0pt plus 5cm}int($\ast$ block\-Cipher\-Rawcrypt)({\bf block\-Cipher\-Param} $\ast$bp, uint32\-\_\-t $\ast$dst, const uint32\-\_\-t $\ast$src)}}\label{group__BC__m_ga49ec3da318c2c3ab4464c8dbb38617c5} Prototype for a {\itshape raw} encryption or decryption function. \begin{DoxyParams}{Parameters} {\em bp} & The blockcipher's parameters. \\ \hline {\em dst} & The ciphertext address; must be aligned on 32-\/bit boundary. \\ \hline {\em src} & The cleartext address; must be aligned on 32-\/bit boundary. \\ \hline \end{DoxyParams} \begin{DoxyRetVals}{Return values} {\em 0} & on success. \\ \hline {\em -\/1} & on failure. \\ \hline \end{DoxyRetVals} \hypertarget{group__BC__m_gae6164c8a42013a0b3aadba1bccd416af}{\index{Block ciphers@{Block ciphers}!block\-Cipher\-Set\-C\-T\-R@{block\-Cipher\-Set\-C\-T\-R}} \index{block\-Cipher\-Set\-C\-T\-R@{block\-Cipher\-Set\-C\-T\-R}!Block ciphers@{Block ciphers}} \subsubsection[{block\-Cipher\-Set\-C\-T\-R}]{\setlength{\rightskip}{0pt plus 5cm}int($\ast$ block\-Cipher\-Set\-C\-T\-R)({\bf block\-Cipher\-Param} $\ast$bp, const {\bf byte} $\ast$nivz, size\-\_\-t counter)}}\label{group__BC__m_gae6164c8a42013a0b3aadba1bccd416af} Prototype definition for an initialization vector setup function. \begin{DoxyParams}{Parameters} {\em bp} & The blockcipher's parameters. \\ \hline {\em nivz} & The concatenation of the Nonce, I\-V and padding Zero bytes. \\ \hline {\em counter} & The blockciphers' counter value. \\ \hline \end{DoxyParams} \begin{DoxyNote}{Note} nivz length must be equal to the cipher's block size. \end{DoxyNote} \begin{DoxyRetVals}{Return values} {\em 0} & on success. \\ \hline {\em -\/1} & on failure. \\ \hline \end{DoxyRetVals} \hypertarget{group__BC__m_ga40aeffa20f977393fbf10378ef466c25}{\index{Block ciphers@{Block ciphers}!block\-Cipher\-Set\-I\-V@{block\-Cipher\-Set\-I\-V}} \index{block\-Cipher\-Set\-I\-V@{block\-Cipher\-Set\-I\-V}!Block ciphers@{Block ciphers}} \subsubsection[{block\-Cipher\-Set\-I\-V}]{\setlength{\rightskip}{0pt plus 5cm}int($\ast$ block\-Cipher\-Set\-I\-V)({\bf block\-Cipher\-Param} $\ast$bp, const {\bf byte} $\ast$iv)}}\label{group__BC__m_ga40aeffa20f977393fbf10378ef466c25} Prototype definition for an initialization vector setup function. \begin{DoxyParams}{Parameters} {\em bp} & The blockcipher's parameters. \\ \hline {\em iv} & The blockciphers' I\-V value. \\ \hline \end{DoxyParams} \begin{DoxyNote}{Note} iv length must be equal to the cipher's block size. \end{DoxyNote} \begin{DoxyRetVals}{Return values} {\em 0} & on success. \\ \hline {\em -\/1} & on failure. \\ \hline \end{DoxyRetVals} \hypertarget{group__BC__m_ga4bb0a804ab2c38ac56120f1cd35600b3}{\index{Block ciphers@{Block ciphers}!block\-Cipher\-Setup@{block\-Cipher\-Setup}} \index{block\-Cipher\-Setup@{block\-Cipher\-Setup}!Block ciphers@{Block ciphers}} \subsubsection[{block\-Cipher\-Setup}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ block\-Cipher\-Setup)({\bf block\-Cipher\-Param} $\ast$, const {\bf byte} $\ast$, size\-\_\-t, {\bf cipher\-Operation})}}\label{group__BC__m_ga4bb0a804ab2c38ac56120f1cd35600b3} Prototype definition for a setup function. \subsection{Enumeration Type Documentation} \hypertarget{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558}{\index{Block ciphers@{Block ciphers}!cipher\-Operation@{cipher\-Operation}} \index{cipher\-Operation@{cipher\-Operation}!Block ciphers@{Block ciphers}} \subsubsection[{cipher\-Operation}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf cipher\-Operation}}}\label{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558} Specifies whether to perform encryption or decryption. \begin{Desc} \item[Enumerator]\par \begin{description} \index{N\-O\-C\-R\-Y\-P\-T@{N\-O\-C\-R\-Y\-P\-T}!Block ciphers@{Block ciphers}}\index{Block ciphers@{Block ciphers}!N\-O\-C\-R\-Y\-P\-T@{N\-O\-C\-R\-Y\-P\-T}}\item[{\em \hypertarget{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558a8d67fb0581b95ff8d49840ebfaedffd4}{N\-O\-C\-R\-Y\-P\-T}\label{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558a8d67fb0581b95ff8d49840ebfaedffd4} }]\index{E\-N\-C\-R\-Y\-P\-T@{E\-N\-C\-R\-Y\-P\-T}!Block ciphers@{Block ciphers}}\index{Block ciphers@{Block ciphers}!E\-N\-C\-R\-Y\-P\-T@{E\-N\-C\-R\-Y\-P\-T}}\item[{\em \hypertarget{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558a606f7451c00ce2831f56eceb9ab6bb96}{E\-N\-C\-R\-Y\-P\-T}\label{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558a606f7451c00ce2831f56eceb9ab6bb96} }]\index{D\-E\-C\-R\-Y\-P\-T@{D\-E\-C\-R\-Y\-P\-T}!Block ciphers@{Block ciphers}}\index{Block ciphers@{Block ciphers}!D\-E\-C\-R\-Y\-P\-T@{D\-E\-C\-R\-Y\-P\-T}}\item[{\em \hypertarget{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558a3179dbaa639c5906029876801dcf4e11}{D\-E\-C\-R\-Y\-P\-T}\label{group__BC__m_gace10d4c0b0409d35c6a703d6445fc558a3179dbaa639c5906029876801dcf4e11} }]\end{description} \end{Desc}