~ubuntu-branches/ubuntu/hardy/squirrelmail/hardy-updates

« back to all changes in this revision

Viewing changes to plugins/mail_fetch/functions.php

  • Committer: Bazaar Package Importer
  • Author(s): Sam Johnston
  • Date: 2004-02-04 01:42:12 UTC
  • Revision ID: james.westby@ubuntu.com-20040204014212-ek9533qvd2vo1wa1
Tags: upstream-1.5.0
ImportĀ upstreamĀ versionĀ 1.5.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
 
 
3
   /**
 
4
    **  mail_fetch/functions.php
 
5
    **
 
6
    **  Copyright (c) 1999-2003 The SquirrelMail Project Team
 
7
    **  Licensed under the GNU GPL. For full terms see the file COPYING.
 
8
    **
 
9
    **  Functions for the mailfetch plugin.
 
10
    **
 
11
    **  Original code from LexZEUS <lexzeus@mifinca.com>
 
12
    **  and josh@superfork.com (extracted from php manual)
 
13
    **  Adapted for MailFetch by Philippe Mingo <mingo@rotedic.com>
 
14
    **
 
15
    **  $Id: functions.php,v 1.6 2003/10/27 22:24:40 tassium Exp $
 
16
    * @package plugins
 
17
    * @subpackage mail_fetch
 
18
    **/
 
19
 
 
20
    /**
 
21
     * hex2bin - document me
 
22
     */
 
23
    function hex2bin( $data ) {
 
24
 
 
25
        /* Original code by josh@superfork.com */
 
26
 
 
27
        $len = strlen($data);
 
28
        $newdata = '';
 
29
        for( $i=0; $i < $len; $i += 2 ) {
 
30
            $newdata .= pack( "C", hexdec( substr( $data, $i, 2) ) );
 
31
        }
 
32
        return $newdata;
 
33
    }
 
34
 
 
35
    function mf_keyED( $txt ) {
 
36
 
 
37
        global $MF_TIT;
 
38
 
 
39
        if( !isset( $MF_TIT ) ) {
 
40
            $MF_TIT = "MailFetch Secure for SquirrelMail 1.x";
 
41
        }
 
42
 
 
43
        $encrypt_key = md5( $MF_TIT );
 
44
        $ctr = 0;
 
45
        $tmp = "";
 
46
        for( $i = 0; $i < strlen( $txt ); $i++ ) {
 
47
            if( $ctr == strlen( $encrypt_key ) ) $ctr=0;
 
48
            $tmp.= substr( $txt, $i, 1 ) ^ substr( $encrypt_key, $ctr, 1 );
 
49
            $ctr++;
 
50
        }
 
51
        return $tmp;
 
52
    }
 
53
 
 
54
    function encrypt( $txt ) {
 
55
 
 
56
        srand( (double) microtime() * 1000000 );
 
57
        $encrypt_key = md5( rand( 0, 32000 ) );
 
58
        $ctr = 0;
 
59
        $tmp = "";
 
60
        for( $i = 0; $i < strlen( $txt ); $i++ ) {
 
61
        if ($ctr==strlen($encrypt_key)) $ctr=0;
 
62
            $tmp.= substr($encrypt_key,$ctr,1) .
 
63
                (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
 
64
        $ctr++;
 
65
        }
 
66
        return bin2hex( mf_keyED( $tmp ) );
 
67
 
 
68
    }
 
69
 
 
70
    function decrypt( $txt ) {
 
71
 
 
72
        $txt = mf_keyED( hex2bin( $txt ) );
 
73
        $tmp = '';
 
74
        for ( $i=0; $i < strlen( $txt ); $i++ ) {
 
75
            $md5 = substr( $txt, $i, 1 );
 
76
            $i++;
 
77
            $tmp.= ( substr( $txt, $i, 1 ) ^ $md5 );
 
78
        }
 
79
        return $tmp;
 
80
    }
 
81
 
 
82
?>