summaryrefslogtreecommitdiff
path: root/src/rexmpp_console.c
diff options
context:
space:
mode:
authordefanor <defanor@uberspace.net>2021-02-07 23:24:51 +0300
committerdefanor <defanor@uberspace.net>2021-02-07 23:24:51 +0300
commitdf73e8fe84d3c2c544d12ffa78b310544bb395bb (patch)
tree05462beb52fb96392fe4df3540dbe3047ccceba3 /src/rexmpp_console.c
parent81a85c55ef1159ac4baee59dddcd33a47099e678 (diff)
Add dedicated functions for message signing and encryption
Diffstat (limited to 'src/rexmpp_console.c')
-rw-r--r--src/rexmpp_console.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/rexmpp_console.c b/src/rexmpp_console.c
index 7884455..a2f14a8 100644
--- a/src/rexmpp_console.c
+++ b/src/rexmpp_console.c
@@ -229,6 +229,8 @@ void rexmpp_console_feed (rexmpp_t *s, char *str, ssize_t str_len) {
"tell <jid> <message>\n"
"gtell <muc jid> <message>\n"
"signcrypt <jid> <message>\n"
+ "sign <jid> <message>\n"
+ "crypt <jid> <message>\n"
"publish-key <fingerprint>\n"
"retract-key <fingerprint>\n"
"join <conference> [as] <nick>\n"
@@ -286,7 +288,9 @@ void rexmpp_console_feed (rexmpp_t *s, char *str, ssize_t str_len) {
rexmpp_send(s, msg);
}
- if (! strcmp(word, "signcrypt")) {
+ if ((strcmp(word, "signcrypt") == 0) ||
+ (strcmp(word, "sign") == 0) ||
+ (strcmp(word, "crypt") == 0)) {
jid_str = strtok_r(NULL, " ", &words_save_ptr);
if (jid_str == NULL || rexmpp_jid_parse(jid_str, &jid)) {
return;
@@ -298,7 +302,14 @@ void rexmpp_console_feed (rexmpp_t *s, char *str, ssize_t str_len) {
const char *rcpt[2];
rcpt[0] = jid.full;
rcpt[1] = NULL;
- char *b64 = rexmpp_openpgp_encrypt_sign(s, body, rcpt);
+ char *b64 = NULL;
+ if (strcmp(word, "signcrypt") == 0) {
+ b64 = rexmpp_openpgp_encrypt_sign(s, body, rcpt);
+ } else if (strcmp(word, "sign") == 0) {
+ b64 = rexmpp_openpgp_sign(s, body, rcpt);
+ } else if (strcmp(word, "crypt") == 0) {
+ b64 = rexmpp_openpgp_encrypt(s, body, rcpt);
+ }
xmlNodePtr openpgp = xmlNewNode(NULL, "openpgp");
openpgp->ns = xmlNewNs(openpgp, "urn:xmpp:openpgp:0", NULL);
xmlNodeAddContent(openpgp, b64);