= Db storage organization for CryptoPlugin = Right now I can think of only two requirements for plugin-specific information: * user <--> key associations * (detached) signature storage == Common "parasite" storage == Session attributes are easily accessible related on a client sessions base in Trac's Request object (`req.session`), without the need for a direct db connection. So entries in Trac db table `session_attribute` seem like a perfect match for the first requirement - no need for an own db table here. I've chosen the following dedicated names for related association types: * 'sign_key' * 'crypt_key' * 'auth_key' (''future'') Their meaning should be easily guessable from these names. == Dedicated "private" storage == For storing signature data we could resort to inline signed data, but I felt that this choice would restrict possible use cases too much. So I chose detached signatures as the default. Resources stay unaltered by signing, and you will be able to sign text content as well as arbitrary binary/file data. After 3 internal iterations current db schema draft is like so: {{{ table `crypto_sign` * realm, * id, * version, * fragment, i * key_id, signature i time, Legend: * primary key i has dedicated index }}} Discussion welcome.