gnunet-svn
[Top][All Lists]
Advanced

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

[gnunet] branch master updated (689abc4fb -> 140f9ac6d)


From: gnunet
Subject: [gnunet] branch master updated (689abc4fb -> 140f9ac6d)
Date: Mon, 07 Aug 2023 18:13:27 +0200

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

thejackimonster pushed a change to branch master
in repository gnunet.

    from 689abc4fb TNG: Uncrustify, comment.
     new 182981a5d MESSENGER: Update private message using new IDENTITY 
encyption
     new 140f9ac6d MESSENGER: Uncrustify

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/messenger/messenger_api_message.c | 121 +++++++++++++++++++---------------
 1 file changed, 69 insertions(+), 52 deletions(-)

diff --git a/src/messenger/messenger_api_message.c 
b/src/messenger/messenger_api_message.c
index 0e27588ba..74b65bf71 100644
--- a/src/messenger/messenger_api_message.c
+++ b/src/messenger/messenger_api_message.c
@@ -1,6 +1,6 @@
 /*
    This file is part of GNUnet.
-   Copyright (C) 2020--2021 GNUnet e.V.
+   Copyright (C) 2020--2023 GNUnet e.V.
 
    GNUnet is free software: you can redistribute it and/or modify it
    under the terms of the GNU Affero General Public License as published
@@ -393,32 +393,32 @@ calc_padded_length (uint16_t length)
 #define min(x, y) (x < y? x : y)
 
 #define encode_step_ext(dst, offset, src, size) do { \
-          GNUNET_memcpy (dst + offset, src, size);            \
-          offset += size;                                    \
+    GNUNET_memcpy (dst + offset, src, size);            \
+    offset += size;                                    \
 } while (0)
 
 #define encode_step(dst, offset, src) do {         \
-          encode_step_ext (dst, offset, src, sizeof(*src)); \
+    encode_step_ext (dst, offset, src, sizeof(*src)); \
 } while (0)
 
 #define encode_step_key(dst, offset, src, length) do {  \
-          ssize_t result = GNUNET_IDENTITY_write_public_key_to_buffer ( \
-            src, dst + offset, length - offset                \
-            );                                                    \
-          if (result < 0)                                       \
-          GNUNET_break (0);                                   \
-          else                                                  \
-          offset += result;                                   \
+    ssize_t result = GNUNET_IDENTITY_write_public_key_to_buffer ( \
+      src, dst + offset, length - offset                \
+      );                                                    \
+    if (result < 0)                                       \
+    GNUNET_break (0);                                   \
+    else                                                  \
+    offset += result;                                   \
 } while (0)
 
 #define encode_step_signature(dst, offset, src, length) do {  \
-          ssize_t result = GNUNET_IDENTITY_write_signature_to_buffer ( \
-            src, dst + offset, length - offset                      \
-            );                                                          \
-          if (result < 0)                                             \
-          GNUNET_break (0);                                         \
-          else                                                        \
-          offset += result;                                         \
+    ssize_t result = GNUNET_IDENTITY_write_signature_to_buffer ( \
+      src, dst + offset, length - offset                      \
+      );                                                          \
+    if (result < 0)                                             \
+    GNUNET_break (0);                                         \
+    else                                                        \
+    offset += result;                                         \
 } while (0)
 
 static void
@@ -568,30 +568,30 @@ encode_short_message (const struct 
GNUNET_MESSENGER_ShortMessage *message,
 
 
 #define decode_step_ext(src, offset, dst, size) do { \
-          GNUNET_memcpy (dst, src + offset, size);            \
-          offset += size;                                    \
+    GNUNET_memcpy (dst, src + offset, size);            \
+    offset += size;                                    \
 } while (0)
 
 #define decode_step(src, offset, dst) do {         \
-          decode_step_ext (src, offset, dst, sizeof(*dst)); \
+    decode_step_ext (src, offset, dst, sizeof(*dst)); \
 } while (0)
 
 #define decode_step_malloc(src, offset, dst, size, zero) do { \
-          dst = GNUNET_malloc (size + zero);                           \
-          if (zero) dst[size] = 0;                                    \
-          decode_step_ext (src, offset, dst, size);                    \
+    dst = GNUNET_malloc (size + zero);                           \
+    if (zero) dst[size] = 0;                                    \
+    decode_step_ext (src, offset, dst, size);                    \
 } while (0)
 
 #define decode_step_key(src, offset, dst, length) do {   \
-          enum GNUNET_GenericReturnValue result;                 \
-          size_t read;                                           \
-          result = GNUNET_IDENTITY_read_public_key_from_buffer (  \
-            src + offset, length - offset, dst, &read            \
-            );                                                     \
-          if (GNUNET_SYSERR == result)                                        \
-          GNUNET_break (0);                                     \
-          else                                                   \
-          offset += read;                                    \
+    enum GNUNET_GenericReturnValue result;                 \
+    size_t read;                                           \
+    result = GNUNET_IDENTITY_read_public_key_from_buffer (  \
+      src + offset, length - offset, dst, &read            \
+      );                                                     \
+    if (GNUNET_SYSERR == result)                                        \
+    GNUNET_break (0);                                     \
+    else                                                   \
+    offset += read;                                    \
 } while (0)
 
 static uint16_t
@@ -858,29 +858,34 @@ encrypt_message (struct GNUNET_MESSENGER_Message *message,
   fold_short_message (message, &shortened);
 
   const uint16_t length = get_short_message_size (&shortened, GNUNET_YES);
-  const uint16_t padded_length = calc_padded_length (length);
+  const uint16_t padded_length = calc_padded_length (
+    length + GNUNET_IDENTITY_ENCRYPT_OVERHEAD_BYTES
+    );
 
   message->header.kind = GNUNET_MESSENGER_KIND_PRIVATE;
   message->body.privacy.data = GNUNET_malloc (padded_length);
   message->body.privacy.length = padded_length;
 
-  encode_short_message (&shortened, padded_length, message->body.privacy.data);
+  const uint16_t encoded_length = (
+    padded_length - GNUNET_IDENTITY_ENCRYPT_OVERHEAD_BYTES
+    );
 
-  if (padded_length == GNUNET_IDENTITY_encrypt_old (message->body.privacy.data,
-                                                    padded_length, key,
-                                                    
&(message->body.privacy.key),
-                                                    
message->body.privacy.data))
-  {
-    destroy_message_body (shortened.kind, &(shortened.body));
-    return GNUNET_YES;
-  }
-  else
+  encode_short_message (&shortened, encoded_length, 
message->body.privacy.data);
+
+  if (GNUNET_OK != GNUNET_IDENTITY_encrypt (message->body.privacy.data,
+                                            encoded_length,
+                                            key,
+                                            message->body.privacy.data,
+                                            padded_length))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Encrypting message failed!\n");
 
     unfold_short_message (&shortened, message);
     return GNUNET_NO;
   }
+
+  destroy_message_body (shortened.kind, &(shortened.body));
+  return GNUNET_YES;
 }
 
 
@@ -890,12 +895,25 @@ decrypt_message (struct GNUNET_MESSENGER_Message *message,
 {
   GNUNET_assert ((message) && (key));
 
-  if (message->body.privacy.length != GNUNET_IDENTITY_decrypt_old (
-        message->body.privacy.data, message->body.privacy.length,
-        key,
-        &(message->body.privacy.key),
-        message->body.
-        privacy.data))
+  const uint16_t padded_length = message->body.privacy.length;
+
+  if (padded_length < GNUNET_IDENTITY_ENCRYPT_OVERHEAD_BYTES)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "Message length too short to decrypt!\n");
+
+    return GNUNET_NO;
+  }
+
+  const uint16_t encoded_length = (
+    padded_length - GNUNET_IDENTITY_ENCRYPT_OVERHEAD_BYTES
+    );
+
+  if (GNUNET_OK != GNUNET_IDENTITY_decrypt (message->body.privacy.data,
+                                            padded_length,
+                                            key,
+                                            message->body.privacy.data,
+                                            encoded_length))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Decrypting message failed!\n");
 
@@ -905,7 +923,7 @@ decrypt_message (struct GNUNET_MESSENGER_Message *message,
   struct GNUNET_MESSENGER_ShortMessage shortened;
 
   if (GNUNET_YES != decode_short_message (&shortened,
-                                          message->body.privacy.length,
+                                          encoded_length,
                                           message->body.privacy.data))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -915,7 +933,6 @@ decrypt_message (struct GNUNET_MESSENGER_Message *message,
   }
 
   unfold_short_message (&shortened, message);
-
   return GNUNET_YES;
 }
 

-- 
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]