Warning, /frameworks/kdelibs4support/src/kssl/kssl/certkde is written in an unsupported language. File is not indexed.

0001 :
0002 eval 'exec perl -S $0 ${1+"$@"}'
0003     if $running_under_some_shell;
0004 
0005 ##
0006 ##   Generate the KDE CA list KConfig file
0007 ##
0008 
0009 %CERT = ();
0010 open(IDX, "<cert.index") || die;
0011 while (<IDX>) {
0012     if (m|^(\S+):\s+(.+)\s*$|) {
0013         $CERT{$2} = $1;
0014     }
0015 }
0016 close(IDX);
0017 
0018 $date = `date`;
0019 $date =~ s|\n$||;
0020 open(BDL, ">ksslcalist") || die;
0021 foreach $cert (sort(keys(%CERT))) {
0022     $file = $CERT{$cert};
0023         print STDERR "Bundling: $cert ($file)\n";
0024     $pem = `openssl x509 -in $file -inform DER -outform PEM`;
0025     $pem =~ s|[\n\r]||g;
0026     $pem =~ s|-----BEGIN CERTIFICATE-----||;
0027     $pem =~ s|-----END CERTIFICATE-----||;
0028     $subj = `openssl x509 -in $file -inform DER -noout -subject`;
0029     $_ = $subj;
0030     # We don't trust this anymore, so we keep our own copy
0031     if ( /TrustCenter/ ) {
0032         continue;
0033     }
0034     if ( /[Oo]bject/ || /[Cc]ode/ ) {
0035         $codeSubj = 1;
0036     } else {
0037         $codeSubj = 0;
0038     }
0039     $subj =~ s|\n$||;
0040     $subj =~ s/^subject= //;
0041     $purpose = `openssl x509 -in $file -inform DER -noout -purpose`;
0042     print BDL "\n";
0043     print BDL "[$subj]\n";
0044     print BDL "x509=$pem\n";
0045     #
0046     $_ = $purpose;
0047     if ( /server CA : Yes\n/ || /client CA : Yes\n/ || (/Any Purpose CA : Yes\n/ && (/client : Yes\n/ || /server : Yes\n/ ))) {
0048        $v_site="true";
0049     } else {
0050        $v_site="false";
0051     }
0052     #
0053     if ( /MIME signing CA : Yes\n/ || /MIME encryption CA : Yes\n/ ) {
0054        $v_email="true";
0055     } else {
0056        $v_email="false";
0057     }
0058     #
0059     if ( /Any Purpose CA : Yes\n/ && $codeSubj == 1) {
0060        $v_code="true";
0061     } else {
0062        $v_code="false";
0063     }
0064 
0065     # are some certificates really broken?
0066     if ($v_code == "false" && $v_email == "false") {
0067         $v_site = "true";
0068     }
0069 
0070     print BDL "site=$v_site\n";
0071     print BDL "email=$v_email\n";
0072     print BDL "code=$v_code\n";
0073 }
0074 close(BDL);
0075