Mercurial > libervia-backend
diff src/bridge/bridge_constructor/bridge_template.ini @ 1030:15f43b54d697
core, memory, bridge: added profile password + password encryption:
/!\ This changeset updates the database version to 2 and modify the database content!
Description:
- new parameter General / Password to store the profile password
- profile password is initialized with XMPP password value, it is stored hashed
- bridge methods asyncCreateProfile/asyncConnect takes a new argument "password" (default = "")
- bridge method asyncConnect returns a boolean (True = connection already established, False = connection initiated)
- profile password is checked before initializing the XMPP connection
- new private individual parameter to store the personal encryption key of each profile
- personal key is randomly generated and encrypted with the profile password
- personal key is decrypted after profile authentification and stored in a Sessions instance
- personal key is used to encrypt/decrypt other passwords when they need to be retrieved/modified
- modifying the profile password re-encrypt the personal key
- Memory.setParam now returns a Deferred (the bridge method "setParam" is unchanged)
- Memory.asyncGetParamA eventually decrypts the password, Memory.getParamA would fail on a password parameter
TODO:
- if profile authentication is OK but XMPP authentication is KO, prompt the user for another XMPP password
- fix the method "registerNewAccount" (and move it to a plugin)
- remove bridge method "connect", sole "asyncConnect" should be used
author | souliane <souliane@mailoo.org> |
---|---|
date | Wed, 07 May 2014 16:02:23 +0200 |
parents | 8bae81e254a2 |
children | 6e975c6b0faf |
line wrap: on
line diff
--- a/src/bridge/bridge_constructor/bridge_template.ini Sat May 10 17:37:32 2014 +0200 +++ b/src/bridge/bridge_constructor/bridge_template.ini Wed May 07 16:02:23 2014 +0200 @@ -204,10 +204,12 @@ async= type=method category=core -sig_in=s +sig_in=ss sig_out= +param_1_default='' doc=Create a new profile doc_param_0=%(doc_profile)s +doc_param_1=password: password of the profile doc_return=callback is called when profile actually exists in database and memory errback is called with error constant as parameter: - ConflictError: the profile name already exists @@ -243,21 +245,35 @@ [connect] type=method category=core -sig_in=s -sig_out= +sig_in=ss +sig_out=b param_0_default="@DEFAULT@" +param_1_default='' doc=Connect a profile doc_param_0=%(doc_profile_key)s +doc_param_1=password: the SàT profile password +doc_return=a deferred boolean or failure: + - boolean if the profile authentication succeed: + - True if the XMPP connection was already established + - False if the XMPP connection has been initiated (it may still fail) + - failure if the profile authentication failed [asyncConnect] async= type=method category=core -sig_in=s -sig_out= +sig_in=ss +sig_out=b param_0_default="@DEFAULT@" +param_1_default='' doc=Connect a profile doc_param_0=%(doc_profile_key)s +doc_param_1=password: the SàT profile password +doc_return=a deferred boolean or failure: + - boolean if the profile authentication succeed: + - True if the XMPP connection was already established + - False if the XMPP connection has been initiated (it may still fail) + - failure if the profile authentication failed [disconnect] type=method