The creation of an electronic signature and subsequent verification is a complicated task for which the software created has to fit a number of standards. Since its use has been based on statutory principles, there are slowly more initiatives to introduce technology to a wider range of hosts. My goal is to create a valid electronic signature and to be able to check it.
In the implementation, I use the Digital Signature Service (later DSS) software library written in Java. This has been created to manage the signature, therefore with a few minor changes it gives you a chance to sign features on Android. What is new in my work is the fact that the actual signature is made on the mobile device. In contrast, in most cases of implementations the signature is executed by a server, which can only be accessed via network communication from a mobile platform in which case there is a lot of extra network traffic.
After the introduction, I will present the necessary technologies, on the first 20 pages, then introduce the standards that are related to the subject. In the second part of the documentation I will discuss the structure and modifications of the software that I have prepared. In addition I will show the usage of basic framework to the reader, which did not change significantly during the changes.
The completed application is capable of managing many types of signatures as well as allowing the user to also create signature containers. Validation is also an option based on the revocation lists discussed later. To make this happen I had to get to know the DSS library, and then modify a large portion of it. In reality what my job mostly consisted of was working in this section. After leaving the incompatible dependencies, it required an engineering solution to implement the same features on the Android platform.
In addition I was able to form a mobile application. I tried to create a user-friendly look and to expand it with useful document import / export options. Thus the signed document can be sent by e-mail, easily accessed from any cloud-based storage (Dropbox, Google Drive) or can be shared via social networks.
The software is built in two layers. The bottom layer of the system architecture is the DSS library I have rewritten, and built on this is the purely Android specific layer. I can say that with the list of new compatible dependencies I use the modified DSS library can be reused. My work is the beginning of a new initiative, as the DSS library itself is also constantly being developed. I hope what I have written here can be used as a reliable starting point when it comes to releasing updated versions.