]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
notify-payload: Add notify type for IP-TFS/AGGFRAG
authorTobias Brunner <tobias@strongswan.org>
Thu, 15 May 2025 08:37:01 +0000 (10:37 +0200)
committerTobias Brunner <tobias@strongswan.org>
Wed, 28 May 2025 14:37:46 +0000 (16:37 +0200)
src/libcharon/encoding/payloads/notify_payload.c
src/libcharon/encoding/payloads/notify_payload.h

index 2952ed06a13a2c007f5d1b11e07156844b6988c3..bf140e870394775f6003214e7af00710692170af 100644 (file)
@@ -122,9 +122,10 @@ ENUM_NEXT(notify_type_names, USE_PPK, INTERMEDIATE_EXCHANGE_SUPPORTED, SIGNATURE
        "PPK_IDENTITY",
        "NO_PPK_AUTH",
        "INTERMEDIATE_EXCHANGE_SUPPORTED");
-ENUM_NEXT(notify_type_names, ADDITIONAL_KEY_EXCHANGE, ADDITIONAL_KEY_EXCHANGE, INTERMEDIATE_EXCHANGE_SUPPORTED,
-       "ADDITIONAL_KEY_EXCHANGE");
-ENUM_NEXT(notify_type_names, SA_RESOURCE_INFO, SA_RESOURCE_INFO, ADDITIONAL_KEY_EXCHANGE,
+ENUM_NEXT(notify_type_names, ADDITIONAL_KEY_EXCHANGE, USE_AGGFRAG, INTERMEDIATE_EXCHANGE_SUPPORTED,
+       "ADDITIONAL_KEY_EXCHANGE",
+       "USE_AGGFRAG");
+ENUM_NEXT(notify_type_names, SA_RESOURCE_INFO, SA_RESOURCE_INFO, USE_AGGFRAG,
        "SA_RESOURCE_INFO");
 ENUM_NEXT(notify_type_names, INITIAL_CONTACT_IKEV1, INITIAL_CONTACT_IKEV1, SA_RESOURCE_INFO,
        "INITIAL_CONTACT");
@@ -244,9 +245,10 @@ ENUM_NEXT(notify_type_short_names, USE_PPK, INTERMEDIATE_EXCHANGE_SUPPORTED, SIG
        "PPK_ID",
        "NO_PPK",
        "IKE_INT_SUP");
-ENUM_NEXT(notify_type_short_names, ADDITIONAL_KEY_EXCHANGE, ADDITIONAL_KEY_EXCHANGE, INTERMEDIATE_EXCHANGE_SUPPORTED,
-       "ADD_KE");
-ENUM_NEXT(notify_type_short_names, SA_RESOURCE_INFO, SA_RESOURCE_INFO, ADDITIONAL_KEY_EXCHANGE,
+ENUM_NEXT(notify_type_short_names, ADDITIONAL_KEY_EXCHANGE, USE_AGGFRAG, INTERMEDIATE_EXCHANGE_SUPPORTED,
+       "ADD_KE",
+       "AGGFRAG");
+ENUM_NEXT(notify_type_short_names, SA_RESOURCE_INFO, SA_RESOURCE_INFO, USE_AGGFRAG,
        "RES_INFO");
 ENUM_NEXT(notify_type_short_names, INITIAL_CONTACT_IKEV1, INITIAL_CONTACT_IKEV1, SA_RESOURCE_INFO,
        "INITIAL_CONTACT");
@@ -560,6 +562,12 @@ METHOD(payload_t, verify, status_t,
                                bad_length = TRUE;
                        }
                        break;
+               case USE_AGGFRAG:
+                       if (this->notify_data.len != 1)
+                       {
+                               bad_length = TRUE;
+                       }
+                       break;
                default:
                        /* TODO: verify */
                        break;
index 9e90d423fe5ec6d6eab04e141c33024605f4d61a..a7b1367ef795e53fdfd1f2d19cf7ef2a67167af1 100644 (file)
@@ -171,6 +171,8 @@ enum notify_type_t {
 
        /* multiple key exchanges, RFC 9370 */
        ADDITIONAL_KEY_EXCHANGE = 16441,
+       /* IP-TFS/AGGFRAG, RFC 9347 */
+       USE_AGGFRAG = 16442,
 
        /* Resource info for CHILD_SAs, RFC 9611 */
        SA_RESOURCE_INFO = 16444,