From fc0edb2f00bcdc6baaaa29f9041e82f3003b9b44 Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Sun, 07 Jun 2015 12:16:19 -0400
Subject: [PATCH] Merge branch 'master' into 'master'
---
interface/lib/classes/validate_dkim.inc.php | 26 ++++++++++----------------
1 files changed, 10 insertions(+), 16 deletions(-)
diff --git a/interface/lib/classes/validate_dkim.inc.php b/interface/lib/classes/validate_dkim.inc.php
index 695288e..5d7fb8f 100644
--- a/interface/lib/classes/validate_dkim.inc.php
+++ b/interface/lib/classes/validate_dkim.inc.php
@@ -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