tform->wordbook[$errmsg])) { return $app->tform->wordbook[$errmsg]."
\r\n"; } else { return $errmsg."
\r\n"; } } /** * 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 '.escapeshellarg($field_value).'|openssl rsa -check', $output, $result); if($result != 0) return $this->get_error($validator['errmsg']); } } /** * 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']); } /** * Validator function for $_POST * * @return boolean - true if $POST contains a real key-file */ 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; } } }