ikev2: don't add DH group in ESP transform proposals 92/27492/4
authorFilip Tehlar <ftehlar@cisco.com>
Sat, 6 Jun 2020 01:19:31 +0000 (01:19 +0000)
committerBenoît Ganne <bganne@cisco.com>
Thu, 11 Jun 2020 16:50:55 +0000 (16:50 +0000)
Type: fix

Anouncing DH group in esp transform proposals will enable PFS which is
not suppored now. This fixes issue during rekey when using strongswan as
responder.

Change-Id: Ib9f586113ae0ab9dc67e6ceadff43f8aac463820
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
src/plugins/ikev2/ikev2.c
src/plugins/ikev2/ikev2_cli.c

index bba8876..211cf25 100644 (file)
@@ -3011,7 +3011,7 @@ ikev2_set_initiator_proposals (vlib_main_t * vm, ikev2_sa_t * sa,
     }
 
   /* DH */
-  if (is_ike || ts->dh_type != IKEV2_TRANSFORM_DH_TYPE_NONE)
+  if (is_ike)
     {
       error = 1;
       vec_foreach (td, km->supported_transforms)
index 2a5ebb3..b991de4 100644 (file)
@@ -355,27 +355,27 @@ ikev2_profile_add_del_command_fn (vlib_main_t * vm,
       else
        if (unformat
            (line_input,
-            "set %U esp-crypto-alg %U %u esp-integ-alg %U esp-dh %U",
+            "set %U esp-crypto-alg %U %u esp-integ-alg %U",
             unformat_token, valid_chars, &name,
             unformat_ikev2_transform_encr_type, &crypto_alg, &tmp1,
-            unformat_ikev2_transform_integ_type, &integ_alg,
-            unformat_ikev2_transform_dh_type, &dh_type))
+            unformat_ikev2_transform_integ_type, &integ_alg))
        {
          r =
            ikev2_set_profile_esp_transforms (vm, name, crypto_alg, integ_alg,
-                                             dh_type, tmp1);
+                                             IKEV2_TRANSFORM_DH_TYPE_NONE,
+                                             tmp1);
          goto done;
        }
       else if (unformat
               (line_input,
-               "set %U esp-crypto-alg %U %u esp-dh %U",
+               "set %U esp-crypto-alg %U %u",
                unformat_token, valid_chars, &name,
-               unformat_ikev2_transform_encr_type, &crypto_alg, &tmp1,
-               unformat_ikev2_transform_dh_type, &dh_type))
+               unformat_ikev2_transform_encr_type, &crypto_alg, &tmp1))
        {
          r =
            ikev2_set_profile_esp_transforms (vm, name, crypto_alg, 0,
-                                             dh_type, tmp1);
+                                             IKEV2_TRANSFORM_DH_TYPE_NONE,
+                                             tmp1);
          goto done;
        }
       else if (unformat (line_input, "set %U sa-lifetime %lu %u %u %lu",
@@ -430,7 +430,7 @@ VLIB_CLI_COMMAND (ikev2_profile_add_del_command, static) = {
     "ikev2 profile set <id> responder <interface> <addr>\n"
     "ikev2 profile set <id> ike-crypto-alg <crypto alg> <key size> ike-integ-alg <integ alg> ike-dh <dh type>\n"
     "ikev2 profile set <id> esp-crypto-alg <crypto alg> <key size> "
-      "[esp-integ-alg <integ alg>] esp-dh <dh type>\n"
+      "[esp-integ-alg <integ alg>]\n"
     "ikev2 profile set <id> sa-lifetime <seconds> <jitter> <handover> <max bytes>",
     .function = ikev2_profile_add_del_command_fn,
 };