Package ds.ov2.gui

Demonstrator with GUI.

See:
          Description

Class Summary
Applet_list_actions GUI actions for the applet list dialog.
Applet_list_window netbeans generated code for the applet list window.
Base_selection netbeans generated code for the base selection dialog.
Bases_actions Actions for the bases selection dialog.
Card_protocols Basic card/applet actions of the graphical demonstrator.
Config_actions Actions for the config window.
Config_window netbeans generated code for the config window.
Gui_actions Actions for the main window of the graphical demonstrator.
Gui_protocol_messages Display various progress messages in the graphical demonstrator.
Gui_state Global state fields of the GUI.
Ov_demo Root class for the application logic of the graphical demonstrator.
Ov_demo_gui netbeans generated code for the main window of the graphical demonstrator.
Ov_demo_gui.Applet_type_item Wrapper of Applet_type for the applet-choice combo box.
Printable_aid Equip cardservices.AID with a toString method for the applet list dialog.
Progress_messages netbeans generated code for the progress message window.
Terminal_thread Worker thread that performs all card related tasks.
 

Exception Summary
Terminal_thread.Runtime_card_exception Runtime version of CardException.
 

Package ds.ov2.gui Description

Demonstrator with GUI.

The GUI demonstrator in this package combines several application, which are in theory completely distinct, in one program. Each such application or role has its own tab.

The GUI demonstrator attaches itself to one card reader that is used for all roles. The card reader can be configured in the configuration dialog and is about the only thing that is shared between all roles.

The three applications that are combined in the GUI demonstrator are the PTLS office, the PTLS automaton and the entry gate.

The PTLS office application runs in the PTLS office tab. It can be used to create and manage sets of PTLS parameters (keys and bases) and to issue new cards.

The PTLS automaton runs in the PTLS automaton tab. It can be used to update the attributes on a card and to issue a new signature for the attribute expression of the card. Currently only randomly chosen attribute updates are implemented in the GUI demonstrator (this is however only a limitation in the GUI, the methods RSA_host_card.resign permits arbitrarly chosen attribute updates).

The entry gate runs in the entry gate tab. It checks whether the card is capable of performing a zero knowlege proof for all its attributes.

The GUI demonstrator has been designed with the netbeans IDE, using the swing framework. Because of certain limitations the GUI demonstrator is designed in the following way. It runs two Java threads, the GUI thread, controlling the GUI, and the terminal thread, controlling the card reader terminal. The two threads communicate by exchanging instances of Runnable that are created in one thread and executed in the other thread, see the introduction of class Terminal_thread. Thereby the GUI thread tells the terminal thread what to do with the card (i.e., which protocols to run) and the terminal thread updates the GUI (enabling/disabling buttons, display information and progress messages).

The code the manages the GUI is further divided in the graphical layout code and the action code. The graphical layout code has been generated by the netbeans IDE and creates and manages the various windows with its components. The action code is hand-written and contains the action to be performed when certain buttons/tabs in the GUI are pressed/selected. Both the graphical layout code and the action code are in the package ds.ov2.gui, however, the graphical layout code is contained in the subdirectory src/gui/netbeans/ov_demo_gui/src/ds/ov2/gui. Most of the action code is in separate *_action classes in the subdirectory src/gui.

To make it possible to test some parts of the GUI demonstrator from within the netbeans IDE some action classes and also some other classes are also present in src/gui/netbeans/ov_demo_gui/src/ds/ov2/{front,gui}. The method bodies there do however only contain at most one print statement.