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