\hypertarget{base64_8h}{\section{include/beecrypt/base64.h File Reference} \label{base64_8h}\index{include/beecrypt/base64.\-h@{include/beecrypt/base64.\-h}} } Base64 encoding and decoding, headers. {\ttfamily \#include \char`\"{}beecrypt/beecrypt.\-h\char`\"{}}\\* Include dependency graph for base64.\-h\-: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{base64_8h__incl} \end{center} \end{figure} \subsection*{Macros} \begin{DoxyCompactItemize} \item \#define \hyperlink{base64_8h_a03c07933ddc4e5433298971545e0cc25}{B64\-D\-E\-C\-O\-D\-E\-\_\-\-W\-H\-I\-T\-E\-S\-P\-A\-C\-E}~\char`\"{} \textbackslash{}f\textbackslash{}n\textbackslash{}r\textbackslash{}t\textbackslash{}v\char`\"{} \item \#define \hyperlink{base64_8h_af253d2a2aa49c121308c9673b6ad40d3}{B64\-E\-N\-C\-O\-D\-E\-\_\-\-C\-H\-A\-R\-S\-\_\-\-P\-E\-R\-\_\-\-L\-I\-N\-E}~72 \item \#define \hyperlink{base64_8h_aa0f9a215933ac9e105b3e62117736b7d}{B64\-E\-N\-C\-O\-D\-E\-\_\-\-E\-O\-L\-S\-T\-R}~\char`\"{}\textbackslash{}n\char`\"{} \end{DoxyCompactItemize} \subsection*{Functions} \begin{DoxyCompactItemize} \item char $\ast$ \hyperlink{base64_8h_a6492c5e1dc7b8a53ce420d92f6ad6e67}{b64encode} (const void $\ast$data, size\-\_\-t ns) \item char $\ast$ \hyperlink{base64_8h_a8420855d61134f07a28a1cf53dc7cafa}{b64crc} (const unsigned char $\ast$data, size\-\_\-t ns) \item int \hyperlink{base64_8h_a0b3128126ca31a7187c998e81af1ff52}{b64decode} (const char $\ast$s, void $\ast$$\ast$datap, size\-\_\-t $\ast$lenp) \item char $\ast$ \hyperlink{base64_8h_ab0aa5a4c2d4d8d0321ac167397cac66f}{b64enc} (const \hyperlink{structmemchunk}{memchunk} $\ast$) \item \hyperlink{structmemchunk}{memchunk} $\ast$ \hyperlink{base64_8h_a57a00a44d1f660a73edb5ceab221c091}{b64dec} (const char $\ast$) \end{DoxyCompactItemize} \subsection*{Variables} \begin{DoxyCompactItemize} \item const char $\ast$ \hyperlink{base64_8h_aa6cc813df62a79a36d49ccc79283933b}{b64decode\-\_\-whitespace} \item int \hyperlink{base64_8h_a2a178e7716aa573ae431466be5d88b29}{b64encode\-\_\-chars\-\_\-per\-\_\-line} \item const char $\ast$ \hyperlink{base64_8h_a4a1b983f10ce83151b0ef69e433f4b62}{b64encode\-\_\-eolstr} \end{DoxyCompactItemize} \subsection{Detailed Description} Base64 encoding and decoding, headers. \begin{DoxyAuthor}{Author} Bob Deblier \href{mailto:bob.deblier@telenet.be}{\tt bob.\-deblier@telenet.\-be} \end{DoxyAuthor} \subsection{Macro Definition Documentation} \hypertarget{base64_8h_a03c07933ddc4e5433298971545e0cc25}{\index{base64.\-h@{base64.\-h}!B64\-D\-E\-C\-O\-D\-E\-\_\-\-W\-H\-I\-T\-E\-S\-P\-A\-C\-E@{B64\-D\-E\-C\-O\-D\-E\-\_\-\-W\-H\-I\-T\-E\-S\-P\-A\-C\-E}} \index{B64\-D\-E\-C\-O\-D\-E\-\_\-\-W\-H\-I\-T\-E\-S\-P\-A\-C\-E@{B64\-D\-E\-C\-O\-D\-E\-\_\-\-W\-H\-I\-T\-E\-S\-P\-A\-C\-E}!base64.h@{base64.\-h}} \subsubsection[{B64\-D\-E\-C\-O\-D\-E\-\_\-\-W\-H\-I\-T\-E\-S\-P\-A\-C\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define B64\-D\-E\-C\-O\-D\-E\-\_\-\-W\-H\-I\-T\-E\-S\-P\-A\-C\-E~\char`\"{} \textbackslash{}f\textbackslash{}n\textbackslash{}r\textbackslash{}t\textbackslash{}v\char`\"{}}}\label{base64_8h_a03c07933ddc4e5433298971545e0cc25} \hypertarget{base64_8h_af253d2a2aa49c121308c9673b6ad40d3}{\index{base64.\-h@{base64.\-h}!B64\-E\-N\-C\-O\-D\-E\-\_\-\-C\-H\-A\-R\-S\-\_\-\-P\-E\-R\-\_\-\-L\-I\-N\-E@{B64\-E\-N\-C\-O\-D\-E\-\_\-\-C\-H\-A\-R\-S\-\_\-\-P\-E\-R\-\_\-\-L\-I\-N\-E}} \index{B64\-E\-N\-C\-O\-D\-E\-\_\-\-C\-H\-A\-R\-S\-\_\-\-P\-E\-R\-\_\-\-L\-I\-N\-E@{B64\-E\-N\-C\-O\-D\-E\-\_\-\-C\-H\-A\-R\-S\-\_\-\-P\-E\-R\-\_\-\-L\-I\-N\-E}!base64.h@{base64.\-h}} \subsubsection[{B64\-E\-N\-C\-O\-D\-E\-\_\-\-C\-H\-A\-R\-S\-\_\-\-P\-E\-R\-\_\-\-L\-I\-N\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define B64\-E\-N\-C\-O\-D\-E\-\_\-\-C\-H\-A\-R\-S\-\_\-\-P\-E\-R\-\_\-\-L\-I\-N\-E~72}}\label{base64_8h_af253d2a2aa49c121308c9673b6ad40d3} \hypertarget{base64_8h_aa0f9a215933ac9e105b3e62117736b7d}{\index{base64.\-h@{base64.\-h}!B64\-E\-N\-C\-O\-D\-E\-\_\-\-E\-O\-L\-S\-T\-R@{B64\-E\-N\-C\-O\-D\-E\-\_\-\-E\-O\-L\-S\-T\-R}} \index{B64\-E\-N\-C\-O\-D\-E\-\_\-\-E\-O\-L\-S\-T\-R@{B64\-E\-N\-C\-O\-D\-E\-\_\-\-E\-O\-L\-S\-T\-R}!base64.h@{base64.\-h}} \subsubsection[{B64\-E\-N\-C\-O\-D\-E\-\_\-\-E\-O\-L\-S\-T\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define B64\-E\-N\-C\-O\-D\-E\-\_\-\-E\-O\-L\-S\-T\-R~\char`\"{}\textbackslash{}n\char`\"{}}}\label{base64_8h_aa0f9a215933ac9e105b3e62117736b7d} \subsection{Function Documentation} \hypertarget{base64_8h_a8420855d61134f07a28a1cf53dc7cafa}{\index{base64.\-h@{base64.\-h}!b64crc@{b64crc}} \index{b64crc@{b64crc}!base64.h@{base64.\-h}} \subsubsection[{b64crc}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ b64crc ( \begin{DoxyParamCaption} \item[{const unsigned char $\ast$}]{data, } \item[{size\-\_\-t}]{ns} \end{DoxyParamCaption} )}}\label{base64_8h_a8420855d61134f07a28a1cf53dc7cafa} Encode crc of binary input data into 5 bytes of base64 output. \begin{DoxyParams}{Parameters} {\em data} & binary data \\ \hline {\em ns} & no. bytes of binary data \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} (malloc'd) base64 string \end{DoxyReturn} \hypertarget{base64_8h_a57a00a44d1f660a73edb5ceab221c091}{\index{base64.\-h@{base64.\-h}!b64dec@{b64dec}} \index{b64dec@{b64dec}!base64.h@{base64.\-h}} \subsubsection[{b64dec}]{\setlength{\rightskip}{0pt plus 5cm}{\bf memchunk}$\ast$ b64dec ( \begin{DoxyParamCaption} \item[{const char $\ast$}]{} \end{DoxyParamCaption} )}}\label{base64_8h_a57a00a44d1f660a73edb5ceab221c091} \hypertarget{base64_8h_a0b3128126ca31a7187c998e81af1ff52}{\index{base64.\-h@{base64.\-h}!b64decode@{b64decode}} \index{b64decode@{b64decode}!base64.h@{base64.\-h}} \subsubsection[{b64decode}]{\setlength{\rightskip}{0pt plus 5cm}int b64decode ( \begin{DoxyParamCaption} \item[{const char $\ast$}]{s, } \item[{void $\ast$$\ast$}]{datap, } \item[{size\-\_\-t $\ast$}]{lenp} \end{DoxyParamCaption} )}}\label{base64_8h_a0b3128126ca31a7187c998e81af1ff52} Decode chunks of 4 bytes of base64 input into 3 bytes of binary output. \begin{DoxyParams}{Parameters} {\em s} & base64 string \\ \hline \end{DoxyParams} \begin{DoxyRetVals}{Return values} {\em datap} & address of (malloc'd) binary data \\ \hline {\em lenp} & address of no. bytes of binary data \\ \hline \end{DoxyRetVals} \begin{DoxyReturn}{Returns} 0 on success, 1\-: s == N\-U\-L\-L, 2\-: bad length, 3\-: bad char \end{DoxyReturn} \hypertarget{base64_8h_ab0aa5a4c2d4d8d0321ac167397cac66f}{\index{base64.\-h@{base64.\-h}!b64enc@{b64enc}} \index{b64enc@{b64enc}!base64.h@{base64.\-h}} \subsubsection[{b64enc}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ b64enc ( \begin{DoxyParamCaption} \item[{const {\bf memchunk} $\ast$}]{} \end{DoxyParamCaption} )}}\label{base64_8h_ab0aa5a4c2d4d8d0321ac167397cac66f} \hypertarget{base64_8h_a6492c5e1dc7b8a53ce420d92f6ad6e67}{\index{base64.\-h@{base64.\-h}!b64encode@{b64encode}} \index{b64encode@{b64encode}!base64.h@{base64.\-h}} \subsubsection[{b64encode}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ b64encode ( \begin{DoxyParamCaption} \item[{const void $\ast$}]{data, } \item[{size\-\_\-t}]{ns} \end{DoxyParamCaption} )}}\label{base64_8h_a6492c5e1dc7b8a53ce420d92f6ad6e67} Encode chunks of 3 bytes of binary input into 4 bytes of base64 output. \begin{DoxyParams}{Parameters} {\em data} & binary data \\ \hline {\em ns} & no. bytes of data (0 uses strlen(data)) \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} (malloc'd) base64 string \end{DoxyReturn} \subsection{Variable Documentation} \hypertarget{base64_8h_aa6cc813df62a79a36d49ccc79283933b}{\index{base64.\-h@{base64.\-h}!b64decode\-\_\-whitespace@{b64decode\-\_\-whitespace}} \index{b64decode\-\_\-whitespace@{b64decode\-\_\-whitespace}!base64.h@{base64.\-h}} \subsubsection[{b64decode\-\_\-whitespace}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ b64decode\-\_\-whitespace}}\label{base64_8h_aa6cc813df62a79a36d49ccc79283933b} \textbackslash{} Decode white space character set (default). \hypertarget{base64_8h_a2a178e7716aa573ae431466be5d88b29}{\index{base64.\-h@{base64.\-h}!b64encode\-\_\-chars\-\_\-per\-\_\-line@{b64encode\-\_\-chars\-\_\-per\-\_\-line}} \index{b64encode\-\_\-chars\-\_\-per\-\_\-line@{b64encode\-\_\-chars\-\_\-per\-\_\-line}!base64.h@{base64.\-h}} \subsubsection[{b64encode\-\_\-chars\-\_\-per\-\_\-line}]{\setlength{\rightskip}{0pt plus 5cm}int b64encode\-\_\-chars\-\_\-per\-\_\-line}}\label{base64_8h_a2a178e7716aa573ae431466be5d88b29} \textbackslash{} Encode 72 characters per line (default). \hypertarget{base64_8h_a4a1b983f10ce83151b0ef69e433f4b62}{\index{base64.\-h@{base64.\-h}!b64encode\-\_\-eolstr@{b64encode\-\_\-eolstr}} \index{b64encode\-\_\-eolstr@{b64encode\-\_\-eolstr}!base64.h@{base64.\-h}} \subsubsection[{b64encode\-\_\-eolstr}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ b64encode\-\_\-eolstr}}\label{base64_8h_a4a1b983f10ce83151b0ef69e433f4b62} \textbackslash{} Encode end-\/of-\/line string (default).