Added ignore_message_signatures setting.
authorPekka Riikonen <priikone@silcnet.org>
Thu, 5 Dec 2002 16:10:01 +0000 (16:10 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Thu, 5 Dec 2002 16:10:01 +0000 (16:10 +0000)
CHANGES
apps/irssi/docs/help/in/smsg.in
apps/irssi/src/silc/core/client_ops.c
apps/irssi/src/silc/core/silc-core.c

diff --git a/CHANGES b/CHANGES
index 88727c1f0397e5a9987d7e524d918ab68d21e4fc..4386c87e5691eecaaec91cb7f93722518c9a0a05 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,9 @@
+Thu Dec  5 16:35:23 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * 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 <c0ffee@penguin-breeder.org>
 
        * Verify signature payload for signed messages. Affected files
index 659de86de2d6b68b80ef0d01186060f2f608f799..8a3ba78eff133162b97145104b959aa6f62dab1e 100644 (file)
@@ -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
index b05e23bbe4f18bda3ffd0444319ce411bc2e7984..ca5326bd85357927374e5a8510415835f6ac8aa9 100644 (file)
@@ -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) {
index caf8b508b750f39853399359bc9cb22299cd57d6..eeea2685303e9ffbbe7e6f804c490d114d8c6fb0 100644 (file)
@@ -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);