\section{Technologieübersicht}

\begin{figure}[hbt]
\centering
\includegraphics[width=\linewidth]{img/classDiagram/HybridCrypt.png}
\caption[HybridCrypt UML]{Die Verwendung und Abhängigkeiten von HybridCrypt.}
\label{fig:HybridCryptUml}
\end{figure}

\subsection{HybridCrypt}

HybridCrypt dient zur Abstraktion der unterliegenden OpenSSL C-Aufrufe. Darüber hinaus kümmert es sich um die komplette Schlüsselverwaltung und auch das einlesen und öffnen von Dateien. Der Schlüssel des Nutzers wird zur Sicherheit nur innerhalb der Klasse vorgehalten und ist bis auf über den Export nicht zu bekommen. Um das Verschlüsseln mit mehreren Schlüsseln zu erlauben, wurde das vorgegeben Dateiformat erweitert und erlaubt somit nun mehrere RSA-Blöcke. Siehe Abb.\ref{fig:CryptLogFileFormat} für eine genauere Erläuterung des Formates.

\begin{figure}[hbt]
	\centering
	\includegraphics[width=\linewidth]{img/fileFormat/CryptLog.png}
	\caption[CryptLog Dateiformat]{Das Dateiformat von CryptLog für verschlüsselte Dateien.}
	\label{fig:CryptLogFileFormat}
\end{figure}

\subsection{CryptException}

Die Hauptfunktion Klasse, ist eine Fehlermeldung für den Nutzer und einen Exitcode für die Konsole zur Verfügung zu stellen. Der Fehlercode kommt aus dem ReturnCode \lstinline|enum|, welches darüber hinaus auch ermöglicht, den Fehlertyp jeder Instanz festzustellen. 

\subsection{Verschlüsselung}

\subsubsection{RSA}

