aboutsummaryrefslogtreecommitdiff
path: root/plugins/openpgp/src/plugin.vala
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2026-06-07 21:52:00 +0200
committerMarvin W <git@larma.de>2026-06-07 23:13:07 +0200
commit9b7b0d98cb9a41e8bd06ae627474d4e1e97139e6 (patch)
tree61a36db5611fb57f9681c1c239ffa05931c7dc07 /plugins/openpgp/src/plugin.vala
parent8c05d7b066f03d0c024cc0701b69279fffb4e0cf (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.vala8
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);
}