added more configuration controls
[squirrelmail.git] / contrib / decrypt_headers.php
1 <?php
2
3 /**
4 * Script provides form to decode encrypted header information.
5 *
6 * @copyright &copy; 2005 The SquirrelMail Project Team
7 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
8 * @version $Id$
9 * @package squirrelmail
10 */
11
12 /**
13 * Set constant to path of your SquirrelMail install.
14 * @ignore
15 */
16 define('SM_PATH','../');
17
18 /**
19 * include SquirrelMail string functions
20 * script needs OneTimePadDecrypt() (functions/strings.php)
21 * and sqgetGlobalVar() (functions/global.php, loaded by strings.php)
22 */
23 include_once(SM_PATH.'functions/strings.php');
24
25 /**
26 * converts hex string to ip address
27 * @param string $hex hexadecimal string created with squirrelmail ip2hex
28 * function in delivery class.
29 * @return string ip address
30 * @since 1.5.1 and 1.4.5
31 */
32 function hex2ip($hex) {
33 if (strlen($hex)==8) {
34 $ret=hexdec(substr($hex,0,2)).'.'
35 .hexdec(substr($hex,2,2)).'.'
36 .hexdec(substr($hex,4,2)).'.'
37 .hexdec(substr($hex,6,2));
38 } elseif (strlen($hex)==32) {
39 $ret=hexdec(substr($hex,0,4)).':'
40 .hexdec(substr($hex,4,4)).':'
41 .hexdec(substr($hex,8,4)).':'
42 .hexdec(substr($hex,12,4)).':'
43 .hexdec(substr($hex,16,4)).':'
44 .hexdec(substr($hex,20,4)).':'
45 .hexdec(substr($hex,24,4)).':'
46 .hexdec(substr($hex,28,4));
47 } else {
48 $ret=$hex;
49 }
50 return $ret;
51 }
52
53 /** create page headers */
54 header('Content-Type: text/html');
55
56 echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'
57 ."\n<head>\n<meta name=\"robots\" content=\"noindex,nofollow\">\n"
58 ."</head><body>";
59
60 if (sqgetGlobalVar('submit',$submit,SQ_POST)) {
61 if (! sqgetGlobalVar('secret',$secret,SQ_POST) ||
62 empty($secret))
63 echo "<p>You must enter encryption key.</p>\n";
64 if (! sqgetGlobalVar('enc_string',$enc_string,SQ_POST) ||
65 empty($enc_string))
66 echo "<p>You must enter encrypted string.</p>\n";
67
68 if (isset($enc_string) && ! base64_decode($enc_string)) {
69 echo "<p>Encrypted string should be BASE64 encoded.<br />\n"
70 ."Please enter all characters that are listed after header name.</p>\n";
71 } elseif (isset($secret)) {
72 $string=OneTimePadDecrypt($enc_string,base64_encode($secret));
73
74 if (sqgetGlobalVar('ip_addr',$is_addr,SQ_POST)) {
75 $string=hex2ip($string);
76 }
77 echo "<p>Decoded string: ".$string."</p>\n";
78 }
79 echo "<hr />";
80 }
81 ?>
82 <form action="<?php echo $PHP_SELF ?>" method="post" >
83 <p>
84 Secret key: <input type="password" name="secret"><br />
85 Encrypted string: <input type="text" name="enc_string"><br />
86 Check, if it is an address string: <input type="checkbox" name="ip_addr" /><br />
87 <button type="submit" name="submit" value="submit">Submit</button>
88 </p>
89 </form>
90 </body></html>