## OpenCA - Command ## (c) 1998-2001 by Massimiliano Pala and OpenCA Group ## (c) Copyright 2002-2004 The OpenCA Project ## ## File Name: send_email_cert ## Brief: send cert in PEM-format ## Version: $Revision: 1.2 $ ## Description: this script is used to give the user a cert ## Parameters: key, dataType use strict; sub cmdSend_email_cert { ## Version Information $VER = '2.1.01'; $PRG = 'Certificates Send over HTTP'; ##// Let's get parameters my $type = $query->param('type'); my $key = ( $query->param('key') || $query->param('serial') ); my $dataType = ( $query->param('dataType') || "VALID_CERTIFICATE" ); my $mimetype = "Content-type: application/x-X509-XXX-cert\n\n"; my $bgcert = '-----BEGIN CERTIFICATE-----'; my $endcert = '-----END CERTIFICATE-----'; my $cert; ## Now we must take different path for we can give certs for user/ca ## or whatever we want. if ( "$type" =~ /(email|user|ca)/i ) { $mimetype =~ s/XXX/$type/g; } ## If we want the Text Version of the Certificate if ( $type =~ /txt/i ) { $mimetype = "Content-type: text/html\n\n"; $mimetype .= "
\n";
	}

	## fix the format
	if ( $query->param ("HTTP_USER_AGENT") =~ /IE/i ) {
		$type = "DER";
	}

	## Get the certificate from the DB
	if ( $cert = $db->getItem(DATATYPE=>$dataType, KEY=>$key ) ) {
		print "$mimetype";

		if( $type =~ /txt/i ) {
			print $cert->getTXT();
		} elsif ( $type =~ /der/i ) {
			print $cert->getDER();
		} else {
			print $cert->getPEM();
		}
	} else {
		generalError (gettext ("Cannot load certificate from the database!"));
	}
}

1;