Project

General

Profile

Project-Structure » History » Version 8

Tobias Wich, 09/19/2012 03:22 PM

1 1 Detlef Hühnlein
h1. Project-Structure
2 8 Tobias Wich
3
{{>toc}}
4 1 Detlef Hühnlein
5
The overall project structure has been derived from the high level design of the Open eCard App (see [["Sicherheit 2012 submission":https://redmine.vserver-001.urospace.de/attachments/14/Open-eCard-App-2011-12-05.pdf]]) and is depicted in the following figure:
6
7 2 Tobias Wich
!Open-eCard-App-Design_690.6x476.4.png!
8 1 Detlef Hühnlein
9 5 Tobias Wich
10
h1. Modules
11
12
The following modules are derived from the high level project structure.
13
Information about the architecture, data structures and other things can be found in the respective links.
14
15 1 Detlef Hühnlein
h2. wsdef
16
17
Contains web service definitions (.xsd, .wsdl) and related utilities.
18
19 5 Tobias Wich
* *class-list-plugin*
20
* *wsdef-client*
21 1 Detlef Hühnlein
22 5 Tobias Wich
h2. common
23 1 Detlef Hühnlein
24
Contains common utilities and helper classes.
25
26
h2. crypto
27
28
Contains basic crypto modules.
29
30 5 Tobias Wich
* *bouncycastle*
31
  Relocated bouncycastle classes (moved from org.bouncycastle to org.openecard.bouncycastle) with some patches regarding TLS-PSK.
32
* *crypto-common*
33
  Other crypto related code. E.g. ASN.1 classes for EAC and CVC.
34 1 Detlef Hühnlein
35
h2. saml
36
37
Contains the functionality for [["SAML-ECP":http://www.oasis-open.org/committees/download.php/41209/sstc-saml-ecp-v2.0-wd02.pdf]].
38
39
h2. esign
40
41
Contains signature-related functionality.
42
43
h2. transport
44
45
Contains modules related to the transport of messages.
46
47 5 Tobias Wich
* *dispatcher*
48
* *paos*
49
* *tls*
50
  The TLS design can be found [[TLS-Design|here]].
51 1 Detlef Hühnlein
52
h2. gui
53
54 5 Tobias Wich
Contains user interfaces (User Consent) for the different platforms.
55 1 Detlef Hühnlein
56 5 Tobias Wich
* *gui-common*
57
  Data structure definitions and common GUI execution code.
58
* *swing*
59
  Swing based User Consent implementation.
60
* *android*
61
  Android UI based User Consent implementation.
62 1 Detlef Hühnlein
63 5 Tobias Wich
h2. ifd
64 1 Detlef Hühnlein
65 5 Tobias Wich
Contains the interface device (IFD) components for the different platforms. The following figure provides an overview of the relationship between the different ifd modules:
66 1 Detlef Hühnlein
67
!IFD-Module-Structure_656x280.png!
68
69 5 Tobias Wich
* *ifd-common*
70
  Code and data structures common to core and protocol modules.  
71 1 Detlef Hühnlein
72 5 Tobias Wich
* *protocols*
73
  Contains IFD-related trusted channel protocols, which can be used with @EstablishChannel@. Currently the following protocols are supported:
74
** *pace*
75
   Password Authenticated Connection Establishment [["PACE":https://www.bsi.bund.de/ContentBSI/Publikationen/TechnischeRichtlinien/tr03110/index_htm.html]]
76 1 Detlef Hühnlein
77 5 Tobias Wich
* *scio-backend*
78
  Provides an implementation of [["javax.smartcardio":http://docs.oracle.com/javase/6/docs/jre/api/security/smartcardio/spec/javax/smartcardio/package-summary.html]] for different platforms.
79
** *oma*
80
   Maps [["javax.smartcardio":http://docs.oracle.com/javase/6/docs/jre/api/security/smartcardio/spec/javax/smartcardio/package-summary.html]] to the [["Transport API within the Open Mobile API":http://www.simalliance.org/en?t=/documentManager/sfdoc.file.supply&e=UTF-8&i=1185787014303&l=0&fileID=1322061907922]].
81
** *android-nfc*
82
   Maps [["javax.smartcardio":http://docs.oracle.com/javase/6/docs/jre/api/security/smartcardio/spec/javax/smartcardio/package-summary.html]] to [["android.nfc":http://developer.android.com/reference/android/nfc/package-summary.html]].
83
** *android-scio*
84
   Maps [["javax.smartcardio":http://docs.oracle.com/javase/6/docs/jre/api/security/smartcardio/spec/javax/smartcardio/package-summary.html]] to a native PCSC implementation [["pcsclite":http://pcsclite.alioth.debian.org]] compiled for Android.
85
   More information can be found [[Android-PCSC|here]].
86
** *pcsc*
87
   Is necessary to embed the java default implementation of the SmartcardIO into the scio-backend context.
88 1 Detlef Hühnlein
89 5 Tobias Wich
* *ifd-core*
90
  Implements the IFD-API including the mapping to [["javax.smartcardio":http://docs.oracle.com/javase/6/docs/jre/api/security/smartcardio/spec/javax/smartcardio/package-summary.html]].
91 1 Detlef Hühnlein
  
92
h2. sal
93
94
Contains the service access layer (SAL) components.
95
96 5 Tobias Wich
* *sal-common*
97
* *protocols*
98
** *eac*
99
** *crypto-lite*
100
* *tiny-sal*
101 1 Detlef Hühnlein
102
h2. recognition
103
104 5 Tobias Wich
Features CardInfo-based card type recognition. This module also bundles CardInfo files for the recognisable cards.
105 2 Tobias Wich
106 1 Detlef Hühnlein
h2. event-manager
107
108 5 Tobias Wich
Provides an easy to use interface for IFD related events.
109 1 Detlef Hühnlein
110 4 Tobias Wich
h2. browser
111
112
Contains components for the integration of the Open eCard App into popular browsers.
113
114 5 Tobias Wich
* *object-handler*
115
* *pkcs11*
116 1 Detlef Hühnlein
117
!TLS-module-structure_667x404.5.png!
118
119
120 5 Tobias Wich
* *tls-channel-binding*
121 1 Detlef Hühnlein
122
h2. control-interface
123
124 5 Tobias Wich
This module is used to activate the client and authenticate against a server.
125
The eCard-API Framework part 7 defines the [[Control_Interface#Activation|TCToken-Interface]] to trigger the activation.
126
More sophisticated activation scenarios need the possibility to request information about the App and available token. The [[Control_Interface#GetStatus1|Status-Interface]] extends the TCToken-Interface respectively.
127 1 Detlef Hühnlein
128
h2. client 
129
130
Contains modules for the different forms of the Open eCard App.
131
132 5 Tobias Wich
* *applet*
133 6 Tobias Wich
* *richclient*
134 5 Tobias Wich
* *android*