mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-27 03:07:43 +02:00
IPsec: Add support for Curve448
This is supported since strongswan 5.7.2 and is a good alternative to Curve25519 because Curve448 is almost equally secure but performs faster. https://en.wikipedia.org/wiki/Curve448 This is enabled by default although we do not expect many other implementations to be able to support this. Signed-off-by: Michael Tremer <michael.tremer@ipfire.org> Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
This commit is contained in:
committed by
Arne Fitzenreiter
parent
4dde3dd50f
commit
d47b2cc28b
@@ -2000,11 +2000,11 @@ END
|
||||
#use default advanced value
|
||||
$cgiparams{'IKE_ENCRYPTION'} = 'chacha20poly1305|aes256gcm128|aes256gcm96|aes256gcm64|aes256|aes192gcm128|aes192gcm96|aes192gcm64|aes192|aes128gcm128|aes128gcm96|aes128gcm64|aes128'; #[18];
|
||||
$cgiparams{'IKE_INTEGRITY'} = 'sha2_512|sha2_256'; #[19];
|
||||
$cgiparams{'IKE_GROUPTYPE'} = 'curve25519|4096|3072|2048'; #[20];
|
||||
$cgiparams{'IKE_GROUPTYPE'} = 'curve25519|curve448|4096|3072|2048'; #[20];
|
||||
$cgiparams{'IKE_LIFETIME'} = '3'; #[16];
|
||||
$cgiparams{'ESP_ENCRYPTION'} = 'chacha20poly1305|aes256gcm128|aes256gcm96|aes256gcm64|aes256|aes192gcm128|aes192gcm96|aes192gcm64|aes192|aes128gcm128|aes128gcm96|aes128gcm64|aes128'; #[21];
|
||||
$cgiparams{'ESP_INTEGRITY'} = 'sha2_512|sha2_256'; #[22];
|
||||
$cgiparams{'ESP_GROUPTYPE'} = 'curve25519|4096|3072|2048'; #[23];
|
||||
$cgiparams{'ESP_GROUPTYPE'} = 'curve25519|curve448|4096|3072|2048'; #[23];
|
||||
$cgiparams{'ESP_KEYLIFE'} = '1'; #[17];
|
||||
$cgiparams{'COMPRESSION'} = 'off'; #[13];
|
||||
$cgiparams{'ONLY_PROPOSED'} = 'on'; #[24];
|
||||
@@ -2368,7 +2368,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
|
||||
goto ADVANCED_ERROR;
|
||||
}
|
||||
foreach my $val (@temp) {
|
||||
if ($val !~ /^(curve25519|e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|768|1024|1536|2048|3072|4096|6144|8192)$/) {
|
||||
if ($val !~ /^(curve25519|curve448|e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|768|1024|1536|2048|3072|4096|6144|8192)$/) {
|
||||
$errormessage = $Lang::tr{'invalid input'};
|
||||
goto ADVANCED_ERROR;
|
||||
}
|
||||
@@ -2409,7 +2409,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
|
||||
goto ADVANCED_ERROR;
|
||||
}
|
||||
foreach my $val (@temp) {
|
||||
if ($val !~ /^(curve25519|e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|768|1024|1536|2048|3072|4096|6144|8192|none)$/) {
|
||||
if ($val !~ /^(curve25519|curve448|e521|e384|e256|e224|e192|e512bp|e384bp|e256bp|e224bp|768|1024|1536|2048|3072|4096|6144|8192|none)$/) {
|
||||
$errormessage = $Lang::tr{'invalid input'};
|
||||
goto ADVANCED_ERROR;
|
||||
}
|
||||
@@ -2549,6 +2549,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
|
||||
@temp = split('\|', $cgiparams{'IKE_INTEGRITY'});
|
||||
foreach my $key (@temp) {$checked{'IKE_INTEGRITY'}{$key} = "selected='selected'"; }
|
||||
$checked{'IKE_GROUPTYPE'}{'curve25519'} = '';
|
||||
$checked{'IKE_GROUPTYPE'}{'curve448'} = '';
|
||||
$checked{'IKE_GROUPTYPE'}{'768'} = '';
|
||||
$checked{'IKE_GROUPTYPE'}{'1024'} = '';
|
||||
$checked{'IKE_GROUPTYPE'}{'1536'} = '';
|
||||
@@ -2588,6 +2589,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
|
||||
@temp = split('\|', $cgiparams{'ESP_INTEGRITY'});
|
||||
foreach my $key (@temp) {$checked{'ESP_INTEGRITY'}{$key} = "selected='selected'"; }
|
||||
$checked{'ESP_GROUPTYPE'}{'curve25519'} = '';
|
||||
$checked{'ESP_GROUPTYPE'}{'curve448'} = '';
|
||||
$checked{'ESP_GROUPTYPE'}{'768'} = '';
|
||||
$checked{'ESP_GROUPTYPE'}{'1024'} = '';
|
||||
$checked{'ESP_GROUPTYPE'}{'1536'} = '';
|
||||
@@ -2752,6 +2754,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
|
||||
<td class='boldbase'>
|
||||
<select name='IKE_GROUPTYPE' multiple='multiple' size='6' style='width: 100%'>
|
||||
<option value='curve25519' $checked{'IKE_GROUPTYPE'}{'curve25519'}>Curve 25519 (256 bit)</option>
|
||||
<option value='curve448' $checked{'IKE_GROUPTYPE'}{'curve448'}>Curve 448 (224 bit)</option>
|
||||
<option value='e521' $checked{'IKE_GROUPTYPE'}{'e521'}>ECP-521 (NIST)</option>
|
||||
<option value='e512bp' $checked{'IKE_GROUPTYPE'}{'e512bp'}>ECP-512 (Brainpool)</option>
|
||||
<option value='e384' $checked{'IKE_GROUPTYPE'}{'e384'}>ECP-384 (NIST)</option>
|
||||
@@ -2774,6 +2777,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
|
||||
<td class='boldbase'>
|
||||
<select name='ESP_GROUPTYPE' multiple='multiple' size='6' style='width: 100%'>
|
||||
<option value='curve25519' $checked{'ESP_GROUPTYPE'}{'curve25519'}>Curve 25519 (256 bit)</option>
|
||||
<option value='curve448' $checked{'ESP_GROUPTYPE'}{'curve448'}>Curve 448 (224 bit)</option>
|
||||
<option value='e521' $checked{'ESP_GROUPTYPE'}{'e521'}>ECP-521 (NIST)</option>
|
||||
<option value='e512bp' $checked{'ESP_GROUPTYPE'}{'e512bp'}>ECP-512 (Brainpool)</option>
|
||||
<option value='e384' $checked{'ESP_GROUPTYPE'}{'e384'}>ECP-384 (NIST)</option>
|
||||
@@ -3325,7 +3329,7 @@ sub make_algos($$$$$) {
|
||||
|
||||
if ($grp =~ m/^e(.*)$/) {
|
||||
push(@algo, "ecp$1");
|
||||
} elsif ($grp =~ m/curve25519/) {
|
||||
} elsif ($grp =~ m/curve(25519|448)/) {
|
||||
push(@algo, "$grp");
|
||||
} else {
|
||||
push(@algo, "modp$grp");
|
||||
@@ -3342,7 +3346,7 @@ sub make_algos($$$$$) {
|
||||
# noop
|
||||
} elsif ($grp =~ m/^e(.*)$/) {
|
||||
push(@algo, "ecp$1");
|
||||
} elsif ($grp =~ m/curve25519/) {
|
||||
} elsif ($grp =~ m/curve(25519|448)/) {
|
||||
push(@algo, "$grp");
|
||||
} else {
|
||||
push(@algo, "modp$grp");
|
||||
|
||||
Reference in New Issue
Block a user