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

📄 searchcert

📁 Perl写的CA认证程序
💻
字号:
## OpenCA - RA Server Command## (c) 1998-2001 by Massimiliano Pala and OpenCA Group####   File Name: searchCert##       Brief: ## Description: ##  Parameters: if ( $cmd !~ /searchCert/i ) {        configError( "Wrong Command Usage ($cmd/searchCert)!" );        exit 1;}if( $cmd =~ /^searchCert/i ) {        ##Reseved Variables        my $doc, $date, $sheet;        ## Get the Serial Number        my $key      = $query->param( 'key' );        my $dataType = $query->param( 'dataType' );        my @certDataTypes = ( VALID_CERTIFICATE, EXPIRED_CERTIFICATE,                              REVOKED_CERTIFICATE );        if( (not $key) or ( not $dataType ) ) {                configError( "Error, missing key and/or dataType params!" );        }        foreach $myType ( @certDataTypes ) {                next if( $myType !~ /$dataType/ );                if( $db->getItem( DATATYPE=>$myType,KEY=>$key )) {                        $dataType = $myType;                }        }}if( $cmd =~ /^(viewCert|searchCert)/i ) {        ##Reseved Variables        my $doc, $date, $sheet, $myType;        ## Get the Serial Number        my $key      = $query->param( 'key' );        my $dataType = $query->param( 'dataType' );        my $date  = $tools->getDate();        my @certDataTypes = ( VALID_CERTIFICATE, EXPIRED_CERTIFICATE,                              REVOKED_CERTIFICATE );        if( (not $key) or ( not $dataType ) ) {                configError( "Error, missing key and/or dataType params!" );        }        if( $cmd =~ /^searchCert/ ) {                foreach $myType ( @certDataTypes ) {                        next if( $myType !~ /$dataType/ );                        if( $db->getItem( DATATYPE=>$myType,KEY=>$key )) {                                $dataType = $myType;                        }                }        }             if ( $dataType =~ /^VALID_CERTIFICATE/ ) {                $status = "Valid";        } elsif ( $dataType =~ /^EXPIRED_CERTIFICATE/ ) {                $status = "Expired";        } elsif ( $dataType =~ /^REVOKED_CERTIFICATE/ ) {                $status = "Revoked";        } elsif ( $dataType =~ /^VALID_CA_CERTIFICATE/ ) {                $status = "Valid";        } elsif ( $dataType =~ /^EXPIRED_CA_CERTIFICATE/ ) {                $status = "Expired";        } else {                configError( "DataType not supported ($dataType)!");        }        ## Get Required Param        if( $dataType =~ /VALID_CERTIFICATE/ ) {                $sheet    = getRequired( 'ValidCertSheet' );        } else {                $sheet    = getRequired( 'ViewCertSheet' );        }        my $page  = $query->getFile ( "$sheet" );        my $cert  = $db->getItem( DATATYPE=>$dataType, KEY=>$key );        if( not $cert ) {                configError("Error, unable to get cert from dB!");        }        if( $page eq "" ) {                configError("Error, unable load $sheet!");        }        my @cols;        push( @cols, "Variable" );        push( @cols, "Value" );        $certTable .= $query->startTable( COLS=>[ @cols ],                                     WIDTH=>"100%",                                     BGCOLOR=>"#EEEEF1",                                     TITLE_BGCOLOR=>"#DDCCFF" );        my $parsedCert = $cert->getParsed();        my $tmpIssuer = $parsedCert->{ISSUER};        my $tmpDN     = $parsedCert->{DN};        my $tmpStatus = $status;        $tmpIssuer =~ s/\//<BR>\n/g;        $tmpDN =~ s/\//<BR>\n/g;        $date = $tools->getDate();        if ( $tmpStatus =~ /^Valid/i ) {                if ( not $tools->isInsidePeriod ( DATE=>"$date",                                START=>$parsedCert->{NOT_BEFORE},                                END=>$parsedCert->{NOT_AFTER} )) {                        $tmpStatus = "<FONT COLOR=\"RED\">" .                                     "Expired (dB needs updating)" .                                     "</FONT>";                }        } elsif ( $tmpStatus =~ /revoked/gi ) {                $tmpStatus .= " on " . $parsedCert->{REVOKED_DATE};        } elsif ( $tmpStatus =~ /^Expired/i ) {                if ( $tools->isInsidePeriod ( DATE=>"$date",                                START=>$parsedCert->{NOT_BEFORE},                                END=>$parsedCert->{NOT_AFTER} )) {                        $tmpStatus = "<FONT COLOR=\"RED\">" .                                     "Not Expired (dB needs updating)" .                                     "</FONT>";                }        };        $certTable .=$query->addTableLine(DATA=>["<B>Certificate Version:</B>",                                ($parsedCert->{VERSION} or "n/a") ]);        $certTable .=$query->addTableLine(DATA=>[ "<B>Serial Number:</B>",                                ($parsedCert->{SERIAL} or "n/a") ]);        $certTable .=$query->addTableLine(DATA=>[ "<B>Common Name:</B>",                                ($parsedCert->{CN} or "n/a") ]);        $certTable .=$query->addTableLine(DATA=>[ "<B>E-Mail:</B>",                                ($parsedCert->{EMAIL} or "n/a") ]);        $certTable .=$query->addTableLine(DATA=>[ "<B>Distinguished Name:</B>",                                ($tmpDN or "n/a") ]);        $certTable .=$query->addTableLine(DATA=>[ "<B>Issued by:</B>",                                ($tmpIssuer or "n/a") ]);        $certTable .=$query->addTableLine(DATA=>[ "<B>Valid From:</B>",                                ($parsedCert->{NOTBEFORE} or "n/a") ]);        $certTable .=$query->addTableLine(DATA=>[ "<B>Exipration on:</B>",                                ($parsedCert->{NOTAFTER} or "n/a") ]);        $certTable .=$query->addTableLine(DATA=>[ "<B>Current Status:</B>",                                ($tmpStatus or "n/a") ]);        $certTable .= $query->endTable();        $certTable .= getCopyRight();        $page = $query->subVar( $page, '$serial',   $parsedCert->{SERIAL} );        $page = $query->subVar( $page, '$certable', $certTable );        $page = $query->subVar( $page, '$key',      $key );        $page = $query->subVar( $page, '$dataType', $dataType );        print "$page";        exit;}

⌨️ 快捷键说明

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