diff options
author | Michael Tänzer <neo@nhng.de> | 2013-08-25 20:51:39 +0200 |
---|---|---|
committer | Michael Tänzer <neo@nhng.de> | 2013-08-25 20:51:39 +0200 |
commit | e40fba184192384eb46ba9f9a2fc7f513e339067 (patch) | |
tree | e4ff5d02ee803d6112515ef8d5ff3538a16ab3f4 | |
parent | 2d6e2851a754bbd8d5f5afb0d02bc5caba7d6626 (diff) | |
parent | be962501af189b26322728a8a28efddc9afdd81b (diff) | |
download | cacert-devel-e40fba184192384eb46ba9f9a2fc7f513e339067.tar.gz cacert-devel-e40fba184192384eb46ba9f9a2fc7f513e339067.tar.xz cacert-devel-e40fba184192384eb46ba9f9a2fc7f513e339067.zip |
Merge branch 'bug-1200' into release
-rw-r--r-- | www/gpg.php | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/www/gpg.php b/www/gpg.php index 317072c..bf8ba29 100644 --- a/www/gpg.php +++ b/www/gpg.php @@ -17,6 +17,7 @@ */ ?> <? require_once("../includes/loggedin.php"); + require_once("../includes/lib/general.php"); $id = 0; if(array_key_exists('id',$_REQUEST)) $id=intval($_REQUEST['id']); $oldid = $_REQUEST['oldid'] = array_key_exists('oldid',$_REQUEST) ? intval($_REQUEST['oldid']) : 0; @@ -82,17 +83,36 @@ function verifyEmail($email) $state=0; if($oldid == "0" && $CSR != "") { - $debugkey = $gpgkey = clean_gpgcsr($CSR); + $err = runCommand('mktemp --directory /tmp/cacert_gpg.XXXXXXXXXX', + "", + $tmpdir); + if (!$tmpdir) + { + $err = true; + } - $tnam = tempnam('/tmp/', '__gpg'); - $fp = fopen($tnam, 'w'); - fwrite($fp, $gpgkey); - fclose($fp); - $debugpg = $gpg = trim(`gpg --with-colons --homedir /tmp 2>&1 < $tnam`); - unlink($tnam); + if (!$err) + { + $err = runCommand("gpg --with-colons --homedir $tmpdir 2>&1", + clean_gpgcsr($CSR), + $gpg); + + `rm -r $tmpdir`; + } + + if ($err) + { + showheader(_("Welcome to CAcert.org")); + + echo "<p style='color:#ff0000'>"._("There was an error parsing your key.")."</p>"; + unset($_REQUEST['process']); + $id = $oldid; + unset($oldid); + exit(); + } $lines = ""; - $gpgarr = explode("\n", $gpg); + $gpgarr = explode("\n", trim($gpg)); foreach($gpgarr as $line) { #echo "Line[]: $line <br/>\n"; @@ -260,7 +280,6 @@ function verifyEmail($email) unset($_REQUEST['process']); $id = $oldid; unset($oldid); - $do = `echo "$debugkey\n--\n$debugpg\n--" >> /www/tmp/gpg.debug`; exit(); } elseif($nerr) @@ -303,7 +322,7 @@ function verifyEmail($email) system("gpg --homedir $cwd --import $cwd/gpg.csr"); - $debugpg = $gpg = trim(`gpg --homedir $cwd --with-colons --fixed-list-mode --list-keys $keyid 2>&1`); + $gpg = trim(`gpg --homedir $cwd --with-colons --fixed-list-mode --list-keys $keyid 2>&1`); $lines = ""; $gpgarr = explode("\n", $gpg); foreach($gpgarr as $line) |