# 0.4.0 05/15/2012 Rewrite for MVC model * Bug #1: Unit test for class kCA::OpenSSL::Certificate * Task #2: Test SQLiteDatabaseUpgrader with old database * Task #3: Update [[DB_Design]] to new database layout specification * Bug #4: Database backend details not set up on application loading * Task #5: Implement Database::setAuthority() * Feature #6: (Re-)Implement DBus interface * Task #7: Authority identification should still use subject hashes. * Task #8: Revert database schema to use subject identifiers to link certificates and authorities. * Task #9: Extend QCA::Certificate to export subject and issuer subject hash of certificate * Bug #10: Databse open failure without path set up in settings * Bug #11: Do not create database file before application name is populated * Bug #12: StorageTest modifies database * Bug #13: Constraint errors are not reported back * Feature #16: Generate an arbitrary length QCA::PrivateKey from libkca * Task #17: Transfer GUI files from old kca 0.1 to new MVC system * Task #18: Make authority objects capable of issuing certificates and CRLs * Bug #19: Support self-signing of requests * Bug #20: Provide a method to create a certificate from a request using an authority's certificate as issuer * Bug #21: Generate a CRL from stored certificate data using authority's certificate as issuer * Bug #22: Support locking/unlocking of authorities and/or their private keys * Bug #23: Add a flag defining if an authority's private key is actually a key or path to the key. * Bug #24: Include private key management facility into authorities * Feature #25: Add icon to show private key status of authority * Task #26: Signal/Slot system requires objects to inherit from QObject - copy constructors and assignment operators required * Feature #27: Include extensions in CRL generation * Feature #28: Signal database upgrade progress in main window's status bar * Feature #29: Support match check between request subject and authority policy * Task #30: Rewrite for using filter proxies to access submodels and using pointers.