Added new class EncryptedDevice. EncryptedDevice inherits QIODevice and uses AES...
authorRauli Ikonen <rauli.ikonen@nixuopen.org>
Thu, 10 Feb 2011 11:55:59 +0000 (13:55 +0200)
committerRauli Ikonen <rauli.ikonen@nixuopen.org>
Thu, 10 Feb 2011 12:07:10 +0000 (14:07 +0200)
commit9c146ef824fe23ae804b9556ce967ca719ce5b9c
tree8fc94ef1a4a79b26870060869161fa31ef7d2356
parent9f149c1f6194d50f2161d67bcb1a837297bf0fbb
Added new class EncryptedDevice. EncryptedDevice inherits QIODevice and uses AES in OFB mode to encrypt/decrypt any data that passes through it. The constructor allows specifying the actual device from which data is read from / written to, encryption key and initialization vectors for input and output streams. PluginProxy and RemotePluginProcess were changed so that they wrap the QProcess and QFile devices into EncryptedDevice objects and use those for reading/writing data so that no data is passed in plain text.

The encryption key and initialization vectors are generated by PluginProxy after launching remotepluginprocess and passed through normal stdin channel before any other data as a string that has been encrypted using aegis-crypto with *sso-encryption-token the remotepluginprocess provides. That is, aegis-crypto is only used to protect the encryption key. This is because aegis-crypto does not allow maintaining a state and is thus unsuitable for doing stream encryption.

Fixes https://bugs.meego.com/show_bug.cgi?id=12435
lib/plugins/signon-plugins-common/SignOn/encrypteddevice.cpp [new file with mode: 0644]
lib/plugins/signon-plugins-common/SignOn/encrypteddevice.h [new file with mode: 0644]
lib/plugins/signon-plugins-common/signon-plugins-common.pro
src/remotepluginprocess/remotepluginprocess.cpp
src/remotepluginprocess/remotepluginprocess.h
src/remotepluginprocess/remotepluginprocess.pro
src/signond/pluginproxy.cpp
src/signond/pluginproxy.h
src/signond/signond.pro