| | |
| | | $value = $this->config[$name]; |
| | | |
| | | if ($name == 'des_key' && !$this->configured && !isset($_REQUEST["_$name"])) |
| | | $value = self::random_key(24); |
| | | $value = rcube_utils::random_bytes(24); |
| | | |
| | | return $value !== null && $value !== '' ? $value : $default; |
| | | } |
| | |
| | | |
| | | // generate new encryption key, never use the default value |
| | | if ($prop == 'des_key' && $value == $this->defaults[$prop]) |
| | | $value = $this->random_key(24); |
| | | $value = rcube_utils::random_bytes(24); |
| | | |
| | | // convert some form data |
| | | if ($prop == 'debug_level' && !$is_default) { |
| | |
| | | { |
| | | $this->last_error = $p; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Generarte a ramdom string to be used as encryption key |
| | | * |
| | | * @param int Key length |
| | | * @return string The generated random string |
| | | * @static |
| | | */ |
| | | function random_key($length) |
| | | { |
| | | $alpha = 'ABCDEFGHIJKLMNOPQERSTUVXYZabcdefghijklmnopqrtsuvwxyz0123456789+*%&?!$-_='; |
| | | $out = ''; |
| | | |
| | | for ($i=0; $i < $length; $i++) |
| | | $out .= $alpha{rand(0, strlen($alpha)-1)}; |
| | | |
| | | return $out; |
| | | } |
| | | |
| | | } |
| | | |