Project

General

Profile

Project-Structure » History » Version 5

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

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