commit fd891aee4088d0166a15d179725c1e14454f584d parent 3bd0baca6426730c3a2abc8e396721b074cfadb5 Author: Matyja Lukas Adam <lukas.matyja@students.bfh.ch> Date: Wed, 29 May 2024 10:14:59 +0200 [doc] add flow chart pngs Diffstat:
5 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/doc/thesis/chapters/implementation/implementation.tex b/doc/thesis/chapters/implementation/implementation.tex @@ -16,10 +16,20 @@ The get keys request returns all valid donation unit public keys offered by the \subsubsection{Manage Charities} In order for a charity to be able to issue receipts it must be registered by the Donau. To do so the Donau provides an API to manage charities. It is recommended that only the Donau admin can update charities while the charity itself should be able to request their issued donation receipt state to keep track of the set donation limit. The state includes the maximum donation amount and the current donated amount for the charity of the current year. +\begin{figure}[ht] +\includegraphics[width=1\textwidth]{donau_flow_register_charity} +\caption{flow chart register charity} \label{fig:donau_flow_register_charity} +\end{figure} + \subsubsection{Issue Receipts} %TODO describe BUDI, donation unit -> glossary? Only recognized charities requesting issue receipts for their donors (see section xx). An post issue receipt request includes an array of BUDI-Key-Pairs. A BUDI-Key-Pair consists of a BUDI and a hash of a public donation unit key. The charity also signs the request with an EdDSA private key. The corresponding public key was given to the Donau at the registration of the charity. After the Donau checked the signature from the charity it signs the BUDIs with the corresponding donation unit private key. Before the signatures are returned to the charity the Donau saves a hash of the request and all donation unit signatures to make the request idempotent (see database section). +\begin{figure}[ht] +\includegraphics[width=1\textwidth]{donau_flow_issue_receipt} +%\caption{flow chart issue receipt} \label{fig:donau_flow_issue_receipt} +\end{figure} + \subsubsection{Submit Receipts} %TODO describe donation receipt -> glossary? The post submit route is used by the donor to summarize his or her donation receipts into one donation statement EdDSA signature. The request is composed of the donation receipt, the corresponding year and the hash of the salted tax id. Processing the request the Donau checks the validity of the donation receipts and searches after more saved donation receipts made in the requested year. The EdDSA signature over the total amount of the value of the donation units of all donation receipts, the hash of the salted tax id and the year forms the donation statement. The donation statement and the receipts are stored in the database (see database). @@ -27,6 +37,11 @@ The post submit route is used by the donor to summarize his or her donation rece \subsubsection{Donation Statement} Even the donation statement will not be returned after a submit request, a donation statement get request can be made for a specified year and a salted and hashed tax id. +\begin{figure}[ht] +\includegraphics[width=1\textwidth]{donau_flow_submit_receipt} +%\caption{flow chart submit receipt} \label{fig:donau_flow_submit_receipt} +\end{figure} + \subsection{Donau Client} The REST client removes some of the complexity of sending requests to the Donau Server. It converts request parameters into JSON and parses JSON responses into a usable C format. What the exact queries are and how they look like is already described in the chapter xx Donau REST API. @@ -100,7 +115,5 @@ History of the yearly donations for each charity. \section{Android Verification App} The android app is part of the verification process used by the tax authority to check the donation statement (see xx). -It is possible to define an URI scheme for an android app. The app opens when the link is activated. The arguments defined in chapter Protocol xx are separated with ??? %FIXME: should the length of binary data also be included? - -To ensure that as many characters as possible can be stored in the QR code, the QR code should be alphanumeric encoded \footnote{alphanumeric encoded QR codes have a capaticity of up to 4296 characters and support only a few special characters}. This means that each argument is stringified. To ensure that no special characters are used for binary data, the hash and the signature are encoded in ASCII using CrockfordBase32. +It is possible to define an URI scheme for an android app. The app opens when the link is activated. The arguments defined in chapter Protocol xx are separated with slashes. To ensure that as many characters as possible can be stored in the QR code, the QR code should be alphanumeric encoded\footnote{alphanumeric encoded QR codes have a capaticity of up to 4296 characters and support only a few special characters}. This means that each argument is stringified. To ensure that no special characters are used for binary data, the hash and the signature are encoded in ASCII using CrockfordBase32. %TODO: Add Link example diff --git a/doc/thesis/images/donau_flow_issue_receipt.png b/doc/thesis/images/donau_flow_issue_receipt.png Binary files differ. diff --git a/doc/thesis/images/donau_flow_register_charity.png b/doc/thesis/images/donau_flow_register_charity.png Binary files differ. diff --git a/doc/thesis/images/donau_flow_submit_receipt.png b/doc/thesis/images/donau_flow_submit_receipt.png Binary files differ. diff --git a/doc/thesis/thesis.pdf b/doc/thesis/thesis.pdf Binary files differ.