opentechinstitute / commotion-client

Cross platform commotion client for computers. - CURRENTLY IN ACTIVE DEVELOPMENT
Other
34 stars 10 forks source link

Use hashed login-passwords paired with serval-key passwords. #17

Open seamustuohy opened 10 years ago

seamustuohy commented 10 years ago

QtCryptographicHash to encode password values and use those hashed passwords for verifying user logins. This should also create a serval-key on account creation keyed with the same password.

This will require that when a user changes their password that the serval key is copied into a new key with the new password.

See: https://stackoverflow.com/questions/7977047/whats-the-best-practice-to-store-password-and-username-in-a-pyqt-program

seamustuohy commented 10 years ago

Current idea is to use a NamedTemporaryFile to decrypt the encrypted user QSettings file into. That way, if the application closes the temporary holding the users unencrypted data will be destroyed as well. This will mean that any writing to QSettings will have to go through the python-gnupg system to decrypt and write to the file. This will all be written up formally with corresponding code and presented outwards for review once it has been implemented.