URL
                    https://opencores.org/ocsvn/openrisc/openrisc/trunk
                
            Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [contrib/] [generate-cacerts.pl.in] - Rev 841
Go to most recent revision | Compare with Previous | Blame | View Log
#!/usr/bin/perl# Copyright (C) 2007, 2009 Free Software Foundation## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.# generate-cacerts.pl generates a gkeytool keystore named 'cacerts'# from OpenSSL's certificate bundle.# First extract each of OpenSSL's bundled certificates into its own# aliased filename.chomp($file=@ARGV[0]);$file = "/etc/pki/tls/cert.pem" unless $file ne "";open(CERTS, $file);@certs = <CERTS>;close(CERTS);$pem_file_number = 0;$writing_cert = 0;foreach $cert (@certs){if ($cert eq "-----BEGIN CERTIFICATE-----\n"){if ($writing_cert != 0){die "$file is malformed.";}$pem_file_number++;# Numbering each file guarantees that cert aliases will be# unique.$pem_file_name = "$pem_file_number$cert_alias.pem";$writing_cert = 1;open(PEM, ">$pem_file_name");print PEM $cert;}elsif ($cert eq "-----END CERTIFICATE-----\n"){$writing_cert = 0;print PEM $cert;close(PEM);}elsif ($cert =~ /Issuer: /){# Generate an alias using the OU and CN attributes of the# Issuer field if both are present, otherwise use only the CN# attribute. The Issuer field must have either the OU or the# CN attribute.$_ = $cert;if ($cert =~ /OU=/){s/Issuer:.*?OU=//;# Remove other occurrences of OU=.s/OU=.*CN=//;# Remove CN= if there were not other occurrences of OU=.s/CN=//;}elsif ($cert =~ /CN=/){s/Issuer:.*CN=//;}s/\W//g;tr/A-Z/a-z/;$cert_alias = $_}else{if ($writing_cert == 1){print PEM $cert;}}}# Check that the correct number of .pem files were produced.@pem_files = <*.pem>;if (@pem_files != $pem_file_number){die "Number of .pem files produced does not match"." number of certs read from $file.";}# Now store each cert in the 'cacerts' file using gkeytool.$certs_written_count = 0;foreach $pem_file (@pem_files){system "yes | gkeytool@gcc_suffix@ -import -alias `basename $pem_file .pem`"." -keystore cacerts -storepass '' -file $pem_file"." 2>&1 >/dev/null";unlink($pem_file);$certs_written_count++;}# Check that the correct number of certs were added to the keystore.if ($certs_written_count != $pem_file_number){die "Number of certs added to keystore does not match"." number of certs read from $file.";}
Go to most recent revision | Compare with Previous | Blame | View Log

