diff options
| author | Marvin W <git@larma.de> | 2026-06-07 21:52:00 +0200 |
|---|---|---|
| committer | Marvin W <git@larma.de> | 2026-06-07 23:13:07 +0200 |
| commit | 9b7b0d98cb9a41e8bd06ae627474d4e1e97139e6 (patch) | |
| tree | 61a36db5611fb57f9681c1c239ffa05931c7dc07 /plugins/openpgp/src/plugin.vala | |
| parent | 8c05d7b066f03d0c024cc0701b69279fffb4e0cf (diff) | |
OpenPGP: Process signatures on presences only once needed
- Incoming signatures are stored in the database and processed when needed
(to send PGP encrypted messages or to display them in the contact details)
- Outgoing signatures are stored in the database and cached until the key is
changed
Diffstat (limited to 'plugins/openpgp/src/plugin.vala')
| -rw-r--r-- | plugins/openpgp/src/plugin.vala | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/plugins/openpgp/src/plugin.vala b/plugins/openpgp/src/plugin.vala index 463058f3..32542c21 100644 --- a/plugins/openpgp/src/plugin.vala +++ b/plugins/openpgp/src/plugin.vala @@ -37,7 +37,13 @@ public class Plugin : Plugins.RootInterface, Object { public void shutdown() { } private void on_initialize_account_modules(Account account, ArrayList<Xmpp.XmppStreamModule> modules) { - Module module = new Module(db.get_account_key(account)); + string signed_data = ""; + string? sig = db.get_account_signature(account, signed_data); + bool sig_was_unknown = sig == null; + Module module = new Module(db.get_account_key(account), ref signed_data, ref sig); + if (sig_was_unknown && sig != null) { + db.set_account_signature(account, signed_data, sig); + } this.modules[account] = module; modules.add(module); } |
