Introduction

During 2004 Virk and ResultMaker began development on OpenSign. They made a number of enhancements which have influenced the design of the applet.

  • The applet could be bootstrapped by a smaller applet
  • The applet could be reloaded without the SUN JVM refusing to load the native lib twice
  • The applet used Swing components for better looks
  • The GUI was simplified
  • It was possible to sign attached documents
  • The applet was configurable by a single XML document
  • Certificate filtering was done by an advanced rule engine
  • XMLDSIG generation was done with XML library and not by hand
  • ...

They also limited the use of VMs to only SUN version 1.4+ so MS JVM couldn't be used with their applet. This was unacceptable for the time being so work was initiated which aimed at moving much of their ideas into the MS-compliant Applet and extending the interface to the server so it could also accomodate the requirements of Virk and ResultMaker.

At the same time TDC was working on extending the Applet to support CD-CARD-based certificates thus extending the support to 3 keystores: CAPI, PKCS12 and CD-CARD. Instead of making the code support 3 keystores it was decided to make it support "n" keystores and make them plugable.

The result is an Applet which to some extent supports: (see Design principles)

  • bootable pluggable keystores and monolithic build
  • "Classical" GUI and "modern" GUI
  • XML input and configuration by applet parameters
  • XML signing and signing as it was (pluggable XMLDSIG generators)

This makes it possible to select which combination of keystores a solution should support and so limit the amount of code to be downloaded and filter out unwanted certificates. It also allows licensed code to be part of a pluggable keystore without becoming a part of the open code in OpenOces.

The Future

In the future we will try to get the remaining functionality moved to the applet somehow. This can be done by splitting the applet in 2: one advanced with SUN JVM (1.4+) and a basic one which runs on MS JVM (1.1.4+). Or the existing applet can be extended. Or the ResultMaker applet can be modified so it doesn't rely on SUN JVM.