Open Source Software Library
The Java code (Java 1.6) of PersoApp’s Open Source software library is available for free via the SVN repository of Google Code at https://persoapp.googlecode.com. It is licensed under LGPL v3. The byte code JAR file as a ZIP archive is together with some Linux packages also available at the download section of the PersoApp homepage.
Please use the issue tracker of PersoApp for your comments and questions to the source code. For other topics, e.g. use cases, security, usability, and privacy, please use the PersoApp forum.
Architecture
The architecture of the PersoApp Open Source Software Library is based on the technical guidelines (TR) of the Federal Office for Information Security (BSI). It consists mainly of the following modules:
- Core-Lib
- GUI
- Crypto-Algs
- Misc
Each module is a closed implementation and interacts with other modules via its API. This allows to develop individual modules on their own or to replace them, without changing other, dependent modules. The following figure shows the architecture with the modules as building blocks.
The Core-Lib consists of all sub modules for the electronic identification functionality. It requires a communication module for the data exchange with the eID server (TLS) and with the smart card (PC/SC). Another important part of Core-Lib is the local API server. The local API server provides the electronic identification function to the other IT systems integrated on the same target platform/runtime environment. These include among others web browser and Internet applications without the need of specific browser plugins. The GUI module consists of sub modules for the interaction with the owner of the new German national ID card and the Core-Lib. This implies user guidance, guidelines, and PIN management. Crypto-Algs is the crypto layer supporting the Core-Lib with an implementation of the necessary cryptographic algorithms, e.g. for encryption and authentication.
Core-Lib
The Core-Lib consists of the following sub modules.
- Network Layer
- ISO 24727 Services
- Card Services
- Misc
The Core-Lib is separate from the GUI so that an individualized GUI can be designed and implemented for each application.
Network Layer
Network Layer is an eID client interface for network communication, for example towards an Internet application. The components are:
- Webservice Dispatcher
- PAOS Client
- TLS1.1+
- Local API Server
ISO 24727 Services
ISO 24727 Services provides the core functions of an eID client and consists of the following components:
- Management
- SAL (Service Abstraction Layer)
- IFD (Interface Device)
- Protocol Service
Card Service
The Card Service provides the “interface” to the smart card, here the new German national ID card. It is responsible for message exchange between an eID client and the ID card. The Card Service consists of:
- eCard Handler/ PACE
- Transport Provider
- PC/SC
Crypto-Algs
Crypto-Algs (Cryptographic Algorithms) represents the crypto layer and unifies the usage of cryptographic primitives and protocols for other components and higher cryptographic eID client protocols.
GUI
The GUI module serves for the implementation of an interface to an owner of a smart card. The PersoApp Open Source Software Library will provide a rudimentary GUI with dialogues for using the electronic identification functionality with the PersoApp demo and test service.
Misc
This module serves as a bracket for all other submodules, e.g. for the configuration modules. It enables software configuration such as for cryptographic operations.


Deutsch
English