From 897ec7d93e7ff19d0e6e4282b3d55ba65f3d3b99 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Thu, 5 Dec 2002 16:10:01 +0000 Subject: [PATCH] Added ignore_message_signatures setting. --- CHANGES | 6 ++++++ apps/irssi/docs/help/in/smsg.in | 6 ++++++ apps/irssi/src/silc/core/client_ops.c | 18 ++++++++++++------ apps/irssi/src/silc/core/silc-core.c | 1 + 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/CHANGES b/CHANGES index 88727c1f..4386c87e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,9 @@ +Thu Dec 5 16:35:23 EET 2002 Pekka Riikonen + + * Added ignore_message_signatures setting which can be used + to ignore signatures in messages. Affected files are + irssi/src/silc/core/client_ops.c, silc-core.c. + Wed Dec 4 21:08:52 CET 2002 Jochen Eisinger * Verify signature payload for signed messages. Affected files diff --git a/apps/irssi/docs/help/in/smsg.in b/apps/irssi/docs/help/in/smsg.in index 659de86d..8a3ba78e 100644 --- a/apps/irssi/docs/help/in/smsg.in +++ b/apps/irssi/docs/help/in/smsg.in @@ -18,6 +18,12 @@ be verified since the public key of the sender isn't cached locally, or [F] if the signature verificationn failed. If you do not have the sender's public key you can fetch it with GETKEY command. +If you do want to verify the signatures from received messages +you may do /SET ignore_messages_signatures on. In this case +signatures in messages are ignored and they appear as normal +non-signed messages. By default, all message signatures are +verified. + Examples: /SMSG Foobar Very authenticated message diff --git a/apps/irssi/src/silc/core/client_ops.c b/apps/irssi/src/silc/core/client_ops.c index b05e23bb..ca5326bd 100644 --- a/apps/irssi/src/silc/core/client_ops.c +++ b/apps/irssi/src/silc/core/client_ops.c @@ -273,9 +273,12 @@ void silc_channel_message(SilcClient client, SilcClientConnection conn, /* If the messages is digitally signed, verify it, if possible. */ if (flags & SILC_MESSAGE_FLAG_SIGNED) { - SilcMessageSignedPayload sig = silc_message_get_signature(payload); - - verified = verify_message_signature(sender, sig, payload); + if (!settings_get_bool("ignore_message_signatures")) { + SilcMessageSignedPayload sig = silc_message_get_signature(payload); + verified = verify_message_signature(sender, sig, payload); + } else { + flags &= ~SILC_MESSAGE_FLAG_SIGNED; + } } if (flags & SILC_MESSAGE_FLAG_DATA) { @@ -379,9 +382,12 @@ void silc_private_message(SilcClient client, SilcClientConnection conn, /* If the messages is digitally signed, verify it, if possible. */ if (flags & SILC_MESSAGE_FLAG_SIGNED) { - SilcMessageSignedPayload sig = silc_message_get_signature(payload); - - verified = verify_message_signature(sender, sig, payload); + if (!settings_get_bool("ignore_message_signatures")) { + SilcMessageSignedPayload sig = silc_message_get_signature(payload); + verified = verify_message_signature(sender, sig, payload); + } else { + flags &= ~SILC_MESSAGE_FLAG_SIGNED; + } } if (flags & SILC_MESSAGE_FLAG_DATA) { diff --git a/apps/irssi/src/silc/core/silc-core.c b/apps/irssi/src/silc/core/silc-core.c index caf8b508..eeea2685 100644 --- a/apps/irssi/src/silc/core/silc-core.c +++ b/apps/irssi/src/silc/core/silc-core.c @@ -395,6 +395,7 @@ void silc_core_init(void) settings_add_int("server", "key_exchange_rekey_secs", 3600); settings_add_int("server", "connauth_request_secs", 2); settings_add_int("server", "heartbeat", 300); + settings_add_bool("server", "ignore_message_signatures", FALSE); /* Requested Attributes settings */ settings_add_bool("silc", "attr_allow", TRUE); -- 2.43.0