I made modifications to use KgpgInterface instead of custom implementation. I tried to use unique_ptr but since I got a pure virtual method call in destructor of transaction(due to it still reading input from process) I decided not to. I created a test for KGpgChangeExpire but still haven't figured out how to enter passwords.