memory: fixes asyncCreateProfile to not overwrite the personal key
This commit is contained in:
parent
cb27db7cdf
commit
3fa1ea0376
1 changed files with 8 additions and 2 deletions
|
|
@ -453,9 +453,15 @@ class Memory(object):
|
||||||
raise ValueError("Empty profile name")
|
raise ValueError("Empty profile name")
|
||||||
if name[0] == '@':
|
if name[0] == '@':
|
||||||
raise ValueError("A profile name can't start with a '@'")
|
raise ValueError("A profile name can't start with a '@'")
|
||||||
personal_key = BlockCipher.getRandomKey(base64=True) # generated once for all and saved in a PersistentDict
|
|
||||||
self.auth_sessions.newSession({C.MEMORY_CRYPTO_KEY: personal_key}, profile=name) # will be encrypted by setParam
|
|
||||||
d = self.params.asyncCreateProfile(name)
|
d = self.params.asyncCreateProfile(name)
|
||||||
|
|
||||||
|
def initPersonalKey(dummy):
|
||||||
|
# be sure to call this after checking that the profile doesn't exist yet
|
||||||
|
personal_key = BlockCipher.getRandomKey(base64=True) # generated once for all and saved in a PersistentDict
|
||||||
|
self.auth_sessions.newSession({C.MEMORY_CRYPTO_KEY: personal_key}, profile=name) # will be encrypted by setParam
|
||||||
|
|
||||||
|
d.addCallback(initPersonalKey)
|
||||||
d.addCallback(lambda dummy: self.setParam(C.PROFILE_PASS_PATH[1], password, C.PROFILE_PASS_PATH[0], profile_key=name))
|
d.addCallback(lambda dummy: self.setParam(C.PROFILE_PASS_PATH[1], password, C.PROFILE_PASS_PATH[0], profile_key=name))
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue