From: Tobias Brunner Date: Thu, 15 May 2025 08:37:01 +0000 (+0200) Subject: notify-payload: Add notify type for IP-TFS/AGGFRAG X-Git-Tag: 6.0.2dr1~4^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f5f7424e1d833efd82220d4b36e543e84d485b30;p=thirdparty%2Fstrongswan.git notify-payload: Add notify type for IP-TFS/AGGFRAG --- diff --git a/src/libcharon/encoding/payloads/notify_payload.c b/src/libcharon/encoding/payloads/notify_payload.c index 2952ed06a1..bf140e8703 100644 --- a/src/libcharon/encoding/payloads/notify_payload.c +++ b/src/libcharon/encoding/payloads/notify_payload.c @@ -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; diff --git a/src/libcharon/encoding/payloads/notify_payload.h b/src/libcharon/encoding/payloads/notify_payload.h index 9e90d423fe..a7b1367ef7 100644 --- a/src/libcharon/encoding/payloads/notify_payload.h +++ b/src/libcharon/encoding/payloads/notify_payload.h @@ -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,