Project

General

Profile

Project-Structure » History » Version 15

Hans-Martin Haase, 08/21/2015 12:05 PM

1 15 Hans-Martin Haase
{{toc}}
2 8 Tobias Wich
3 15 Hans-Martin Haase
h1. Modules
4 1 Detlef Hühnlein
5 15 Hans-Martin Haase
The following modules are derived from the high level project structure. Information about the architecture, data structures and other things can be found in the respective links.
6 1 Detlef Hühnlein
7 15 Hans-Martin Haase
h2. Add-on Framework
8 1 Detlef Hühnlein
9 15 Hans-Martin Haase
Contains the implementation of the Add-on Framework. This includes the mapping of the abstract XML description into Java data structure, interface specifications and classes for the management of the add-ons.
10 1 Detlef Hühnlein
11 15 Hans-Martin Haase
h2. CardInfo files
12 1 Detlef Hühnlein
13 15 Hans-Martin Haase
Here you'll find all CardInfo files of the eID client which are used to recognize cards. Furthermore there are images of the specific card and a static recognition tree which is executed when a new card is inserted.
14
15
h2. Card Recognition
16
17
The Card Recognition module uses the abstract XML descriptions of the CardInfo module to provide functionality to the system.
18
19
h2. Client Implementations
20
21
Contains sub modules which implement a client for a specific platform. Currently there are the following two client available:
22
23
h3. Rich Client
24
25
Contains the code for the Rich client application based on the Swing implementation of the GUI. The main target of this client version are desktop pcs and laptop.
26
27
h3. Android Client
28
29
A client version for the Android operating system which is primary located on smart phones and tablet pcs.
30
31
h3. Open eCard Java Version Checker
32
33
The Open eCard App requires currently Java 7 if it is available this little tool will warn the user.
34
35
h2. Control Interface Bindings
36
37
This package contains all available Binding implementations which are listed below.
38
39
h3. HTTP Binding
40
41
Contains the implementation of the HTTP Binding which is used to offer HTTP Services to the external world.
42
43
h2. Crypto packages
44
45
h3. Open eCard Bouncy Castle
46
47
This module contains the Bouncy Castle code.
48
49
h3. Crypto common
50
51
Contains common cryptography classes for e.g. ASN1 objects used in the EAC process. Furthermore there are utility classes for easier access to DID's and their features.
52
53
h3. Open eCard TLS
54
55
Contains TLS client implementations used to communicate with remote parties. The clients are implemented according to the guideline that are related to TLS cryptography.
56
57
h2. Event Manager
58
59
The Event Manager module is 
60
61
h2 GUI implementations
62
63
h3. About Dialog
64
65
h3. Graphics
66
67
h3. Swing GUI
68
69
h3. Android GUI
70
71
h2. IFD implementationes
72
73
h3. IFD common
74
75
h3. IFD Protocols -> PACE
76
77
h3. SmartcardIO implementations -> PC/SC for OS X
78
79
h3. SmartcardIO implementations -> PCSC SmartcardIO
80
81
h3. SmartcardIO implementations -> NFC SmartcardIO
82
83
h3. IFD core
84
85
h2. Integrated Add-ons
86
87
h3. PIN Management Add-on
88
89
h3. Generic cryptography protocol
90
91
h3. TR-03112 Add-on
92
93
h3. Status
94
95
h2. Management
96
97
h2. Open eCard Common Libs
98
99
h2. Open eCard I18n
100
101
h2. Open eCard Webservice Definitions
102
103
h3. class-list Plugin
104
105
h3. Open eCard WS common
106
107
h3. Open eCardd WS classes
108
109
h3. JAXB Marshaller
110
111
h3. Android Marshaller
112
113
h2. SAL
114
115
h3. SAL common
116
117
h3. TinySAL
118
119
h2. Transport 
120
121
h3. Dispatcher
122
123
h3. Apache shadded HTTP core
124
125
h3. Open eCard HTTP core
126
127
128
129
130
131
132
133
134
135
136
137 5 Tobias Wich
138 9 Tobias Wich
139 1 Detlef Hühnlein
h2. wsdef
140
141
Contains web service definitions (.xsd, .wsdl) and related utilities.
142 5 Tobias Wich
143 9 Tobias Wich
h3. class-list-plugin
144 1 Detlef Hühnlein
145 9 Tobias Wich
h3. wsdef-client
146
147
148 5 Tobias Wich
h2. common
149 1 Detlef Hühnlein
150
Contains common utilities and helper classes.
151
152 9 Tobias Wich
153 1 Detlef Hühnlein
h2. crypto
154
155
Contains basic crypto modules.
156
157 9 Tobias Wich
h3. bouncycastle
158 1 Detlef Hühnlein
159 9 Tobias Wich
Relocated bouncycastle classes (moved from org.bouncycastle to org.openecard.bouncycastle) with some patches regarding TLS-PSK.
160
161
h3. crypto-common
162
163
Other crypto related code. E.g. ASN.1 classes for EAC and CVC.
164
165
166 1 Detlef Hühnlein
h2. saml
167
168
Contains the functionality for [["SAML-ECP":http://www.oasis-open.org/committees/download.php/41209/sstc-saml-ecp-v2.0-wd02.pdf]].
169
170 9 Tobias Wich
171 5 Tobias Wich
h2. esign
172 1 Detlef Hühnlein
173
Contains signature-related functionality.
174
175 9 Tobias Wich
176 1 Detlef Hühnlein
h2. transport
177
178
Contains modules related to the transport of messages.
179
180 9 Tobias Wich
h3. dispatcher
181 1 Detlef Hühnlein
182 9 Tobias Wich
h3. paos
183
184
h3. tls
185
186
The TLS design can be found [[TLS-Design|here]].
187
188
189 1 Detlef Hühnlein
h2. gui
190
191
Contains user interfaces (User Consent) for the different platforms.
192
193 9 Tobias Wich
h3. gui-common
194 1 Detlef Hühnlein
195 9 Tobias Wich
Data structure definitions and common GUI execution code.
196
197
h3. swing
198
199
Swing based User Consent implementation.
200
201
h3. android
202
203
Android UI based User Consent implementation.
204
205
206 1 Detlef Hühnlein
h2. ifd
207 5 Tobias Wich
208 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:
209
210
!IFD-Module-Structure_656x280.png!
211
212 9 Tobias Wich
h3. ifd-common
213 1 Detlef Hühnlein
214 9 Tobias Wich
Code and data structures common to core and protocol modules.  
215 1 Detlef Hühnlein
216 9 Tobias Wich
h3. protocols
217 5 Tobias Wich
218 9 Tobias Wich
Contains IFD-related trusted channel protocols, which can be used with @EstablishChannel@. Currently the following protocols are supported:
219
220
* *pace*
221
  Password Authenticated Connection Establishment [["PACE":https://www.bsi.bund.de/ContentBSI/Publikationen/TechnischeRichtlinien/tr03110/index_htm.html]]
222
223
h3. scio-backend
224
225
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.
226
227
* *oma*
228
  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]].
229
* *android-nfc*
230
  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]].
