Max,

before your fix I had two CA cerficates, then I recreated DB and
create a new CA cerficate. Now isn't possible create another
certificate, it's correct, isn't?

With another CA Certificate, in my RA (online) I imported the
configurations, and show this error.


==========================
Importing archive ...

Load required variables ...

Changing to directory /opt/openca/var/openca/tmp/tmp_16040 ...

Running the import command(s) ...

/usr/bin/scp [EMAIL PROTECTED]:/tmp/exportando /tmp/exportando



Import failed!

256

===========================


I have that remove some file in RA to reimport?



Samuel Rios Carvalho



On Thu, Oct 23, 2008 at 9:27 PM, Massimiliano Pala
<[EMAIL PROTECTED]> wrote:
> Hi Guys,
>
> quick fix for the problem - there was an error in passing the dataType
> variable from the viewCert to the send certificate command. I attach the
> fix to this email.
>
> Basically, you shall just copy the new files to:
>
>        PREFIX/lib/openca/cmds
>
> where PREFIX, in the binaries distros, is '/opt/openca'.
>
> Let me know if this fixes the CA Certificate retrieval problem...
>
> Later,
> Max
>
> P.S.: This does not fix the missing-symlinks problem.. :(
>
> Massimiliano Pala wrote:
>>
>> Hi Samuel,
>>
>> it is probably a bug - I can not find a reason why it should not work.
>> I'll check on it and send you the results - maybe tomorrow!
>>
>> Later,
>> Max
>>
>>
>> Samuel Rios Carvalho wrote:
>>>
>>> I installed Openca 1.0.2 and created user´s certificates perfectly.
>>>
>>> But when I downloaded CA certificate in https://ca/pub didn´t found.
>>> So I go to CA, in INFORMATION , CA CERTIFICATES and VALID. Showed me
>>> the certificate. I clicked in certificate, more info and show this
>>> error:
>>>
>>> Error Code: 6295020
>>> [initServer:314] Cannot load certificate 2147483647 from the database.
>>>
>>> So I created other CA Certificate and same error.
>>>
>>> Any idea?
>>>
>>>
>>> Samuel Rios Carvalho
>
> --
>
> Best Regards,
>
>        Massimiliano Pala
>
> --o------------------------------------------------------------------------
> Massimiliano Pala [OpenCA Project Manager]  [EMAIL PROTECTED]
>                                                 [EMAIL PROTECTED]
>
> Dartmouth Computer Science Dept               Home Phone: +1 (603) 369-9332
> PKI/Trust Laboratory                          Work Phone: +1 (603) 646-9179
> --o------------------------------------------------------------------------
>
> People who think they know everything are a great annoyance to those of us
> who do.
>                                                           -- Isaac Asimov
>
> ## OpenCA - Command
> ## (c) 1998-2001 by Massimiliano Pala and OpenCA Group
> ## (c) Copyright 2002-2004 The OpenCA Project
> ##
> ##   File Name: viewCert
> ##       Brief: Display a certificate
> ##     Version: $Revision: 1.6 $
> ## Description: Display certificate data
> ##  Parameters: dataType, key
>
> ## this script supports the following configurable references
> ##
> ## INSTALL_CERT
> ## LDAP
> ## REVOCATION
> ## SENDCERT
> ## SEND_CERT_KEY
> ## VIEW_CSR
> ## TOKENHANDLING
> ## MAIL
> ## SET_PUBLIC_PASSWD
> ## DELETE_PUBLIC_PASSWD
>
> use strict;
>
> sub cmdViewCert {
>
>    our ( $query, $self );
>
>    my ($info_list, $cmd_list, $hidden_list, $cmd_panel) = (undef, undef,
> undef, undef);
>    my ($hidden_pos, $info_pos, $cmd_pos) = (0, 0, 0);
>
>    ## Get the Serial Number
>    my $key      = $query->param( 'key' );
>    my $dataType = $query->param( 'dataType' );
>    my $status;
>
>    my @certDataTypes = ( "VALID_CERTIFICATE", "EXPIRED_CERTIFICATE",
>                          "SUSPENDED_CERTIFICATE", "REVOKED_CERTIFICATE" );
>
>    if( not $key and ($key != 0)) {
>        configError( gettext ("Error, missing key!") );
>    }
>
>    if ( not $dataType ) {
>        $dataType = "CERTIFICATE";
>    }
>
>    if ( $dataType =~ /^VALID_CERTIFICATE/ ) {
>        $status = gettext ("Valid");
>    } elsif ( $dataType =~ /^EXPIRED_CERTIFICATE/ ) {
>        $status = gettext("Expired");
>    } elsif ( $dataType =~ /^SUSPENDED_CERTIFICATE/ ) {
>        $status = gettext("Suspended");
>    } elsif ( $dataType =~ /^REVOKED_CERTIFICATE/ ) {
>        $status = gettext("Revoked");
>    } elsif ( $dataType =~ /^VALID_CA_CERTIFICATE/ ) {
>        $status = gettext("Valid");
>    } elsif ( $dataType =~ /^EXPIRED_CA_CERTIFICATE/ ) {
>        $status = gettext("Expired");
>    } elsif ( $dataType =~ /^CA_CERTIFICATE/ ) {
>        ## try to determine the datatype
>        if ($db->getItem ( DATATYPE => "VALID_CA_CERTIFICATE", KEY => $key ))
> {
>                $dataType = "VALID_CA_CERTIFICATE";
>                $status   = gettext("Valid");
>        } elsif ($db->getItem ( DATATYPE => "EXPIRED_CA_CERTIFICATE", KEY =>
> $key )) {
>                $dataType = "EXPIRED_CA_CERTIFICATE";
>                $status   = gettext("Expired");
>        } else {
>                configError ( gettext ("Cannot determine status of this
> CA-Certificate!"));
>        }
>    } elsif ( $dataType =~ /^CERTIFICATE/ ) {
>        ## try to determine the datatype
>        if ($db->getItem ( DATATYPE => "VALID_CERTIFICATE", KEY => $key )) {
>                $dataType = "VALID_CERTIFICATE";
>                $status   = gettext("Valid");
>        } elsif ($db->getItem ( DATATYPE => "EXPIRED_CERTIFICATE", KEY =>
> $key )) {
>                $dataType = "EXPIRED_CERTIFICATE";
>                $status   = gettext("Expired");
>        } elsif ($db->getItem ( DATATYPE => "SUSPENDED_CERTIFICATE", KEY =>
> $key )) {
>                $dataType = "SUSPENDED_CERTIFICATE";
>                $status   = gettext("Suspended");
>        } elsif ($db->getItem ( DATATYPE => "REVOKED_CERTIFICATE", KEY =>
> $key )) {
>                $dataType = "REVOKED_CERTIFICATE";
>                $status   = gettext("Revoked");
>        } else {
>                configError ( gettext ("Cannot determine status of this
> Certificate!"));
>        }
>    } else {
>        configError (i18nGettext ("DataType not supported (__DATATYPE__)!",
> "__DATATYPE__", $dataType));
>    }
>
>    my $cert  = $db->getItem( DATATYPE=>$dataType, KEY=>$key );
>
>    configError( i18nGettext ("Error __ERRNO__, unable to get cert from dB!
> (__ERRVAL__)",
>                              "__ERRNO__", $db->errno(),
>                              "__ERRVAL__", $db->errval())) if( not $cert );
>
>    my $parsedCert = $cert->getParsed();
>
>    ## build emailaddress string
>    my $emails = "";
>    foreach my $email (@{$parsedCert->{EMAILADDRESSES}})
>    {
>        $emails .= ", " if ($emails);
>        $emails .= $email;
>    }
>
>    $hidden_list->{"cmd"}            = "";
>    $hidden_list->{"GET_PARAMS_CMD"} = "";
>    $hidden_list->{"passwd"}         = "";
>    $hidden_list->{"key"}            = $key;
>    $hidden_list->{"HIDDEN_key"}     = $key;
>    $hidden_list->{"dataType"}       = $dataType;
>    $hidden_list->{"dn"}             = $parsedCert->{DN};
>    $hidden_list->{"new_dn"}         = "";
>    $hidden_list->{"name"}           = "PUBLIC";
>    $hidden_list->{"format"}         = "";
>    $hidden_list->{"text"}           = "";
>    $hidden_list->{"signature"}      = "";
>
>    my $tmpIssuer = $parsedCert->{ISSUER};
>    my $tmpDN     = $parsedCert->{DN};
>    my $tmpStatus = $status;
>
>    ## old version - if it can be removed then simply remove it
>    $tmpIssuer =~ s/[\/,]\s*(?=[A-Za-z0-9\-]+=)/<BR>\n/g;
>    $tmpDN     =~ s/[\/,]\s*(?=[A-Za-z0-9\-]+=)/<BR>\n/g;
>
>    my $now = timestamp();
>
>    if ( $tmpStatus =~ /^Valid/i ) {
>        if ($now >
>            $cryptoShell->getNumericDate ($parsedCert->{NOTAFTER})) {
>                $tmpStatus = gettext("Expired");
>        }
>    } elsif ( $tmpStatus =~ /revoked/gi ) {
>        $tmpStatus = i18nGettext ("Revoked on __DATE__", "__DATE__",
> $parsedCert->{HEADER}->{REVOKED});
>    } elsif ( $tmpStatus =~ /^Expired/i ) {
>        if ($now <=
>            $cryptoShell->getNumericDate ($parsedCert->{NOTAFTER})) {
>                $tmpStatus = gettext("Not Expired");
>        }
>    }
>
>    my $download = "";
>    my $revoke = "";
>
>    my $ctype = "";
>
>    if ( $dataType =~ /CA_CERTIFICATE/gi ) {
>        $download = '?cmd=send_email_cert;type=ca;dataType=$dataType;key='.
>                $key; # $cert->getSerial();
>        $ctype = "ca";
>    } else {
>        $download =
> '?cmd=send_email_cert;type=email;dataType=$dataType;key='.
>                $key; # $cert->getSerial();
>        $ctype = "email";
>        $revoke   = '?cmd=revoke_req;key='.$cert->getSerial();
>    }
>
>    # $info_list->{HEAD}->[0] = gettext("Variable");
>    # $info_list->{HEAD}->[1] = gettext("Value");
>
>    my $html_download = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Download")."\" ".
>                        "Class=\"medium\" " .
>                        "onClick=\"cmd.value='sendcert';
> format_sendcert.value='CER';\">";
>    my $text = undef;
>
>    $text = "<table style='width: 500px;'>";
>    $text .= "<tr><td style='padding: 10px;'>" .
>             "<a href=\"$self?cmd=send_email_cert;type=$ctype;" .
>                        "dataType=$dataType;key=" .
>                        # $cert->getSerial() . "\" alt=\"" .
>                        $key . "\" alt=\"" .
>                        gettext ("Install this Certificate" ) . "\">" .
>             "  <img src=\"" . getRequired('HtdocsUrlPrefix') .
>                    "/images/cert-icon.png\" alt='" .
>                        gettext("Install this Certificate") . "'/></a>" .
>             "</td>";
>    $text .= "<td>" ;
>
>    $text .= "  <table style='width: 400px;'>" .
>                " <tr><td colspan='2' " .
>                        "style='font-size: 150%; font-style: bold;'>" .
>                  $parsedCert->{DN_HASH}->{CN}[0] .  " [" .
>                  $cert->getSerial() . "]</td></tr>";
>    $text .= "    <tr><td style='color: #777;'>" .
>                        "Issued By:</td>" .
>             "      <td style='color: #777'>" .
>                        $parsedCert->{ISSUER_HASH}->{O}[0] . "</td>";
>    $text .= "    </tr>";
>    $text .= "    <tr><td style='color: #777;'>" .
>                        "Expiration on:</td>" .
>             "      <td style='color: #777;'>" .
>                        $parsedCert->{NOTAFTER} . "</td></tr>";
>    $text .= "    <tr><td style='color: #777;'> " .
>                        "Profile:</td>" .
>             "      <td style='color: #777;'>" .
>                        $parsedCert->{HEADER}->{ROLE} . "</td></tr>";
>
>    $text .= "    <tr><td>&nbsp;</td>" .
>             "      <td  style='font-size: 80%; color: #777;'>" .
>                        "<a
> href=\"$self?cmd=viewCertFull;dataType=$dataType;" .
>                                # "key=" .  $cert->getSerial() . "\" >" .
>                                "key=$key\" >" .
>                        gettext ( "More Info" ) . "... </a></td></tr>";
>    $text .= "  </table>";
>
>    $text .= "</td>";
>    $text .= "</tr>";
>
>    $text .= "<tr><td colspan='2'><hr size='1' style='color: #fff;'/>" .
>                "</tr></td>";
>
>    # $text .= "    <tr><td colspan='2'>" .
> #            "      <td style='text-align: right;'>" .
> #                                       $html_download . "</td></tr>";
>
>    # $text .= "<tr><td colspan='2'>" . gettext ("Certificate Profile" ) .
>    #   ":<br/>" . $parsedCert->{HEADER}->{ROLE} . "</td></tr>";
>
>    $text .= "<tr><td colspan='2'>" . gettext ("Fingerprint" ) .
>                ":<br/>" . $parsedCert->{FINGERPRINT} . "</td></tr>";
>
>    $text .= "</table>";
>
>    $info_list->{BODY}->[$info_pos++]->[1] = $text;
>
>
>    #######################################
>    ## here starts the filtered commands ##
>    ## here starts the filtered commands ##
>    ## cmd_list                          ##
>    #######################################
>
>    $cmd_list->{HEAD}->[0] = gettext ("Operations");
>
>    my $allow = libGetPermissionHash (getRequiredList ('CmdRefs_viewCert'));
>
>    ## perhaps an operator want to have a look at the request
>    if ($allow->{VIEW_CSR} and
>        $parsedCert->{HEADER}->{CSR_SERIAL}
>       ) {
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("CSR's Serial Number");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = "<a href=\"".
>
> "?cmd=viewCSR&dataType=ARCHIVED_REQUEST&key=".
>
> $parsedCert->{HEADER}->{CSR_SERIAL}."\">".
>
> "$parsedCert->{HEADER}->{CSR_SERIAL}</a>";
>        $cmd_pos++;
>    }
>
>    ## download certs in different formats
>    if ( $allow->{SENDCERT} and
>         ($dataType =~ /(VALID|EXPIRED|SUSPENDED)/i)
>       ) {
>        my $select = "<select " .
>                     " class=\"Medium\" name=\"format_sendcert\">\n".
>                        "<option value=\"pem\">PEM</option>\n".
>                        "<option value=\"der\">CER</option>\n".
>                        "<option value=\"pem\">CRT</option>\n".
>                        "<option value=\"der\">DER</option>\n".
>                        "<option value=\"txt\">TXT</option>\n".
>                        "</select>\n";
>        my $button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Download")."\" ".
>                        "Class=\"medium\" " .
>                        "onClick=\"cmd.value='sendcert';\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Certificate");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $select.$button;
>        $cmd_pos++;
>    }
>
>    ## prepare download of private keys
>    if ( $allow->{SEND_CERT_KEY} and
>        $parsedCert->{KEY}
>       ) {
>        my $select = "<select name=\"format_send_cert_key\">\n".
>                        "<option value=\"openssl\">SSLeay
> (mod_ssl)</option>\n".
>                        "<option value=\"pkcs8\">PKCS#8</option>\n".
>                        "<option value=\"pkcs12\">PKCS#12</option>\n".
>                        "</select>\n";
>        my $button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Download")."\" ".
>                        "Class=\"medium\" " .
>
>  "onClick=\"cmd.value='getParams';GET_PARAMS_CMD.value='send_cert_key';\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Certificate and
> Keypair");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $select.$button;
>        $cmd_pos++;
>        ## Change passphrase
>        my $change_button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Change")."\" ".
>                        "Class=\"medium\" " .
>                        "onClick=\"cmd.value='changePasswd'\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Change Passphrase");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $change_button;
>        $cmd_pos++;
>        ## Remove private key from DB
>        my $remove_button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Remove")."\" ".
>                        "Class=\"medium\" " .
>                        "onClick=\"cmd.value='removeKey'\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Remove Key from
> database");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $remove_button;
>        $cmd_pos++;
>    }
>
>    ## prepare the actualization of the LDAP
>    if ( $allow->{LDAP} and
>         (getRequired ('LDAP') =~ /y/i)
>       ) {
>        ## update cert on LDAP
>        my $ldap_button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Add to LDAP")."\" ".
>                        "Class=\"medium\" " .
>                        "onClick=\"cmd.value='ldapAddCert'\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Add the certificate to
> LDAP");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $ldap_button;
>        $cmd_pos++;
>        ## update cert on LDAP with modified DN
>        $ldap_button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Add to LDAP with modified
> DN")."\" ".
>
>  
> "onClick=\"cmd.value='getParams';GET_PARAMS_CMD.value='ldapAddCertByName';\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Add the certificate to
> LDAP but with changed DN");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $ldap_button;
>        $cmd_pos++;
>        ## delete cert from LDAP
>        $ldap_button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Delete from LDAP")."\" ".
>                        "Class=\"medium\" " .
>                        "onClick=\"cmd.value='ldapDeleteCert'\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Delete the certificate
> from LDAP");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $ldap_button;
>        $cmd_pos++;
>        ## delete cert from LDAP with modified DN
>        $ldap_button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Delete from LDAP with modified
> DN")."\" ".
>                        "Class=\"medium\" " .
>
>  
> "onClick=\"cmd.value='getParams';GET_PARAMS_CMD.value='ldapDeleteCertByName';\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Delete the certificate
> from LDAP but with changed DN");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $ldap_button;
>        $cmd_pos++;
>    }
>    if ($allow->{TOKENHANDLING} and
>        not $parsedCert->{IS_CA} and
>        $status ne gettext("Revoked") and
>        $status ne gettext("Suspended")
>       )
>    {
>        my $ra_button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Class=\"Medium\" " .
>                        "Value=\"".gettext("Install Certificate")."\" ".
>                        "onClick=\"cmd.value='getcert'\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Tokenhandling");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $ra_button;
>        $cmd_pos++;
>    }
>    if ($allow->{MAIL}) {
>        my $ra_button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Write a mail")."\" ".
>                        "Class=\"medium\" " .
>                        "onClick=\"cmd.value='writeCertMail'\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Send mail to the
> User");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $ra_button;
>        $cmd_pos++;
>    }
>
>    ## set enrollment passphrase for certificate and private key on public
> gateway
>    if ( $allow->{SET_PUBLIC_PASSWD} and
>         $parsedCert->{KEY} and
>         ($dataType =~ /(VALID|EXPIRED|SUSPENDED)/i)
>       ) {
>        my $button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Set passphrase")."\" ".
>                        "Class=\"medium\" " .
>                        "onClick=\"cmd.value='setPasswd';\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Set passphrase for key
> enrollment");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $button;
>        $cmd_pos++;
>    }
>    if ( $allow->{DELETE_PUBLIC_PASSWD} and
>         $parsedCert->{KEY} and
>         ($dataType =~ /(VALID|EXPIRED|SUSPENDED)/i)
>       ) {
>        my $button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Delete passphrase")."\" ".
>                        "Class=\"medium\" " .
>                        "onClick=\"cmd.value='deletePasswd';\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Delete passphrase for
> key enrollment");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $button;
>        $cmd_pos++;
>    }
>
>    ## revoke cert
>    if ( $allow->{REVOCATION} and
>         $status ne gettext("Revoked")
>       )
>    {
>        my $ra_button = "<input ".
>                        "TYPE=\"Submit\" ".
>                        "Name=\"Submit\" ".
>                        "Value=\"".gettext("Revoke")."\" ".
>                        "Class=\"medium\" " .
>                        "onClick=\"cmd.value='revoke_req'\">";
>        $cmd_list->{BODY}->[$cmd_pos]->[0] = gettext("Start Revocation");
>        $cmd_list->{BODY}->[$cmd_pos]->[1] = $ra_button;
>        $cmd_pos++;
>    }
>
>    if ($allow->{INSTALL_CERT}) {
>        if ($dataType =~ /(VALID|EXPIRED|SUSPENDED)_CERTIFICATE/) {
>            $cmd_panel->[0] =
>                        "<a href=\"".$download."\" onClick=\"alert('The
> Certificate will be installed under Other People Certificates
> Tab');\">".gettext("Install the certificate")."</a>";
>            $cmd_panel->[1] =
>                        "<a href=\"".$revoke."\">".gettext("Revoke the
> certificate")."</a>";
>        }
>    }
>
>    return libSendReply (
>                         "NAME"        => i18nGettext ("__STATUS__
> Certificate", "__STATUS__", $status),
>                         # "EXPLANATION" => gettext ("Following you can find
> the certificate details."),
>                         # "TIMESTAMP"   => 1,
>                         "INFO_LIST"   => $info_list,
>                         # "CMD_LIST"    => $cmd_list,
>                         # "CMD_PANEL"   => $cmd_panel,
>                         "HIDDEN_LIST" => $hidden_list
>                        );
> }
> 1;
>
> ## 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 .= "<PRE>\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;
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Openca-Users mailing list
> Openca-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openca-users
>
>

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Openca-Users mailing list
Openca-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openca-users

Reply via email to