This repository has been archived by the owner on Jan 2, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 71
Pixelated Component Architecture
Sriram Viswanathan edited this page Apr 26, 2017
·
9 revisions
There are two sides to Pixelated -
- 'Provider'
- 'User-Agent'
These two sides work together to give the user a seamless mail experience that always holds any mails (at rest or in transit) in encrypted form. The fundamental rule that is followed is that, without the user logging in with their password, no one else (including the server) can read the emails.
The 'Provider' is based on the Leap platform. The Provider consists of the following components -
- 'Postfix' mail receiver - receive email from external provider and store it on disk
- 'Leap_mx' - watch local directory & encrypt using public key of the user -> store in couchdb in encrypted form - public key is fetched with the 'keymanager' using 'Nickserver' to map user to their keys
- 'Soledad' - this is the main server component thats responsible for synchronization of encrypted documents between server and client(s)
- There are two parts - client & server.
- Both client & server have the common responsiblity of storing & retrieving locally stored docs.
- U1db is the protocol that is used to synchronize documents between the server & the client(s)
- The client is tied to a SQLCipher database which is a flavor of SQLite providing encryption capabilities.
- The server is tied to a CouchDB database.
The Client consists of the following components -
'Pixelated User Agent' - this is the webapp component 'Bitmask Client' - this is mainly responsible as a mediator between the user-agent & the 'server'