From 48af7df6c6e68b6b5d2b0fff5231fe12ef561025 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 05 Jul 2013 06:50:37 -0400
Subject: [PATCH] Updated dkim support.
---
interface/lib/classes/validate_dkim.inc.php | 41 ++++++++++++++++++++++++++++++-----------
1 files changed, 30 insertions(+), 11 deletions(-)
diff --git a/interface/lib/classes/validate_dkim.inc.php b/interface/lib/classes/validate_dkim.inc.php
index fccd457..12c0945 100644
--- a/interface/lib/classes/validate_dkim.inc.php
+++ b/interface/lib/classes/validate_dkim.inc.php
@@ -42,19 +42,38 @@
/* Validator function for private DKIM-Key */
function check_private_key($field_name, $field_value, $validator) {
- $dkim_enabled=$_POST['dkim'];
- if ($dkim_enabled == 'y') {
- if (empty($field_value)) return $this->get_error($validator['errmsg']);
- exec('echo "'.$field_value.'"|openssl rsa -check',$output,$result);
- if($result != 0) return $this->get_error($validator['errmsg']);
- }
- }
+ $dkim_enabled=$_POST['dkim'];
+ if ($dkim_enabled == 'y') {
+ if (empty($field_value)) return $this->get_error($validator['errmsg']);
+ exec('echo '.escapeshellarg($field_value).'|openssl rsa -check',$output,$result);
+ if($result != 0) return $this->get_error($validator['errmsg']);
+ }
+ }
/* Validator function for DKIM Path */
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']);
- }
-
-}
+ 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']);
+ }
+
+ /* Validator function for $_POST */
+ function validate_post($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; }
+ break;
+ }
+ }
+}
+
--
Gitblit v1.9.1