use File::Temp qw/:POSIX/; my $caroot = $ENV{SSL_CA_ROOT}; if (! -d $caroot) { print <', "$filein") or die "Could not open file '$filein' for write: $!"; binmode IN; print IN ; close(IN); my $cmd = 'openssl ocsp -CA certs/ca.crt'. ' -index index.txt'. ' -rsigner certs/server.crt'. ' -rkey keys/server.pem'. ' -reqin ' . $filein . ' -respout ' . $fileout; system($cmd); # Check system result my $err = ''; if ($? == -1) { my $err = "failed to execute '$cmd': $!\n"; } elsif ($? & 127) { my $err = sprintf("child '$cmd' died with signal %d, %s coredump\n", ($? & 127), ($? & 128) ? 'with' : 'without'); } else { my $rc = $? >> 8; my $err = "child '$cmd' exited with value $rc\n" if $rc; } unlink($filein); if ($err ne '') { print <; close(OUT); unlink($fileout);