Don't store passphrase as char* member variable. This would crash the application when exporting private keys. See https://dev.gnupg.org/T5151#139421
In-place editing with a popup if user is allowed in app config file. User must of course manage at least a private key. User identities of target key may be selectively chosen. Optionally, certification may be exportable and non-revocable.