reorder aad and iv
authorMazet Laurent <laurent.mazet@thalesgroup.com>
Tue, 1 Jul 2025 13:01:26 +0000 (15:01 +0200)
committerMazet Laurent <laurent.mazet@thalesgroup.com>
Tue, 1 Jul 2025 13:01:26 +0000 (15:01 +0200)
ulvpn.c

diff --git a/ulvpn.c b/ulvpn.c
index fcbbe2ec6e9bb66c433a292481092e41655e3ca6..c2c4ecde93be6014adedf72cab59f9a81625c76c 100644 (file)
--- a/ulvpn.c
+++ b/ulvpn.c
@@ -142,8 +142,8 @@ int depack_encrypted_data (uint8_t *buffer, int len, int maxlen)
     int error = 0;
     //CHECK_AND_STORE (1, buf[len] = enc.channel_id);
     //if ((!error) && (msg.bypass_len != 0)) { error = 1; }
-    CHECK_AND_STORE ((int)sizeof (aad), memcpy (buffer + len, enc.aad + sizeof (enc.aad) - sizeof (aad), sizeof (aad)));
     CHECK_AND_STORE ((int)sizeof (enc.iv), memcpy (buffer + len, enc.iv, sizeof (enc.iv)));
+    CHECK_AND_STORE ((int)sizeof (aad), memcpy (buffer + len, enc.aad + sizeof (enc.aad) - sizeof (aad), sizeof (aad)));
     CHECK_AND_STORE (enc.data_len, memcpy (buffer + len, enc.data, enc.data_len));
 
     return (error) ? -1 : len;
@@ -166,8 +166,8 @@ int pack_encrypted_data (uint8_t *buffer, int len, int maxlen)
     int error = 0;
     //CHECK_AND_PACK (1, enc.channel_id = buffer[offset]);
     enc.bypass_len = 0;
-    CHECK_AND_PACK ((int)sizeof (aad), memcpy (enc.aad + sizeof (enc.aad) - sizeof (aad), buffer + offset, sizeof (aad)));
     CHECK_AND_PACK ((int)sizeof (enc.iv), memcpy (enc.iv, buffer + offset, sizeof (enc.iv)));
+    CHECK_AND_PACK ((int)sizeof (aad), memcpy (enc.aad + sizeof (enc.aad) - sizeof (aad), buffer + offset, sizeof (aad)));
     if ((!error) && ((len - offset >= 32) && ((len - offset) % 16 == 0))) {
         memcpy (enc.data, buffer + offset, len - offset);
         enc.data_len = len - offset;