From c943b4a88af9c9468013089869a5be6f3804de30 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Mon, 22 Sep 2014 08:55:56 -0400
Subject: [PATCH] FS#2696 - More than 256 chars in DNS record and FS#3679 - allow stronger dkim-keys
---
interface/lib/classes/validate_dkim.inc.php | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/interface/lib/classes/validate_dkim.inc.php b/interface/lib/classes/validate_dkim.inc.php
index 5a9b8c0..71b8e85 100644
--- a/interface/lib/classes/validate_dkim.inc.php
+++ b/interface/lib/classes/validate_dkim.inc.php
@@ -72,13 +72,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("\n", "", $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("/^-----BEGIN RSA PRIVATE KEY-----[a-zA-Z0-9\/\+=]".$range."-----END RSA PRIVATE KEY-----$/", $value) === 1) return true; else return false;
break;
}
}
--
Gitblit v1.9.1