Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

Add irssi help for the otr command

/otr help and /help otr are the same.

Signed-off-by: David Goulet <>
  • Loading branch information...
commit f534a8df41021426474d0c874e3b8b3d07b136ce 1 parent a4bb783
@dgoulet dgoulet authored
3 
@@ -2,4 +2,5 @@ AM_CFLAGS = $(PACKAGE_CFLAGS)
-SUBDIRS = src
+SUBDIRS = help \
+ src
1 
@@ -76,6 +76,7 @@ AC_SUBST(IRSSI_MODULE_DIR)
+ help/Makefile
3  help/
@@ -0,0 +1,3 @@
+helpdir = $(prefix)/share/irssi/help
+help_DATA = otr
112 help/otr
@@ -0,0 +1,112 @@
+Command to control the OTR module. Without an option, this help is printed.
+This help contains three sections which are %9options, quickstart and files.%n
+To add the OTR status bar (highly recommended):
+%9/statusbar window add otr%n
+AUTH <secret>
+ Start or respond to an authentication process.
+AUTHQ [<[question]>] <secret>
+ Start a SMP authentication process. The question MUST be enclosed in
+ brackets and followed by the secret with at least one white space between
+ the question and secret.
+ Example: %9/otr authq [My question is] rest is the secret%n
+ Abort an ongoing authentication process.
+ List known contexts which basically list the known fingerprints and their
+ state.
+ Turn on debugging.
+DISTRUST [<fp>]
+ Distrust a specific fingerprint. This command can be done inside a private
+ window for which the current fingerprint of the other person will be used
+ or else set fp to a human readable OTR fingerprint available with the above
+ contexts command.
+ Examples: %9/otr distrust 487FFADA 5073FEDD C5AB5C14 5BB6C1FF 6D40D48A%n
+ End the OTR session. This MUST be done inside a private conversation
+ window.
+FORGET [<fp>]
+ Forget a specific fingerprint (deleted from the known fingerprints). The
+ behavior is the same as the distrust command explained above.
+GENKEY <nickname>@<>
+ Generate OTR keys for a given account name. This is done automatically
+ if someone tries to establish a secure session.
+ This process is done in a background thread and can take an arbitrary
+ amount of time. The completion is checked when another irssi event is
+ catched. Unfortunately, for technical reasons, the thread can't notify the
+ irssi main window so a status check is done at each irssi events and a
+ message is printed if the key is ready.
+ Print this help.
+ Initialize an OTR conversation within a private conversation window.
+TRUST [<fp>]
+ Trust a specific fingerprint. The behavior is the same as the forget and
+ distrust commands explained above.
+ Print the version of the OTR module.
+Start a private conversation with the person you want to initiate a secure
+session. Once in the private message window:
+%9/otr init%n
+Key generation should start if no key is found for your account name. Once the
+process is done, either type a message which should automatically start the
+session or redo the init command.
+Time to authenticate the person. Either use a shared secret exchange through
+phone or GPG-signed email or use the socialist millionaire problem mechanism
+(SMP) which is basically to ask a question for which the answer can only be
+known by the other person.
+%9/otr auth <shared-secret>%n OR %9/otr authq [A question] <shared-secret>%n
+Or to respond to an authentication:
+%9/otr auth <secret>%n
+This otr modules creates a directory in %9$HOME/.irssi/otr%n and creates three
+* %9otr.key%n
+ Contains your OTR private key(s). NEVER shared this directory with someone
+ else unless you know what you are doing.
+* %9otr.fp%n
+ The known fingerprints with their _trust_ status.
+* %9otr.instag
+ Instance tag of the libotr. This should NEVER be copied to an other
+ computer. If unsure, just ignore this file.
+For more information on OTR, see
3  src/
@@ -23,9 +23,6 @@ otr_la_SOURCES = otr-formats.c otr-formats.h \
otr_la_LDFLAGS = -avoid-version -module
otr_la_LDFLAGS += $(LIBOTR_LIBS) $(LIBGCRYPT_LIBS) -lpthread
- mkdir -p $(plugindir)
rm $(plugindir)/
mv $(plugindir)/ $(plugindir)/
15 src/cmd.c
@@ -19,7 +19,9 @@
* Franklin Street, Fifth Floor, Boston, MA 02110-1301,USA
+#define _GNU_SOURCE
#include <assert.h>
+#include <stdio.h>
#include "cmd.h"
#include "key.h"
@@ -53,7 +55,18 @@ static void _cmd_version(struct otr_user_state *ustate, SERVER_REC *irssi,
static void _cmd_help(struct otr_user_state *ustate, SERVER_REC *irssi,
const char *target, const void *data)
- /* TODO: Add help message. */
+ int ret;
+ char *cmd_line;
+ ret = asprintf(&cmd_line, "%sHELP otr", settings_get_str("cmdchars"));
+ if (ret < 0) {
+ return;
+ }
+ /* Call /help otr instread of duplicating the text output. */
+ signal_emit("send command", 3, cmd_line, irssi, NULL);
+ free(cmd_line);
Please sign in to comment.
Something went wrong with that request. Please try again.