Changeset 659

Show
Ignore:
Timestamp:
06/18/07 02:09:21 (1 year ago)
Author:
raphael
Message:

Replaced gen-keys.c with perl-only code
PMA's blowfish key generator replaced with new one
Added save_file and gen_sys_rand_num

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/CHANGELOG

    r657 r659  
    1111\_________________________________________________________________/ 
    1212 
     132007-06-17 Raphael Geissert 
     14        - INSTALLATION: 
     15                * Replaced gen-keys.c with perl-only code 
     16        - SETUP: 
     17                * PMA's blowfish key generator replaced with new one 
     18        - ENGINE: 
     19                * Added save_file and gen_sys_rand_num 
     20 
    13212007-06-17 Benedikt Heintel 
    1422        - CONFIGS: 
     
    17641772 
    176517732006-04-19 Carsten Schoene / Marcus Moll 
    1766         - INSTALLTION: 
     1774        - INSTALLATION: 
    17671775                * Updated: master.cf entry for Sendmail Submission Port 587 (e.g. required for AOL users) 
    17681776 
  • trunk/engine/ispcp-db-keys.pl

    r479 r659  
    11 
    2 $main::db_pass_key = 'G%ID2Ty2bcp;?-?,C>/C/_CakBwnY,z~'; 
     2$main::db_pass_key = '{KEY}'; 
    33 
    4 $main::db_pass_iv = 'A7K1&]C9'; 
     4$main::db_pass_iv = '{IV}'; 
    55 
    66return 1; 
  • trunk/engine/ispcp_common_code.pl

    r595 r659  
    508508} 
    509509 
     510sub save_file { 
     511 
     512    my ($fname, $fdata) = @_; 
     513 
     514    push_el(\@main::el, 'save_file()', 'Starting...'); 
     515 
     516    if ( !defined($fname) || $fname eq '' ) { 
     517        push_el( 
     518                \@main::el, 
     519                'save_file()', 
     520                "ERROR: Undefined input data, fname: |$fname|, fdata" 
     521               ); 
     522 
     523        return -1; 
     524    } 
     525 
     526    my $res = open(F, '>', $fname); 
     527 
     528    if (!defined($res)) { 
     529 
     530        push_el( 
     531                \@main::el, 
     532                'save_file()', 
     533                "ERROR: Can't open file |$fname| for writing !" 
     534               ); 
     535 
     536        return -1; 
     537 
     538    } 
     539 
     540    print F $fdata; 
     541 
     542    close(F); 
     543 
     544    push_el(\@main::el, 'save_file()', 'Ending...'); 
     545 
     546    return 0; 
     547 
     548} 
     549 
    510550sub del_file { 
    511551 
     
    858898} 
    859899 
     900sub gen_sys_rand_num { 
     901 
     902    my ($len) = @_; 
     903 
     904    push_el(\@main::el, 'gen_sys_rand_num()', 'Starting...'); 
     905 
     906    if (!defined($len) || ($len eq '')) { 
     907 
     908        push_el(\@main::el, 'gen_sys_rand_num()', "ERROR: Undefined input data, len: |$len| !"); 
     909 
     910        return (-1, ''); 
     911 
     912    } 
     913 
     914    if (0 >= $len ) { 
     915 
     916        push_el(\@main::el, 'gen_sys_rand_num()', "ERROR: Input data length '$len' is zero or negative !"); 
     917 
     918        return (-1, ''); 
     919 
     920    } 
     921     
     922    my $rs = open(F, '<', '/dev/random'); 
     923 
     924    if (!defined($rs)) { 
     925 
     926        push_el(\@main::el, 'gen_sys_rand_num()', "ERROR: Couldn't open the pseudo-random characters generator"); 
     927 
     928        return (-1, ''); 
     929     
     930    } 
     931     
     932    my ($i, $rdata, $rc, $rci) = (0, undef, undef, undef); 
     933     
     934    while ($i < $len) { 
     935 
     936        read(F, $rc, 1); 
     937         
     938        $rci = ord($rc); 
     939         
     940        next if ($rci <= 32 || $rci >= 125 || $rci == 92 ); 
     941         
     942        $rdata .= $rc; 
     943        $rc = undef; 
     944        $i++; 
     945 
     946    } 
     947     
     948    close(F); 
     949 
     950    push_el(\@main::el, 'gen_sys_rand_num()', 'Ending...'); 
     951 
     952    return (0, $rdata); 
     953 
     954} 
     955 
    860956sub crypt_md5_data { 
    861957 
  • trunk/engine/setup/ispcp-setup

    r658 r659  
    14381438        my $tmp_dir = "$main::cfg{'GUI_ROOT_DIR'}/phptmp"; 
    14391439 
    1440         my @rand_data = ('A'..'Z', 'a'..'z', '0'..'9', '.', '/', '-', '*', ',', ':', 
    1441                          ';', '_', '?', '%', '=', '(', ')', '#', '!', '<', '>', '+', 
    1442                          '[', ']', '{', '}', '"', '@', '&'); 
    1443  
    1444         my ($i, $blowfish) = ('', ''); 
    1445  
    1446         for ($i = 0; $i < 31; $i++) { 
    1447  
    1448                 $blowfish .= $rand_data[ rand() * ($#rand_data + 1) ]; 
    1449  
    1450         } 
     1440        my $blowfish = gen_sys_rand_num(31); 
    14511441 
    14521442        ($rs, $cfg_tpl) = get_tpl($cfg_dir, 'config.inc.php'); 
  • trunk/gui/BSDmakefile

    r568 r659  
    3939        cp -R ./client $(SYSTEM_GUI_ROOT) 
    4040        cp -R ./include $(SYSTEM_GUI_ROOT) 
    41         rm -rf $(SYSTEM_GUI_ROOT)/{admin,reseller,client,include}/Makefile 
    4241        cp -R ./domain_default_page $(SYSTEM_GUI_ROOT) 
    4342        cp -R ./errordocs $(SYSTEM_GUI_ROOT) 
    44         #cp -R ./images $(SYSTEM_GUI_ROOT) 
    4543        cp -R ./themes $(SYSTEM_GUI_ROOT) 
    4644        cp -R ./tools $(SYSTEM_GUI_ROOT) 
     
    4947uninstall: 
    5048        rm -rf $(SYSTEM_GUI_ROOT) 
     49 
     50.PHONY: install uninstall 
  • trunk/gui/Makefile

    r474 r659  
    4343        cp -dR ./client $(SYSTEM_GUI_ROOT) 
    4444        cp -dR ./include $(SYSTEM_GUI_ROOT) 
    45         rm -rf $(SYSTEM_GUI_ROOT)/{admin,reseller,client,include}/Makefile 
    4645 
    4746        cp -dR ./domain_default_page $(SYSTEM_GUI_ROOT) 
    4847        cp -dR ./errordocs $(SYSTEM_GUI_ROOT) 
    49         #cp -dR ./images $(SYSTEM_GUI_ROOT) 
    5048        cp -dR ./themes $(SYSTEM_GUI_ROOT) 
    5149        cp -dR ./tools $(SYSTEM_GUI_ROOT) 
     
    5856        rm -rf $(SYSTEM_GUI_ROOT) 
    5957 
     58.PHONY: install uninstall 
  • trunk/gui/include/ispcp-db-keys.php

    r593 r659  
    11<?php 
    22 
    3 $ispcp_db_pass_key = 'G%ID2Ty2bcp;?-?,C>/C/_CakBwnY,z~'; 
     3$ispcp_db_pass_key = '{KEY}'; 
    44 
    5 $ispcp_db_pass_iv = 'A7K1&]C9'; 
     5$ispcp_db_pass_iv = '{IV}'; 
    66 
    77?> 
  • trunk/keys/BSDmakefile

    r471 r659  
    22.include <../Makefile.inc> 
    33 
    4 COMPILE=gcc -c -ansi -Wall -Wstrict-prototypes -pedantic 
    5  
    6 COMPILE_MCRYPT=gcc -g3 -ansi -Wall -Wstrict-prototypes -pedantic -lmcrypt 
    7  
    8 BUILD=gcc -o 
    9  
    10 BUILD_MCRYPT=gcc -lmcrypt -o 
    11  
    12 gen-keys: gen-keys.c 
    13  
    14         $(COMPILE) gen-keys.c 
    15         $(BUILD) gen-keys gen-keys.o 
    16         strip -v gen-keys 
    17 #       ./gen-keys 32 16 > keys.txt 
    18         chown root:wheel ./rpl.pl ./gen-keys 
    19         chmod 0700 ./rpl.pl ./gen-keys 
    20         ./rpl.pl $(SYSTEM_ROOT)/gui/include/ispcp-db-keys.php $(SYSTEM_ROOT)/engine/ispcp-db-keys.pl $(SYSTEM_ROOT)/engine/messager/ispcp-db-keys.pl 
    21          
    22 install: gen-keys  
    23  
    24 all: install 
     4install:  
     5        perl rpl.pl $(SYSTEM_ROOT)/gui/include/ispcp-db-keys.php $(SYSTEM_ROOT)/engine/ispcp-db-keys.pl $(SYSTEM_ROOT)/engine/messager/ispcp-db-keys.pl 
    256 
    267uninstall: 
    278 
    28         rm -rf ./gen-keys 
    29         rm -rf ./*.o 
    30         rm -rf ./*~ 
    31         rm -rf ./keys.txt 
    32  
    33 clean: uninstall 
    34  
     9.PHONY: install uninstall 
  • trunk/keys/Makefile

    r471 r659  
    22export 
    33 
    4 COMPILE=gcc -c -ansi -Wall -Wstrict-prototypes -pedantic 
    5  
    6 COMPILE_MCRYPT=gcc -g3 -ansi -Wall -Wstrict-prototypes -pedantic -lmcrypt 
    7  
    8 BUILD=gcc -o 
    9  
    10 BUILD_MCRYPT=gcc -lmcrypt -o 
    11  
    12 gen-keys: gen-keys.c 
    13  
    14         $(COMPILE) gen-keys.c 
    15         $(BUILD) gen-keys gen-keys.o 
    16         strip -v gen-keys 
    17 #       ./gen-keys 32 16 > keys.txt 
    18         chown root:root ./rpl.pl ./gen-keys 
    19         chmod 0700 ./rpl.pl ./gen-keys 
    20         ./rpl.pl $(SYSTEM_ROOT)/gui/include/ispcp-db-keys.php $(SYSTEM_ROOT)/engine/ispcp-db-keys.pl $(SYSTEM_ROOT)/engine/messager/ispcp-db-keys.pl 
    21          
    22 install: gen-keys  
    23  
    24 all: install 
     4install:  
     5        perl rpl.pl $(SYSTEM_ROOT)/gui/include/ispcp-db-keys.php $(SYSTEM_ROOT)/engine/ispcp-db-keys.pl $(SYSTEM_ROOT)/engine/messager/ispcp-db-keys.pl 
    256 
    267uninstall: 
    278 
    28         rm -rf ./gen-keys 
    29         rm -rf ./*.o 
    30         rm -rf ./*~ 
    31         rm -rf ./keys.txt 
    32  
    33 clean: uninstall 
    34  
     9.PHONY: install uninstall 
  • trunk/keys/rpl.pl

    r471 r659  
    11#!/usr/bin/perl 
     2 
     3use FindBin; 
     4 
     5use lib "$FindBin::Bin/../engine"; 
     6require 'ispcp_common_code.pl'; 
    27 
    38use strict; 
     
    712 
    813my ($php_fname, $perl_fname, $perl_fname2) = ($ARGV[0], $ARGV[1], $ARGV[2]); 
    9 my @keys; 
    10 my ($key, $iv); 
    1114 
    12 # get keys data; 
    13 system("./gen-keys 32 8 > keys.txt"); 
    14 open(F, '<', 'keys.txt'); 
    15 @keys = <F>; 
    16 close(F); 
    17 ($key, $iv) = ($keys[0], $keys[1]); 
    18  
    19 # we do not want \ in our encryption key; 
    20 while ($key =~ /\\/ || $iv =~ /\\/) { 
    21         chop($key); 
    22         chop($iv); 
    23         print("not good pair ($key, $iv). generating new...\n");sleep(1); 
    24         system("./gen-keys 32 8 > keys.txt"); 
    25         open(F, '<', 'keys.txt'); 
    26         @keys = <F>; 
    27         close(F); 
    28         ($key, $iv) = ($keys[0], $keys[1]); 
    29 
    30  
     15my $key = gen_sys_rand_num(32); 
     16my $iv  = gen_sys_rand_num(8); 
    3117 
    3218$key =~ s/'/\\'/gi; 
     
    3824chop($iv); 
    3925 
    40 # do the durty work
     26my ($rs, $php_file, $perl_file) = (undef, undef, undef)
    4127 
     28my %tag_hash = ( 
     29                    '{KEY}' => $key, 
     30                    '{IV}' =>  $iv 
     31                ); 
    4232 
    4333# php lib; 
    4434 
    45 open(F, '<', $php_fname); 
    46 my @php_file = <F>; 
    47 close(F); 
     35$php_file = get_file($php_fname); 
    4836 
    49 $php_file[2] = "\t\$ispcp_db_pass_key = '$key';\n"; 
    50 $php_file[4] = "\t\$ispcp_db_pass_iv = '$iv';\n"; 
     37($rs, $php_file) = prep_tpl(\%tag_hash, $php_file); 
    5138 
    52 open(F, '>', $php_fname); 
    53 foreach(@php_file) { 
    54          
    55         syswrite(F, $_); 
    56          
    57 
    58 close(F); 
     39return $rs if ($rs != 0); 
     40 
     41$rs = save_file($php_fname, $php_file); 
     42 
     43return $rs if ($rs != 0); 
    5944 
    6045# perl lib; 
    6146 
    62 open(F, '<', $perl_fname); 
    63 my @perl_file = <F>; 
    64 close(F); 
     47$perl_file = get_file($perl_fname); 
    6548 
    66 $perl_file[1] = "\$main::db_pass_key = '$key';\n"; 
    67 $perl_file[3] = "\$main::db_pass_iv = '$iv';\n"; 
     49($rs, $perl_file) = prep_tpl(\%tag_hash, $perl_file); 
    6850 
    69 open(F, '>', $perl_fname); 
    70 foreach(@perl_file) { 
    71          
    72         syswrite(F, $_); 
    73          
    74 
    75 close(F); 
     51return $rs if ($rs != 0); 
     52 
     53$rs = save_file($perl_fname, $perl_file); 
     54 
     55return $rs if ($rs != 0); 
     56 
    7657 
    7758# perl lib for autoresponder; 
    7859 
    79 open(F, '<', $perl_fname2); 
    80 my @perl_file2 = <F>; 
    81 close(F); 
     60$rs = save_file($perl_fname2, $perl_file); 
    8261 
    83 $perl_file2[1] = "\$main::db_pass_key = '$key';\n"; 
    84 $perl_file2[3] = "\$main::db_pass_iv = '$iv';\n"; 
    85  
    86 open(F, '>', $perl_fname2); 
    87 foreach(@perl_file2) { 
    88          
    89         syswrite(F, $_); 
    90          
    91 
    92 close(F); 
     62return $rs if ($rs != 0);