<?php 
 
// $Id: cleanex.php,v 1.0.1 2009/02/12 03:00:21 humaneasy Exp $
 
/** 
 
 * @file 
 
 * Generates config for test program.
 
 * @Version: 1.0.1
 
 * @Released: 05/27/03
 
 * @Donation: http://smsh.me/7kit
 
 *
 
 * Copyright (C) 2003-2009 Humaneasy, brainVentures Network. 
 
 * Licensed under GNU Lesser General Public License 3 or above.
 
 * Please visit http://www.gnu.org to now more about it.
 
 *
 
 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
 
 * Redistribution and use in source and binary forms, with or without
 
 * modification, are permitted provided that the following conditions
 
 * are met:
 
 * 
 
 * 1. Redistributions of source code must retain the above copyright
 
 *    notice, this list of conditions and the following disclaimer.
 
 * 
 
 * 2. Redistributions in binary form must reproduce the above copyright
 
 *    notice, this list of conditions and the following disclaimer in the
 
 *    documentation and/or other materials provided with the distribution.
 
 * 
 
 * 3. Neither the name of the project nor the names of its contributors
 
 *    may be used to endorse or promote products derived from this software
 
 *    without specific prior written permission.
 
 * 
 
 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
 
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
 
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS 
 
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
 
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
 
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 
 
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
 
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
 
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
 
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 */ 
 
?><!doctype html public "-//W3C//DTD HTML 4.0 //EN">
 
<html>
 
   <head>
 
       <title>EFC/XFSS - Enhanced File Crypto/Extended File Stealth System!</title>
 
 
       <!-- START: Browser Icon -->
 
       <link REL="icon" TYPE="image/gif" HREF="icon_logo.gif">
 
       <!-- ENDED: Browser Icon -->
 
 
       <meta HTTP-EQUIV="Cache-Control" value="no-cache, must-revalidate">
 
       <meta HTTP-EQUIV="~Pragma" value="no cache">
 
       <meta HTTP-EQUIV="Expires" value="Mon, 26 Jan 1970 00:00:00 GMT">
 
       <meta HTTP-EQUIV="Last-Modified" value="Mon, 21 May 2003 16:52:00 GMT">
 
 
   </head>
 
   <body>
 
   <table cellpadding=0 cellspacing=0 width="100%" height="100%"><tr><td height="95%">
 
       <img src=efc_logo.gif alt=efc align=right valign=top>
 
 
<?php
 
 
   // make sure we can use mcrypt_generic_init
 
   if (!function_exists(mcrypt_generic_init)) {
 
?>
 
 
       <h5>libmcrypt not available</h5>
 
       <p>In order to use crypt class you must have libmcrypt >= 2.4.x installed and
 
          PHP must be compiled with --with-mcrypt, if you don't know what this means
 
          please contact your hosting provider or system admin.</p>
 
 
<?php
 
     exit;
 
   }
 
 
   // Define mandatory variable
 
   if (!defined("__SECURE_PATH__"))
 
       define("__SECURE_PATH__", "{$_SERVER['DOCUMENT_ROOT']}/efc/secured/", TRUE);
 
 
   // Set a temporary $key and $data for encryption tests
 
   $key = md5(time() . getmypid());
 
   $data = @file_get_contents('efc.class.php');
 
 
   // Get and sort available cipher methods
 
   $ciphers = mcrypt_list_algorithms();
 
   natsort($ciphers);
 
 
   // Get and sort available cipher modes
 
   $modes = mcrypt_list_modes();
 
   natsort($modes);
 
   
 
   print "       <h3>Tests to installed libmcrypt ciphers/modes</h3>\n";
 
   print "       <ol>\n";
 
 
   foreach ($ciphers as $cipher) {
 
 
       print "         <li>Cipher: $cipher\n";
 
       print "           <ul>\n";
 
 
       foreach ($modes as $mode) {
 
 
           // Not Compatible
 
           $result = 'false';
 
 
           // open encryption module
 
           $td = @mcrypt_module_open($cipher, '', $mode, '');
 
 
           // if we could open the cipher
 
           if ($td) {
 
 
               // try to generate the iv
 
               $iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
 
 
               // if we could generate the iv
 
               if ($iv) {
 
 
                  // initialize encryption
 
                  @mcrypt_generic_init ($td, $key, $iv);
 
 
                  // encrypt data
 
                  $encrypted_data = mcrypt_generic($td, $data);
 
 
                  // cleanup
 
                  mcrypt_generic_deinit($td);
 
 
                  // No error issued
 
                  $result = 'true';
 
               }
 
 
               // close
 
               @mcrypt_module_close($td);
 
 
           }
 
 
           print "             <li>Mode <i>$mode</i> is <b>$result</b>.</li>\n";
 
           if ($result == "true")
 
              $available["$cipher"][] = $mode;
 
 
       }
 
       print "           </ul>\n";
 
       print "         </li>\n";
 
   }
 
