Aggregation & Distribution functionality of CASA

Aggregation & Distribution (A & D) functionality of CASA has been implemented as a library providing interfaces in C# for accessing credentials of third party wallets as well that of miCASA. This library supports aggregation of miCASA, kwallet and gnome-keyring and exposes an XML view of their credentials. The XML document comprising of the credentials of all the stores is called CCF – Common Credential Format.

Each credential store is represented by a data engine. Each data engine exposes the following interfaces

XmlNode Aggregate();

Gets the entire list of all credentials of a particular store as an XmlNode.

int GetSecret(XmlNode secret);

Gets the given secret of a store as an XmlNode.

int SetSecret(XmlNode secret);

Sets the given secret of a store.

int Remove(XmlNode secret);

Removes the given secret of a store.

The entire list of secrets of all stores is represented in an XmlDocument.

Please refer to the attached XSD file for the CCF details.

The data engine of each store talks to the respective store’s library to get the credentials of each store. KWallet provides C++ interfaces and gnome-keyring provides C interfaces. So, C# wrappers have been written for the published APIs of these third party wallets that CASA requires for A&D functionality.

As GUI uses the A&D library, it maintains the credentials in the CCF format in its memory. CCF is not used in miCASAd, as the credentials of other stores are just aggregated by the GUI. They are not copied onto miCASA.

When we implement distribution and synchronization of third party credentials, we might consider having the secrets of other stores too, in miCASAd. As other wallets donot provide timestamps, we might need to do this.

PKala

2005-10-26T11:37:41