From ff4da3edea10612d5a3e4f569b164fd5f2c1a7ae Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Sun, 31 Jan 2016 06:52:36 -0500 Subject: [PATCH] Improved client message form. --- interface/lib/classes/validate_dkim.inc.php | 28 +++++++++++----------------- 1 files changed, 11 insertions(+), 17 deletions(-) diff --git a/interface/lib/classes/validate_dkim.inc.php b/interface/lib/classes/validate_dkim.inc.php index 695288e..443fe76 100644 --- a/interface/lib/classes/validate_dkim.inc.php +++ b/interface/lib/classes/validate_dkim.inc.php @@ -29,7 +29,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @author Florian Schaal, info@schaal-24.de - @copyrighth Florian Schaal, info@schaal-24.de + @copyright Florian Schaal, info@schaal-24.de */ @@ -57,25 +57,15 @@ } } - - /** - * Validator function for DKIM Path - * @return boolean - true when the dkim-path exists and is writeable - */ - function check_dkim_path($field_name, $field_value, $validator) { - if(empty($field_value)) return $this->get_error($validator['errmsg']); - if (substr(sprintf('%o', fileperms($field_value)), -3) <= 600) - return $this->get_error($validator['errmsg']); - } - - /** * Check function for DNS-Template */ function check_template($field_name, $field_value, $validator) { $dkim=false; - foreach($field_value as $field ) { if($field == 'DKIM') $dkim=true; } - if ($dkim && $field_value[0]!='DOMAIN') return $this->get_error($validator['errmsg']); + if(is_array($field_value) && !empty($field_value)){ + foreach($field_value as $field ) { if($field == 'DKIM') $dkim=true; } + if ($dkim && $field_value[0]!='DOMAIN') return $this->get_error($validator['errmsg']); + } } @@ -84,13 +74,17 @@ * * @return boolean - true if $POST contains a real key-file */ - function validate_post($key, $value) { + function validate_post($key, $value, $dkim_strength) { + $value=str_replace(array("\n", "-----BEGIN RSA PRIVATE KEY-----", "-----END RSA PRIVATE KEY-----", " "), "", $value); switch ($key) { case 'public': if (preg_match("/(^-----BEGIN PUBLIC KEY-----)[a-zA-Z0-9\r\n\/\+=]{1,221}(-----END PUBLIC KEY-----(\n|\r)?$)/", $value) === 1) { return true; } else { return false; } break; case 'private': - if (preg_match("/(^-----BEGIN RSA PRIVATE KEY-----)[a-zA-Z0-9\r\n\/\+=]{1,850}(-----END RSA PRIVATE KEY-----(\n|\r)?$)/", $value) === 1) { return true; } else { return false; } + if ( $dkim_strength == 1024 ) $range = "{812,816}"; + if ( $dkim_strength == 2048 ) $range = "{1588,1592}"; + if ( $dkim_strength == 4096 ) $range = "{3132,3136}"; + if ( preg_match("/^[a-zA-Z0-9\/\+=]".$range."$/", $value ) === 1) return true; else return false; break; } } -- Gitblit v1.9.1