?>
 
       </ol>
 
<?php
 
   if (count($available) > 0) {
 
      print "       <font size=3>Saving config file...</font>\n";
 
 
       // Set destination file name
 
      $dst_filename = __SECURE_PATH__.".efc.config.php";
 
 
      // touch destination file so it will exist when we check for it
 
      @touch($dst_filename);
 
 
      // can we write to it
 
      $msg = "configuration: cannot open ".$dst_filename." ";
 
      if (!is_writable($dst_filename))
 
          trigger_error($msg, E_USER_ERROR);
 
 
       // open the destionation file for writing
 
       $dest_fp = fopen($dst_filename, w);
 
 
       // return false if unable to open file
 
       $msg = "configuration: cannot open ".$dst_filename." ";
 
       if (!$dest_fp) trigger_error($msg, E_USER_ERROR);
 
 
       // write encrypted data to file
 
       $strAv  = "<?php\n\n";
 
       $strAv .= "/**\n";
 
       $strAv .= "  Copyright (C) 2003 HumanEasy, Lda. <[email protected]>.\n";
 
       $strAv .= "  All rights reserved.\n\n";
 
       $strAv .= "  This file is licensed under GNU GPL version 2 or above.\n";
 
       $strAv .= "  Please visit http:\/\/www.gnu.org to now more about it.\n\n";
 
       $strAv .= " ----------------------------------------------------------------\n\n";
 
       $strAv .= "   Name: EasyFileCrypt Extending Crypt Class\n";
 
       $strAv .= "   Version: 1.0\n\n";
 
       $strAv .= "   Created: ".date("r")."\n";
 
       $strAv .= "   Ciphers Installed on this system: ".count($ciphers)."\n\n";
 
       $strAv .= "**/\n\n";
 
       $strAv .= "    \$xfss = Array ( ";
 
 
       foreach ($ciphers as $avCipher) {
 
 
           $v = "";
 
           if (count($available["$avCipher"]) > 0) {
 
              foreach ($available["$avCipher"] as $avMode)
 
                  $v .= " '".$avMode."', ";
 
 
                  $i = strlen($v) - 2;
 
                  if ($v[$i] == ",")
 
                    $v = substr($v, 2, $i - 3);
 
           }
 
           if (!empty($v)) $v = " '".$v."' ";
 
           $strAv .= "'".$avCipher."' => Array (".$v."),\n                    ";
 
       }
 
       $strAv = rtrim($strAv);
 
       if ($strAv[strlen($strAv) - 1] == ",")
 
          $strAv = substr($strAv, 0, strlen($strAv) - 1);
 
       $strAv .= " );\n\n";
 
       $strAv .= "?>";
 
 
       fwrite($dest_fp, $strAv);
 
 
       // close encrypted file pointer
 
       fclose($dest_fp);
 
   }
 
?>
 
       <h1>Done!</h1>
 
     </td></tr>
 
     <tr><td height=8 bgcolor=navy align=right><font face=arial,sans-serif size=1 color=white>EFC/XFSS - Extended File Stealth System © 2003 HumanEasy, Lda. Licensed under GNU General Public License 2 or above. All Rights Reserved.   </font></td>
 
     </tr>
 
   </table>
 
  </body>
 
</html>
 
 |