diff options
| author | Marvin W <git@larma.de> | 2026-10-04 14:42:16 +0200 |
|---|---|---|
| committer | Marvin W <git@larma.de> | 2026-10-23 16:59:59 +0200 |
| commit | dba577f39c489b9db29960f2bf5cc78ac4f29d7b (patch) | |
| tree | a8354c9fc328c1442d5e8c5c2adec4b428c92f44 /plugins/openpgp/src/database.vala | |
| parent | 2413442905e31f34cb0f77c9167003b3725760fe (diff) | |
Move OMEMO, OpenPGP and RTP plugins into main/libdino
Diffstat (limited to 'plugins/openpgp/src/database.vala')
| -rw-r--r-- | plugins/openpgp/src/database.vala | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/plugins/openpgp/src/database.vala b/plugins/openpgp/src/database.vala deleted file mode 100644 index 4c05571e..00000000 --- a/plugins/openpgp/src/database.vala +++ /dev/null @@ -1,137 +0,0 @@ -using Dino.Entities; -using Dino.Qlite; -using Xmpp; - -namespace Dino.Plugins.OpenPgp { - -public class Database : Qlite.Database { - private const int VERSION = 1; - - public class AccountSetting : Table { - public Column<int> account_id = new Column.Integer("account_id") { primary_key = true }; - public Column<string> key = new Column.Text("key") { not_null = true }; - public Column<string> signed_data = new Column.Text("signed_data") { min_version = 1 }; - public Column<string> sig = new Column.Text("sig") { min_version = 1 }; - - internal AccountSetting(Database db) { - base(db, "account_setting"); - init({account_id, key, signed_data, sig}); - } - } - - public class ContactKey : Table { - public Column<string> jid = new Column.Text("jid") { primary_key = true }; - public Column<string> key = new Column.Text("key"); - public Column<string> sig = new Column.Text("sig") { min_version = 1 }; - public Column<string> signed_data = new Column.Text("signed_data") { min_version = 1 }; - - internal ContactKey(Database db) { - base(db, "contact_key"); - init({jid, key, sig, signed_data}); - } - - internal void migrate_from_v0(Database db) { - string column_list = ""; - foreach (Column c in columns) { - if (c.min_version <= VERSION && c.max_version >= VERSION) { - if (column_list == "") { - column_list = c.name; - } else { - column_list += ", " + c.name; - } - } - } - db.exec(@"ALTER TABLE $name RENAME TO _$(name)_1"); - create_table_at_version(VERSION); - db.exec(@"INSERT INTO $name ($column_list) SELECT $column_list FROM _$(name)_1"); - db.exec(@"DROP TABLE _$(name)_1"); - } - } - - public AccountSetting account_setting_table { get; private set; } - public ContactKey contact_key_table { get; private set; } - - public Database(string filename) { - base(filename, VERSION); - this.account_setting_table = new AccountSetting(this); - this.contact_key_table = new ContactKey(this); - init({account_setting_table, contact_key_table}); - - try { - exec("PRAGMA journal_mode = WAL"); - exec("PRAGMA synchronous = NORMAL"); - exec("PRAGMA secure_delete = ON"); - } catch (Error e) { - error("Failed to set OpenPGP database properties: %s", e.message); - } - } - - public void set_contact_signature(Jid jid, string sig, string signed_data) { - contact_key_table.upsert() - .value(contact_key_table.jid, jid.to_string(), true) - .value(contact_key_table.sig, sig) - .value(contact_key_table.signed_data, signed_data) - .value_null(contact_key_table.key) - .perform(); - } - - public void clear_contact_signature(Jid jid) { - contact_key_table.upsert() - .value(contact_key_table.jid, jid.to_string(), true) - .value_null(contact_key_table.sig) - .value_null(contact_key_table.signed_data) - .perform(); - } - - public void set_contact_key(Jid jid, string key) { - contact_key_table.upsert() - .value(contact_key_table.jid, jid.to_string(), true) - .value(contact_key_table.key, key) - .perform(); - } - - public string? get_contact_key(Jid jid) { - return get_contact_key_row(jid)[contact_key_table.key]; - } - - public RowOption get_contact_key_row(Jid jid) { - return contact_key_table.select({contact_key_table.key}) - .with(contact_key_table.jid, "=", jid.to_string()).row(); - } - - public void set_account_key(Account account, string key) { - account_setting_table.upsert() - .value(account_setting_table.account_id, account.id, true) - .value(account_setting_table.key, key) - .value_null(account_setting_table.signed_data) - .value_null(account_setting_table.sig) - .perform(); - } - - public void set_account_signature(Account account, string signed_data, string sig) { - account_setting_table.update() - .with(account_setting_table.account_id, "=", account.id) - .set(account_setting_table.signed_data, signed_data) - .set(account_setting_table.sig, sig) - .perform(); - } - - public string? get_account_signature(Account account, string signed_data) { - return account_setting_table.select({account_setting_table.sig}) - .with(account_setting_table.account_id, "=", account.id) - .with(account_setting_table.signed_data, "=", signed_data)[account_setting_table.sig]; - } - - public string? get_account_key(Account account) { - return account_setting_table.select({account_setting_table.key}) - .with(account_setting_table.account_id, "=", account.id)[account_setting_table.key]; - } - - public override void migrate(long oldVersion) { - if (oldVersion < 1) { - contact_key_table.migrate_from_v0(this); - } - } -} - -} |
