We are often asked about what the app is storing, where (in memory, on disk, server side, ...), in which format (clear, encrypted, ...), and with which lifetime (user session i.e. until signout, cache session i.e. until clear cache is performed, application session i.e. until the app is finished or killed, Activity lifetime i.e. until the Activity is destroyed), and this are legitimate questions for a secured communication app.
We should clarify this in a documentation, attached to the project, and kept up to date with all the changes we may do in the codebase.
Especially the doc should clarify the policy about those elements:
account password
access_token for home servers (and refresh token if any)
access_token for identity servers
other token (openId tokens)
olm identity key
olm signing key
olm OTK priv keys
E2EE history
E2EE search index
E2EE attachments
E2EE thumbnails
attachments from clear rooms
megolm keys
SSSS master key
SSSS passphrase
Key backup private key
MSK private key
SSK private key
USK private key
PIN code
session data (mainly cache of /sync response)
cache for image (E2EE and clear rooms)
log files (for rageshakes)
list to be completed
Also the document could include some information about the disk folder hierarchy for file storage.
Problematic
We are often asked about what the app is storing, where (in memory, on disk, server side, ...), in which format (clear, encrypted, ...), and with which lifetime (user session i.e. until signout, cache session i.e. until clear cache is performed, application session i.e. until the app is finished or killed, Activity lifetime i.e. until the Activity is destroyed), and this are legitimate questions for a secured communication app.
We should clarify this in a documentation, attached to the project, and kept up to date with all the changes we may do in the codebase.
Especially the doc should clarify the policy about those elements:
Also the document could include some information about the disk folder hierarchy for file storage.
Definition of done
A doc is added to https://github.com/vector-im/element-android/tree/develop/docs