Document electronic signature applet

Project summary:
The project represents a java applet which allows users on their local computers to sign documents electronically that are stored on the remote server. The applet is based on electronic signature algorithm that is based on Public Key Infrastructure. The applet can work in different browsers and doesn’t require any additional configuration.

For electronic signature of documents by the applet, the use of electronic keys that comply with the standards PKCS # 11 and PKCS # 12 is provided. Standard PKCS#11 describes interface of cryptographic devices access. Smart cards and USB tokens are used as such devices in the applet. Standard PKCS#12, in turn, describes the format of a file, used to store electronic keys. Bouncy Castle Crypto API is used to create electronic signature. Signed documents are uploaded to the server using TLS protocol.

Technologies:

Stack: Java, AWT/Swing, JavaScript.
Infrastructure: Maven, IntelliJ IDEA, Jira.
Other libraries: Bouncy Castle Crypto API.
Protocols: TLS.

Screenshots:

Project features:

  • Rather limited development time.
  • The necessity to reuse customer’s existing groundwork.
  • Obligatory support for outdated Java 1.4.
  • The applet should be cross-browser, platform independent. The user does not need to have administrator privileges.

Project result:

  • JazzTeam crew took the existing groundwork from the customer, studied them and used them in the applet development.
  • The applet that implements all the necessary functionality was launched on time.

Company’s achievements during the project:

  • During the work on the project the team developed the concept of cross-browser solution for electronic signature of documents, which can offer an alternative to the outdated approach of using applets. As part of this concept, it is required to develop an application based on HTML5 standards that will be installed on the user's computer along with a local web server. Access to this application will be carried out through a browser.