/* LibreSSL - CAcert web application Copyright (C) 2004-2008 CAcert Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ // Get certificate information $certid = 0; if(array_key_exists('cert',$_REQUEST)) { $certid = intval($_REQUEST['cert']); } $query = "select UNIX_TIMESTAMP(`emailcerts`.`created`) as `created`, UNIX_TIMESTAMP(`emailcerts`.`expire`) - UNIX_TIMESTAMP() as `timeleft`, UNIX_TIMESTAMP(`emailcerts`.`expire`) as `expired`, `emailcerts`.`expire`, `emailcerts`.`revoked` as `revoke`, UNIX_TIMESTAMP(`emailcerts`.`revoked`) as `revoked`, `emailcerts`.`id`, `emailcerts`.`CN`, `emailcerts`.`serial`, `emailcerts`.`disablelogin` as `disablelogin`, `emailcerts`.`crt_name`, `emailcerts`.`keytype`, `emailcerts`.`description` from `emailcerts` where `emailcerts`.`id`='$certid' and `emailcerts`.`memid`='".intval($_SESSION['profile']['id'])."'"; $res = mysql_query($query); if(mysql_num_rows($res) <= 0) { showheader(_("My CAcert.org Account!")); echo _("No such certificate attached to your account."); showfooter(); exit; } $row = mysql_fetch_assoc($res); if (array_key_exists('format', $_REQUEST)) { // Which output format? if ($_REQUEST['format'] === 'der') { $outform = '-outform DER'; $extension = 'cer'; } else { $outform = '-outform PEM'; $extension = 'crt'; } $crtname=escapeshellarg($row['crt_name']); $cert = shell_exec("/usr/bin/openssl x509 -in $crtname $outform"); header("Content-Type: application/pkix-cert"); header("Content-Length: ".strlen($cert)); $fname = sanitizeFilename($row['CN']); if ($fname=="") $fname="certificate"; header("Content-Disposition: attachment; filename=\"${fname}.${extension}\""); echo $cert; exit; } elseif (array_key_exists('install', $_REQUEST)) { if (array_key_exists('HTTP_USER_AGENT',$_SERVER) && strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) { // Handle IE //TODO } else { // All other browsers $crtname=escapeshellarg($row['crt_name']); $cert = shell_exec("/usr/bin/openssl x509 -in $crtname -outform DER"); header("Content-Type: application/x-x509-user-cert"); header("Content-Length: ".strlen($cert)); $fname = sanitizeFilename($row['CN']); if ($fname=="") $fname="certificate"; header("Content-Disposition: inline; filename=\"${fname}.cer\""); echo $cert; exit; } } else { showheader(_("My CAcert.org Account!"), _("Install your certificate")); echo '
$cert"; ?>
=_("Information about the certificate")?> | |
=_("Status")?> | =$verified?> |
=_("Email Address")?> | =(trim($row['CN'])=="" ? _("empty") : sanitizeHTML($row['CN']))?> |
=_("SerialNumber")?> | =sanitizeHTML($row['serial'])?> |
=_("Revoked")?> | =$row['revoke']?> |
=_("Expires")?> | =$row['expire']?> |
=_("Login")?> | /> |
=_("Comment")?> | =htmlspecialchars($row['description'])?> |