about summary refs log tree commit diff stats
path: root/src/command/cmd_funcs.c
diff options
context:
space:
mode:
authorStefan <79058696+StefanKropp@users.noreply.github.com>2021-04-17 13:28:54 +0200
committerGitHub <noreply@github.com>2021-04-17 13:28:54 +0200
commit3ba38eafa8ff0a53937fafebc0f8754944d57601 (patch)
tree73daec63c0830b8393e4a906c02b7fbcd4f33cfd /src/command/cmd_funcs.c
parentc79979401b316e66ae13eba89f3d552fbe95780b (diff)
downloadprofani-tty-3ba38eafa8ff0a53937fafebc0f8754944d57601.tar.gz
OMEMO - trust mode (#1506)
Add OMEMO trust mode capabilities.

* ToFu / first usage
* blind trust
* manual
Diffstat (limited to 'src/command/cmd_funcs.c')
-rw-r--r--src/command/cmd_funcs.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c
index 9d8fec50..351f7b98 100644
--- a/src/command/cmd_funcs.c
+++ b/src/command/cmd_funcs.c
@@ -8475,6 +8475,37 @@ cmd_omemo_start(ProfWin* window, const char* const command, gchar** args)
 }
 
 gboolean
+cmd_omemo_trust_mode(ProfWin* window, const char* const command, gchar** args)
+{
+#ifdef HAVE_OMEMO
+
+    if (!args[1]) {
+        cons_show("Current trust mode is %s", prefs_get_string(PREF_OMEMO_TRUST_MODE));
+        return TRUE;
+    }
+
+    if (g_strcmp0(args[1], "manual") == 0) {
+        cons_show("Current trust mode is %s - setting to %s", prefs_get_string(PREF_OMEMO_TRUST_MODE), args[1]);
+        cons_show("You need to trust all OMEMO fingerprints manually");
+    } else if (g_strcmp0(args[1], "firstusage") == 0) {
+        cons_show("Current trust mode is %s - setting to %s", prefs_get_string(PREF_OMEMO_TRUST_MODE), args[1]);
+        cons_show("The first seen OMEMO fingerprints will be trusted automatically - new keys must be trusted manually");
+    } else if (g_strcmp0(args[1], "blind") == 0) {
+        cons_show("Current trust mode is %s - setting to %s", prefs_get_string(PREF_OMEMO_TRUST_MODE), args[1]);
+        cons_show("ALL OMEMO fingerprints will be trusted automatically");
+    } else {
+        cons_bad_cmd_usage(command);
+        return TRUE;
+    }
+    prefs_set_string(PREF_OMEMO_TRUST_MODE, args[1]);
+
+#else
+    cons_show("This version of Profanity has not been built with OMEMO support enabled");
+#endif
+    return TRUE;
+}
+
+gboolean
 cmd_omemo_char(ProfWin* window, const char* const command, gchar** args)
 {
 #ifdef HAVE_OMEMO