231
* *android-scio*
232
  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.
233
  More information can be found [[Android-PCSC|here]].
234
* *pcsc*
235
  Is necessary to embed the java default implementation of the SmartcardIO into the scio-backend context.
236
237
h3. ifd-core
238
239
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]].
240
241 5 Tobias Wich
  
242 1 Detlef Hühnlein
h2. sal
243 5 Tobias Wich
244 1 Detlef Hühnlein
Contains the service access layer (SAL) components.
245
246 9 Tobias Wich
h3. sal-common
247 1 Detlef Hühnlein
248 10 Dirk Petrautzki
* *State management*
249
  More information can be found [[SAL-Statemanagement|here]]. 
250
251 9 Tobias Wich
h3. protocols
252
253
* *eac*
254
* *crypto-lite*
255 11 Dirk Petrautzki
* *Generic Cryptography*
256
* *PinCompare*
257
258
More information can be found [[SAL-Protocols|here]]. 
259 9 Tobias Wich
260
h3. tiny-sal
261
262
263 1 Detlef Hühnlein
h2. recognition
264 5 Tobias Wich
265 1 Detlef Hühnlein
Features CardInfo-based card type recognition. This module also bundles CardInfo files for the recognisable cards.
266 4 Tobias Wich
267 9 Tobias Wich
268 4 Tobias Wich
h2. event-manager
269
270 5 Tobias Wich
Provides an easy to use interface for IFD related events.
271
272 9 Tobias Wich
273 1 Detlef Hühnlein
h2. browser
274
275
Contains components for the integration of the Open eCard App into popular browsers.
276 5 Tobias Wich
277 9 Tobias Wich
h3. object-handler
278 1 Detlef Hühnlein
279 9 Tobias Wich
h3. pkcs11
280
281 5 Tobias Wich
!TLS-module-structure_667x404.5.png!
282
283 9 Tobias Wich
h3. tls-channel-binding
284 1 Detlef Hühnlein
285
286
h2. control-interface
287
288 5 Tobias Wich
This module is used to activate the client and authenticate against a server.
289 6 Tobias Wich
The eCard-API Framework part 7 defines the [[Control_Interface#Activation|TCToken-Interface]] to trigger the activation.
290 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.
291 1 Detlef Hühnlein
292 9 Tobias Wich
293 1 Detlef Hühnlein
h2. client 
294
295
Contains modules for the different forms of the Open eCard App.
296
297 9 Tobias Wich
h3. applet
298
299
h3. richclient
300
301
h3. android