⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 viewreq

📁 Perl写的CA认证程序
💻
字号:
## OpenCA - CA Command## (c) 1998-2001 by Massimiliano Pala and OpenCA Group####   File Name: viewReq##       Brief: View Request## Description: Display given Request to the CA Manager##  Parameters: dataType, keymy $cmdName = "viewReq";if ( $cmd !~ /$cmdName/i ) {        configError( "Wrong Command Usage ($cmd over $cmdName)!" );        exit 1;}## Get the Configuration parameters ...my ( $ou, $ouList, $def, $op, $opCert, $info, $opStatus, $dnLabel);my ( $sigStatus, $signer, $signature, $myDN, $myCN, $myEmail, @myDnInfo );my ( @opCertList, $reqDataTable, @cols, $opCert, $serLink, $lnk, $sigInfo );my ( %labels, @values, $opencaDir, $extfile );my ( $reqStatus, $cmdsPanel, $reqDesc );my $dataType = $query->param('dataType' );my $key      = $query->param('key');## Required Configuration Keymy $opencaDir  	= getRequired('BaseDir');my $sheetsDir	= getRequired( 'SheetsDir' );my $includeDir	= getRequired( 'IncludeDir' );my $txtDir	= getRequired( 'TextDir' );my $baseDoc = getRequired('ViewRequestSheet');configError( "Error, needed dB key!" ) if ( not $key );if ( $dataType eq "PENDING_REQUEST" ) {	$reqStatus = "Waiting for Approval";	$cmdsPanel = "$includeDir/pending_cmds.inc";	$reqDesc   = "$txtDir/pending_desc.txt";} elsif ( $dataType eq "RENEW_REQUEST" ) {	$reqStatus = "Renewal Request Waiting for Approval";	$cmdsPanel = "$includeDir/pending_cmds.inc";	$reqDesc   = "$txtDir/pending_desc.txt";} elsif ( $dataType eq "DELETED_REQUEST" ) {	$reqStatus = "Deleted Request";	$cmdsPanel = "$includeDir/deleted_cmds.inc";	$reqDesc   = "$txtDir/deleted_desc.txt";} elsif ( $dataType eq "APPROVED_REQUEST" ) {	$reqStatus = "Approved Request";	$cmdsPanel = "$includeDir/managed_cmds.inc";	$reqDesc   = "$txtDir/approved_desc.txt";} elsif ( $dataType eq "ARCHIVIED_REQUEST" ) {	$reqStatus = "Archivied Request";	$cmdsPanel = "$includeDir/managed_cmds.inc";	$reqDesc   = "$txtDir/archivied_desc.txt";} elsif ( $dataType eq "PENDING_CRR" ) {	$reqstatus = "Revocation Request Waiting for Approval";	$cmdsPanel = "$includeDir/pending_cmds.inc";	$reqDesc   = "$txtDir/pending_crr_desc.txt";} else {	configError ( "Invalid or missing dataType ($dataType) !");}if( not ( $page = $query->getFile( $baseDoc )) ) {	configError ("Error while loading $baseDoc!" );};## Substitute the cmdsPanel, reqStatus and reqDesc$page = $query->subVar( $page, '@STATUS@', $reqStatus );$page = $query->subVar( $page, '@REQDESC@', $tools->getFile( "$reqDesc") );$page = $query->subVar( $page, '@CMDSPANEL@', $tools->getFile("$cmdsPanel") );my $req = $db->getItem( DATATYPE=>$dataType, KEY=>$key );configError ("Request not present in DB!" ) if ( not $req );## Get the parsed Requestmy $parsed_req = $req->getParsed();@cols = ( "Variable", "Value" );$reqDataTable = $query->startTable( COLS=>[ @cols ],                                        WIDTH=>"100%",                                        ## BGCOLOR=>"#F1F0F8",					PADDING=>"2",					CELLPADDING=>"4",					TABLE_BGCOLOR=>"#F1F0F8",                                        TITLE_BGCOLOR=>"#DDCCFF" );$myDN =  $req->getParsed()->{DN};$myDN =~ s/\, /<BR>\n/g;if (  $req->getParsed()->{CN} ne "" ) {	$lnk = new CGI({cmd=>"search", dataType=>"CERTIFICATE",			name=>"CN", value=>$req->getParsed()->{CN}} );	$myCN = $lnk->a({-href=>$lnk->self_url()}, $req->getParsed()->{CN});}if (  $req->getParsed()->{EMAIL} ne "" ) {	$lnk = new CGI({cmd=>"search", dataType=>"CERTIFICATE",			name=>"EMAIL", value=>$req->getParsed()->{EMAIL}} );	$myEmail = $lnk->a({-href=>$lnk->self_url()}, 			$req->getParsed()->{EMAIL});};## If the Request is signedif ( $req->getParsed()->{TYPE} =~ /with .*? Signature/i ) {	$lnk = new CGI({cmd=>"viewSignature", dataType=>$dataType, key=>$key});	if( libCheckSignature( OBJECT=>$req ) ) {		$tmp = $query->img({src=>"/images/validSig.png",					border=>"0", align=>"MIDDLE"});	} else {		$tmp = $query->img({-src=>"/images/sigError.png",					-border=>"0", -align=>"MIDDLE"});	}	$sigInfo = $lnk->a({-href=>$lnk->self_url()}, $tmp );	} else {	$def = "<FONT COLOR=\"RED\">Not Signed</FONT>";	$parsed_req->{OPERATOR} = $def;}if ( $dataType =~ /PENDING/ ) {	editRequest( REQ=>$req, DATATYPE=>$dataType, PAGE=>$page );}## Check if another valid Certificate exists with the same DN of the## current Request (only for PENDING_CERTIFICATE)$dnLabel = "<B>Distinguished Name:</B><BR>";if( $dataType eq "PENDING_REQUEST" ) {	@myDnList = $db->searchItems( DATATYPE=>"VALID_CERTIFICATE",						MODE=>"RAW",						DN=>$parsed_req->{DN});	if( $#myDnList > -1 ) {		$lnk = new CGI({ cmd=>"search", 				 dataType=>"VALID_CERTIFICATE" });		$dnLabel .= "<BR><B><FONT SIZE=-1>[Warning: a " . 			   $lnk->a({-href=>$lnk->self_url()}, 				"certificate with same DN") . " exists!]" .			   "</FONT></B>";	}}## $reqDataTable .=$query->addTableLine(DATA=>[ "<B>:</B>",##                         ($parsed_req->{} or "n/a") ]);$reqDataTable .=$query->addTableLine(DATA=>["<B>Request Version:</B>",                        ($parsed_req->{VERSION} or "0") ]);$reqDataTable .=$query->addTableLine(DATA=>[ "<B>Serial Number:</B>",                        ($parsed_req->{HEADER}->{SERIAL} or "n/a") ]);$reqDataTable .=$query->addTableLine(DATA=>["<B>Request Type:</B>",                        ($parsed_req->{TYPE} or "n/a") ]);$reqDataTable .=$query->addTableLine(DATA=>["<B>Certificate Request Type:</B>",                        ($parsed_req->{HEADER}->{CERTTYPE} or "n/a") ]);$reqDataTable .=$query->addTableLine(DATA=>[ "<B>Distinguished Name:</B>",                        ($myDN or "n/a") ]);$reqDataTable .=$query->addTableLine(DATA=>[ "<B>Approved on:</B>",                        ($parsed_req->{HEADER}->{APPROVED} or "n/a") ]);$reqDataTable.=$query->addTableLine(DATA=>["<B>Used Identification PIN:</B>",                        ($parsed_req->{HEADER}->{PIN} or "n/a") ]);$reqDataTable .=$query->addTableLine(DATA=>[ "<B>Modulus (key size):</B>",                        ($parsed_req->{KEYSIZE} or "n/a") ]);$reqDataTable .=$query->addTableLine(DATA=>[ "<B>Public Key Algorithm:</B>",                        ($parsed_req->{PK_ALGORITHM} or "n/a") ]);$reqDataTable .=$query->addTableLine(DATA=>[ "<B>Signature Algorithm:</B>",                        ($parsed_req->{SIG_ALGORITHM} or "n/a") ]);$reqDataTable .= $query->endTable();$page = $query->subVar( $page, '@REQDATA@', $reqDataTable );$page = $query->subVar( $page, '@EXTFILE@', $extfile );## Substitute dB coordinates$page = $query->subVar( $page, '@DATATYPE@', $dataType );$page = $query->subVar( $page, '@KEY@', $key );## View the Signature Logo$page = $query->subVar( $page, '@SIGINFO@',    $sigInfo );print "$page";1;sub editRequest {	my $keys = { @_ };	my $req 	= $keys->{REQ};	my $dataType 	= $keys->{DATATYPE};	my $page	= $keys->{PAGE};		my ( $tmp, $i, $subjArea );	my $parsed_req 	= $req->getParsed();	my $head   	= $req->getParsed()->{HEADER};	my $dbKey	= $req->getParsed()->{DBKEY};	my ( $subjArea, $certType );	## $tmpOU = ""; $i = 1;	## foreach $tmp ( @{$req->getParsed()->{OU}} ) {	## 	$tmpOU = $query->newInput( -regx=>'*',	## 		-name=>"${i}.OU", -intype=>'textfield',	## 		-value=>$tmp );	## 	push ( @ouInput, $tmpOU );	## 	$i++;	## }	## $tmpOU = "";	## for $tmp (@ouInput) {	## 	$tmpOU .= $tmp . "<BR>\n";	## }	## my @parNameList = ( "EMAIL","CN","L","S","O","C" );	## for $tmp ( @parNameList ) {	## 	push( @parList, $query->newInput( -regx=>'*',	## 			  -name=>$tmp,	## 			  -intype=>'textfield',	## 			  -value=>$parsed_req->{$tmp} ));	## }	$tmp = $req->getParsed()->{DN};	$tmp =~ s/(\,|\/)\s*/\n/g;        $subjArea = $query->newInput( -regx=>'*',                -intype=>'textarea',                -name=>'subj',                -rows=>6,                -columns=>35,                -default=>$tmp);	$certType = $query->newInput( -regx=>'*',		-intype=>"popup_menu",		-name=>"certtype",		-values=>		     ($config->getParam('RequestCertificateType'))->{VALUES},		-default=>$head->{CERTTYPE});	$tmp = $head->{OPERATOR_DN};	$tmp =~ s/(,|\/)/<br>/g;	@cols = ( "Variable", "Value" );	$reqDataTable = $query->startTable( COLS=>[ @cols ],                                        WIDTH=>"100%",                                        BGCOLOR=>"#F1F0F8",					PADDING=>"2",					CELLPADDING=>"4",					TABLE_BGCOLOR=>"#F1F0F8",                                        TITLE_BGCOLOR=>"#DDCCFF" );	$reqDataTable .=$query->addTableLine(DATA=>["<B>Request Version:</B>",                        ($parsed_req->{VERSION} or "n/a") ]);	$reqDataTable .=$query->addTableLine(DATA=>[ "<B>Serial Number:</B>",                        ($parsed_req->{HEADER}->{SERIAL} or "n/a") ]);	$reqDataTable .=$query->addTableLine(DATA=>["<B>Request Type:</B>",                        ($parsed_req->{TYPE} or "n/a") ]);	$reqDataTable .=$query->addTableLine(DATA=>["<B>Submission Date:</B>",                        ($head->{NOTBEFORE} or "n/a") ]);	## $reqDataTable .=$query->addTableLine(DATA=>[ "<B>E-Mail:</B>",        ##                 ($parList[0] or "n/a") ]);	## $reqDataTable .=$query->addTableLine(DATA=>[ "<B>Common Name:</B>",        ##                 ($parList[1] or "n/a") ]);	## $reqDataTable .=$query->addTableLine(DATA=>	## 		["<B>Organization Unit(s):</B>",        ##                 ($tmpOU or "n/a") ]);	## $reqDataTable .=$query->addTableLine(DATA=>	## 		["<B>Locality:</B>",        ##                 ($parList[2] or "n/a") ]);	## $reqDataTable .=$query->addTableLine(DATA=>	## 		["<B>State:</B>",        ##                 ($parList[3] or "n/a") ]);	## $reqDataTable .=$query->addTableLine(DATA=>	## 		["<B>Organization:</B>",        ##                 ($parList[4] or "n/a") ]);	## $reqDataTable .=$query->addTableLine(DATA=>	## 		["<B>Country:</B>",        ##                 ($parList[5] or "n/a") ]);	$reqDataTable .=$query->addTableLine(DATA=>			[ "<B>Subject:</B>", $subjArea ]);	$reqDataTable .=$query->addTableLine(DATA=>			["<B>Certificate Request Type:</B>",                        ($certType or "n/a") ]);	$reqDataTable.=$query->addTableLine(DATA=>			["<B>Used Identification PIN:</B>",                        ($parsed_req->{HEADER}->{PIN} or "n/a") ]);	$reqDataTable .=$query->addTableLine(DATA=>			[ "<B>Modulus (key size):</B>",                        ($parsed_req->{KEYSIZE} or "n/a") ]);	$reqDataTable .=$query->addTableLine(DATA=>			[ "<B>Public Key Algorithm:</B>",                        ($parsed_req->{PK_ALGORITHM} or "n/a") ]);	$reqDataTable .=$query->addTableLine(DATA=>			[ "<B>Signature Algorithm:</B>",                        ($parsed_req->{SIG_ALGORITHM} or "n/a") ]);	$reqDataTable .= $query->endTable();	$page = $query->subVar( $page, '@KEY@',     $dbKey );	$page = $query->subVar( $page, '@DATATYPE@',$dataType );	$page = $query->subVar( $page, '@REQDATA@', $reqDataTable );	## View the Signature Logo	$page = $query->subVar( $page, '@SIGINFO@',    $sigInfo );	print "$page";	exit(1);} 1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -