diff -rU3 cacert.orig/pages/gpg/0.php cacert/pages/gpg/0.php --- cacert.orig/pages/gpg/0.php 2007-01-30 15:08:15.000000000 +0100 +++ cacert/pages/gpg/0.php 2007-07-18 13:55:10.000000000 +0200 @@ -20,3 +20,11 @@ "> + +
=_("Alternatively, you can upload a file containing your key.")?>
+=_("DO NOT upload your complete keyring!")?>
+ diff -rU3 cacert.orig/www/gpg.php cacert/www/gpg.php --- cacert.orig/www/gpg.php 2007-02-07 16:51:20.000000000 +0100 +++ cacert/www/gpg.php 2007-07-18 14:41:12.000000000 +0200 @@ -28,7 +28,7 @@ if($oldid == "0") { - if($_REQUEST['process'] == _("Submit") && $_REQUEST['CSR'] == "") + if($_REQUEST['process'] == _("Submit") && $_REQUEST['CSR'] == "" && $_FILES['CSRfile']['tmp_name'] == "") { $_SESSION['_config']['errmsg'] = _("You failed to paste a valid GPG/PGP key."); $id = $oldid; @@ -38,10 +38,17 @@ $keyid=""; - if($oldid == "0" && $_REQUEST['CSR'] != "") + if($oldid == "0" && ($_REQUEST['CSR'] != "" + || $_FILES['CSRfile']['tmp_name'] != "")) { - $debugkey = $gpgkey = clean_csr(stripslashes($_REQUEST['CSR'])); - $debugpg = $gpg = mysql_real_escape_string(trim(`echo "$gpgkey"|gpg --with-colons --homedir /tmp 2>&1`)); + if ($_REQUEST['CSR'] != "") { + $debugkey = $gpgkey = clean_csr(stripslashes($_REQUEST['CSR'])); + $debugpg = $gpg = mysql_real_escape_string(trim(`echo "$gpgkey"|gpg --with-colons --homedir /tmp 2>&1`)); + } else { + $debugkey = $gpgkey = $_FILES['CSRfile']['tmp_name']; + $debugpg = $gpg = mysql_real_escape_string(trim(`gpg --with-colons --homedir /tmp 2>&1 "$gpgkey"`)); + echo "\n$gpgkey\n$gpg\n"; + } $lines = ""; $gpgarr = explode("\n", $gpg); foreach($gpgarr as $line) @@ -140,9 +147,13 @@ unset($oldid); $do = `echo "$debugkey\n--\n$debugpg\n--" >> /www/tmp/gpg.debug`; } + if ($oldid != "0" && $_FILES['CSRfile']['tmp_name'] != "") { + unlink($_FILES['CSRfile']['tmp_name']); + } } - if($oldid == "0" && $_REQUEST['CSR'] != "") + if($oldid == "0" && ($_REQUEST['CSR'] != "" + || $_FILES['CSRfile']['tmp_name'] != "")) { $query = "insert into `gpg` set `memid`='".$_SESSION['profile']['id']."', `email`='".mysql_real_escape_string($emailaddies['0'])."', @@ -156,12 +167,15 @@ $cwd = '/tmp/gpgspace'.$id; mkdir($cwd,0755); - $fp = fopen("$cwd/gpg.csr", "w"); - fputs($fp, clean_csr(stripslashes($_REQUEST['CSR']))); - fclose($fp); - - - system("gpg --homedir $cwd --import $cwd/gpg.csr"); + if ($_REQUEST['CSR'] != "") { + $fp = fopen("$cwd/gpg.csr", "w"); + fputs($fp, clean_csr(stripslashes($_REQUEST['CSR']))); + fclose($fp); + system("gpg --homedir $cwd --import $cwd/gpg.csr"); + } else { + system("gpg --homedir $cwd --import \"$gpgkey\""); + unlink($_FILES['CSRfile']['tmp_name']); + } $descriptorspec = array( 0 => array("pipe", "r"), // stdin is a pipe that the child will read from