diff --git a/lib/CA.pm b/lib/CA.pm index c1c2945..c3f94d0 100644 --- a/lib/CA.pm +++ b/lib/CA.pm @@ -949,6 +949,25 @@ sub create_ca_env { } close(OUT); + # create ca config file based on template + $in = $self->{'init'}->{'templatedir'}."/tinyca.cnf"; + $out = $self->{$opts->{'name'}}->{'dir'}."/tinyca.cnf"; + open(IN, "<$in") || do { + $t = sprintf(_("Can't open config template file %s %s"), $in, $!); + GUI::HELPERS::print_error($t); + return; + }; + open(OUT, ">$out") || do { + $t = sprintf(_("Can't open config output file: %s: %s"),$out, $!); + GUI::HELPERS::print_error($t); + return; + }; + while() { + print OUT; + } + close(IN); + close(OUT); + if(defined($mode) && $mode eq "sub") { $self->create_ca($main, $opts, undef, $mode); } elsif(defined($mode) && $mode eq "import") { @@ -1386,7 +1405,7 @@ sub export_crl { sub _rm_dir { my $dir = shift; - my $dirh; + my ($dirh, $path); opendir($dirh, $dir); @@ -1394,13 +1413,14 @@ sub _rm_dir { next if $f eq '.'; next if $f eq '..'; - if(-d $dir."/".$f) { - _rm_dir($dir."/".$f); + $path = $dir."/".$f; + if(-d $path) { + _rm_dir($path); } else { - unlink($dir."/".$f); + unlink($path); } } - closedir(DIR); + closedir($dirh); rmdir($dir); diff --git a/lib/GUI.pm b/lib/GUI.pm index 14ccc2a..ba8c45f 100644 --- a/lib/GUI.pm +++ b/lib/GUI.pm @@ -2731,7 +2731,7 @@ sub about { } # -# get confirmation for deleting a request +# get confirmation for deleting a request, cert or key # sub show_del_confirm { my ($self, $file, $type) = @_; diff --git a/lib/KEY.pm b/lib/KEY.pm index 8ac2012..51fa4d2 100644 --- a/lib/KEY.pm +++ b/lib/KEY.pm @@ -452,6 +452,7 @@ sub _check_key { return; }; + $type = "#ERR"; while() { if(/RSA PRIVATE KEY/i) { $type = "RSA"; diff --git a/templates/tinyca.cnf b/templates/tinyca.cnf new file mode 100644 index 0000000..3ff1be7 --- /dev/null +++ b/templates/tinyca.cnf @@ -0,0 +1,10 @@ +[global] +use_metadb = no +default_req_type = user +default_domain = example.com + +[server] +default_bits = 4096 + +[user] +default_bits = 2048