Gigi / New Software

This page is still under development.

After waiting for a new approach to our software development with birdshack for many years a team of developers started a new attempt in mid-2014 to rewrite the software. This became necessary as maintaining the grown source code of the existing system became a tough challenge. The internal code names for the various parts of the new software are based on the characters of the Michael Ende's novel MOMO. Based on the story we are calling our web front end Gigi, as - like in the story - it leads your way. Cassiopeia on the other hand is a wise, trusty turtle with a hard shell to protect its secrets and thus the perfect name for our signer. Some information about the new software is / will be published in a blog series in 2015

  1. Rewriting the software driving our site

  2. Modernising the Web Frontend

  3. The Heart of Gold

Gigi - the new front end

One aim of the rewrite is to get a more scaleable and secure data structure.

The database will be migrated from MySQL to PostgreSQL. While changing the database a stronger protection of the stored information is introduced by encrypting both at database level and at record level.

The front end will be written using Java using OpenJDK 8.

Some of the new features are

Current sources

Source code: https://github.com/CAcertOrg/cacert-gigi - holds the completely reviewed parts; recent development can be found at the fork of yellowant in the network connections.

Use cases: The use cases are documentet in https://github.com/felixdoerre/cacert-gigi-usecases

Coverity report for Gigi.

Cassiopeia - the new signer

The signer will be rewritten in C++. It is designed so its cryptography back end can easily be exchanged for other implementations. With this new implementation additional hardening has been applied to strengthen the protections of the signing keys.

Some of the new features are:

Current sources

Source code: https://github.com/CAcertOrg/cacert-cassiopeia - holds the completely reviewed parts; recent development can be found at the fork of yellowant in the network connections

Coverity reports for Cassiopeia.

Additional projects

The software team applied for the Google Summer of Code 2015 with 3 sub projects for the new software:

Technology used

Code language: Java using OpenJDK 8 and C++11

Developing platform: Eclipse Luna, mostly on Debian/Linux (other OS like MacOSX and WinNT work, but are not the target platform)

Database: PostgreSQL 9.5 or newer

Web server: Jetty 9.3 or newer

Continuous testing: CppCheck to check C++ code, FindBugs to check Java code, Jenkins as continuous integration tool (currently about 250+ tests), Coverity Scan static analysing tool for C++ and Java code.

Documentation: UML, JavaDoc, DoxyGen

Testing

Information for tester can be find tester welcome pack

Future projects

For the future the software team has these projects in mind:

Input and thoughts

(add your ideas here)