gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] 07/08: MESSENGER: Drop transcript when sending private messages


From: gnunet
Subject: [gnunet] 07/08: MESSENGER: Drop transcript when sending private messages to own key
Date: Sat, 20 Jan 2024 10:08:36 +0100

This is an automated email from the git hooks/post-receive script.

thejackimonster pushed a commit to branch master
in repository gnunet.

commit bddc8307f79dfbaa6d7ced7216c4ca1bfe5c2d16
Author: TheJackiMonster <thejackimonster@gmail.com>
AuthorDate: Sat Jan 20 10:03:26 2024 +0100

    MESSENGER: Drop transcript when sending private messages to own key
    
    Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
---
 src/service/messenger/messenger_api.c | 37 ++++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 16 deletions(-)

diff --git a/src/service/messenger/messenger_api.c 
b/src/service/messenger/messenger_api.c
index 4f8e7230c..2981b1a71 100644
--- a/src/service/messenger/messenger_api.c
+++ b/src/service/messenger/messenger_api.c
@@ -1120,6 +1120,7 @@ send_message_to_room_with_key (struct 
GNUNET_MESSENGER_Room *room,
                                const struct GNUNET_CRYPTO_PublicKey 
*public_key)
 {
   struct GNUNET_MESSENGER_Message *transcript = NULL;
+  const struct GNUNET_CRYPTO_PublicKey *pubkey;
 
   char *original_name;
 
@@ -1143,23 +1144,27 @@ send_message_to_room_with_key (struct 
GNUNET_MESSENGER_Room *room,
   }
 
 skip_naming:
-  if (public_key)
-  {
+  if (!public_key)
+    goto skip_encryption;
+
+  pubkey = get_handle_pubkey (room->handle);
+
+  if (0 != GNUNET_memcmp(pubkey, public_key))
     transcript = transcribe_message (message, public_key);
 
-    if (GNUNET_YES != encrypt_message (message, public_key))
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                  "Sending message aborted: Encryption failed!\n");
-      
-      if (transcript)
-        destroy_message(transcript);
+  if (GNUNET_YES != encrypt_message (message, public_key))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Sending message aborted: Encryption failed!\n");
+    
+    if (transcript)
+      destroy_message(transcript);
 
-      destroy_message (message);
-      return;
-    }
+    destroy_message (message);
+    return;
   }
 
+skip_encryption:
   enqueue_message_to_room (room, message, transcript);
 }
 
@@ -1260,9 +1265,9 @@ check_ticket_audience (void *cls,
   struct GNUNET_MESSENGER_CheckTicket *check = cls;
 
   const struct GNUNET_CRYPTO_PublicKey *key;
-  key = get_contact_key(contact);
+  key = get_non_anonymous_key (get_contact_key (contact));
 
-  if (0 == GNUNET_memcmp(key, check->audience))
+  if ((key) && (0 == GNUNET_memcmp(key, check->audience)))
   {
     check->result = GNUNET_YES;
     return GNUNET_NO;
@@ -1280,7 +1285,7 @@ GNUNET_MESSENGER_send_ticket (struct 
GNUNET_MESSENGER_Room *room,
     return;
 
   const struct GNUNET_CRYPTO_PublicKey *pubkey;
-  pubkey = get_handle_pubkey(room->handle);
+  pubkey = get_handle_pubkey (room->handle);
 
   if (0 != GNUNET_memcmp(pubkey, &(ticket->identity)))
   {
@@ -1305,7 +1310,7 @@ GNUNET_MESSENGER_send_ticket (struct 
GNUNET_MESSENGER_Room *room,
     return;
   }
 
-  struct GNUNET_MESSENGER_Message *message = create_message_ticket(
+  struct GNUNET_MESSENGER_Message *message = create_message_ticket (
     &(ticket->rnd)
   );
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]