Changeset 659
- 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
| r657 |
r659 |
|
| 11 | 11 | \_________________________________________________________________/ |
|---|
| 12 | 12 | |
|---|
| | 13 | 2007-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 | |
|---|
| 13 | 21 | 2007-06-17 Benedikt Heintel |
|---|
| 14 | 22 | - CONFIGS: |
|---|
| … | … | |
| 1764 | 1772 | |
|---|
| 1765 | 1773 | 2006-04-19 Carsten Schoene / Marcus Moll |
|---|
| 1766 | | - INSTALLTION: |
|---|
| | 1774 | - INSTALLATION: |
|---|
| 1767 | 1775 | * Updated: master.cf entry for Sendmail Submission Port 587 (e.g. required for AOL users) |
|---|
| 1768 | 1776 | |
|---|
| r479 |
r659 |
|
| 1 | 1 | |
|---|
| 2 | | $main::db_pass_key = 'G%ID2Ty2bcp;?-?,C>/C/_CakBwnY,z~'; |
|---|
| | 2 | $main::db_pass_key = '{KEY}'; |
|---|
| 3 | 3 | |
|---|
| 4 | | $main::db_pass_iv = 'A7K1&]C9'; |
|---|
| | 4 | $main::db_pass_iv = '{IV}'; |
|---|
| 5 | 5 | |
|---|
| 6 | 6 | return 1; |
|---|
| r595 |
r659 |
|
| 508 | 508 | } |
|---|
| 509 | 509 | |
|---|
| | 510 | sub 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 | |
|---|
| 510 | 550 | sub del_file { |
|---|
| 511 | 551 | |
|---|
| … | … | |
| 858 | 898 | } |
|---|
| 859 | 899 | |
|---|
| | 900 | sub 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 | |
|---|
| 860 | 956 | sub crypt_md5_data { |
|---|
| 861 | 957 | |
|---|
| r658 |
r659 |
|
| 1438 | 1438 | my $tmp_dir = "$main::cfg{'GUI_ROOT_DIR'}/phptmp"; |
|---|
| 1439 | 1439 | |
|---|
| 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); |
|---|
| 1451 | 1441 | |
|---|
| 1452 | 1442 | ($rs, $cfg_tpl) = get_tpl($cfg_dir, 'config.inc.php'); |
|---|
| r568 |
r659 |
|
| 39 | 39 | cp -R ./client $(SYSTEM_GUI_ROOT) |
|---|
| 40 | 40 | cp -R ./include $(SYSTEM_GUI_ROOT) |
|---|
| 41 | | rm -rf $(SYSTEM_GUI_ROOT)/{admin,reseller,client,include}/Makefile |
|---|
| 42 | 41 | cp -R ./domain_default_page $(SYSTEM_GUI_ROOT) |
|---|
| 43 | 42 | cp -R ./errordocs $(SYSTEM_GUI_ROOT) |
|---|
| 44 | | #cp -R ./images $(SYSTEM_GUI_ROOT) |
|---|
| 45 | 43 | cp -R ./themes $(SYSTEM_GUI_ROOT) |
|---|
| 46 | 44 | cp -R ./tools $(SYSTEM_GUI_ROOT) |
|---|
| … | … | |
| 49 | 47 | uninstall: |
|---|
| 50 | 48 | rm -rf $(SYSTEM_GUI_ROOT) |
|---|
| | 49 | |
|---|
| | 50 | .PHONY: install uninstall |
|---|
| r474 |
r659 |
|
| 43 | 43 | cp -dR ./client $(SYSTEM_GUI_ROOT) |
|---|
| 44 | 44 | cp -dR ./include $(SYSTEM_GUI_ROOT) |
|---|
| 45 | | rm -rf $(SYSTEM_GUI_ROOT)/{admin,reseller,client,include}/Makefile |
|---|
| 46 | 45 | |
|---|
| 47 | 46 | cp -dR ./domain_default_page $(SYSTEM_GUI_ROOT) |
|---|
| 48 | 47 | cp -dR ./errordocs $(SYSTEM_GUI_ROOT) |
|---|
| 49 | | #cp -dR ./images $(SYSTEM_GUI_ROOT) |
|---|
| 50 | 48 | cp -dR ./themes $(SYSTEM_GUI_ROOT) |
|---|
| 51 | 49 | cp -dR ./tools $(SYSTEM_GUI_ROOT) |
|---|
| … | … | |
| 58 | 56 | rm -rf $(SYSTEM_GUI_ROOT) |
|---|
| 59 | 57 | |
|---|
| | 58 | .PHONY: install uninstall |
|---|
| r593 |
r659 |
|
| 1 | 1 | <?php |
|---|
| 2 | 2 | |
|---|
| 3 | | $ispcp_db_pass_key = 'G%ID2Ty2bcp;?-?,C>/C/_CakBwnY,z~'; |
|---|
| | 3 | $ispcp_db_pass_key = '{KEY}'; |
|---|
| 4 | 4 | |
|---|
| 5 | | $ispcp_db_pass_iv = 'A7K1&]C9'; |
|---|
| | 5 | $ispcp_db_pass_iv = '{IV}'; |
|---|
| 6 | 6 | |
|---|
| 7 | 7 | ?> |
|---|
| r471 |
r659 |
|
| 2 | 2 | .include <../Makefile.inc> |
|---|
| 3 | 3 | |
|---|
| 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 |
|---|
| | 4 | install: |
|---|
| | 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 |
|---|
| 25 | 6 | |
|---|
| 26 | 7 | uninstall: |
|---|
| 27 | 8 | |
|---|
| 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 |
|---|
| r471 |
r659 |
|
| 2 | 2 | export |
|---|
| 3 | 3 | |
|---|
| 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 |
|---|
| | 4 | install: |
|---|
| | 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 |
|---|
| 25 | 6 | |
|---|
| 26 | 7 | uninstall: |
|---|
| 27 | 8 | |
|---|
| 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 |
|---|
| r471 |
r659 |
|
| 1 | 1 | #!/usr/bin/perl |
|---|
| | 2 | |
|---|
| | 3 | use FindBin; |
|---|
| | 4 | |
|---|
| | 5 | use lib "$FindBin::Bin/../engine"; |
|---|
| | 6 | require 'ispcp_common_code.pl'; |
|---|
| 2 | 7 | |
|---|
| 3 | 8 | use strict; |
|---|
| … | … | |
| 7 | 12 | |
|---|
| 8 | 13 | my ($php_fname, $perl_fname, $perl_fname2) = ($ARGV[0], $ARGV[1], $ARGV[2]); |
|---|
| 9 | | my @keys; |
|---|
| 10 | | my ($key, $iv); |
|---|
| 11 | 14 | |
|---|
| 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 | | |
|---|
| | 15 | my $key = gen_sys_rand_num(32); |
|---|
| | 16 | my $iv = gen_sys_rand_num(8); |
|---|
| 31 | 17 | |
|---|
| 32 | 18 | $key =~ s/'/\\'/gi; |
|---|
| … | … | |
| 38 | 24 | chop($iv); |
|---|
| 39 | 25 | |
|---|
| 40 | | # do the durty work; |
|---|
| | 26 | my ($rs, $php_file, $perl_file) = (undef, undef, undef); |
|---|
| 41 | 27 | |
|---|
| | 28 | my %tag_hash = ( |
|---|
| | 29 | '{KEY}' => $key, |
|---|
| | 30 | '{IV}' => $iv |
|---|
| | 31 | ); |
|---|
| 42 | 32 | |
|---|
| 43 | 33 | # php lib; |
|---|
| 44 | 34 | |
|---|
| 45 | | open(F, '<', $php_fname); |
|---|
| 46 | | my @php_file = <F>; |
|---|
| 47 | | close(F); |
|---|
| | 35 | $php_file = get_file($php_fname); |
|---|
| 48 | 36 | |
|---|
| 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); |
|---|
| 51 | 38 | |
|---|
| 52 | | open(F, '>', $php_fname); |
|---|
| 53 | | foreach(@php_file) { |
|---|
| 54 | | |
|---|
| 55 | | syswrite(F, $_); |
|---|
| 56 | | |
|---|
| 57 | | } |
|---|
| 58 | | close(F); |
|---|
| | 39 | return $rs if ($rs != 0); |
|---|
| | 40 | |
|---|
| | 41 | $rs = save_file($php_fname, $php_file); |
|---|
| | 42 | |
|---|
| | 43 | return $rs if ($rs != 0); |
|---|
| 59 | 44 | |
|---|
| 60 | 45 | # perl lib; |
|---|
| 61 | 46 | |
|---|
| 62 | | open(F, '<', $perl_fname); |
|---|
| 63 | | my @perl_file = <F>; |
|---|
| 64 | | close(F); |
|---|
| | 47 | $perl_file = get_file($perl_fname); |
|---|
| 65 | 48 | |
|---|
| 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); |
|---|
| 68 | 50 | |
|---|
| 69 | | open(F, '>', $perl_fname); |
|---|
| 70 | | foreach(@perl_file) { |
|---|
| 71 | | |
|---|
| 72 | | syswrite(F, $_); |
|---|
| 73 | | |
|---|
| 74 | | } |
|---|
| 75 | | close(F); |
|---|
| | 51 | return $rs if ($rs != 0); |
|---|
| | 52 | |
|---|
| | 53 | $rs = save_file($perl_fname, $perl_file); |
|---|
| | 54 | |
|---|
| | 55 | return $rs if ($rs != 0); |
|---|
| | 56 | |
|---|
| 76 | 57 | |
|---|
| 77 | 58 | # perl lib for autoresponder; |
|---|
| 78 | 59 | |
|---|
| 79 | | open(F, '<', $perl_fname2); |
|---|
| 80 | | my @perl_file2 = <F>; |
|---|
| 81 | | close(F); |
|---|
| | 60 | $rs = save_file($perl_fname2, $perl_file); |
|---|
| 82 | 61 | |
|---|
| 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); |
|---|
| | 62 | return $rs if ($rs != 0); |
|---|
|