Project

General

Profile

Project-Structure » History » Version 9

Tobias Wich, 09/19/2012 03:33 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 9 Tobias Wich
16 1 Detlef Hühnlein
h2. wsdef
17
18
Contains web service definitions (.xsd, .wsdl) and related utilities.
19 5 Tobias Wich
20 9 Tobias Wich
h3. class-list-plugin
21 1 Detlef Hühnlein
22 9 Tobias Wich
h3. wsdef-client
23
24
25 5 Tobias Wich
h2. common
26 1 Detlef Hühnlein
27
Contains common utilities and helper classes.
28
29 9 Tobias Wich
30 1 Detlef Hühnlein
h2. crypto
31
32
Contains basic crypto modules.
33
34 9 Tobias Wich
h3. bouncycastle
35 1 Detlef Hühnlein
36 9 Tobias Wich
Relocated bouncycastle classes (moved from org.bouncycastle to org.openecard.bouncycastle) with some patches regarding TLS-PSK.
37
38
h3. crypto-common
39
40
Other crypto related code. E.g. ASN.1 classes for EAC and CVC.
41
42
43 1 Detlef Hühnlein
h2. saml
44
45
Contains the functionality for [["SAML-ECP":http://www.oasis-open.org/committees/download.php/41209/sstc-saml-ecp-v2.0-wd02.pdf]].
46
47 9 Tobias Wich
48 5 Tobias Wich
h2. esign
49 1 Detlef Hühnlein
50
Contains signature-related functionality.
51
52 9 Tobias Wich
53 1 Detlef Hühnlein
h2. transport
54
55
Contains modules related to the transport of messages.
56
57 9 Tobias Wich
h3. dispatcher
58 1 Detlef Hühnlein
59 9 Tobias Wich
h3. paos
60
61
h3. tls
62
63
The TLS design can be found [[TLS-Design|here]].
64
65
66 1 Detlef Hühnlein
h2. gui
67
68
Contains user interfaces (User Consent) for the different platforms.
69
70 9 Tobias Wich
h3. gui-common
71 1 Detlef Hühnlein
72 9 Tobias Wich
Data structure definitions and common GUI execution code.
73
74
h3. swing
75
76
Swing based User Consent implementation.
77
78
h3. android
79
80
Android UI based User Consent implementation.
81
82
83 1 Detlef Hühnlein
h2. ifd
84 5 Tobias Wich
85 1 Detlef Hühnlein
Contains the interface device (IFD) components for the different platforms. The following figure provides an overview of the relationship between the different ifd modules:
86
87
!IFD-Module-Structure_656x280.png!
88
89 9 Tobias Wich
h3. ifd-common
90 1 Detlef Hühnlein
91 9 Tobias Wich
Code and data structures common to core and protocol modules.  
92 1 Detlef Hühnlein
93 9 Tobias Wich
h3. protocols
94 5 Tobias Wich
95 9 Tobias Wich
Contains IFD-related trusted channel protocols, which can be used with @EstablishChannel@. Currently the following protocols are supported:
96
97
* *pace*
98
  Password Authenticated Connection Establishment [["PACE":https://www.bsi.bund.de/ContentBSI/Publikationen/TechnischeRichtlinien/tr03110/index_htm.html]]
99
100
h3. scio-backend
101
102
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.
103
104
* *oma*
105
  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]].
106
* *android-nfc*
107
  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]].
108
* *android-scio*
109
  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.
110
  More information can be found [[Android-PCSC|here]].
111
* *pcsc*
112
  Is necessary to embed the java default implementation of the SmartcardIO into the scio-backend context.
113
114
h3. ifd-core
115
116
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]].
117
118 5 Tobias Wich
  
119 1 Detlef Hühnlein
h2. sal
120 5 Tobias Wich
121 1 Detlef Hühnlein
Contains the service access layer (SAL) components.
122
123 9 Tobias Wich
h3. sal-common
124 1 Detlef Hühnlein
125 9 Tobias Wich
h3. protocols
126
127
* *eac*
128
* *crypto-lite*
129
130
h3. tiny-sal
131
132
133 1 Detlef Hühnlein
h2. recognition
134 5 Tobias Wich
135 1 Detlef Hühnlein
Features CardInfo-based card type recognition. This module also bundles CardInfo files for the recognisable cards.
136 4 Tobias Wich
137 9 Tobias Wich
138 4 Tobias Wich
h2. event-manager
139
140 5 Tobias Wich
Provides an easy to use interface for IFD related events.
141
142 9 Tobias Wich
143 1 Detlef Hühnlein
h2. browser
144
145
Contains components for the integration of the Open eCard App into popular browsers.
146 5 Tobias Wich
147 9 Tobias Wich
h3. object-handler
148 1 Detlef Hühnlein
149 9 Tobias Wich
h3. pkcs11
150
151 5 Tobias Wich
!TLS-module-structure_667x404.5.png!
152
153 9 Tobias Wich
h3. tls-channel-binding
154 1 Detlef Hühnlein
155
156
h2. control-interface
157
158 5 Tobias Wich
This module is used to activate the client and authenticate against a server.
159 6 Tobias Wich
The eCard-API Framework part 7 defines the [[Control_Interface#Activation|TCToken-Interface]] to trigger the activation.
160 5 Tobias Wich
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.
161 1 Detlef Hühnlein
162 9 Tobias Wich
163 1 Detlef Hühnlein
h2. client 
164
165
Contains modules for the different forms of the Open eCard App.
166
167 9 Tobias Wich
h3. applet
168
169
h3. richclient
170
171
h3. android