aboutsummaryrefslogtreecommitdiff
path: root/plugins/openpgp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/openpgp')
-rw-r--r--plugins/openpgp/data/gresource.xml5
-rw-r--r--plugins/openpgp/meson.build47
-rw-r--r--plugins/openpgp/po/LINGUAS48
-rw-r--r--plugins/openpgp/po/ar.po62
-rw-r--r--plugins/openpgp/po/ca.po59
-rw-r--r--plugins/openpgp/po/cs.po60
-rw-r--r--plugins/openpgp/po/da.po60
-rw-r--r--plugins/openpgp/po/de.po59
-rw-r--r--plugins/openpgp/po/dino-openpgp.pot48
-rw-r--r--plugins/openpgp/po/el.po60
-rw-r--r--plugins/openpgp/po/en.po39
-rw-r--r--plugins/openpgp/po/eo.po61
-rw-r--r--plugins/openpgp/po/es.po64
-rw-r--r--plugins/openpgp/po/et.po51
-rw-r--r--plugins/openpgp/po/eu.po61
-rw-r--r--plugins/openpgp/po/fa.po60
-rw-r--r--plugins/openpgp/po/fi.po60
-rw-r--r--plugins/openpgp/po/fr.po61
-rw-r--r--plugins/openpgp/po/fur.po48
-rw-r--r--plugins/openpgp/po/gl.po61
-rw-r--r--plugins/openpgp/po/hi.po46
-rw-r--r--plugins/openpgp/po/hu.po61
-rw-r--r--plugins/openpgp/po/ia.po46
-rw-r--r--plugins/openpgp/po/id.po60
-rw-r--r--plugins/openpgp/po/ie.po60
-rw-r--r--plugins/openpgp/po/is.po60
-rw-r--r--plugins/openpgp/po/isv.po48
-rw-r--r--plugins/openpgp/po/it.po59
-rw-r--r--plugins/openpgp/po/ja.po61
-rw-r--r--plugins/openpgp/po/ka.po48
-rw-r--r--plugins/openpgp/po/kab.po48
-rw-r--r--plugins/openpgp/po/ko.po61
-rw-r--r--plugins/openpgp/po/lb.po59
-rw-r--r--plugins/openpgp/po/lt.po61
-rw-r--r--plugins/openpgp/po/lv.po46
-rw-r--r--plugins/openpgp/po/meson.build1
-rw-r--r--plugins/openpgp/po/nb.po64
-rw-r--r--plugins/openpgp/po/nl.po59
-rw-r--r--plugins/openpgp/po/oc.po60
-rw-r--r--plugins/openpgp/po/pl.po62
-rw-r--r--plugins/openpgp/po/pt.po60
-rw-r--r--plugins/openpgp/po/pt_BR.po60
-rw-r--r--plugins/openpgp/po/ro.po62
-rw-r--r--plugins/openpgp/po/ru.po62
-rw-r--r--plugins/openpgp/po/sq.po60
-rw-r--r--plugins/openpgp/po/sv.po60
-rw-r--r--plugins/openpgp/po/ta.po51
-rw-r--r--plugins/openpgp/po/th.po48
-rw-r--r--plugins/openpgp/po/tr.po60
-rw-r--r--plugins/openpgp/po/uk.po61
-rw-r--r--plugins/openpgp/po/vi.po60
-rw-r--r--plugins/openpgp/po/zh_CN.po65
-rw-r--r--plugins/openpgp/po/zh_TW.po61
-rw-r--r--plugins/openpgp/src/contact_details_provider.vala51
-rw-r--r--plugins/openpgp/src/database.vala138
-rw-r--r--plugins/openpgp/src/encryption_list_entry.vala72
-rw-r--r--plugins/openpgp/src/encryption_preferences_entry.vala82
-rw-r--r--plugins/openpgp/src/file_transfer/file_decryptor.vala50
-rw-r--r--plugins/openpgp/src/file_transfer/file_encryptor.vala45
-rw-r--r--plugins/openpgp/src/gpgme_fix.c12
-rw-r--r--plugins/openpgp/src/gpgme_fix.h12
-rw-r--r--plugins/openpgp/src/gpgme_helper.vala185
-rw-r--r--plugins/openpgp/src/manager.vala123
-rw-r--r--plugins/openpgp/src/plugin.vala52
-rw-r--r--plugins/openpgp/src/register_plugin.vala3
-rw-r--r--plugins/openpgp/src/stream_module.vala159
-rw-r--r--plugins/openpgp/src/util.vala29
-rw-r--r--plugins/openpgp/vapi/gpg-error.vapi445
-rw-r--r--plugins/openpgp/vapi/gpgme.vapi673
69 files changed, 0 insertions, 5045 deletions
diff --git a/plugins/openpgp/data/gresource.xml b/plugins/openpgp/data/gresource.xml
deleted file mode 100644
index 75f25e67..00000000
--- a/plugins/openpgp/data/gresource.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gresources>
-<!-- <gresource prefix="/im/dino/Dino/openpgp">-->
-<!-- </gresource>-->
-</gresources>
diff --git a/plugins/openpgp/meson.build b/plugins/openpgp/meson.build
deleted file mode 100644
index 5d6635e3..00000000
--- a/plugins/openpgp/meson.build
+++ /dev/null
@@ -1,47 +0,0 @@
-subdir('po')
-dependencies = [
- dep_libadwaita,
- dep_dino,
- dep_gee,
- dep_glib,
- dep_gmodule,
- dep_gpgme,
- dep_gtk4,
- dep_qlite,
- dep_xmpp_vala,
-]
-sources = files(
- 'src/contact_details_provider.vala',
- 'src/database.vala',
- 'src/encryption_list_entry.vala',
- 'src/encryption_preferences_entry.vala',
- 'src/file_transfer/file_decryptor.vala',
- 'src/file_transfer/file_encryptor.vala',
- 'src/gpgme_fix.c',
- 'src/gpgme_helper.vala',
- 'src/manager.vala',
- 'src/plugin.vala',
- 'src/register_plugin.vala',
- 'src/stream_module.vala',
- 'src/util.vala',
- 'vapi/gpg-error.vapi',
-)
-sources += gnome.compile_resources(
- 'resources',
- 'data/gresource.xml',
- source_dir: 'data',
-)
-c_args = [
- '-DG_LOG_DOMAIN="OpenPGP"',
- '-DGETTEXT_PACKAGE="dino-openpgp"',
- '-DLOCALE_INSTALL_DIR="@0@"'.format(get_option('prefix') / get_option('localedir')),
-]
-vala_args = [
- '--vapidir', meson.current_source_dir() / 'vapi',
-]
-if dep_libadwaita.version() == 'unknown' or dep_libadwaita.version().version_compare('>=1.4')
- vala_args += ['-D', 'Adw_1_4']
-endif
-lib_openpgp = shared_library('openpgp', sources, name_prefix: '', c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, install: true, install_dir: get_option('libdir') / get_option('plugindir'), install_rpath: default_install_rpath)
-dep_openpgp = declare_dependency(link_with: lib_openpgp, include_directories: include_directories('.'))
-summary('End-to-end encryption using PGP (openpgp)', dep_openpgp.found(), bool_yn: true, section: 'Plugins')
diff --git a/plugins/openpgp/po/LINGUAS b/plugins/openpgp/po/LINGUAS
deleted file mode 100644
index 990c81d5..00000000
--- a/plugins/openpgp/po/LINGUAS
+++ /dev/null
@@ -1,48 +0,0 @@
-ar
-ca
-cs
-da
-de
-el
-en
-eo
-es
-et
-eu
-fa
-fi
-fr
-fur
-gl
-hi
-hu
-ia
-id
-ie
-is
-isv
-it
-ja
-ka
-kab
-ko
-lb
-lt
-lv
-nb
-nl
-oc
-pl
-pt
-pt_BR
-ro
-ru
-sq
-sv
-ta
-th
-tr
-uk
-vi
-zh_CN
-zh_TW
diff --git a/plugins/openpgp/po/ar.po b/plugins/openpgp/po/ar.po
deleted file mode 100644
index f1632706..00000000
--- a/plugins/openpgp/po/ar.po
+++ /dev/null
@@ -1,62 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-05-13 14:26+0000\n"
-"Language-Team: Arabic <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/ar/>\n"
-"Language: ar\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
-"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
-"X-Generator: Weblate 5.12-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "استعلام GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "أعلن المفتاح"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "خطأ في GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "لا مفتاح متوفر. ولِّد واحدًا!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "مُعَطَّل"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "المفتاح ليس في سلسلة المفاتيح"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "البصمة"
-
-#~ msgid "Encryption"
-#~ msgstr "التعمية"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "نشر المفاتيح معطل"
-
-#~ msgid "Select key"
-#~ msgstr "اختيار مفتاح"
-
-#~ msgid "Loading…"
-#~ msgstr "جارٍ التحميل…"
diff --git a/plugins/openpgp/po/ca.po b/plugins/openpgp/po/ca.po
deleted file mode 100644
index 1774d186..00000000
--- a/plugins/openpgp/po/ca.po
+++ /dev/null
@@ -1,59 +0,0 @@
-# Catalan translation for dino-openpgp.
-# This file is distributed under the same license as the dino package.
-# Jordi Mallach <jordi@mallach.net>, 2018.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: dino-openpgp 20180123\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-08-22 20:14+0000\n"
-"Language-Team: Catalan <ca@dodds.net>\n"
-"Language: ca\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.13\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "S'està consultant al GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "S'ha produït un error al GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "No hi ha claus disponibles. Genereu una!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "La clau no està al clauer"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Empremta digital"
-
-#~ msgid "Encryption"
-#~ msgstr "Xifratge"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Publicació de claus inhabilitada"
-
-#~ msgid "Select key"
-#~ msgstr "Seleccioneu una clau"
-
-#~ msgid "Loading…"
-#~ msgstr "S'està carregant…"
diff --git a/plugins/openpgp/po/cs.po b/plugins/openpgp/po/cs.po
deleted file mode 100644
index ef105c70..00000000
--- a/plugins/openpgp/po/cs.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2026-03-18 01:44+0000\n"
-"Language-Team: none\n"
-"Language: cs\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
-"X-Generator: Weblate 5.17-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Dotazování GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Oznámit klíč"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Chyba v GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Nejsou k dispozici žádné klíče. Vygenerujte jeden!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Zakázáno"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Klíč není v klíčence"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Otisk"
-
-#~ msgid "Encryption"
-#~ msgstr "Šifrování"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Publikování klíčů zakázáno"
-
-#~ msgid "Select key"
-#~ msgstr "Vybrat klíč"
-
-#~ msgid "Loading…"
-#~ msgstr "Načítání…"
diff --git a/plugins/openpgp/po/da.po b/plugins/openpgp/po/da.po
deleted file mode 100644
index 73393aad..00000000
--- a/plugins/openpgp/po/da.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2024-01-06 01:07+0000\n"
-"Language-Team: none\n"
-"Language: da\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.4-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Forespørg GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Fejl i GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Ingen nøgler til rådighed. Generer en!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Nøglen er ikke i nøglering"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "Kryptering"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Nøglepublisering deaktiveret"
-
-#~ msgid "Select key"
-#~ msgstr "Vælg nøgle"
-
-#~ msgid "Loading…"
-#~ msgstr "Henter…"
diff --git a/plugins/openpgp/po/de.po b/plugins/openpgp/po/de.po
deleted file mode 100644
index 596ca9fc..00000000
--- a/plugins/openpgp/po/de.po
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: dino-openpgp-0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-04-10 11:50+0000\n"
-"Language-Team: German <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/de/>\n"
-"Language: de\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "GnuPG wird abgefragt"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Schlüssel veröffentlichen"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Fehler in GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Keine Schlüssel vorhanden. Erzeuge einen!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Deaktiviert"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Schlüssel nicht im Schlüsselbund"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Fingerabdruck"
-
-#~ msgid "Encryption"
-#~ msgstr "Verschlüsselung"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Schlüsselveröffentlichung deaktiviert"
-
-#~ msgid "Select key"
-#~ msgstr "Wähle einen Schlüssel"
-
-#~ msgid "Loading…"
-#~ msgstr "Lade…"
-
-#~ msgid "OpenPGP"
-#~ msgstr "OpenPGP"
diff --git a/plugins/openpgp/po/dino-openpgp.pot b/plugins/openpgp/po/dino-openpgp.pot
deleted file mode 100644
index def86832..00000000
--- a/plugins/openpgp/po/dino-openpgp.pot
+++ /dev/null
@@ -1,48 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
diff --git a/plugins/openpgp/po/el.po b/plugins/openpgp/po/el.po
deleted file mode 100644
index 7dcd3177..00000000
--- a/plugins/openpgp/po/el.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2022-02-04 09:55+0000\n"
-"Language-Team: none\n"
-"Language: el\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Αναζήτηση στο GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Σφάλμα στο GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Δεν υπάρχουν διαθέσιμα κλειδιά. Δημιουργήστε ένα!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Το κλειδί δεν είναι στο keychain"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "Κρυπτογράφηση"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Η δημοσίευση του κλειδιού είναι απενεργοποιημένη"
-
-#~ msgid "Select key"
-#~ msgstr "Επιλέξτε κλειδί"
-
-#~ msgid "Loading…"
-#~ msgstr "Φόρτωση…"
diff --git a/plugins/openpgp/po/en.po b/plugins/openpgp/po/en.po
deleted file mode 100644
index aceb2946..00000000
--- a/plugins/openpgp/po/en.po
+++ /dev/null
@@ -1,39 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: dino-openpgp-0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"Language: en\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
diff --git a/plugins/openpgp/po/eo.po b/plugins/openpgp/po/eo.po
deleted file mode 100644
index aa9f9116..00000000
--- a/plugins/openpgp/po/eo.po
+++ /dev/null
@@ -1,61 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2026-03-24 17:09+0000\n"
-"Language-Team: none\n"
-"Language: eo\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.17-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Pridemandante GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Anonca ŝlosilo"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Eraro pri GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Neniu ŝlosilo estas havebla. Faru ŝlosilon!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Malŝaltita"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Ŝlosilo ne en ŝlosilaro"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Fingropremo"
-
-#, fuzzy
-#~ msgid "Encryption"
-#~ msgstr "Kodo"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Eldonado de ŝlosilo estas malŝaltita"
-
-#~ msgid "Select key"
-#~ msgstr "Elekti ŝlosilon"
-
-#~ msgid "Loading…"
-#~ msgstr "Ŝargante…"
diff --git a/plugins/openpgp/po/es.po b/plugins/openpgp/po/es.po
deleted file mode 100644
index 7c569f38..00000000
--- a/plugins/openpgp/po/es.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-05-11 19:01+0000\n"
-"Language-Team: Spanish <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/es/>\n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"<jaime.marquinez.ferrandiz@fastmail.net>\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.12-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Consultando GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-#, fuzzy
-msgid "Announce key"
-msgstr "Anunciar la clave"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Error en GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "No hay claves disponibles. ¡Genera una!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Desactivado"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "La clave no está en la cadena de claves"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-#, fuzzy
-msgid "Fingerprint"
-msgstr "Huella"
-
-#~ msgid "Encryption"
-#~ msgstr "Encriptación"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Publicación de claves desactivada"
-
-#~ msgid "Select key"
-#~ msgstr "Seleccionar clave"
-
-#~ msgid "Loading…"
-#~ msgstr "Cargando…"
diff --git a/plugins/openpgp/po/et.po b/plugins/openpgp/po/et.po
deleted file mode 100644
index 51399381..00000000
--- a/plugins/openpgp/po/et.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-04-10 11:50+0000\n"
-"Language-Team: none\n"
-"Language: et\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Pärime GnuPG andmekogust"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Teata võtmest"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "GnuPG viga"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Võtmeid ei leidu. Palun loo!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Pole kasutusel"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Võtit ei leidu võtmerõngas"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Sõrmejälg"
-
-#~ msgid "Encryption"
-#~ msgstr "Krüptimine"
diff --git a/plugins/openpgp/po/eu.po b/plugins/openpgp/po/eu.po
deleted file mode 100644
index 1e6d382f..00000000
--- a/plugins/openpgp/po/eu.po
+++ /dev/null
@@ -1,61 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2018-04-03 15:27+0000\n"
-"Language-Team: Basque <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/eu/>\n"
-"Language: eu\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.20-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "GnuPGri galdetzen"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "GnuPG akatsa"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Ez dago gakorik eskuragarri. Sortu ezazu bat!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Gakorik ez giltzatakoan"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "Enkriptazioa"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Gakoa argitaratzea ezgaituta"
-
-#~ msgid "Select key"
-#~ msgstr "Gakoa hautatu"
-
-#~ msgid "Loading…"
-#~ msgstr "Kargatzen…"
diff --git a/plugins/openpgp/po/fa.po b/plugins/openpgp/po/fa.po
deleted file mode 100644
index cffdbfed..00000000
--- a/plugins/openpgp/po/fa.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-12-05 20:00+0000\n"
-"Language-Team: none\n"
-"Language: fa\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 5.15-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "پرس‌و‌جوی گنوپی‌جی"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "کلید اعلام"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "خطا در گنوپی‌جی"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "هیچ کلیدی در دسترس نیست. یکی تولید کنید!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "غیرفعال شده"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "کلید در دسته‌کلید نیست"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "شناسه"
-
-#~ msgid "Encryption"
-#~ msgstr "رمزگذاری"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "انشار کلید غیرفعال‌شده"
-
-#~ msgid "Select key"
-#~ msgstr "انتخاب کلید"
-
-#~ msgid "Loading…"
-#~ msgstr "در حال بارگذاری…"
diff --git a/plugins/openpgp/po/fi.po b/plugins/openpgp/po/fi.po
deleted file mode 100644
index 5543ce7a..00000000
--- a/plugins/openpgp/po/fi.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-07-19 04:27+0000\n"
-"Language-Team: none\n"
-"Language: fi\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.13-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Kysellään GnuPG:tä"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Ilmoita avain"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Virhe GnuPG:ssä"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Ei avaimia saatavilla. Luo avain!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Pois käytöstä"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Avain ei ole avainnipussa"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Sormenjälki"
-
-#~ msgid "Encryption"
-#~ msgstr "Salaus"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Avaimen julkaiseminen pois käytöstä"
-
-#~ msgid "Select key"
-#~ msgstr "Valitse avain"
-
-#~ msgid "Loading…"
-#~ msgstr "Ladataan…"
diff --git a/plugins/openpgp/po/fr.po b/plugins/openpgp/po/fr.po
deleted file mode 100644
index 51cc8d3a..00000000
--- a/plugins/openpgp/po/fr.po
+++ /dev/null
@@ -1,61 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-04-13 20:01+0000\n"
-"Language-Team: French <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/fr/>\n"
-"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 5.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Interrogation de GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Annoncer la clé"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Erreur dans GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Aucune clé n’est disponible. Générez-en une !"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Désactivé"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "La clé n’est pas dans le trousseau"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Empreinte"
-
-#~ msgid "Encryption"
-#~ msgstr "Chiffrement"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "La publication des clés est désactivée"
-
-#~ msgid "Select key"
-#~ msgstr "Choix d’une clé"
-
-#~ msgid "Loading…"
-#~ msgstr "Chargement…"
diff --git a/plugins/openpgp/po/fur.po b/plugins/openpgp/po/fur.po
deleted file mode 100644
index 11d1a678..00000000
--- a/plugins/openpgp/po/fur.po
+++ /dev/null
@@ -1,48 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2026-03-24 17:09+0000\n"
-"Language-Team: none\n"
-"Language: fur\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.17-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Cirint su GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Clâf par scomencià"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "No si cumbine cun GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "No son clâs diomadone. Fascint une!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Disabilitât"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Ma diopoi, la clâf no è tal parteclâs"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Improntes digitâl"
diff --git a/plugins/openpgp/po/gl.po b/plugins/openpgp/po/gl.po
deleted file mode 100644
index 385a8e32..00000000
--- a/plugins/openpgp/po/gl.po
+++ /dev/null
@@ -1,61 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-04-10 11:50+0000\n"
-"Language-Team: Galician <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/gl/>\n"
-"Language: gl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Consultando a GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Publicar clave"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Fallo en GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Sen chaves dispoñibles. Crear unha!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Desactivado"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "A chave non está no anel de chaves"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Impresión dixital"
-
-#~ msgid "Encryption"
-#~ msgstr "Cifraxe"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Desactivada a publicación de chaves"
-
-#~ msgid "Select key"
-#~ msgstr "Escolle chave"
-
-#~ msgid "Loading…"
-#~ msgstr "Cargando…"
diff --git a/plugins/openpgp/po/hi.po b/plugins/openpgp/po/hi.po
deleted file mode 100644
index 198eddc3..00000000
--- a/plugins/openpgp/po/hi.po
+++ /dev/null
@@ -1,46 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Language-Team: none\n"
-"Language: hi\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
diff --git a/plugins/openpgp/po/hu.po b/plugins/openpgp/po/hu.po
deleted file mode 100644
index bb7cf47b..00000000
--- a/plugins/openpgp/po/hu.po
+++ /dev/null
@@ -1,61 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-04-10 11:50+0000\n"
-"Language-Team: Hungarian <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/hu/>\n"
-"Language: hu\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "A GnuPG lekérése"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Kulcs bejelentése"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Hiba a GnuPG-ben"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Nincsenek elérhető kulcsok. Állítson elő egyet!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Letiltva"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "A kulcs nincs a kulcstartóban"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Ujjlenyomat"
-
-#~ msgid "Encryption"
-#~ msgstr "Titkosítás"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Kulcsközzététel letiltva"
-
-#~ msgid "Select key"
-#~ msgstr "Kulcs kiválasztása"
-
-#~ msgid "Loading…"
-#~ msgstr "Betöltés…"
diff --git a/plugins/openpgp/po/ia.po b/plugins/openpgp/po/ia.po
deleted file mode 100644
index fe550095..00000000
--- a/plugins/openpgp/po/ia.po
+++ /dev/null
@@ -1,46 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Language-Team: none\n"
-"Language: ia\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
diff --git a/plugins/openpgp/po/id.po b/plugins/openpgp/po/id.po
deleted file mode 100644
index 7043cec5..00000000
--- a/plugins/openpgp/po/id.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2026-02-28 11:09+0000\n"
-"Language-Team: none\n"
-"Language: id\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 5.16.1-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Menanyakan GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Umumkan kunci"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Kesalahan pada GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Tidak ada kunci tersedia. Buat satu!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Dinonaktifkan"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Kunci tidak ada di rantai kunci"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Sidik jari"
-
-#~ msgid "Encryption"
-#~ msgstr "Enkripsi"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Penerbitan kunci dinonaktifkan"
-
-#~ msgid "Select key"
-#~ msgstr "Pilih kunci"
-
-#~ msgid "Loading…"
-#~ msgstr "Memuat…"
diff --git a/plugins/openpgp/po/ie.po b/plugins/openpgp/po/ie.po
deleted file mode 100644
index c696fc3c..00000000
--- a/plugins/openpgp/po/ie.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2020-02-04 16:50+0000\n"
-"Language-Team: none\n"
-"Language: ie\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Contactante GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Errore de GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Null claves disponibil. Crea ún!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Clave ne es in li porta-clave"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "Ciffration"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Publication de claves depermisset"
-
-#~ msgid "Select key"
-#~ msgstr "Selecter un clave"
-
-#~ msgid "Loading…"
-#~ msgstr "Cargante…"
diff --git a/plugins/openpgp/po/is.po b/plugins/openpgp/po/is.po
deleted file mode 100644
index 0fa140aa..00000000
--- a/plugins/openpgp/po/is.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2022-10-17 00:56+0000\n"
-"Language-Team: none\n"
-"Language: is\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n % 10 != 1 || n % 100 == 11;\n"
-"X-Generator: Weblate 4.15-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Að spyrja GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Villa hjá GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Engir lyklar í boði. Búðu einn til!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Lykill ekki í lyklakippu"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "Dulritun"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Deiling lykla óvirkt"
-
-#~ msgid "Select key"
-#~ msgstr "Veldu lykil"
-
-#~ msgid "Loading…"
-#~ msgstr "Hleður…"
diff --git a/plugins/openpgp/po/isv.po b/plugins/openpgp/po/isv.po
deleted file mode 100644
index 532f2121..00000000
--- a/plugins/openpgp/po/isv.po
+++ /dev/null
@@ -1,48 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-10-27 13:02+0000\n"
-"Language-Team: none\n"
-"Language: isv\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.14.1-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Poprošenje GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Zadany ključ"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Grěška v GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Nema dostupnyh ključev. Sgenerujte jedin!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Izključeno"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Nema ključa v svezku ključev"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Odtisk/odpečatok prsta"
diff --git a/plugins/openpgp/po/it.po b/plugins/openpgp/po/it.po
deleted file mode 100644
index 69ed9999..00000000
--- a/plugins/openpgp/po/it.po
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: dino-openpgp-0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2018-01-24 12:18+0000\n"
-"Language-Team: Italian <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/it/>\n"
-"Language: it\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.19-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Interrogando GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Errore in GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Nessuna chiave disponibile. Generane una!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "La chiave non è nel portachiavi"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "Crittografia"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Pubblicazione della chiave disabilitata"
-
-#~ msgid "Select key"
-#~ msgstr "Seleziona una chiave"
-
-#~ msgid "Loading…"
-#~ msgstr "Caricamento…"
-
-#~ msgid "OpenPGP"
-#~ msgstr "OpenPGP"
diff --git a/plugins/openpgp/po/ja.po b/plugins/openpgp/po/ja.po
deleted file mode 100644
index da8acfef..00000000
--- a/plugins/openpgp/po/ja.po
+++ /dev/null
@@ -1,61 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2024-09-15 20:09+0000\n"
-"Language-Team: none\n"
-"Language: ja\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"<shirahara@users.noreply.hosted.weblate.org>\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 5.8-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "GnuPG に問い合わせています"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "GnuPG でのエラー"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "キーがありません。生成しましょう!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "無効"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "キーはキーチェーンにありません"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "暗号化"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "キーの発行は無効"
-
-#~ msgid "Select key"
-#~ msgstr "キーを選択"
-
-#~ msgid "Loading…"
-#~ msgstr "読み込んでいます…"
diff --git a/plugins/openpgp/po/ka.po b/plugins/openpgp/po/ka.po
deleted file mode 100644
index d952f1ec..00000000
--- a/plugins/openpgp/po/ka.po
+++ /dev/null
@@ -1,48 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2026-02-02 10:01+0000\n"
-"Language-Team: none\n"
-"Language: ka\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.16-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "GnuPG-ის გამოთხოვა"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "გასაღების გამოცხადება"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "შეცდომა GnuPG-ში"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "გასაღებები ხელმისაწვდომი არაა. დაგენერირეთ ერთი მაინც!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "გათიშულია"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "გასაღები ბრელოკში არაა"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "ანაბეჭდი"
diff --git a/plugins/openpgp/po/kab.po b/plugins/openpgp/po/kab.po
deleted file mode 100644
index af6e2d05..00000000
--- a/plugins/openpgp/po/kab.po
+++ /dev/null
@@ -1,48 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2026-02-19 21:09+0000\n"
-"Language-Team: none\n"
-"Language: kab\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 5.16.1-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Tuttra GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Berreḥ tsarut"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Tuccḍa deg GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Ulac tisura. Sarew-d yiwet!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Arurmid"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Tasarut ulac-itt deg uzrar n tsura"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Adsil umḍin"
diff --git a/plugins/openpgp/po/ko.po b/plugins/openpgp/po/ko.po
deleted file mode 100644
index 30ab5ccd..00000000
--- a/plugins/openpgp/po/ko.po
+++ /dev/null
@@ -1,61 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2022-10-17 11:49+0000\n"
-"Language-Team: none\n"
-"Language: ko\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.15-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "GnuPG에 에러가 있음"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "사용 가능한 키 없음. 하나 생성하세요!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "키가 키체인에 있지 않음"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "암호화"
-
-#, fuzzy
-#~ msgid "Key publishing disabled"
-#~ msgstr "키 게재 비활성화됨"
-
-#~ msgid "Select key"
-#~ msgstr "키 선택"
-
-#~ msgid "Loading…"
-#~ msgstr "로딩중…"
diff --git a/plugins/openpgp/po/lb.po b/plugins/openpgp/po/lb.po
deleted file mode 100644
index b0fff6bc..00000000
--- a/plugins/openpgp/po/lb.po
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: dino-openpgp-0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2018-01-24 12:20+0000\n"
-"Language-Team: Luxembourgish <https://hosted.weblate.org/projects/dino/"
-"plugin-openpgp/lb/>\n"
-"Language: lb\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 2.19-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "GnuPG gëtt ofgefrot"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Feeler am GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Keng Schlëssele verfügbar. Generéier een!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Schlësselen net am Schlësselbond"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "Verschlësselung"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Schlëssel Verëffentlechung ausgeschalt"
-
-#~ msgid "Select key"
-#~ msgstr "Schlëssel auswielen"
-
-#~ msgid "Loading…"
-#~ msgstr "Lueden…"
-
-#~ msgid "OpenPGP"
-#~ msgstr "OpenPGP"
diff --git a/plugins/openpgp/po/lt.po b/plugins/openpgp/po/lt.po
deleted file mode 100644
index 615be99a..00000000
--- a/plugins/openpgp/po/lt.po
+++ /dev/null
@@ -1,61 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-12-27 20:00+0000\n"
-"Language-Team: none\n"
-"Language: lt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"(n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Weblate 5.15.1\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Užklausiama GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Paskelbimo raktas"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Klaida GnuPG programoje"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Nėra prieinamų raktų. Sugeneruokite!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Išjungta"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Rakto nėra raktinėje"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Kontrolinis kodas"
-
-#~ msgid "Encryption"
-#~ msgstr "Šifravimas"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Rakto paskelbimas išjungtas"
-
-#~ msgid "Select key"
-#~ msgstr "Pasirinkti raktą"
-
-#~ msgid "Loading…"
-#~ msgstr "Įkeliama…"
diff --git a/plugins/openpgp/po/lv.po b/plugins/openpgp/po/lv.po
deleted file mode 100644
index e4e3d44c..00000000
--- a/plugins/openpgp/po/lv.po
+++ /dev/null
@@ -1,46 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Language-Team: none\n"
-"Language: lv\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
diff --git a/plugins/openpgp/po/meson.build b/plugins/openpgp/po/meson.build
deleted file mode 100644
index ac755b55..00000000
--- a/plugins/openpgp/po/meson.build
+++ /dev/null
@@ -1 +0,0 @@
-i18n.gettext('dino-openpgp')
diff --git a/plugins/openpgp/po/nb.po b/plugins/openpgp/po/nb.po
deleted file mode 100644
index 75e5bee0..00000000
--- a/plugins/openpgp/po/nb.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2026-03-17 06:09+0000\n"
-"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/dino/"
-"plugin-openpgp/nb/>\n"
-"Language: nb\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.17-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Sender spørring til GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Kunngjør nøkkel"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Feil i GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Ingen nøkler tilgjengelige. Generer én!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Deaktivert"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Nøkkelen finnes ikke i nøkkelknippet"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Fingeravtrykk"
-
-#~ msgid "Encryption"
-#~ msgstr "Kryptering"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Nøkkelpublisering avskrudd"
-
-#~ msgid "Select key"
-#~ msgstr "Velg nøkkel"
-
-#~ msgid "Loading…"
-#~ msgstr "Laster…"
-
-#~ msgid "OpenPGP"
-#~ msgstr "OpenPGP"
diff --git a/plugins/openpgp/po/nl.po b/plugins/openpgp/po/nl.po
deleted file mode 100644
index 7190b9a6..00000000
--- a/plugins/openpgp/po/nl.po
+++ /dev/null
@@ -1,59 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: dino-openpgp-0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2026-03-14 10:09+0000\n"
-"Language-Team: Dutch <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/nl/>\n"
-"Language: nl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.17-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Bezig met aanroepen van GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Aankondigingssleutel"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Fout in GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Geen sleutels beschikbaar. Genereer een sleutel!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Uitgeschakeld"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Sleutel niet in sleutelbos"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Vingerafdruk"
-
-#~ msgid "Encryption"
-#~ msgstr "Encryptie"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Sleutelpublicatie uitgeschakeld"
-
-#~ msgid "Select key"
-#~ msgstr "Kies een sleutel"
-
-#~ msgid "Loading…"
-#~ msgstr "Bezig met laden…"
-
-#~ msgid "OpenPGP"
-#~ msgstr "OpenPGP"
diff --git a/plugins/openpgp/po/oc.po b/plugins/openpgp/po/oc.po
deleted file mode 100644
index e5ece743..00000000
--- a/plugins/openpgp/po/oc.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-04-10 05:39+0000\n"
-"Language-Team: none\n"
-"Language: oc\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 5.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Consultacion de GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Anonciar la clau"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Error dins gnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Cap de clau pas disponibla. Generatz-ne una !"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Desactivat"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "La clau es pas al trocèl"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Emprenta"
-
-#~ msgid "Encryption"
-#~ msgstr "Chiframent"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Publicacion de clau desactivada"
-
-#~ msgid "Select key"
-#~ msgstr "Seleccionar una clau"
-
-#~ msgid "Loading…"
-#~ msgstr "Cargament…"
diff --git a/plugins/openpgp/po/pl.po b/plugins/openpgp/po/pl.po
deleted file mode 100644
index 06ace91e..00000000
--- a/plugins/openpgp/po/pl.po
+++ /dev/null
@@ -1,62 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2024-07-04 00:09+0000\n"
-"Language-Team: Polish <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/pl/>\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Weblate 5.7-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Odpytuję GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Błąd w GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Brak kluczy. Wygeneruj nowy!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Wyłączono"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Klucz nie znajduje się w pęku kluczy"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "Szyfrowanie"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Publikowanie kluczy wyłączone"
-
-#~ msgid "Select key"
-#~ msgstr "Wybierz klucz"
-
-#~ msgid "Loading…"
-#~ msgstr "Ładowanie…"
diff --git a/plugins/openpgp/po/pt.po b/plugins/openpgp/po/pt.po
deleted file mode 100644
index aaa9c5e5..00000000
--- a/plugins/openpgp/po/pt.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-08-04 20:01+0000\n"
-"Language-Team: none\n"
-"Language: pt\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 5.13-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Consultando GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Anunciar chave"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Erro no GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Nenhuma chave disponível. Gere uma!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Desativado"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "A chave não está no chaveiro"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Impressão digital"
-
-#~ msgid "Encryption"
-#~ msgstr "Criptografia"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Publicação da chave desativada"
-
-#~ msgid "Select key"
-#~ msgstr "Selecionar chave"
-
-#~ msgid "Loading…"
-#~ msgstr "Carregando…"
diff --git a/plugins/openpgp/po/pt_BR.po b/plugins/openpgp/po/pt_BR.po
deleted file mode 100644
index 8916bf1a..00000000
--- a/plugins/openpgp/po/pt_BR.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-04-12 07:32+0000\n"
-"Language-Team: none\n"
-"Language: pt_BR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 5.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Consultando GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Anunciar chave"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Erro no GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Nenhuma chave disponível. Gere uma!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Desativado"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "A chave não está no chaveiro"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Impressão digital"
-
-#~ msgid "Encryption"
-#~ msgstr "Criptografia"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Publicação da chave desativada"
-
-#~ msgid "Select key"
-#~ msgstr "Selecionar chave"
-
-#~ msgid "Loading…"
-#~ msgstr "Carregando…"
diff --git a/plugins/openpgp/po/ro.po b/plugins/openpgp/po/ro.po
deleted file mode 100644
index cedf59fb..00000000
--- a/plugins/openpgp/po/ro.po
+++ /dev/null
@@ -1,62 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-04-10 11:50+0000\n"
-"Language-Team: Romanian <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/ro/>\n"
-"Language: ro\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
-"20)) ? 1 : 2;\n"
-"X-Generator: Weblate 5.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Se interoghează GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Anunță cheie"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Eroare în GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Nici o cheie disponibilă. Generați una!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Dezactivat"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Cheia nu este în șirul de chei"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Amprentă"
-
-#~ msgid "Encryption"
-#~ msgstr "Criptare"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Cheie publică dezactivată"
-
-#~ msgid "Select key"
-#~ msgstr "Selectați cheia"
-
-#~ msgid "Loading…"
-#~ msgstr "Se încarcă…"
diff --git a/plugins/openpgp/po/ru.po b/plugins/openpgp/po/ru.po
deleted file mode 100644
index 85222f40..00000000
--- a/plugins/openpgp/po/ru.po
+++ /dev/null
@@ -1,62 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-05-06 13:05+0000\n"
-"Language-Team: Russian <https://hosted.weblate.org/projects/dino/plugin-"
-"openpgp/ru/>\n"
-"Language: ru\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Weblate 5.12-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Запрос GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Объявленный ключ"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Ошибка в GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Нет доступных ключей. Стоило бы сгенерировать один!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Выключено"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Отсутствует ключ в связке"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Отпечаток"
-
-#~ msgid "Encryption"
-#~ msgstr "Шифрование"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Публикация ключа отключена"
-
-#~ msgid "Select key"
-#~ msgstr "Выбрать ключ"
-
-#~ msgid "Loading…"
-#~ msgstr "Загрузка…"
diff --git a/plugins/openpgp/po/sq.po b/plugins/openpgp/po/sq.po
deleted file mode 100644
index 3e4640bb..00000000
--- a/plugins/openpgp/po/sq.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-04-10 11:50+0000\n"
-"Language-Team: none\n"
-"Language: sq\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Po pyetet GnuPG-ja"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Njoftojeni kyçin"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Gabim në GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "S’ka kyçe gati. Prodhoni një të tillë!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "I çaktivizuar"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Kyç jo në varg kyçesh"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Shenja gishtash"
-
-#~ msgid "Encryption"
-#~ msgstr "Fshehtëzim"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Publikim kyçesh i çaktivizuar"
-
-#~ msgid "Select key"
-#~ msgstr "Përzgjidhni kyç"
-
-#~ msgid "Loading…"
-#~ msgstr "Po ngarkohet…"
diff --git a/plugins/openpgp/po/sv.po b/plugins/openpgp/po/sv.po
deleted file mode 100644
index 49cfaddc..00000000
--- a/plugins/openpgp/po/sv.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2024-08-05 20:09+0000\n"
-"Language-Team: none\n"
-"Language: sv\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.7-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Frågar GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Fel i GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Inga nycklar tillgängliga. Generera en!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Inaktiverad"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Nyckeln finns inte i nyckelknippan"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "Kryptering"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Nyckelpublicering inaktiverad"
-
-#~ msgid "Select key"
-#~ msgstr "Välj nyckel"
-
-#~ msgid "Loading…"
-#~ msgstr "Laddar…"
diff --git a/plugins/openpgp/po/ta.po b/plugins/openpgp/po/ta.po
deleted file mode 100644
index 57489c15..00000000
--- a/plugins/openpgp/po/ta.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2026-02-28 11:09+0000\n"
-"Language-Team: none\n"
-"Language: ta\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.16.1-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Gnupg ஐ வினவுகிறது"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "அறிவிப்பு திறவுகோல்"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "குனுபிசீ இல் பிழை"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "திறவுகோல்கள் எதுவும் கிடைக்கவில்லை. ஒன்றை உருவாக்கு!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "முடக்கப்பட்டது"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "விசை கீச்சினில் இல்லை"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "கைரேகை"
-
-#~ msgid "Encryption"
-#~ msgstr "குறியாக்கம்"
diff --git a/plugins/openpgp/po/th.po b/plugins/openpgp/po/th.po
deleted file mode 100644
index 56098a4f..00000000
--- a/plugins/openpgp/po/th.po
+++ /dev/null
@@ -1,48 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-10-05 07:02+0000\n"
-"Language-Team: none\n"
-"Language: th\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 5.14-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "การสอบถาม GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "กุญแจ"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "GnuPG ผิดพลาด"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "ไม่มีคีย์ที่ใช้งานได้ สร้างอันใหม่สิ!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "ผิดพลาด"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "กุญแจไม่อยู่ในพวงกุญแจ"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "ลายนิ้วมือ"
diff --git a/plugins/openpgp/po/tr.po b/plugins/openpgp/po/tr.po
deleted file mode 100644
index bdbfb6fc..00000000
--- a/plugins/openpgp/po/tr.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-10-11 15:07+0000\n"
-"Language-Team: none\n"
-"Language: tr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.14-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "GnuPG sorgu"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Anahtarı yayınla"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "GnuPG'de Hata"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Anahtar yok. Bir tane oluşturun!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Devre dışı"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Anahtar anahtarlıkta değil"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Parmak izi"
-
-#~ msgid "Encryption"
-#~ msgstr "Şifreleme"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Anahtar yayınlama devre dışı"
-
-#~ msgid "Select key"
-#~ msgstr "Anahtar seçin"
-
-#~ msgid "Loading…"
-#~ msgstr "Yükleniyor…"
diff --git a/plugins/openpgp/po/uk.po b/plugins/openpgp/po/uk.po
deleted file mode 100644
index 69176117..00000000
--- a/plugins/openpgp/po/uk.po
+++ /dev/null
@@ -1,61 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-04-10 05:39+0000\n"
-"Language-Team: none\n"
-"Language: uk\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Weblate 5.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Запит до GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "Оголосити ключ"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Помилка у GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Немає доступних ключей. Сгенеріть!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Вимкнено"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Відсутній ключ у зв’язці"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "Відбиток пальця"
-
-#~ msgid "Encryption"
-#~ msgstr "Шифрування"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Публікація ключа відключена"
-
-#~ msgid "Select key"
-#~ msgstr "Вибрати ключ"
-
-#~ msgid "Loading…"
-#~ msgstr "Завантаження…"
diff --git a/plugins/openpgp/po/vi.po b/plugins/openpgp/po/vi.po
deleted file mode 100644
index 71f6fdce..00000000
--- a/plugins/openpgp/po/vi.po
+++ /dev/null
@@ -1,60 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-08-02 17:02+0000\n"
-"Language-Team: none\n"
-"Language: vi\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 5.13-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "Đang truy vấn GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "Lỗi trong GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "Không có khoá khả dụng. Hãy tạo một khoá!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "Đã vô hiệu hoá"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "Khoá không trong chuỗi khoá"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "Mã hoá"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "Công khai khoá đã bị vô hiệu hoá"
-
-#~ msgid "Select key"
-#~ msgstr "Chọn khoá"
-
-#~ msgid "Loading…"
-#~ msgstr "Đang tải…"
diff --git a/plugins/openpgp/po/zh_CN.po b/plugins/openpgp/po/zh_CN.po
deleted file mode 100644
index 26d6ac30..00000000
--- a/plugins/openpgp/po/zh_CN.po
+++ /dev/null
@@ -1,65 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: dino-omemo-0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2025-04-10 05:39+0000\n"
-"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
-"dino/plugin-openpgp/zh_Hans/>\n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 5.11-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "正在查询 GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr "公布密钥"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "GnuPG 错误"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "没有密钥可用。生成一个吧!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr "已禁用"
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "密钥不在密钥链中"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr "指纹"
-
-#~ msgid "Encryption"
-#~ msgstr "加密"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "已禁用密钥发布功能"
-
-#~ msgid "Select key"
-#~ msgstr "选择密钥"
-
-#~ msgid "Loading…"
-#~ msgstr "载入中…"
-
-#~ msgid "Own fingerprint"
-#~ msgstr "自己的指纹"
-
-#~ msgid "Will be generated on first connection"
-#~ msgstr "会在第一次连接时生成"
-
-#~ msgid "Database error"
-#~ msgstr "数据库错误"
diff --git a/plugins/openpgp/po/zh_TW.po b/plugins/openpgp/po/zh_TW.po
deleted file mode 100644
index 24ce38b7..00000000
--- a/plugins/openpgp/po/zh_TW.po
+++ /dev/null
@@ -1,61 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-29 11:32+0200\n"
-"PO-Revision-Date: 2020-11-24 05:28+0000\n"
-"Language-Team: Chinese (Traditional) <https://hosted.weblate.org/projects/"
-"dino/plugin-openpgp/zh_Hant/>\n"
-"Language: zh_TW\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.4-dev\n"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:18
-msgid "Querying GnuPG"
-msgstr "正在查詢 GnuPG"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-#: plugins/openpgp/src/encryption_preferences_entry.vala:41
-msgid "Announce key"
-msgstr ""
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:32
-msgid "Error in GnuPG"
-msgstr "GnuPG 錯誤"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:36
-msgid "No keys available. Generate one!"
-msgstr "沒有可用的金鑰。生成一個!"
-
-#: plugins/openpgp/src/encryption_preferences_entry.vala:45
-msgid "Disabled"
-msgstr ""
-
-#: plugins/openpgp/src/contact_details_provider.vala:36
-msgid "Key not in keychain"
-msgstr "密鑰不在密鑰串中"
-
-#: plugins/openpgp/src/contact_details_provider.vala:40
-msgid "Fingerprint"
-msgstr ""
-
-#~ msgid "Encryption"
-#~ msgstr "加密"
-
-#~ msgid "Key publishing disabled"
-#~ msgstr "金鑰發佈已經被禁用"
-
-#~ msgid "Select key"
-#~ msgstr "選擇金鑰"
-
-#~ msgid "Loading…"
-#~ msgstr "載入中…"
diff --git a/plugins/openpgp/src/contact_details_provider.vala b/plugins/openpgp/src/contact_details_provider.vala
deleted file mode 100644
index 353c0b85..00000000
--- a/plugins/openpgp/src/contact_details_provider.vala
+++ /dev/null
@@ -1,51 +0,0 @@
-using Gtk;
-
-using Dino.Entities;
-
-namespace Dino.Plugins.OpenPgp {
-
-public class ContactDetailsProvider : Plugins.ContactDetailsProvider, Object {
- public string id { get { return "pgp_info"; } }
- public string tab { get { return "encryption"; } }
-
- private StreamInteractor stream_interactor;
-
- public ContactDetailsProvider(StreamInteractor stream_interactor) {
- this.stream_interactor = stream_interactor;
- }
-
- public void populate(Conversation conversation, Plugins.ContactDetails contact_details, WidgetType type) { }
-
- public Object? get_widget(Conversation conversation) {
- var preferences_group = new Adw.PreferencesGroup() { title="OpenPGP" };
-
- if (conversation.type_ != Conversation.Type.CHAT) return null;
-
- string? key_id = stream_interactor.get_module(Manager.IDENTITY).get_key_id(conversation.account, conversation.counterpart);
- if (key_id == null) return null;
-
- Gee.List<GPG.Key>? keys = null;
- try {
- keys = GPGHelper.get_keylist(key_id);
- } catch (Error e) { }
-
- var str = "";
- if (keys != null && keys.size > 0) {
- str = markup_id(keys[0].fpr, true);
- } else {
- str = _("Key not in keychain") + "\n" + markup_id(key_id, false);
- }
-
- var view = new Adw.ActionRow() {
- title = _("Fingerprint"),
- subtitle = str,
- subtitle_selectable = true
- };
-
- preferences_group.add(view);
-
- return preferences_group;
- }
-}
-
-}
diff --git a/plugins/openpgp/src/database.vala b/plugins/openpgp/src/database.vala
deleted file mode 100644
index fb575a3b..00000000
--- a/plugins/openpgp/src/database.vala
+++ /dev/null
@@ -1,138 +0,0 @@
-using Qlite;
-
-using Dino.Entities;
-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);
- }
- }
-}
-
-}
diff --git a/plugins/openpgp/src/encryption_list_entry.vala b/plugins/openpgp/src/encryption_list_entry.vala
deleted file mode 100644
index cf5da8c4..00000000
--- a/plugins/openpgp/src/encryption_list_entry.vala
+++ /dev/null
@@ -1,72 +0,0 @@
-using Gee;
-using Gtk;
-
-using Dino.Entities;
-using Xmpp;
-
-namespace Dino.Plugins.OpenPgp {
-
-private class EncryptionListEntry : Plugins.EncryptionListEntry, Object {
-
- private StreamInteractor stream_interactor;
- private Database db;
-
- public EncryptionListEntry(StreamInteractor stream_interactor, Database db) {
- this.stream_interactor = stream_interactor;
- this.db = db;
- }
-
- public Entities.Encryption encryption { get {
- return Encryption.PGP;
- }}
-
- public string name { get {
- return "OpenPGP";
- }}
-
- public Object? get_encryption_icon(Entities.Conversation conversation, ContentItem content_item) {
- return null;
- }
-
- public string? get_encryption_icon_name(Entities.Conversation conversation, ContentItem content_item) {
- return null;
- }
-
- public void encryption_activated(Entities.Conversation conversation, Plugins.SetInputFieldStatus input_status_callback) {
- try {
- GPGHelper.get_public_key(db.get_account_key(conversation.account) ?? "");
- } catch (Error e) {
- input_status_callback(new Plugins.InputFieldStatus("You didn't configure OpenPGP for this account. You can do that in the Accounts Dialog.", Plugins.InputFieldStatus.MessageType.ERROR, Plugins.InputFieldStatus.InputState.NO_SEND));
- return;
- }
-
- if (conversation.type_ == Conversation.Type.CHAT) {
- string? key_id = stream_interactor.get_module(Manager.IDENTITY).get_key_id(conversation.account, conversation.counterpart);
- if (key_id == null) {
- input_status_callback(new Plugins.InputFieldStatus("This contact does not support %s encryption.".printf("OpenPGP"), Plugins.InputFieldStatus.MessageType.ERROR, Plugins.InputFieldStatus.InputState.NO_SEND));
- return;
- }
- try {
- GPGHelper.get_keylist(key_id);
- } catch (Error e) {
- input_status_callback(new Plugins.InputFieldStatus("This contact's OpenPGP key is not in your keyring.", Plugins.InputFieldStatus.MessageType.ERROR, Plugins.InputFieldStatus.InputState.NO_SEND));
- }
- } else if (conversation.type_ == Conversation.Type.GROUPCHAT) {
- Gee.List<Jid> muc_jids = new Gee.ArrayList<Jid>();
- Gee.List<Jid>? occupants = stream_interactor.get_module(MucManager.IDENTITY).get_occupants(conversation.counterpart, conversation.account);
- if (occupants != null) muc_jids.add_all(occupants);
- Gee.List<Jid>? offline_members = stream_interactor.get_module(MucManager.IDENTITY).get_offline_members(conversation.counterpart, conversation.account);
- if (offline_members != null) muc_jids.add_all(offline_members);
-
- foreach (Jid jid in muc_jids) {
- string? key_id = stream_interactor.get_module(Manager.IDENTITY).get_key_id(conversation.account, jid);
- if (key_id == null) {
- input_status_callback(new Plugins.InputFieldStatus("A member's OpenPGP key is not in your keyring: %s / %s.".printf(jid.to_string(), key_id), Plugins.InputFieldStatus.MessageType.ERROR, Plugins.InputFieldStatus.InputState.NO_SEND));
- return;
- }
- }
- }
- }
-}
-
-}
diff --git a/plugins/openpgp/src/encryption_preferences_entry.vala b/plugins/openpgp/src/encryption_preferences_entry.vala
deleted file mode 100644
index b03f6acd..00000000
--- a/plugins/openpgp/src/encryption_preferences_entry.vala
+++ /dev/null
@@ -1,82 +0,0 @@
-using Adw;
-using Dino.Entities;
-using Gtk;
-
-namespace Dino.Plugins.OpenPgp {
-
- public class PgpPreferencesEntry : Plugins.EncryptionPreferencesEntry {
-
- private Plugin plugin;
-
- public PgpPreferencesEntry(Plugin plugin) {
- this.plugin = plugin;
- }
-
- public override Object? get_widget(Account account, WidgetType type) {
- if (type != WidgetType.GTK4) return null;
- StringList string_list = new StringList(null);
- string_list.append(_("Querying GnuPG"));
-
- Adw.PreferencesGroup preferences_group = new Adw.PreferencesGroup() { title="OpenPGP" };
- populate_string_list.begin(account, preferences_group);
-
- return preferences_group;
- }
-
- public override string id { get { return "pgp_preferences_encryption"; }}
-
- private async void populate_string_list(Account account, Adw.PreferencesGroup preferences_group) {
- var keys = yield get_pgp_keys();
-
- if (keys == null) {
- preferences_group.add(new Adw.ActionRow() { title=_("Announce key"), subtitle=_("Error in GnuPG") });
- return;
- }
- if (keys.size == 0) {
- preferences_group.add(new Adw.ActionRow() { title=_("Announce key"), subtitle= _("No keys available. Generate one!") });
- return;
- }
-
- StringList string_list = new StringList(null);
- var drop_down = new Adw.ComboRow() { title = _("Announce key") };
- drop_down.model = string_list;
- preferences_group.add(drop_down);
-
- string_list.append(_("Disabled"));
- for (int i = 0; i < keys.size; i++) {
- string_list.append(@"$(keys[i].uids[0].uid)\n$(keys[i].fpr.substring(24, 16))");
- if (keys[i].fpr == plugin.db.get_account_key(account)) {
- drop_down.selected = i + 1;
- }
- }
-
- drop_down.notify["selected"].connect(() => {
- var key_id = drop_down.selected == 0 ? "" : keys[(int)drop_down.selected - 1].fpr;
- string? signed_data = null, sig = null;
- if (plugin.modules.has_key(account)) {
- plugin.modules[account].set_private_key_id(key_id, ref signed_data, ref sig);
- }
- plugin.db.set_account_key(account, key_id);
- if (signed_data != null && sig != null) {
- plugin.db.set_account_signature(account, signed_data, sig);
- }
- });
- }
-
- private static async Gee.List<GPG.Key> get_pgp_keys() {
- Gee.List<GPG.Key> keys = null;
- SourceFunc callback = get_pgp_keys.callback;
- new Thread<void*> (null, () => { // Querying GnuPG might take some time
- try {
- keys = GPGHelper.get_keylist(null, true);
- } catch (Error e) {
- warning(e.message);
- }
- Idle.add((owned)callback);
- return null;
- });
- yield;
- return keys;
- }
- }
-} \ No newline at end of file
diff --git a/plugins/openpgp/src/file_transfer/file_decryptor.vala b/plugins/openpgp/src/file_transfer/file_decryptor.vala
deleted file mode 100644
index 2deb5823..00000000
--- a/plugins/openpgp/src/file_transfer/file_decryptor.vala
+++ /dev/null
@@ -1,50 +0,0 @@
-using Dino.Entities;
-
-namespace Dino.Plugins.OpenPgp {
-
-public class PgpFileDecryptor : FileDecryptor, Object {
-
- public Encryption get_encryption() {
- return Encryption.PGP;
- }
-
- public FileReceiveData prepare_get_meta_info(Conversation conversation, FileTransfer file_transfer, FileReceiveData receive_data) {
- return receive_data;
- }
-
- public FileMeta prepare_download_file(Conversation conversation, FileTransfer file_transfer, FileReceiveData receive_data, FileMeta file_meta) {
- return file_meta;
- }
-
- public bool can_decrypt_file(Conversation conversation, FileTransfer file_transfer, FileReceiveData receive_data) {
- return file_transfer.file_name.has_suffix("pgp") ||
- (file_transfer.content_type != null && file_transfer.content_type.get_mime_type() == "application/pgp-encrypted");
- }
-
- public async InputStream decrypt_file(InputStream encrypted_stream, Conversation conversation, FileTransfer file_transfer, FileReceiveData receive_data) throws FileReceiveError {
- try {
- uint8[] buf = new uint8[256];
- ByteArray data = new ByteArray();
- size_t len = -1;
- do {
- len = yield encrypted_stream.read_async(buf);
- data.append(buf[0:len]);
- } while(len > 0);
-
- GPGHelper.DecryptedData clear_data = GPGHelper.decrypt_data(data.data);
- file_transfer.encryption = Encryption.PGP;
- if (clear_data.filename != null && clear_data.filename != "") {
- debug("Decrypting file %s from %s", clear_data.filename, file_transfer.file_name);
- file_transfer.file_name = clear_data.filename;
- } else if (file_transfer.file_name.has_suffix(".pgp")) {
- debug("Decrypting file %s from %s", file_transfer.file_name.substring(0, file_transfer.file_name.length - 4), file_transfer.file_name);
- file_transfer.file_name = file_transfer.file_name.substring(0, file_transfer.file_name.length - 4);
- }
- return new MemoryInputStream.from_data(clear_data.data, GLib.free);
- } catch (Error e) {
- throw new FileReceiveError.DECRYPTION_FAILED("PGP file decryption error: %s".printf(e.message));
- }
- }
-}
-
-}
diff --git a/plugins/openpgp/src/file_transfer/file_encryptor.vala b/plugins/openpgp/src/file_transfer/file_encryptor.vala
deleted file mode 100644
index 66e93bd9..00000000
--- a/plugins/openpgp/src/file_transfer/file_encryptor.vala
+++ /dev/null
@@ -1,45 +0,0 @@
-using Dino.Entities;
-
-namespace Dino.Plugins.OpenPgp {
-
-public class PgpFileEncryptor : Dino.FileEncryptor, Object {
-
- StreamInteractor stream_interactor;
-
- public PgpFileEncryptor(StreamInteractor stream_interactor) {
- this.stream_interactor = stream_interactor;
- }
-
- public bool can_encrypt_file(Conversation conversation, FileTransfer file_transfer) {
- return conversation.encryption == Encryption.PGP;
- }
-
- public FileMeta encrypt_file(Conversation conversation, FileTransfer file_transfer) throws FileSendError {
- FileMeta file_meta = new FileMeta();
-
- try {
- GPG.Key[] keys = stream_interactor.get_module(Manager.IDENTITY).get_key_fprs(conversation);
- uint8[] enc_content = GPGHelper.encrypt_file(file_transfer.get_file().get_path(), keys, GPG.EncryptFlags.ALWAYS_TRUST, file_transfer.file_name);
- file_transfer.input_stream = new MemoryInputStream.from_data(enc_content, GLib.free);
- file_transfer.encryption = Encryption.PGP;
- file_transfer.server_file_name = Xmpp.random_uuid() + ".pgp";
- file_meta.size = enc_content.length;
- } catch (Error e) {
- throw new FileSendError.ENCRYPTION_FAILED("PGP file encryption error: %s".printf(e.message));
- }
- debug("Encrypting file %s as %s", file_transfer.file_name, file_transfer.server_file_name);
-
- return file_meta;
- }
-
- public FileSendData? preprocess_send_file(Conversation conversation, FileTransfer file_transfer, FileSendData file_send_data, FileMeta file_meta) {
- HttpFileSendData? send_data = file_send_data as HttpFileSendData;
- if (send_data == null) return null;
-
- send_data.encrypt_message = false;
-
- return file_send_data;
- }
-}
-
-}
diff --git a/plugins/openpgp/src/gpgme_fix.c b/plugins/openpgp/src/gpgme_fix.c
deleted file mode 100644
index bf457a6c..00000000
--- a/plugins/openpgp/src/gpgme_fix.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <gpgme_fix.h>
-
-GRecMutex gpgme_global_mutex = {0};
-
-gpgme_key_t gpgme_key_ref_vapi (gpgme_key_t key) {
- gpgme_key_ref(key);
- return key;
-}
-gpgme_key_t gpgme_key_unref_vapi (gpgme_key_t key) {
- gpgme_key_unref(key);
- return key;
-}
diff --git a/plugins/openpgp/src/gpgme_fix.h b/plugins/openpgp/src/gpgme_fix.h
deleted file mode 100644
index 714614fc..00000000
--- a/plugins/openpgp/src/gpgme_fix.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef GPGME_FIX
-#define GPGME_FIX 1
-
-#include <glib.h>
-#include <gpgme.h>
-
-extern GRecMutex gpgme_global_mutex;
-
-gpgme_key_t gpgme_key_ref_vapi (gpgme_key_t key);
-gpgme_key_t gpgme_key_unref_vapi (gpgme_key_t key);
-
-#endif
diff --git a/plugins/openpgp/src/gpgme_helper.vala b/plugins/openpgp/src/gpgme_helper.vala
deleted file mode 100644
index 18d07c06..00000000
--- a/plugins/openpgp/src/gpgme_helper.vala
+++ /dev/null
@@ -1,185 +0,0 @@
-using Gee;
-using GPG;
-
-namespace GPGHelper {
-
-private static bool initialized = false;
-
-public static string encrypt_armor(string plain, Key[] keys, EncryptFlags flags) throws GLib.Error {
- global_mutex.lock();
- try {
- initialize();
- Data plain_data = Data.create_from_memory(plain.data, false);
- Context context = Context.create();
- context.set_armor(true);
- Data enc_data = context.op_encrypt(keys, flags, plain_data);
- return get_string_from_data(enc_data);
- } finally {
- global_mutex.unlock();
- }
-}
-
-public static uint8[] encrypt_file(string uri, Key[] keys, EncryptFlags flags, string file_name) throws GLib.Error {
- global_mutex.lock();
- try {
- initialize();
- Data plain_data = Data.create_from_file(uri);
- plain_data.set_file_name(file_name);
- Context context = Context.create();
- context.set_armor(true);
- Data enc_data = context.op_encrypt(keys, flags, plain_data);
- return get_uint8_from_data(enc_data);
- } finally {
- global_mutex.unlock();
- }
-}
-
-public static string decrypt(string encr) throws GLib.Error {
- global_mutex.lock();
- try {
- initialize();
- Data enc_data = Data.create_from_memory(encr.data, false);
- Context context = Context.create();
- Data dec_data = context.op_decrypt(enc_data);
- return get_string_from_data(dec_data);
- } finally {
- global_mutex.unlock();
- }
-}
-
-public class DecryptedData {
- public uint8[] data { get; set; }
- public string filename { get; set; }
-}
-
-public static DecryptedData decrypt_data(uint8[] data) throws GLib.Error {
- global_mutex.lock();
- try {
- initialize();
- Data enc_data = Data.create_from_memory(data, false);
- Context context = Context.create();
- Data dec_data = context.op_decrypt(enc_data);
- DecryptResult* dec_res = context.op_decrypt_result();
- return new DecryptedData() { data=get_uint8_from_data(dec_data), filename=dec_res->file_name};
- } finally {
- global_mutex.unlock();
- }
-}
-
-public static string sign(string plain, SigMode mode, Key? key = null) throws GLib.Error {
- global_mutex.lock();
- try {
- initialize();
- Data plain_data = Data.create_from_memory(plain.data, false);
- Context context = Context.create();
- if (key != null) context.signers_add(key);
- Data signed_data = context.op_sign(plain_data, mode);
- return get_string_from_data(signed_data);
- } finally {
- global_mutex.unlock();
- }
-}
-
-public static string? get_sign_key(string signature, string? text) throws GLib.Error {
- global_mutex.lock();
- try {
- initialize();
- Data sig_data = Data.create_from_memory(signature.data, false);
- Data text_data;
- if (text != null) {
- text_data = Data.create_from_memory(text.data, false);
- } else {
- text_data = Data.create();
- }
- Context context = Context.create();
- context.op_verify(sig_data, text_data);
- VerifyResult* verify_res = context.op_verify_result();
- if (verify_res == null || verify_res.signatures == null) return null;
- return verify_res.signatures.fpr;
- } finally {
- global_mutex.unlock();
- }
-}
-
-public static Gee.List<Key> get_keylist(string? pattern = null, bool secret_only = false) throws GLib.Error {
- global_mutex.lock();
- try {
- initialize();
-
- Gee.List<Key> keys = new ArrayList<Key>();
- Context context = Context.create();
- context.op_keylist_start(pattern, secret_only ? 1 : 0);
- try {
- while (true) {
- Key key = context.op_keylist_next();
- keys.add(key);
- }
- } catch (Error e) {
- if (e.code != GPGError.ErrorCode.EOF) throw e;
- }
- context.op_keylist_end();
- return keys;
- } finally {
- global_mutex.unlock();
- }
-}
-
-public static Key? get_public_key(string sig) throws GLib.Error {
- return get_key(sig, false);
-}
-
-public static Key? get_private_key(string sig) throws GLib.Error {
- return get_key(sig, true);
-}
-
-private static Key? get_key(string sig, bool priv) throws GLib.Error {
- global_mutex.lock();
- try {
- initialize();
- Context context = Context.create();
- Key key = context.get_key(sig, priv);
- return key;
- } finally {
- global_mutex.unlock();
- }
-}
-
-private static string get_string_from_data(Data data) {
- const size_t BUF_SIZE = 256;
- data.seek(0);
- uint8[] buf = new uint8[BUF_SIZE + 1];
- ssize_t len = 0;
- string res = "";
- do {
- len = data.read(buf, BUF_SIZE);
- if (len > 0) {
- buf[len] = 0;
- res += (string) buf;
- }
- } while (len > 0);
- return res;
-}
-
-private static uint8[] get_uint8_from_data(Data data) {
- const size_t BUF_SIZE = 256;
- data.seek(0);
- uint8[] buf = new uint8[BUF_SIZE + 1];
- ssize_t len = 0;
- ByteArray res = new ByteArray();
- do {
- len = data.read(buf, BUF_SIZE);
- if (len > 0) {
- res.append(buf[0:len]);
- }
- } while (len > 0);
- return res.data;
-}
-
-private static void initialize() {
- if (!initialized) {
- check_version();
- initialized = true;
- }
-}
-
-}
diff --git a/plugins/openpgp/src/manager.vala b/plugins/openpgp/src/manager.vala
deleted file mode 100644
index 23cc93c2..00000000
--- a/plugins/openpgp/src/manager.vala
+++ /dev/null
@@ -1,123 +0,0 @@
-using Gee;
-using Xmpp;
-
-using Xmpp;
-using Dino.Entities;
-
-namespace Dino.Plugins.OpenPgp {
-
-public class Manager : StreamInteractionModule, Object {
- public static ModuleIdentity<Manager> IDENTITY = new ModuleIdentity<Manager>("pgp_manager");
- public string id { get { return IDENTITY.id; } }
-
- public const string MESSAGE_ENCRYPTED = "pgp";
-
- private StreamInteractor stream_interactor;
- private Database db;
- private ReceivedMessageListener received_message_listener = new ReceivedMessageListener();
-
- public static void start(StreamInteractor stream_interactor, Database db) {
- Manager m = new Manager(stream_interactor, db);
- stream_interactor.add_module(m);
- }
-
- private Manager(StreamInteractor stream_interactor, Database db) {
- this.stream_interactor = stream_interactor;
- this.db = db;
-
- stream_interactor.account_added.connect(on_account_added);
- stream_interactor.get_module(MessageProcessor.IDENTITY).received_pipeline.connect(received_message_listener);
- stream_interactor.get_module(MessageProcessor.IDENTITY).pre_message_send.connect(check_encypt);
- }
-
- public GPG.Key[] get_key_fprs(Conversation conversation) throws Error {
- Gee.List<string> keys = new Gee.ArrayList<string>();
- keys.add(db.get_account_key(conversation.account));
- if (conversation.type_ == Conversation.Type.GROUPCHAT) {
- Gee.List<Jid> muc_jids = new Gee.ArrayList<Jid>();
- Gee.List<Jid>? occupants = stream_interactor.get_module(MucManager.IDENTITY).get_occupants(conversation.counterpart, conversation.account);
- if (occupants != null) muc_jids.add_all(occupants);
- Gee.List<Jid>? offline_members = stream_interactor.get_module(MucManager.IDENTITY).get_offline_members(conversation.counterpart, conversation.account);
- if (occupants != null) muc_jids.add_all(offline_members);
-
- foreach (Jid jid in muc_jids) {
- string? key_id = stream_interactor.get_module(Manager.IDENTITY).get_key_id(conversation.account, jid);
- if (key_id != null && GPGHelper.get_keylist(key_id).size > 0 && !keys.contains(key_id)) {
- keys.add(key_id);
- }
- }
- } else {
- string? key_id = get_key_id(conversation.account, conversation.counterpart);
- if (key_id != null) {
- keys.add(key_id);
- }
- }
- GPG.Key[] gpgkeys = new GPG.Key[keys.size];
- for (int i = 0; i < keys.size; i++) {
- try {
- GPG.Key key = GPGHelper.get_public_key(keys[i]);
- if (key != null) gpgkeys[i] = key;
- } catch (Error e) {}
- }
-
- return gpgkeys;
- }
-
- private void check_encypt(Entities.Message message, Xmpp.MessageStanza message_stanza, Conversation conversation) {
- try {
- if (message.encryption == Encryption.PGP) {
- GPG.Key[] keys = get_key_fprs(conversation);
- XmppStream? stream = stream_interactor.get_stream(conversation.account);
- if (stream != null) {
- bool encrypted = stream.get_module(Module.IDENTITY).encrypt(message_stanza, keys);
- if (!encrypted) message.marked = Entities.Message.Marked.WONTSEND;
- }
- }
- } catch (Error e) {
- message.marked = Entities.Message.Marked.WONTSEND;
- }
- }
-
- public string? get_key_id(Account account, Jid jid) {
- Jid search_jid = stream_interactor.get_module(MucManager.IDENTITY).is_groupchat_occupant(jid, account) ? jid : jid.bare_jid;
- Qlite.RowOption key_row = db.get_contact_key_row(search_jid);
- if (!key_row.is_present()) return null;
- string? key_id = key_row.get(db.contact_key_table.key);
- if (key_id != null) return key_id;
- string? sig = key_row.get(db.contact_key_table.sig);
- string? signed_data = key_row.get(db.contact_key_table.signed_data);
- if (sig == null || signed_data == null) return null;
- key_id = get_sign_key(sig, signed_data);
- if (key_id != null) {
- db.set_contact_key(search_jid, key_id);
- }
- return key_id;
- }
-
- private void on_account_added(Account account) {
- stream_interactor.module_manager.get_module(account, Module.IDENTITY).received_jid_presence_signature.connect((stream, jid, sig, signed_data) => {
- on_jid_signature_received(account, jid, sig, signed_data);
- });
- }
-
- private void on_jid_signature_received(Account account, Jid jid, string sig, string signed_data) {
- Jid set_jid = stream_interactor.get_module(MucManager.IDENTITY).is_groupchat_occupant(jid, account) ? jid : jid.bare_jid;
- db.set_contact_signature(set_jid, sig, signed_data);
- }
-
- private class ReceivedMessageListener : MessageListener {
-
- public string[] after_actions_const = new string[]{ };
- public override string action_group { get { return "DECRYPT"; } }
- public override string[] after_actions { get { return after_actions_const; } }
-
- public override async bool run(Entities.Message message, Xmpp.MessageStanza stanza, Conversation conversation) {
- if (MessageFlag.get_flag(stanza) != null && MessageFlag.get_flag(stanza).decrypted) {
- message.encryption = Encryption.PGP;
- }
- return false;
- }
- }
-}
-
-}
diff --git a/plugins/openpgp/src/plugin.vala b/plugins/openpgp/src/plugin.vala
deleted file mode 100644
index 32542c21..00000000
--- a/plugins/openpgp/src/plugin.vala
+++ /dev/null
@@ -1,52 +0,0 @@
-using Gee;
-
-using Dino.Entities;
-
-extern const string GETTEXT_PACKAGE;
-extern const string LOCALE_INSTALL_DIR;
-
-namespace Dino.Plugins.OpenPgp {
-
-public class Plugin : Plugins.RootInterface, Object {
- public Dino.Application app;
- public Database db;
- public HashMap<Account, Module> modules = new HashMap<Account, Module>(Account.hash_func, Account.equals_func);
-
- private EncryptionListEntry list_entry;
- private ContactDetailsProvider contact_details_provider;
-
- public void registered(Dino.Application app) {
- this.app = app;
- this.db = new Database(Path.build_filename(Application.get_storage_dir(), "pgp.db"));
- this.list_entry = new EncryptionListEntry(app.stream_interactor, db);
- this.contact_details_provider = new ContactDetailsProvider(app.stream_interactor);
-
- app.plugin_registry.register_encryption_list_entry(list_entry);
- app.plugin_registry.register_encryption_preferences_entry(new PgpPreferencesEntry(this));
- app.plugin_registry.register_contact_details_entry(contact_details_provider);
- app.stream_interactor.module_manager.initialize_account_modules.connect(on_initialize_account_modules);
-
- Manager.start(app.stream_interactor, db);
- app.stream_interactor.get_module(FileManager.IDENTITY).add_file_encryptor(new PgpFileEncryptor(app.stream_interactor));
- app.stream_interactor.get_module(FileManager.IDENTITY).add_file_decryptor(new PgpFileDecryptor());
- JingleFileHelperRegistry.instance.add_encryption_helper(Encryption.PGP, new JingleFileEncryptionHelperTransferOnly());
-
- internationalize(GETTEXT_PACKAGE, app.search_path_generator.get_locale_path(GETTEXT_PACKAGE, LOCALE_INSTALL_DIR));
- }
-
- public void shutdown() { }
-
- private void on_initialize_account_modules(Account account, ArrayList<Xmpp.XmppStreamModule> modules) {
- 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);
- }
-}
-
-}
diff --git a/plugins/openpgp/src/register_plugin.vala b/plugins/openpgp/src/register_plugin.vala
deleted file mode 100644
index c5d811a7..00000000
--- a/plugins/openpgp/src/register_plugin.vala
+++ /dev/null
@@ -1,3 +0,0 @@
-public Type register_plugin(Module module) {
- return typeof (Dino.Plugins.OpenPgp.Plugin);
-} \ No newline at end of file
diff --git a/plugins/openpgp/src/stream_module.vala b/plugins/openpgp/src/stream_module.vala
deleted file mode 100644
index 9985df26..00000000
--- a/plugins/openpgp/src/stream_module.vala
+++ /dev/null
@@ -1,159 +0,0 @@
-using GPG;
-
-using Xmpp;
-
-namespace Dino.Plugins.OpenPgp {
- private const string NS_URI = "jabber:x";
- private const string NS_URI_ENCRYPTED = NS_URI + ":encrypted";
- private const string NS_URI_SIGNED = NS_URI + ":signed";
-
- public class Module : XmppStreamModule {
- public static Xmpp.ModuleIdentity<Module> IDENTITY = new Xmpp.ModuleIdentity<Module>(NS_URI, "0027_current_pgp_usage");
-
- public signal void received_jid_presence_signature(XmppStream stream, Jid jid, string sig, string signed_data);
-
- private string? signed_status = null;
- private Key? own_key = null;
- private ReceivedPipelineDecryptListener received_pipeline_decrypt_listener = new ReceivedPipelineDecryptListener();
-
- public Module(string? own_key_id = null, ref string? signed_data, ref string? sig) {
- set_private_key_id(own_key_id, ref signed_data, ref sig);
- }
-
- public void set_private_key_id(string? own_key_id, ref string? signed_data, ref string? sig) {
- if (own_key_id != null && sig == null) {
- try {
- own_key = GPGHelper.get_private_key(own_key_id);
- if (own_key == null) warning("Can't get PGP private key");
- } catch (Error e) { }
- if (own_key != null) {
- if (signed_data == null) signed_data = "";
- sig = gpg_sign(signed_data, own_key);
- }
- }
- signed_status = own_key_id != null ? sig : null;
- }
-
- public bool encrypt(MessageStanza message, GPG.Key[] keys) {
- string? enc_body = gpg_encrypt(message.body, keys);
- if (enc_body != null) {
- message.stanza.put_node(new StanzaNode.build("x", NS_URI_ENCRYPTED).add_self_xmlns().put_node(new StanzaNode.text(enc_body)));
- message.body = "[This message is OpenPGP encrypted (see XEP-0027)]";
- Xep.ExplicitEncryption.add_encryption_tag_to_message(message, NS_URI_ENCRYPTED);
- return true;
- }
- return false;
- }
-
- public override void attach(XmppStream stream) {
- stream.get_module(Presence.Module.IDENTITY).received_presence.connect(on_received_presence);
- stream.get_module(Presence.Module.IDENTITY).pre_send_presence_stanza.connect(on_pre_send_presence_stanza);
- stream.get_module(MessageModule.IDENTITY).received_pipeline.connect(received_pipeline_decrypt_listener);
- }
-
- public override void detach(XmppStream stream) {
- stream.get_module(Presence.Module.IDENTITY).received_presence.disconnect(on_received_presence);
- stream.get_module(Presence.Module.IDENTITY).pre_send_presence_stanza.disconnect(on_pre_send_presence_stanza);
- stream.get_module(MessageModule.IDENTITY).received_pipeline.disconnect(received_pipeline_decrypt_listener);
- }
-
- public override string get_ns() { return NS_URI; }
- public override string get_id() { return IDENTITY.id; }
-
- private void on_received_presence(XmppStream stream, Presence.Stanza presence) {
- StanzaNode x_node = presence.stanza.get_subnode("x", NS_URI_SIGNED);
- if (x_node == null) return;
- string? sig = x_node.get_string_content();
- if (sig == null) return;
- string signed_data = presence.status == null ? "" : presence.status;
- received_jid_presence_signature(stream, presence.from, sig, signed_data);
- }
-
- private void on_pre_send_presence_stanza(XmppStream stream, Presence.Stanza presence) {
- if (presence.type_ == Presence.Stanza.TYPE_AVAILABLE && signed_status != null) {
- presence.stanza.put_node(new StanzaNode.build("x", NS_URI_SIGNED).add_self_xmlns().put_node(new StanzaNode.text(signed_status)));
- }
- }
-
- private static string? gpg_encrypt(string plain, GPG.Key[] keys) {
- string encr;
- try {
- encr = GPGHelper.encrypt_armor(plain, keys, GPG.EncryptFlags.ALWAYS_TRUST);
- } catch (Error e) {
- return null;
- }
- int encryption_start = encr.index_of("\n\n") + 2;
- return encr.substring(encryption_start, encr.length - "\n-----END PGP MESSAGE-----".length - encryption_start);
- }
-
- private static string? gpg_sign(string str, Key key) {
- string signed;
- try {
- signed = GPGHelper.sign(str, GPG.SigMode.CLEAR, key);
- } catch (Error e) {
- return null;
- }
- int signature_start = signed.index_of("-----BEGIN PGP SIGNATURE-----");
- signature_start = signed.index_of("\n\n", signature_start) + 2;
- return signed.substring(signature_start, signed.length - "\n-----END PGP SIGNATURE-----".length - signature_start);
- }
- }
-
- public class MessageFlag : Xmpp.MessageFlag {
- public const string id = "pgp";
-
- public bool decrypted = false;
-
- public static MessageFlag? get_flag(MessageStanza message) {
- return (MessageFlag) message.get_flag(NS_URI, id);
- }
-
- public override string get_ns() { return NS_URI; }
- public override string get_id() { return id; }
- }
-
-public class ReceivedPipelineDecryptListener : StanzaListener<MessageStanza> {
-
- private string[] after_actions_const = {"MODIFY_BODY"};
-
- public override string action_group { get { return "ENCRYPT_BODY"; } }
- public override string[] after_actions { get { return after_actions_const; } }
-
- public override async bool run(XmppStream stream, MessageStanza message) {
- string? encrypted = get_cyphertext(message);
- if (encrypted != null) {
- MessageFlag flag = new MessageFlag();
- message.add_flag(flag);
- string? decrypted = yield gpg_decrypt(encrypted);
- if (decrypted != null) {
- flag.decrypted = true;
- message.body = decrypted;
- }
- }
- return false;
- }
-
- private static async string? gpg_decrypt(string enc) {
- SourceFunc callback = gpg_decrypt.callback;
- string? res = null;
- new Thread<void*> (null, () => {
- string armor = "-----BEGIN PGP MESSAGE-----\n\n" + enc + "\n-----END PGP MESSAGE-----";
- try {
- res = GPGHelper.decrypt(armor);
- } catch (Error e) {
- res = null;
- }
- Idle.add((owned) callback);
- return null;
- });
- yield;
- return res;
- }
-
- private string? get_cyphertext(MessageStanza message) {
- StanzaNode? x_node = message.stanza.get_subnode("x", NS_URI_ENCRYPTED);
- return x_node == null ? null : x_node.get_string_content();
- }
-}
-
-}
diff --git a/plugins/openpgp/src/util.vala b/plugins/openpgp/src/util.vala
deleted file mode 100644
index 3c7a7594..00000000
--- a/plugins/openpgp/src/util.vala
+++ /dev/null
@@ -1,29 +0,0 @@
-using Gtk;
-
-using Dino.Entities;
-using Xmpp.Util;
-
-namespace Dino.Plugins.OpenPgp {
-
-public static string markup_id(string s, bool is_fingerprint) {
- string markup = is_fingerprint ? "" : "0x";
- for (int i = 0; i < s.length; i += 4) {
- string four_chars = s.substring(i, 4).down();
-
- if (i == 4 * 5) markup += "\n";
- markup += four_chars;
- if (is_fingerprint) markup += " ";
- }
- return "<span font_family='monospace' font='9'>" + markup + "</span>";
-}
-
-private static string? get_sign_key(string sig, string signed_text) {
- string armor = "-----BEGIN PGP MESSAGE-----\n\n" + sig + "\n-----END PGP MESSAGE-----";
- string? sign_key = null;
- try {
- sign_key = GPGHelper.get_sign_key(armor, signed_text);
- } catch (Error e) { }
- return sign_key;
-}
-
-}
diff --git a/plugins/openpgp/vapi/gpg-error.vapi b/plugins/openpgp/vapi/gpg-error.vapi
deleted file mode 100644
index 3ad6c580..00000000
--- a/plugins/openpgp/vapi/gpg-error.vapi
+++ /dev/null
@@ -1,445 +0,0 @@
-/* gcrypt.vapi
- *
- * Copyright:
- * 2008 Jiqing Qiang
- * 2008, 2010, 2012-2013 Evan Nemerson
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
-
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
-
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Author:
- * Jiqing Qiang <jiqing.qiang@gmail.com>
- * Evan Nemerson <evan@coeus-group.com>
- */
-
-
-
-[CCode (cheader_filename = "gpg-error.h")]
-namespace GPGError {
- [CCode (cname = "gpg_err_source_t", cprefix = "GPG_ERR_SOURCE_")]
- public enum ErrorSource {
- UNKNOWN,
- GCRYPT,
- GPG,
- GPGSM,
- GPGAGENT,
- PINENTRY,
- SCD,
- GPGME,
- KEYBOX,
- KSBA,
- DIRMNGR,
- GSTI,
- ANY,
- USER_1,
- USER_2,
- USER_3,
- USER_4,
-
- /* This is one more than the largest allowed entry. */
- DIM
- }
-
- [CCode (cname = "gpg_err_code_t", cprefix = "GPG_ERR_")]
- public enum ErrorCode {
- NO_ERROR,
- GENERAL,
- UNKNOWN_PACKET,
- UNKNOWN_VERSION,
- PUBKEY_ALGO,
- DIGEST_ALGO,
- BAD_PUBKEY,
- BAD_SECKEY,
- BAD_SIGNATURE,
- NO_PUBKEY,
- CHECKSUM,
- BAD_PASSPHRASE,
- CIPHER_ALGO,
- KEYRING_OPEN,
- INV_PACKET,
- INV_ARMOR,
- NO_USER_ID,
- NO_SECKEY,
- WRONG_SECKEY,
- BAD_KEY,
- COMPR_ALGO,
- NO_PRIME,
- NO_ENCODING_METHOD,
- NO_ENCRYPTION_SCHEME,
- NO_SIGNATURE_SCHEME,
- INV_ATTR,
- NO_VALUE,
- NOT_FOUND,
- VALUE_NOT_FOUND,
- SYNTAX,
- BAD_MPI,
- INV_PASSPHRASE,
- SIG_CLASS,
- RESOURCE_LIMIT,
- INV_KEYRING,
- TRUSTDB,
- BAD_CERT,
- INV_USER_ID,
- UNEXPECTED,
- TIME_CONFLICT,
- KEYSERVER,
- WRONG_PUBKEY_ALGO,
- TRIBUTE_TO_D_A,
- WEAK_KEY,
- INV_KEYLEN,
- INV_ARG,
- BAD_URI,
- INV_URI,
- NETWORK,
- UNKNOWN_HOST,
- SELFTEST_FAILED,
- NOT_ENCRYPTED,
- NOT_PROCESSED,
- UNUSABLE_PUBKEY,
- UNUSABLE_SECKEY,
- INV_VALUE,
- BAD_CERT_CHAIN,
- MISSING_CERT,
- NO_DATA,
- BUG,
- NOT_SUPPORTED,
- INV_OP,
- TIMEOUT,
- INTERNAL,
- EOF_GCRYPT,
- INV_OBJ,
- TOO_SHORT,
- TOO_LARGE,
- NO_OBJ,
- NOT_IMPLEMENTED,
- CONFLICT,
- INV_CIPHER_MODE,
- INV_FLAG,
- INV_HANDLE,
- TRUNCATED,
- INCOMPLETE_LINE,
- INV_RESPONSE,
- NO_AGENT,
- AGENT,
- INV_DATA,
- ASSUAN_SERVER_FAULT,
- ASSUAN,
- INV_SESSION_KEY,
- INV_SEXP,
- UNSUPPORTED_ALGORITHM,
- NO_PIN_ENTRY,
- PIN_ENTRY,
- BAD_PIN,
- INV_NAME,
- BAD_DATA,
- INV_PARAMETER,
- WRONG_CARD,
- NO_DIRMNGR,
- DIRMNGR,
- CERT_REVOKED,
- NO_CRL_KNOWN,
- CRL_TOO_OLD,
- LINE_TOO_LONG,
- NOT_TRUSTED,
- CANCELED,
- BAD_CA_CERT,
- CERT_EXPIRED,
- CERT_TOO_YOUNG,
- UNSUPPORTED_CERT,
- UNKNOWN_SEXP,
- UNSUPPORTED_PROTECTION,
- CORRUPTED_PROTECTION,
- AMBIGUOUS_NAME,
- CARD,
- CARD_RESET,
- CARD_REMOVED,
- INV_CARD,
- CARD_NOT_PRESENT,
- NO_PKCS15_APP,
- NOT_CONFIRMED,
- CONFIGURATION,
- NO_POLICY_MATCH,
- INV_INDEX,
- INV_ID,
- NO_SCDAEMON,
- SCDAEMON,
- UNSUPPORTED_PROTOCOL,
- BAD_PIN_METHOD,
- CARD_NOT_INITIALIZED,
- UNSUPPORTED_OPERATION,
- WRONG_KEY_USAGE,
- NOTHING_FOUND,
- WRONG_BLOB_TYPE,
- MISSING_VALUE,
- HARDWARE,
- PIN_BLOCKED,
- USE_CONDITIONS,
- PIN_NOT_SYNCED,
- INV_CRL,
- BAD_BER,
- INV_BER,
- ELEMENT_NOT_FOUND,
- IDENTIFIER_NOT_FOUND,
- INV_TAG,
- INV_LENGTH,
- INV_KEYINFO,
- UNEXPECTED_TAG,
- NOT_DER_ENCODED,
- NO_CMS_OBJ,
- INV_CMS_OBJ,
- UNKNOWN_CMS_OBJ,
- UNSUPPORTED_CMS_OBJ,
- UNSUPPORTED_ENCODING,
- UNSUPPORTED_CMS_VERSION,
- UNKNOWN_ALGORITHM,
- INV_ENGINE,
- PUBKEY_NOT_TRUSTED,
- DECRYPT_FAILED,
- KEY_EXPIRED,
- SIG_EXPIRED,
- ENCODING_PROBLEM,
- INV_STATE,
- DUP_VALUE,
- MISSING_ACTION,
- MODULE_NOT_FOUND,
- INV_OID_STRING,
- INV_TIME,
- INV_CRL_OBJ,
- UNSUPPORTED_CRL_VERSION,
- INV_CERT_OBJ,
- UNKNOWN_NAME,
- LOCALE_PROBLEM,
- NOT_LOCKED,
- PROTOCOL_VIOLATION,
- INV_MAC,
- INV_REQUEST,
- UNKNOWN_EXTN,
- UNKNOWN_CRIT_EXTN,
- LOCKED,
- UNKNOWN_OPTION,
- UNKNOWN_COMMAND,
- BUFFER_TOO_SHORT,
- SEXP_INV_LEN_SPEC,
- SEXP_STRING_TOO_LONG,
- SEXP_UNMATCHED_PAREN,
- SEXP_NOT_CANONICAL,
- SEXP_BAD_CHARACTER,
- SEXP_BAD_QUOTATION,
- SEXP_ZERO_PREFIX,
- SEXP_NESTED_DH,
- SEXP_UNMATCHED_DH,
- SEXP_UNEXPECTED_PUNC,
- SEXP_BAD_HEX_CHAR,
- SEXP_ODD_HEX_NUMBERS,
- SEXP_BAD_OCT_CHAR,
- ASS_GENERAL,
- ASS_ACCEPT_FAILED,
- ASS_CONNECT_FAILED,
- ASS_INV_RESPONSE,
- ASS_INV_VALUE,
- ASS_INCOMPLETE_LINE,
- ASS_LINE_TOO_LONG,
- ASS_NESTED_COMMANDS,
- ASS_NO_DATA_CB,
- ASS_NO_INQUIRE_CB,
- ASS_NOT_A_SERVER,
- ASS_NOT_A_CLIENT,
- ASS_SERVER_START,
- ASS_READ_ERROR,
- ASS_WRITE_ERROR,
- ASS_TOO_MUCH_DATA,
- ASS_UNEXPECTED_CMD,
- ASS_UNKNOWN_CMD,
- ASS_SYNTAX,
- ASS_CANCELED,
- ASS_NO_INPUT,
- ASS_NO_OUTPUT,
- ASS_PARAMETER,
- ASS_UNKNOWN_INQUIRE,
- USER_1,
- USER_2,
- USER_3,
- USER_4,
- USER_5,
- USER_6,
- USER_7,
- USER_8,
- USER_9,
- USER_10,
- USER_11,
- USER_12,
- USER_13,
- USER_14,
- USER_15,
- USER_16,
- MISSING_ERRNO,
- UNKNOWN_ERRNO,
- EOF,
-
- E2BIG,
- EACCES,
- EADDRINUSE,
- EADDRNOTAVAIL,
- EADV,
- EAFNOSUPPORT,
- EAGAIN,
- EALREADY,
- EAUTH,
- EBACKGROUND,
- EBADE,
- EBADF,
- EBADFD,
- EBADMSG,
- EBADR,
- EBADRPC,
- EBADRQC,
- EBADSLT,
- EBFONT,
- EBUSY,
- ECANCELED,
- ECHILD,
- ECHRNG,
- ECOMM,
- ECONNABORTED,
- ECONNREFUSED,
- ECONNRESET,
- ED,
- EDEADLK,
- EDEADLOCK,
- EDESTADDRREQ,
- EDIED,
- EDOM,
- EDOTDOT,
- EDQUOT,
- EEXIST,
- EFAULT,
- EFBIG,
- EFTYPE,
- EGRATUITOUS,
- EGREGIOUS,
- EHOSTDOWN,
- EHOSTUNREACH,
- EIDRM,
- EIEIO,
- EILSEQ,
- EINPROGRESS,
- EINTR,
- EINVAL,
- EIO,
- EISCONN,
- EISDIR,
- EISNAM,
- EL2HLT,
- EL2NSYNC,
- EL3HLT,
- EL3RST,
- ELIBACC,
- ELIBBAD,
- ELIBEXEC,
- ELIBMAX,
- ELIBSCN,
- ELNRNG,
- ELOOP,
- EMEDIUMTYPE,
- EMFILE,
- EMLINK,
- EMSGSIZE,
- EMULTIHOP,
- ENAMETOOLONG,
- ENAVAIL,
- ENEEDAUTH,
- ENETDOWN,
- ENETRESET,
- ENETUNREACH,
- ENFILE,
- ENOANO,
- ENOBUFS,
- ENOCSI,
- ENODATA,
- ENODEV,
- ENOENT,
- ENOEXEC,
- ENOLCK,
- ENOLINK,
- ENOMEDIUM,
- ENOMEM,
- ENOMSG,
- ENONET,
- ENOPKG,
- ENOPROTOOPT,
- ENOSPC,
- ENOSR,
- ENOSTR,
- ENOSYS,
- ENOTBLK,
- ENOTCONN,
- ENOTDIR,
- ENOTEMPTY,
- ENOTNAM,
- ENOTSOCK,
- ENOTSUP,
- ENOTTY,
- ENOTUNIQ,
- ENXIO,
- EOPNOTSUPP,
- EOVERFLOW,
- EPERM,
- EPFNOSUPPORT,
- EPIPE,
- EPROCLIM,
- EPROCUNAVAIL,
- EPROGMISMATCH,
- EPROGUNAVAIL,
- EPROTO,
- EPROTONOSUPPORT,
- EPROTOTYPE,
- ERANGE,
- EREMCHG,
- EREMOTE,
- EREMOTEIO,
- ERESTART,
- EROFS,
- ERPCMISMATCH,
- ESHUTDOWN,
- ESOCKTNOSUPPORT,
- ESPIPE,
- ESRCH,
- ESRMNT,
- ESTALE,
- ESTRPIPE,
- ETIME,
- ETIMEDOUT,
- ETOOMANYREFS,
- ETXTBSY,
- EUCLEAN,
- EUNATCH,
- EUSERS,
- EWOULDBLOCK,
- EXDEV,
- EXFULL,
-
- /* This is one more than the largest allowed entry. */
- CODE_DIM
- }
-
- [CCode (cname = "gpg_err_code_t", cprefix = "gpg_err_")]
- public struct Error : uint {
- [CCode (cname = "gpg_err_make")]
- public Error (ErrorSource source, ErrorCode code);
- [CCode (cname = "gpg_err_make_from_errno")]
- public Error.from_errno (ErrorSource source, int err);
- public ErrorCode code { [CCode (cname = "gpg_err_code")] get; }
- public ErrorSource source { [CCode (cname = "gpg_err_source")] get; }
- }
-}
diff --git a/plugins/openpgp/vapi/gpgme.vapi b/plugins/openpgp/vapi/gpgme.vapi
deleted file mode 100644
index 37e74509..00000000
--- a/plugins/openpgp/vapi/gpgme.vapi
+++ /dev/null
@@ -1,673 +0,0 @@
-/* libgpgme.vapi
- *
- * Copyright (C) 2009 Sebastian Reichel <sre@ring0.de>
- * Copyright (C) 2022 Itay Grudev <itay+git2022@grudev.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-[CCode (lower_case_cprefix = "gpgme_", cheader_filename = "gpgme.h,gpgme_fix.h")]
-namespace GPG {
- public static GLib.RecMutex global_mutex;
-
- [CCode (cname = "struct _gpgme_engine_info")]
- public struct EngineInfo {
- EngineInfo* next;
- Protocol protocol;
- string file_name;
- string version;
- string req_version;
- string? home_dir;
- }
-
- [Compact]
- [CCode (cname = "struct _gpgme_key", ref_function = "gpgme_key_ref_vapi", unref_function = "gpgme_key_unref_vapi", free_function = "gpgme_key_release")]
- public class Key {
- public bool revoked;
- public bool expired;
- public bool disabled;
- public bool invalid;
- public bool can_encrypt;
- public bool can_sign;
- public bool can_certify;
- public bool secret;
- public bool can_authenticate;
- public bool is_qualified;
- public Protocol protocol;
- public string issuer_serial;
- public string issuer_name;
- public string chain_id;
- public Validity owner_trust;
- [CCode (array_length = false, array_null_terminated = true)]
- public SubKey[] subkeys;
- [CCode (array_length = false, array_null_terminated = true)]
- public UserID[] uids;
- public KeylistMode keylist_mode;
- public string fpr { get { return subkeys[0].fpr; } }
- }
-
- [CCode (cname = "struct _gpgme_sig_notation")]
- public struct SigNotation {
- SigNotation* next;
- string? name;
- string value;
- int name_len;
- int value_len;
- SigNotationFlags flags;
- bool human_readable;
- bool critical;
- }
-
- [CCode (cname = "struct _gpgme_subkey")]
- public struct SubKey {
- SubKey* next;
- bool revoked;
- bool expired;
- bool disabled;
- bool invalid;
- bool can_encrypt;
- bool can_sign;
- bool can_certify;
- bool secret;
- bool can_authenticate;
- bool is_qualified;
- bool is_cardkey;
- PublicKeyAlgorithm algo;
- uint length;
- string keyid;
- string fpr;
- long timestamp;
- long expires;
- string? card_number;
- }
-
- [CCode (cname = "struct _gpgme_key_sig")]
- public struct KeySig {
- KeySig* next;
- bool revoked;
- bool expired;
- bool invalid;
- bool exportable;
- PublicKeyAlgorithm algo;
- string keyid;
- long timestamp;
- long expires;
- GPGError.Error status;
- string uid;
- string name;
- string email;
- string comment;
- uint sig_class;
- SigNotation notations;
- }
-
- [CCode (cname = "struct _gpgme_user_id")]
- public struct UserID {
- UserID* next;
- bool revoked;
- bool invalid;
- Validity validity;
- string uid;
- string name;
- string email;
- string comment;
- KeySig signatures;
- }
-
- [CCode (cname = "struct _gpgme_op_verify_result")]
- public struct VerifyResult {
- Signature* signatures;
- string? file_name;
- }
-
- [CCode (cname = "struct _gpgme_op_sign_result")]
- public struct SignResult {
- InvalidKey invalid_signers;
- Signature* signatures;
- }
-
- [CCode (cname = "struct _gpgme_op_encrypt_result")]
- public struct EncryptResult {
- InvalidKey invalid_signers;
- }
-
- [CCode (cname = "struct _gpgme_op_decrypt_result")]
- public struct DecryptResult {
- string unsupported_algorithm;
- bool wrong_key_usage;
- Recipient recipients;
- string file_name;
- }
-
- [CCode (cname = "struct _gpgme_recipient")]
- public struct Recipient {
- Recipient *next;
- string keyid;
- PublicKeyAlgorithm pubkey_algo;
- GPGError.Error status;
- }
-
- [CCode (cname = "struct _gpgme_invalid_key")]
- public struct InvalidKey {
- InvalidKey *next;
- string fpr;
- GPGError.Error reason;
- }
-
- [CCode (cname = "struct _gpgme_signature")]
- public struct Signature {
- Signature *next;
- Sigsum summary;
- string fpr;
- GPGError.Error status;
- SigNotation notations;
- ulong timestamp;
- ulong exp_timestamp;
- bool wrong_key_usage;
- PKAStatus pka_trust;
- bool chain_model;
- Validity validity;
- GPGError.Error validity_reason;
- PublicKeyAlgorithm pubkey_algo;
- HashAlgorithm hash_algo;
- string? pka_address;
- }
-
- public enum PKAStatus {
- NOT_AVAILABLE,
- BAD,
- OKAY,
- RFU
- }
-
- [CCode (cname = "gpgme_sigsum_t", cprefix = "GPGME_SIGSUM_")]
- public enum Sigsum {
- VALID,
- GREEN,
- RED,
- KEY_REVOKED,
- KEY_EXPIRED,
- SIG_EXPIRED,
- KEY_MISSING,
- CRL_MISSING,
- CRL_TOO_OLD,
- BAD_POLICY,
- SYS_ERROR
- }
-
- [CCode (cname = "gpgme_data_encoding_t", cprefix = "GPGME_DATA_ENCODING_")]
- public enum DataEncoding {
- NONE,
- BINARY,
- BASE64,
- ARMOR,
- URL,
- URLESC,
- URL0
- }
-
- [CCode (cname = "gpgme_pubkey_algo_t", cprefix = "GPGME_PK_")]
- public enum PublicKeyAlgorithm {
- RSA,
- RSA_E,
- RSA_S,
- ELG_E,
- DSA,
- ELG
- }
-
- [CCode (cname = "gpgme_hash_algo_t", cprefix = "GPGME_MD_")]
- public enum HashAlgorithm {
- NONE,
- MD5,
- SHA1,
- RMD160,
- MD2,
- TIGER,
- HAVAL,
- SHA256,
- SHA384,
- SHA512,
- MD4,
- CRC32,
- CRC32_RFC1510,
- CRC24_RFC2440
- }
-
- [CCode (cname = "gpgme_sig_mode_t", cprefix = "GPGME_SIG_MODE_")]
- public enum SigMode {
- NORMAL,
- DETACH,
- CLEAR
- }
-
- [CCode (cname = "gpgme_validity_t", cprefix = "GPGME_VALIDITY_")]
- public enum Validity {
- UNKNOWN,
- UNDEFINED,
- NEVER,
- MARGINAL,
- FULL,
- ULTIMATE
- }
-
- [CCode (cname = "gpgme_protocol_t", cprefix = "GPGME_PROTOCOL_")]
- public enum Protocol {
- OpenPGP,
- CMS,
- GPGCONF,
- ASSUAN,
- UNKNOWN
- }
-
- [CCode (cname = "gpgme_keylist_mode_t", cprefix = "GPGME_KEYLIST_MODE_")]
- public enum KeylistMode {
- LOCAL,
- EXTERN,
- SIGS,
- SIG_NOTATIONS,
- EPHEMERAL,
- VALIDATE
- }
-
- [CCode (cname = "gpgme_export_mode_t", cprefix = "GPGME_EXPORT_MODE_")]
- public enum ExportMode {
- EXTERN
- }
-
- [CCode (cprefix = "GPGME_AUDITLOG_")]
- public enum AuditLogFlag {
- HTML,
- WITH_HELP
- }
-
- [CCode (cname = "gpgme_sig_notation_flags_t", cprefix = "GPGME_SIG_NOTATION_")]
- public enum SigNotationFlags {
- HUMAN_READABLE,
- CRITICAL
- }
-
- [CCode (cname = "gpgme_encrypt_flags_t", cprefix = "GPGME_ENCRYPT_")]
- public enum EncryptFlags {
- ALWAYS_TRUST,
- NO_ENCRYPT_TO
- }
-
- [CCode (cname = "gpgme_status_code_t", cprefix = "GPGME_STATUS_")]
- public enum StatusCode {
- EOF,
- ENTER,
- LEAVE,
- ABORT,
- GOODSIG,
- BADSIG,
- ERRSIG,
- BADARMOR,
- RSA_OR_IDEA,
- KEYEXPIRED,
- KEYREVOKED,
- TRUST_UNDEFINED,
- TRUST_NEVER,
- TRUST_MARGINAL,
- TRUST_FULLY,
- TRUST_ULTIMATE,
- SHM_INFO,
- SHM_GET,
- SHM_GET_BOOL,
- SHM_GET_HIDDEN,
- NEED_PASSPHRASE,
- VALIDSIG,
- SIG_ID,
- SIG_TO,
- ENC_TO,
- NODATA,
- BAD_PASSPHRASE,
- NO_PUBKEY,
- NO_SECKEY,
- NEED_PASSPHRASE_SYM,
- DECRYPTION_FAILED,
- DECRYPTION_OKAY,
- MISSING_PASSPHRASE,
- GOOD_PASSPHRASE,
- GOODMDC,
- BADMDC,
- ERRMDC,
- IMPORTED,
- IMPORT_OK,
- IMPORT_PROBLEM,
- IMPORT_RES,
- FILE_START,
- FILE_DONE,
- FILE_ERROR,
- BEGIN_DECRYPTION,
- END_DECRYPTION,
- BEGIN_ENCRYPTION,
- END_ENCRYPTION,
- DELETE_PROBLEM,
- GET_BOOL,
- GET_LINE,
- GET_HIDDEN,
- GOT_IT,
- PROGRESS,
- SIG_CREATED,
- SESSION_KEY,
- NOTATION_NAME,
- NOTATION_DATA,
- POLICY_URL,
- BEGIN_STREAM,
- END_STREAM,
- KEY_CREATED,
- USERID_HINT,
- UNEXPECTED,
- INV_RECP,
- NO_RECP,
- ALREADY_SIGNED,
- SIGEXPIRED,
- EXPSIG,
- EXPKEYSIG,
- TRUNCATED,
- ERROR,
- NEWSIG,
- REVKEYSIG,
- SIG_SUBPACKET,
- NEED_PASSPHRASE_PIN,
- SC_OP_FAILURE,
- SC_OP_SUCCESS,
- CARDCTRL,
- BACKUP_KEY_CREATED,
- PKA_TRUST_BAD,
- PKA_TRUST_GOOD,
- PLAINTEXT
- }
-
- [Compact]
- [CCode (cname = "struct gpgme_context", free_function = "gpgme_release", cprefix = "gpgme_")]
- public class Context {
- private static GPGError.Error new(out Context ctx);
-
- public static Context create() throws GLib.Error {
- Context ctx;
- throw_if_error(@new(out ctx));
- return ctx;
- }
-
- public GPGError.Error set_protocol(Protocol p);
- public Protocol get_protocol();
-
- public void set_armor(bool yes);
- public bool get_armor();
-
- public void set_textmode(bool yes);
- public bool get_textmode();
-
- public GPGError.Error set_keylist_mode(KeylistMode mode);
- public KeylistMode get_keylist_mode();
-
- public void set_include_certs(int nr_of_certs = -256);
-
- public int get_include_certs();
-
- public void set_passphrase_cb(passphrase_callback cb, void* hook_value = null);
-
- public void get_passphrase_cb(out passphrase_callback cb, out void* hook_value);
-
- public GPGError.Error set_locale(int category, string val);
-
- [CCode (cname = "gpgme_ctx_get_engine_info")]
- public EngineInfo* get_engine_info();
-
- [CCode (cname = "gpgme_ctx_set_engine_info")]
- public GPGError.Error set_engine_info(Protocol proto, string file_name, string home_dir);
-
- public void signers_clear();
-
- public GPGError.Error signers_add(Key key);
-
- public Key* signers_enum(int n);
-
- public void sig_notation_clear();
-
- public GPGError.Error sig_notation_add(string name, string val, SigNotationFlags flags);
-
- public SigNotation* sig_notation_get();
-
- [CCode (cname = "gpgme_get_key")]
- private GPGError.Error get_key_(string fpr, out Key key, bool secret);
-
- [CCode (cname = "gpgme_get_key_")]
- public Key get_key(string fpr, bool secret) throws GLib.Error {
- Key key;
- throw_if_error(get_key_(fpr, out key, secret));
- return key;
- }
-
- public Context* wait(out GPGError.Error status, bool hang);
-
- public SignResult* op_sign_result();
-
- [CCode (cname = "gpgme_op_sign")]
- public GPGError.Error op_sign_(Data plain, Data sig, SigMode mode);
-
- [CCode (cname = "gpgme_op_sign_")]
- public Data op_sign(Data plain, SigMode mode) throws GLib.Error {
- Data sig = Data.create();
- throw_if_error(op_sign_(plain, sig, mode));
- return sig;
- }
-
- public VerifyResult* op_verify_result();
-
- [CCode (cname = "gpgme_op_verify")]
- public GPGError.Error op_verify_(Data sig, Data signed_text, Data? plaintext);
-
- [CCode (cname = "gpgme_op_verify_")]
- public Data op_verify(Data sig, Data signed_text) throws GLib.Error {
- Data plaintext = Data.create();
- throw_if_error(op_verify_(sig, signed_text, plaintext));
- return plaintext;
- }
-
- public EncryptResult* op_encrypt_result();
-
- [CCode (cname = "gpgme_op_encrypt")]
- public GPGError.Error op_encrypt_([CCode (array_length = false)] Key[] recp, EncryptFlags flags, Data plain, Data cipher);
-
- [CCode (cname = "gpgme_op_encrypt_")]
- public Data op_encrypt(Key[] recp, EncryptFlags flags, Data plain) throws GLib.Error {
- Data cipher = Data.create();
- throw_if_error(op_encrypt_(recp, flags, plain, cipher));
- return cipher;
- }
-
- public DecryptResult* op_decrypt_result();
-
- [CCode (cname = "gpgme_op_decrypt")]
- public GPGError.Error op_decrypt_(Data cipher, Data plain);
-
- [CCode (cname = "gpgme_op_decrypt_")]
- public Data op_decrypt(Data cipher) throws GLib.Error {
- Data plain = Data.create();
- throw_if_error(op_decrypt_(cipher, plain));
- return plain;
- }
-
- public GPGError.Error op_export(string? pattern, ExportMode mode, Data keydata);
-
- public GPGError.Error op_import(Data keydata);
-
- public unowned ImportResult op_import_result();
-
- [CCode (cname = "gpgme_op_keylist_start")]
- private GPGError.Error op_keylist_start_(string? pattern = null, int secret_only = 0);
-
- [CCode (cname = "gpgme_op_keylist_start_")]
- public void op_keylist_start(string? pattern = null, int secret_only = 0) throws GLib.Error {
- throw_if_error(op_keylist_start_(pattern, secret_only));
- }
-
- [CCode (cname = "gpgme_op_keylist_next")]
- private GPGError.Error op_keylist_next_(out Key key);
-
- [CCode (cname = "gpgme_op_keylist_next_")]
- public Key op_keylist_next() throws GLib.Error {
- Key key;
- throw_if_error(op_keylist_next_(out key));
- return key;
- }
-
- [CCode (cname = "gpgme_op_keylist_end")]
- private GPGError.Error op_keylist_end_();
-
- [CCode (cname = "gpgme_op_keylist_end_")]
- public void op_keylist_end() throws GLib.Error {
- throw_if_error(op_keylist_end_());
- }
-
- public KeylistResult op_keylist_result();
- }
-
- [Flags]
- [CCode (cname="unsigned int")]
- public enum ImportStatusFlags {
- [CCode (cname = "GPGME_IMPORT_NEW")]
- NEW,
- [CCode (cname = "GPGME_IMPORT_UID")]
- UID,
- [CCode (cname = "GPGME_IMPORT_SIG")]
- SIG,
- [CCode (cname = "GPGME_IMPORT_SUBKEY")]
- SUBKEY,
- [CCode (cname = "GPGME_IMPORT_SECRET")]
- SECRET
- }
-
- [Compact]
- [CCode (cname = "struct _gpgme_import_status")]
- public class ImportStatus {
- public ImportStatus? next;
- public string fpr;
- public GPGError.Error result;
- public ImportStatusFlags status;
- }
-
- [Compact]
- [CCode (cname = "struct _gpgme_op_import_result")]
- public class ImportResult {
- public int considered;
- public int no_user_id;
- public int imported;
- public int imported_rsa;
- public int unchanged;
- public int new_user_ids;
- public int new_sub_keys;
- public int new_signatures;
- public int new_revocations;
- public int secret_read;
- public int secret_imported;
- public int secret_unchanged;
- public int not_imported;
- public ImportStatus imports;
- }
-
- [Compact]
- [CCode (cname = "struct _gpgme_op_keylist_result")]
- public class KeylistResult {
- uint truncated;
- }
-
- [Compact]
- [CCode (cname = "struct gpgme_data", free_function = "gpgme_data_release", cprefix = "gpgme_data_")]
- public class Data {
-
- public static GPGError.Error new(out Data d);
-
- public static Data create() throws GLib.Error {
- Data data;
- throw_if_error(@new(out data));
- return data;
- }
-
- [CCode (cname = "gpgme_data_new_from_mem")]
- public static GPGError.Error new_from_memory(out Data d, char[] buffer, bool copy);
-
- public static Data create_from_memory(uint8[] buffer, bool copy) throws GLib.Error {
- Data data;
- throw_if_error(new_from_memory(out data, (char[]) buffer, copy));
- return data;
- }
-
- [CCode (cname = "gpgme_data_new_from_file")]
- public static GPGError.Error new_from_file(out Data d, string filename, int copy = 1);
-
- public static Data create_from_file(string filename, int copy = 1) throws GLib.Error {
- Data data;
- throw_if_error(new_from_file(out data, filename, copy));
- return data;
- }
-
- [CCode (cname = "gpgme_data_release_and_get_mem")]
- public string release_and_get_mem(out size_t len);
-
- public ssize_t read([CCode (array_length = false)] uint8[] buf, size_t len);
-
- public ssize_t write(uint8[] buf);
-
- public long seek(long offset, int whence=0);
-
- public GPGError.Error set_file_name(string file_name);
-
- public DataEncoding *get_encoding();
-
- public GPGError.Error set_encoding(DataEncoding enc);
- }
-
- [CCode (cname = "gpgme_get_protocol_name")]
- public unowned string get_protocol_name(Protocol p);
-
- [CCode (cname = "gpgme_pubkey_algo_name")]
- public unowned string get_public_key_algorithm_name(PublicKeyAlgorithm algo);
-
- [CCode (cname = "gpgme_hash_algo_name")]
- public unowned string get_hash_algorithm_name(HashAlgorithm algo);
-
- [CCode (cname = "gpgme_passphrase_cb_t", has_target = false)]
- public delegate GPGError.Error passphrase_callback(void* hook, string uid_hint, string passphrase_info, bool prev_was_bad, int fd);
-
- [CCode (cname = "gpgme_check_version")]
- public unowned string check_version(string? required_version = null);
-
- [CCode (cname = "gpgme_engine_check_version")]
- public GPGError.Error engine_check_version(Protocol proto);
-
- [CCode (cname = "gpgme_get_engine_info")]
- public GPGError.Error get_engine_info(out EngineInfo? engine_info);
-
- [CCode (cname = "gpgme_strerror_r")]
- public int strerror_r(GPGError.Error err, uint8[] buf);
-
- [CCode (cname = "gpgme_strerror")]
- public unowned string strerror(GPGError.Error err);
-
- private void throw_if_error(GPGError.Error error) throws GLib.Error {
- if (error.code != GPGError.ErrorCode.NO_ERROR) {
- throw new GLib.Error(-1, error.code, "%s", error.to_string());
- }
- }
-}