]> git.ipfire.org Git - people/ms/ipfire-2.x.git/commitdiff
IPsec: Add support for SHA3 for IKE and ESP strongswan
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 31 Mar 2020 09:27:16 +0000 (09:27 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 31 Mar 2020 09:27:16 +0000 (09:27 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
html/cgi-bin/vpnmain.cgi

index e0f2c7a5e53f81dddae4e7176d17378fbb24c9da..ab561f0f96a469a98cb7b9af5b13be81f5577362 100644 (file)
@@ -2006,11 +2006,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_INTEGRITY'}             = 'sha3_512|sha3_256|sha2_512|sha2_256'; #[19];
        $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_INTEGRITY'}             = 'sha3_512|sha3_256|sha2_512|sha2_256'; #[22];
        $cgiparams{'ESP_GROUPTYPE'}             = 'curve25519|curve448|4096|3072|2048'; #[23];
        $cgiparams{'ESP_KEYLIFE'}               = '1'; #[17];
        $cgiparams{'COMPRESSION'}               = 'off'; #[13];
@@ -2364,7 +2364,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                        goto ADVANCED_ERROR;
                }
                foreach my $val (@temp) {
-                       if ($val !~ /^(sha2_(512|384|256)|sha|md5|aesxcbc)$/) {
+                       if ($val !~ /^(sha3_(512|384|256|224)|sha2_(512|384|256)|sha|md5|aesxcbc)$/) {
                                $errormessage = $Lang::tr{'invalid input'};
                                goto ADVANCED_ERROR;
                        }
@@ -2405,7 +2405,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                        goto ADVANCED_ERROR;
                }
                foreach my $val (@temp) {
-                       if ($val !~ /^(sha2_(512|384|256)|sha1|md5|aesxcbc)$/) {
+                       if ($val !~ /^(sha3_(512|384|256|224)|sha2_(512|384|256)|sha|md5|aesxcbc)$/) {
                                $errormessage = $Lang::tr{'invalid input'};
                                goto ADVANCED_ERROR;
                        }
@@ -2547,6 +2547,10 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
        $checked{'IKE_ENCRYPTION'}{'camellia128'} = '';
        my @temp = split('\|', $cgiparams{'IKE_ENCRYPTION'});
        foreach my $key (@temp) {$checked{'IKE_ENCRYPTION'}{$key} = "selected='selected'"; }
+       $checked{'IKE_INTEGRITY'}{'sha3_512'} = '';
+       $checked{'IKE_INTEGRITY'}{'sha3_384'} = '';
+       $checked{'IKE_INTEGRITY'}{'sha3_256'} = '';
+       $checked{'IKE_INTEGRITY'}{'sha3_224'} = '';
        $checked{'IKE_INTEGRITY'}{'sha2_512'} = '';
        $checked{'IKE_INTEGRITY'}{'sha2_384'} = '';
        $checked{'IKE_INTEGRITY'}{'sha2_256'} = '';
@@ -2587,6 +2591,10 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
        $checked{'ESP_ENCRYPTION'}{'camellia128'} = '';
        @temp = split('\|', $cgiparams{'ESP_ENCRYPTION'});
        foreach my $key (@temp) {$checked{'ESP_ENCRYPTION'}{$key} = "selected='selected'"; }
+       $checked{'ESP_INTEGRITY'}{'sha3_512'} = '';
+       $checked{'ESP_INTEGRITY'}{'sha3_384'} = '';
+       $checked{'ESP_INTEGRITY'}{'sha3_256'} = '';
+       $checked{'ESP_INTEGRITY'}{'sha3_224'} = '';
        $checked{'ESP_INTEGRITY'}{'sha2_512'} = '';
        $checked{'ESP_INTEGRITY'}{'sha2_384'} = '';
        $checked{'ESP_INTEGRITY'}{'sha2_256'} = '';
@@ -2728,6 +2736,10 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                        <td class='boldbase' width="15%">$Lang::tr{'integrity'}</td>
                        <td class='boldbase'>
                                <select name='IKE_INTEGRITY' multiple='multiple' size='6' style='width: 100%'>
+                                       <option value='sha3_512' $checked{'IKE_INTEGRITY'}{'sha3_512'}>SHA3 512 bit</option>
+                                       <option value='sha3_384' $checked{'IKE_INTEGRITY'}{'sha3_384'}>SHA3 384 bit</option>
+                                       <option value='sha3_256' $checked{'IKE_INTEGRITY'}{'sha3_256'}>SHA3 256 bit</option>
+                                       <option value='sha3_224' $checked{'IKE_INTEGRITY'}{'sha3_224'}>SHA3 224 bit</option>
                                        <option value='sha2_512' $checked{'IKE_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option>
                                        <option value='sha2_384' $checked{'IKE_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option>
                                        <option value='sha2_256' $checked{'IKE_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option>
@@ -2738,6 +2750,10 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) ||
                        </td>
                        <td class='boldbase'>
                                <select name='ESP_INTEGRITY' multiple='multiple' size='6' style='width: 100%'>
+                                       <option value='sha3_512' $checked{'ESP_INTEGRITY'}{'sha3_512'}>SHA3 512 bit</option>
+                                       <option value='sha3_384' $checked{'ESP_INTEGRITY'}{'sha3_384'}>SHA3 384 bit</option>
+                                       <option value='sha3_256' $checked{'ESP_INTEGRITY'}{'sha3_256'}>SHA3 256 bit</option>
+                                       <option value='sha3_224' $checked{'ESP_INTEGRITY'}{'sha3_224'}>SHA3 224 bit</option>
                                        <option value='sha2_512' $checked{'ESP_INTEGRITY'}{'sha2_512'}>SHA2 512 bit</option>
                                        <option value='sha2_384' $checked{'ESP_INTEGRITY'}{'sha2_384'}>SHA2 384 bit</option>
                                        <option value='sha2_256' $checked{'ESP_INTEGRITY'}{'sha2_256'}>SHA2 256 bit</option>