Project

General

Profile

Project-Structure » History » Version 13

Detlef Hühnlein, 10/16/2012 03:30 PM

1 1 Detlef Hühnlein
h1. Project-Structure
2 8 Tobias Wich
3
{{>toc}}
4 1 Detlef Hühnlein
5 13 Detlef Hühnlein
The overall project structure has been derived from the high level design of the Open eCard App (see "Sicherheit 2012 submission":https://dev.openecard.org/attachments/14/Open-eCard-App-2011-12-05.pdf) and is depicted in the following figure:
6 1 Detlef Hühnlein
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 11 Dirk Petrautzki
* *Generic Cryptography*
133
* *PinCompare*
134
135
More information can be found [[SAL-Protocols|here]]. 
136 9 Tobias Wich
137
h3. tiny-sal
138
139
140 1 Detlef Hühnlein
h2. recognition
141 5 Tobias Wich
142 1 Detlef Hühnlein
Features CardInfo-based card type recognition. This module also bundles CardInfo files for the recognisable cards.
143 4 Tobias Wich
144 9 Tobias Wich
145 4 Tobias Wich
h2. event-manager
146
147 5 Tobias Wich
Provides an easy to use interface for IFD related events.
148
149 9 Tobias Wich
150 1 Detlef Hühnlein
h2. browser
151
152
Contains components for the integration of the Open eCard App into popular browsers.
153 5 Tobias Wich
154 9 Tobias Wich
h3. object-handler
155 1 Detlef Hühnlein
156 9 Tobias Wich
h3. pkcs11
157
158 5 Tobias Wich
!TLS-module-structure_667x404.5.png!
159
160 9 Tobias Wich
h3. tls-channel-binding
161 1 Detlef Hühnlein
162
163
h2. control-interface
164
165 5 Tobias Wich
This module is used to activate the client and authenticate against a server.
166 6 Tobias Wich
The eCard-API Framework part 7 defines the [[Control_Interface#Activation|TCToken-Interface]] to trigger the activation.
167 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.
168 1 Detlef Hühnlein
169 9 Tobias Wich
170 1 Detlef Hühnlein
h2. client 
171
172
Contains modules for the different forms of the Open eCard App.
173
174 9 Tobias Wich
h3. applet
175
176
h3. richclient
177
178
h3. android