Project

General

Profile

Project-Structure » History » Version 10

Dirk Petrautzki, 09/24/2012 03:57 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 10 Dirk Petrautzki
* *State management*
126
  More information can be found [[SAL-Statemanagement|here]]. 
127
128 9 Tobias Wich
h3. protocols
129
130
* *eac*
131
* *crypto-lite*
132
133
h3. tiny-sal
134
135
136 1 Detlef Hühnlein
h2. recognition
137 5 Tobias Wich
138 1 Detlef Hühnlein
Features CardInfo-based card type recognition. This module also bundles CardInfo files for the recognisable cards.
139 4 Tobias Wich
140 9 Tobias Wich
141 4 Tobias Wich
h2. event-manager
142
143 5 Tobias Wich
Provides an easy to use interface for IFD related events.
144
145 9 Tobias Wich
146 1 Detlef Hühnlein
h2. browser
147
148
Contains components for the integration of the Open eCard App into popular browsers.
149 5 Tobias Wich
150 9 Tobias Wich
h3. object-handler
151 1 Detlef Hühnlein
152 9 Tobias Wich
h3. pkcs11
153
154 5 Tobias Wich
!TLS-module-structure_667x404.5.png!
155
156 9 Tobias Wich
h3. tls-channel-binding
157 1 Detlef Hühnlein
158
159
h2. control-interface
160
161 5 Tobias Wich
This module is used to activate the client and authenticate against a server.
162 6 Tobias Wich
The eCard-API Framework part 7 defines the [[Control_Interface#Activation|TCToken-Interface]] to trigger the activation.
163 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.
164 1 Detlef Hühnlein
165 9 Tobias Wich
166 1 Detlef Hühnlein
h2. client 
167
168
Contains modules for the different forms of the Open eCard App.
169
170 9 Tobias Wich
h3. applet
171
172
h3. richclient
173
174
h3. android