raymontag / keepassc

KeePassC is a curses-based password manager compatible to KeePass v.1.x and KeePassX
http://raymontag.github.com/keepassc/
ISC License
311 stars 23 forks source link

Use more than one core to encrypt and decrypt database #63

Closed khapota closed 10 years ago

khapota commented 10 years ago

I see that keepassc use one core to process with database. But keepassx use all core to do that. Could you improve it?

raymontag commented 10 years ago

Could you be more specific please? I can't find where keepassx uses more than one core for encryption/decryption. And to be honest I don't understand how this should work at all because I can see no point in the encryption/decryption process which could be parallelized (it would be really bad if one could parallelize AES-CBC...).

khapota commented 10 years ago

In my scenario, i use password and key to open database. I still do not look at keepassx and keepassc source code but i open my database with two programs then monitor cpu usage. It is very difference, keepassx uses double cpu compare to keepassc.

raymontag commented 10 years ago

I'm sorry but what you describe has nothing to do with a parallelization of the encryption algorithm. First, the database is decrypted and lies unencrypted in the memory after this. There's no more decryption/encryption after this (except for locking). Second, KeePassX is a Qt-application, KeePassC a console application. Although KeePassX is written in C++ and KeePassC in Python I guess that using Qt as the GUI-Framework leads to much more resource usage.

I close this issue because as I already mentioned in my first post the question makes no sense as it is not possible to parallelize AES-CBC. If it would be we could renounce password managers with encryption and save our passwords in a normal textfile.