'Compute userPassword', 'body'=>plugin_md5_show_form(isset($post['phrase']), $value)); } else { // Compute (Don't show its $phrase at the same time) $is_output_prefix = isset($post['prefix']); $salt = isset($post['salt']) ? $post['salt'] : ''; $scheme = isset($post['scheme']) ? $post['scheme']: ''; $algos_enabled = plugin_md5_get_algos_enabled(); $scheme_list = array('x-php-md5', 'MD5', 'SMD5'); if ($algos_enabled->sha1) { array_push($scheme_list, 'x-php-sha1', 'SHA', 'SSHA'); } if ($algos_enabled->sha256) { array_push($scheme_list, 'x-php-sha256', 'SHA256', 'SSHA256'); } if ($algos_enabled->sha512) { array_push($scheme_list, 'x-php-sha512', 'SHA512', 'SSHA512'); } if (!in_array($scheme, $scheme_list)) { return array( 'msg' => 'Error', 'body' => 'Invalid scheme: ' . htmlsc($scheme), ); } $scheme_with_salt = '{' . $scheme . '}' . $salt; return array( 'msg' =>'Result', 'body'=> pkwk_hash_compute($phrase, $scheme_with_salt, $is_output_prefix, TRUE)); } } // $nophrase = Passphrase is (submitted but) empty // $value = Default passphrase value function plugin_md5_show_form($nophrase = FALSE, $value = '') { if (PKWK_SAFE_MODE || PKWK_READONLY) die_message('Prohibited'); if (strlen($value) > PKWK_PASSPHRASE_LIMIT_LENGTH) { die_message('Limit: malicious message length'); } if ($value != '') $value = 'value="' . htmlsc($value) . '" '; $algos_enabled = plugin_md5_get_algos_enabled(); $sha1_checked = $md5_checked = ''; if ($algos_enabled->sha1) { $sha1_checked = 'checked="checked" '; } else { $md5_checked = 'checked="checked" '; } $self = get_base_uri(); $form = <<NOTICE: Don't use this feature via untrustful or unsure network


EOD; if ($nophrase) $form .= 'NO PHRASE
'; $form .= <<

EOD; $form .= <<
EOD; if ($algos_enabled->sha1) $form .= <<
EOD; if ($algos_enabled->sha256) $form .= <<
EOD; if ($algos_enabled->sha512) $form .= <<
EOD; if ($algos_enabled->sha1) $form .= <<

EOD; $form .= <<

EOD; if ($algos_enabled->sha256) $form .= <<

EOD; if ($algos_enabled->sha512) $form .= <<

EOD; $form .= <<



* = Salt enabled

EOD; return $form; } /** * Get availabilites of algos. */ function plugin_md5_get_algos_enabled() { $sha1_enabled = function_exists('sha1'); $sha256_enabled = false; $sha512_enabled = false; if (function_exists('hash') && function_exists('hash_algos')) { $algos = hash_algos(); if (in_array('sha256', $algos)) { $sha256_enabled = true; } if (in_array('sha512', $algos)) { $sha512_enabled = true; } } return (object) array( 'sha1' => $sha1_enabled, 'sha256' => $sha256_enabled, 'sha512' => $sha512_enabled, ); }