4 * Script provides form to decode encrypted header information.
6 * @copyright 2005-2013 The SquirrelMail Project Team
7 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
9 * @package squirrelmail
13 * Set constant to path of your SquirrelMail install.
16 define('SM_PATH','../');
19 * include SquirrelMail string and generic functions
20 * script needs OneTimePadDecrypt() (functions/strings.php)
21 * and sqgetGlobalVar() (functions/global.php)
23 include_once(SM_PATH
.'functions/global.php');
24 include_once(SM_PATH
.'functions/strings.php');
27 * converts hex string to ip address
28 * @param string $hex hexadecimal string created with squirrelmail ip2hex
29 * function in delivery class.
30 * @return string ip address
31 * @since 1.5.1 and 1.4.5
33 function hex2ip($hex) {
34 if (strlen($hex)==8) {
35 $ret=hexdec(substr($hex,0,2)).'.'
36 .hexdec(substr($hex,2,2)).'.'
37 .hexdec(substr($hex,4,2)).'.'
38 .hexdec(substr($hex,6,2));
39 } elseif (strlen($hex)==32) {
40 $ret=substr($hex,0,4).':'
43 .substr($hex,12,4).':'
44 .substr($hex,16,4).':'
45 .substr($hex,20,4).':'
46 .substr($hex,24,4).':'
54 /** create page headers */
55 header('Content-Type: text/html');
57 echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"'."\n"
58 .' "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">'
59 ."\n<head>\n<meta name=\"robots\" content=\"noindex,nofollow\">\n"
62 if (sqgetGlobalVar('submit',$submit,SQ_POST
)) {
64 if (! sqgetGlobalVar('secret',$secret,SQ_POST
) ||
67 echo "<p>You must enter an encryption key.</p>\n";
69 if (! sqgetGlobalVar('enc_string',$enc_string,SQ_POST
) ||
72 echo "<p>You must enter an encrypted string.</p>\n";
76 if (isset($enc_string) && ! base64_decode($enc_string)) {
77 echo "<p>Encrypted string should be BASE64 encoded.<br />\n"
78 ."Please enter all characters that are listed after header name.</p>\n";
79 } elseif (isset($secret)) {
80 $string=OneTimePadDecrypt($enc_string,base64_encode($secret));
82 if (sqgetGlobalVar('ip_addr',$is_addr,SQ_POST
)) {
83 $string=hex2ip($string);
85 echo "<p>Decoded string: ".htmlspecialchars($string)."</p>\n";
91 <form action
="" method
="post">
93 Secret key
: <input type
="password" name
="secret"><br
/>
94 Encrypted
string: <input type
="text" name
="enc_string"><br
/>
95 <label
for="ip_addr">Check here
if you are decoding an address
string (FromHash
/ProxyHash
): </label
><input type
="checkbox" name
="ip_addr" id
="ip_addr" /><br
/>
96 <button type
="submit" name
="submit" value
="submit">Submit
</button
>